O.K.
Hier die beiden Funktionen wobei in der gallery Funktion die album Funktion aufgerufen wird...
Das ganze arbeitet mit der Slideshowpro Director PHP-API zusammen so daß hier einiges natürlich sehr Slideshowpro Director spezifisch ist.
<?php
/***
* Html für eine ganze Galerie erstellen
* dabei auf die Funktion 'album' zurückgreifen
*
* <?php gllery([gallery_id
) ?>
***/
function gallery( $gallery_id ) {
$director = new sspdc;
$gallery = $director->gallery->get( $gallery_id );
//echo '<h2 class="ssp-gallery-title">' . $gallery->name . '</h2>';
//echo '<p class="ssp-gallery-description>"' . $gallery->description . '</p>';
if( current_user_can('level_10')) {
echo ' x x x ';
}
// Das Array mit meinen Alben definiere
$meinealben = array();
foreach($gallery->albums->album as $album) {
// Die ID eines Albums als String und nicht als XML-Object auslesen
// damit wir mit dem String weitermachen können
$id = (string) $album->id ;
// String in mein neues Array packen
array_push($meinealben, $id);
}
// Doppelte Eintraege entfernen
$meinealben = array_unique($meinealben);
// Die einzelnen IDs der Alben in einer Foreach Schleife bearbeiten
foreach($meinealben as $album_id) {
album( $album_id, 100 );
}
}
?>
<?php
/***
* Html für ein angegebenes Album erstellen
*
*
* <?php album([alumb_id],[bildanzahl]) ?>
***/
function album( $album_id, $image_count ) {
$director = new sspdc;
$album = $director->album->get( $album_id );
$images = $album->contents[0];
$description = $album->description;
// Die Zeilenumbrueche in der Beschreibung der Director API Funktion
// in einzelne zeilen splitten
$intro = $director->utils->convert_line_breaks($album->description);
// Die Beschreibung mit dem eingefügten "[mehr]" in zwei Teile teilen
// und ein Array darauf formen $description[0] ist der 1. Teile
// $description[1] der zweite Teil
$description = split ("\[mehr\]", $description);
// Die Zeilenumbrueche in der Beschreibung der Director API Funktion
// in einzelne zeilen splitten
$intro = $director->utils->convert_line_breaks($description[0]);
$intro = str_replace( "<br>", "<br/>", $intro);
$beschreibung = $director->utils->convert_line_breaks($description[1]);
$beschreibung = str_replace( "<br>", "<br/>", $beschreibung);
$i = 0;
$html = '<div class="ssp-post">';
$html .= '<h3>'. $album->name . '</h3>';
$html .= '<div class="ssp-intro">'. $intro . '</div>';
if( current_user_can('level_10')) {
$html.= ' x x x '. memory_get_usage() .' Bytes</span></div>';
}
$html .= '<div class="ssp-thumbs-container">';
$html .= '<div class="ssp-thumbs">';
foreach( $images as $image ) {
if ($i < $image_count ) {
if ($director->utils->is_video($image->src)) {
// Mediabox Ansicht verwenden
$html .= '<a href="'. $image->original->url . '" rel="lightbox[ flash 550 410]" title="FLV player::Beispiel" class="ssp-video"><img src="/wp-content/themes/72quadrat_v4/img/ssp-platzhalter.gif" alt="link"/></a>';
} else {
// Standard Lightbox Ansicht verwenden
$html .= '<a href="'. $image->fullsize->url . '" rel="lightbox[galerie' . $album->name . $album_id . ']" title="'. $album->name . '::' . $image->title . '"><img src="' . $image->thumb->url . '" alt="' . $image->title . ", " . $image->caption . '" /></a>';
}
}
$i++;
}
$html .= '</div>';
$html .= '</div>';
$html .= '<div class="ssp-beschreibung">'. $beschreibung . '</div>';
$html .= '</div>';
// Leider gibt es bei den Alben offenbar teils UTF-8 encodete Inhalte
// und teilweise irgendwie anders ISO encodete Sachen.
// Durch die '0' oder '1' am Ende wird das unterschiedlich ausgegeben.
if (preg_match("/ä|ö|ü|Ä|Ö|Ü|ß/", $html)) {
//alles gut
echo $html;
} else {
//fchlcr
// Eine in ISO encodete Variante erstellen fuer Alben die falsch encoded sind
$utf8html = utf8_decode($html);
echo $utf8html;
}
}
?>