Gå til innhold

Hvordan lage bildegalleri med PHP?


Anbefalte innlegg

Vil gjerne lage ett bildegalleri i PHP med følgende funksjoner:

 

1. opprette/slette album (gjerne via ett webgrensesnitt).

2. laste opp/alette bilder (gjerne via ett webgrensesnitt).

3. bilder skal vises som en "thumbnail" i en oversikt med x antall bilder om gangen, overstiger bildene x antall lages en ny side, osv osv.

4. funksjon for å legg til kommentar

5. Når man trykker på ett bilde kommer en fullvisning opp i nytt vindu med neste/forrige knapp, vinduet skal kunne lukkes med en lukk-knapp.

 

Meg og PHP:

 

Kunne en del for noen år tilbake men ser ut som jeg må begynne litt på nytt med å bygge opp kunnskap.

 

Hvorfor ikke bruke noe ferdig?

 

Vil gjerne kode dette selv for å full kontroll over kode og funksjoner i galleriet.

Hva vil jeg med denne tråden?

 

Vil selvsagt ha hjelp, ikke i form av ren kode (bortsett fra snadder på noen få linjer men da med litt forklaring) men hint om hvilken retning jeg skal ta, innebygde funksjoner i php, etc.

 

Bare for å få en følelse hvor mye arbeid dette kommer til å bli lurer jeg på hvor mange kodelinjer en slik funksjon vil ta (sånn ca)?

 

Ok, da er jeg klar...

 

Vil helst gjøre det slik... dere gir meg hint og forslag, gjerne i form av linker, googlesøk, funksjoner, etc og forteller hvilken funksjon i galleriet den vil løse/hjelpe (1-5).

 

Deretter bruker jeg en del tid på å lese selv og kommer med tilbakemeldinger... diskuter også gjerne dere i mellom.

 

Om jeg er fornøyd med ferdigproduktet blir det så klart delt her på forumet.

Lenke til kommentar
Videoannonse
Annonse

Det blir enormt mye arbeid det der. Det vil nok ta deg et halvt år og vel så det. Anbefaler deg å titte på www.plogger.org, et åpent og gratis fotogalleri som er enkelt å implementere i designet ditt, og som har alle de funksjonene du spør etter, og lett kan konfigureres og modifiseres etter ditt behov. Det har også et eget forum med meget hjelpsomme folk.

 

Jeg liker også best å lage ting selv, derfor bruker jeg ikke noe ferdiglaget CMS, men har mitt eget. Allikevel ser jeg ingen grunn til hvorfor jeg ikke skal bruke et ferdig fotogalleri på siden min.

 

Så om du fremdeles insisterer på å lage ditt eget, må du lære deg mye PHP, lær deg hvordan bildeopplasting fungerer, hvordan sjekke om den opplastede filen finnes fra før så du ikke overskriver noen bilder, søke etter en php thumbnail generator function, lære deg lese og skrive til database, paginering og en hel drøss med andre ting.

Endret av MikkelRev
Lenke til kommentar

Halvt år var nå litt vel overdrevet da. Har man kunnskap og tid kan det ta knapt en uke hvis man virkelig går inn for det. Faktisk vil jeg våge meg såpass å si at det der tar bare et par-tre dager hvis man har kjennskap til programmering mot et database-system, GD e.l., filopplasting og generelt hvordan man lager innloggingssystemer såfremt man har de par-tre dagene helt fri.

 

... men nok om det. Jeg vil anslå at antall kodelinjer eks. design/HTML vil ligge et sted mellom 1000 og 1500 linjer. Det du først bør gjøre er å lage noen tabeller som tar vare på de dataene du ønsker. Utover det trenger du å kunne programmere mot databasen (mysql, mysqli (MySQL 4.1+ hvis du har mysqli tilgjengelig på serveren), Postgresql), GD (for å generere «thumbnail» ved opplasting av bildet), filopplasting og session (for innlogging).

Lenke til kommentar
Neida, man kan lage et på under en halvtime også, om en enkel bildeopplaster og directorylisting er godt nok. Plogger og andre fotogallerier har vært utviklet gjennom flere år. Så hvor mange år tror du ikke det tar for Nasciboy - som er rimelig fersk - å lage en ny plogger ?

Mange :)

Lenke til kommentar
Neida, man kan lage et på under en halvtime også, om en enkel bildeopplaster og directorylisting er godt nok. Plogger og andre fotogallerier har vært utviklet gjennom flere år. Så hvor mange år tror du ikke det tar for Nasciboy - som er rimelig fersk - å lage en ny plogger ?

Nå var det vel ikke akkurat en ny plogger det er snakk om å lage her da. Blant annet inneholder plogger veldig mye ekstern kode, tre temaer, RSS, «remote access», nedlasting av album eller valgte bilder, opplasting av bilder/album i zip-filer og endel andre ting som ikke har vært nevnt i tråden her. At f.eks plogger har vært utviklet over flere år viser bare at plogger har vært kodet litt nå og da, ikke at det faktisk tar flere år å kode det. Forrige commit var f.eks for 7 uker siden, og 1.0 var planlagt ferdig for snart 2 år siden.

Endret av Ernie
Lenke til kommentar
Neida, man kan lage et på under en halvtime også, om en enkel bildeopplaster og directorylisting er godt nok. Plogger og andre fotogallerier har vært utviklet gjennom flere år. Så hvor mange år tror du ikke det tar for Nasciboy - som er rimelig fersk - å lage en ny plogger ?

Hvor lang tid tror du det tar å få oversikt og kontroll over all koden i plogger vs. å kode et enkelt bildegalleri selv? Når pointet er å ha mest mulig kontroll er det lurt med minst mulig funksjonalitet :o)

Lenke til kommentar

Å skjønne kildekode til noe andre har skrevet er generelt vanskelig. Hvis prosjektet er stort er det enda værre. Mitt tips er bare å starte på bar bakke og jobbe deg mot målet. At det blir mye arbeid har flere har allerede konstantert, og det er helt sikkert, men du vil i tillegg være utrolig mye.

Lenke til kommentar
  • 2 måneder senere...

Snubla over denne tråden. Har holdt på med det som spørres etter her, nå i en 2 mnd tid tenker jeg. Hadde ikke veldig mye php kunnskaper, i begynnelsen av januar visste jeg ikke helt hvordan $_GET fungerte engang :blush:

 

Det jeg har prioritert er automatikk, bildene laster jeg opp med ftp. Etter det fungerer galleriet. Meny, bilder, thumbs og stats går automatisk. Men for å gjøre det litt lettere å laste, lager jeg thumbs, resized og komprimerer orginal bildene manuelt. Går raskt unna med noen kommandolinjer.

 

Scripts som brukes:

Bildevisning: Highslide

Thumbs: phpThumb

php and javascript advanced md5 authentication system: http://corz.org/serv/security/pajamas.php

 

Brukt http://php.net/manual/en/function.* MYE, lest eksempler på funksjoner, modifisert, tilpasset, MYE prøve-feile metode.

 

Bruker topnav.gif fra MiniGal :whistle:

favicon har jeg heller ikke laget selv :whistle:, skal nok byttes ut etterhvert.

 

Funksjoner:

Logging: 3 filer logges for all aktivitet.

login.php // all login aktivitet loggføres
index.php // alt annet går gjennom index.php fila
pic.php // all bildevisning går gjennom denne filen

 

Thumbnails: Ingen thumbs i mappa _thm, lag med phpthumb.

Resized: Ingen resized _res, bruk original bildene.

 

Ingen database, kun config.php fil.

 

Selv har jeg ssh tilgang til webhotell så kjører følgende når bilder er lastet opp med ftp.

Zip:

zip -r ny.zipfil.zip mappe.som.skal.zippes/*.JPG

 

Resize:

ls *.JPG | xargs -I {} convert -resize 800x800 -quality 75 {} res.{}

 

Thumbs:

ls *.JPG | xargs -I {} convert -thumbnails 100x100 -quality 75 {} thm.{}

 

Komprimer og resize orginal bildene litt:

mogrify -resize 1280x1280 -quality 75 *.JPG

 

.htaccess Finnes i albumroot og zip mappene, slik at direkte tilgang til filer nektes.

.htaccess
Order Allow,Deny
Deny from All

 

Sikkerhet:

Bilde visning og nedlasting av zip går gjennom php, slik at ALT loggføres (paranoid :thumbup: ).

 

Bilde: Kontrollsjekk på om det faktisk er et bilde som skal vises readfile();.

Zip: Kun zip filer fra mappen "zip", er mulig å laste ned, kjøres en funksjon som setter i gang nedlasting.

 

login.php:

1loginphp.jpg

 

index.php

2indexphp.jpg

 

index.php?folder=pictures/Digital%20Blasphemy/2001&gallery=fancy&quality=low

3indexphpfolderview.jpg

 

index.php?folder=pictures/Digital%20Blasphemy/2001&gallery=fancy&quality=low

Benyttet meg av <div class="centered"> og width:100%, slik at widescreen skjermer får utnyttet plassen...

4indexphpfolderviewwide.jpg

 

index.php liste ut bildene i "current folder"

5indexphpfolderlist.jpg

 

index.php&log=pic

6indexphppiclog.jpg

 

Enkelt og stygt? tja, litt... Men det funker fint for meg.

Har 4 gallerier med dette "systemet".

Med bilder fra 1000 til nærmere 10000, og det funker overraskende bra. Mulig all "glob"ingen er litt ressurskrevende.

Endret av sxxxe83
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...