De site van H.J. de Boer

Homepage van H.J. de Boer > Frontpage

Gallery 2 - uitkomst voor mijn fotoboek


Gallery 2 logoIk ben blij. Om meerdere redenen. Ten eerste heb ik in de afgelopen twee dagen mijn vrije tijd besteed aan een complete overhaul van de website van mijn studievereniging Vevanos. Sinds een jaar ben ik webcommissaris bij die club, en dat houdt in dat ik zo nu en dan de site even moet updaten met nieuwe gegevens, nieuwe foto's en dat ik even wat reclame van nieuwe sponsors toe moet voegen. De oude website stamde uit 2002 en werkte nog met frames. Op zich een snelle en effectieve oplossing voor die tijd, maar iedereen die mij inmiddels een beetje kent, begrijpt dat het me ondertussen een doorn in het oog was. Een goed opgezette site met frames is namelijk nog best wel goed te onderhouden, maar als elk frame dan een tabel of twee bevat, en alle styling inline gebeurt of zelfs met niet-semantische deprecated elementen, dan levert dat bij mij best wel eens een momentje van ergernis op. Vooral omdat ik weet dat het beter kan.

Als je dan zo'n grote mond hebt, dan moet je 't ook waar maken natuurlijk. Vandaar dat ik in de spaarzame vrije tijd die ik in de afgelopen dagen had, steeds een beetje heb gewerkt aan het van de grond opbouwen van een nieuwe site. PHP als basis, afgewerkt met een mooie HTML 4.01 strict layout, die keurig valideert op alle fronten. Nu, dat ging allemaal vrij snel: binnen enkele uren had ik een cross-browser werkende layout, binnen nog eens een aantal uren had ik de bestaande content in mooie semantische HTML gefrot en dat in het door mij gemaakte PHP-frameworkje geplakt. Er bleef nog één heet hangijzer over. De foto's. Bij de oude site moesten die foto's eerst allemaal met een speciaal programma verkleind worden en daarna via FTP ge-upload worden en daarna moest je de betreffende HTML-file van een linkje naar die nieuwe map met foto's voorzien. Dat was dus werk dat alleen maar door de webmaster gedaan kon worden, want je kunt een ander niet uitleggen hoe hij moet pielen met FTP. En soms komt dat niet altijd uit, als je als webmaster druk bent met van alles, en men wil wel graag foto's op de site hebben.

Ik vond dat daar een betere oplossing voor moest komen. Mijn eigen uploadsysteem voor foto's (dat ik hier op hjdeboer.nl ook gebruik) omvormen voor gebruik door Vevanos was geen optie, want dat zou nog ontzettend veel tijd vergen om het gebruiksvriendelijk genoeg te maken voor een niet zo technische gebruiker. Die tijd heb ik niet. Toen dacht ik: als ik nou eens een pakket pak dat reeds gebruiksvriendelijk is... en ik gebruik dat hiervoor? Vervolgens liep ik meteen tegen mezelf op, want alle opties die ik tegenkwam waren no-way ooit in de door mij gebouwde PHP-omlijsting te prutsen. Datzelfde probleem loop ik al maanden tegenaan met mijn eigen website die in de basis ongeveer in hetzelfde in elkaar zit wat betreft scripts, vandaar dat ik ook hier nog steeds geen mooi fotoalbum heb. Als een geschenk uit de hemel kwam daar echter Gallery 2, het veelgeroemde PHP/MySQL pakket om een goed te beheren afbeeldingengallerij op te zetten. Dit pakket is inmiddels zover geëvolueerd, dat men een complete interface meelevert om het zaakje vrij eenvoudig in elke bestaande PHP-applicatie te kunnen embedden. Vervolgens kun je dan met onderstaande code die interface aanspreken vanuit je eigen applicatie.

php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
require_once(dirname(__FILE__) . '/gallery2/embed.php');
$ret = GalleryEmbed::init(array(
        'embedUri' => 'mijn_applicatie.php'
        'embedPath' => '/',
        'relativeG2Path' => 'gallery2',
        'loginRedirect' => '/',
        'activeUserId' => ''));
        
if ($ret->isError()) {
    // $ret->getAsHtml() has error details..
    exit;
}

$g2data = GalleryEmbed::handleRequest();
if ($g2data['isDone']) {
    exit// G2 has already sent output (redirect or binary data)
}

// Use $g2data['headHtml'] and $g2data['bodyHtml']
// to display G2 content inside embedding application
// if you don't want to use $g2data['headHtml'] directly, 
// you can get the css, javascript and page title
// separately by calling...

if (isset($g2data['headHtml'])) {
    list($title$css$javascript) = 
                    GalleryEmbed::parseHead($g2data['headHtml']);
}
?>


Deze code is heilig. Ik heb het al deels werkend, zij het dat ik op de server van die Vevanos-site momenteel nog tegen de memory_limit van PHP aanloop, die staat nogal strak op 8mb daar, in plaats van 16mb. In principe werkt het al, dus ik ga dit binnenkort ook proberen in hjdeboer.nl te prutsen. Als het even meezit heb ik dus binnenkort hier ook een buitengewoon handig en mooi fotoboek! Binnenkort is echter wel wat relatief... want ik heb veel te doen momenteel. Ik heb namelijk een scriptieonderwerp gevonden - dat is dan meteen de tweede reden waarom ik zoals gezegd blij ben! Nu kan ik gericht zoeken en gericht gedachten ontwikkelen over wat ik wil gaan beschrijven. Alles is in één klap een stuk concreter geworden en dat is erg fijn. Vooral omdat ik een ontzettend interessant en leuk onderwerp heb. Daar vertel ik nog wel meer over in de komende tijd; als ik er even tijd vrij voor weet te maken natuurlijk. O-)