Änderungen an index.phpDie letzte Modifikation muss man an
index.php vornehmen:
Suche in der Funktion
list_albums die Zeile:
// Inserts a thumbnail if the album contains 1 or more images
und ersetze diese Zeile sowie den Rest bis zum Ende der Funktion mit diesem Code:
// Inserts a thumbnail if the album contains 1 or more images
$visibility = $alb_thumb['visibility'];
$onmouse="";
if (!in_array($aid,$FORBIDDEN_SET_DATA) || $CONFIG['allow_private_albums'] == 0) {
if ($count > 0) {
if ($alb_thumb['filename']) {
$picture = &$alb_thumb;
} else {
$sql = "SELECT filepath, filename, url_prefix, pwidth, pheight " . "FROM {$CONFIG['TABLE_PICTURES']} " . "WHERE pid='{$alb_stat['last_pid']}'";
$result = cpg_db_query($sql);
$picture = mysql_fetch_array($result);
mysql_free_result($result);
}
$pic_url = get_pic_url($picture, 'thumb');
if (!is_image($picture['filename'])) {
$image_info = getimagesize(urldecode($pic_url));
$picture['pwidth'] = $image_info[0];
$picture['pheight'] = $image_info[1];
}
$new_size = 120;
$srcWidth= $picture['pwidth'];
$srcHeight=$picture['pheight'];
$ratio = max($srcWidth, $srcHeight) / $new_size;
$ratio = max($ratio, 1.0);
$destWidth = (int)($srcWidth / $ratio);
$destHeight = (int)($srcHeight / $ratio);
$onmouse = "Tip('<div align=\\'center\\'><img src=\\'".$pic_url."\\' height=\\'".$destHeight."\\' width=\\'".$destWidth."\\'> </div>')";
$image_size = compute_img_size($picture['pwidth'], $picture['pheight'], $CONFIG['alb_list_thumb_size']);
$alb_list[$alb_idx]['thumb_pic'] = "<img src=\"" . $pic_url . "\" class=\"image\" {$image_size['geom']} border=\"0\" alt=\"{$picture['filename']}\" />";
} else { // Inserts an empty thumbnail if the album contains 0 images
// $image_size = compute_img_size(100, 75, $CONFIG['alb_list_thumb_size']);
$cpg_nopic_data = cpg_get_system_thumb('nopic.jpg', $alb_thumb['category']);
$alb_list[$alb_idx]['thumb_pic'] = '<img src="' . $cpg_nopic_data['thumb'] . '" ' . $cpg_nopic_data['whole'] . ' class="image" border="0" alt="" />';
}
} elseif ($CONFIG['show_private']) {
// $image_size = compute_img_size(100, 75, $CONFIG['alb_list_thumb_size']);
$cpg_privatepic_data = cpg_get_system_thumb('private.jpg', $alb_thumb['category']);
$alb_list[$alb_idx]['thumb_pic'] = '<img src="' . $cpg_privatepic_data['thumb'] . '" ' . $cpg_privatepic_data['whole'] . ' class="image" border="0" alt="" />';
}
// Prepare everything
if (!in_array($aid,$FORBIDDEN_SET_DATA) || $CONFIG['allow_private_albums'] == 0) {
$last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : '';
$link_pic_count = !empty($alb_stat['link_pic_count']) ? $alb_stat['link_pic_count'] : 0;
$alb_list[$alb_idx]['aid'] = $alb_thumb['aid'];
$alb_list[$alb_idx]['album_title'] = $alb_thumb['title'];
$alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']);
$alb_list[$alb_idx]['pic_count'] = $count;
$alb_list[$alb_idx]['last_upl'] = $last_upload_date;
$alb_list[$alb_idx]['link_pic_count'] = $link_pic_count;
$alb_list[$alb_idx]['onmouse'] = $onmouse;
$alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : "") . (($CONFIG['link_pic_count'] && $link_pic_count > 0 ) ? sprintf(", {$lang_list_albums['n_link_pictures']}, {$lang_list_albums['total_pictures']}", $link_pic_count, $count + $link_pic_count) : "");
$alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ' ';
} elseif ($CONFIG['show_private']) { // uncomment this else block to show private album description
$last_upload_date = $count ? localised_date($alb_stat['last_upload'], $lastup_date_fmt) : '';
$link_pic_count = !empty($alb_stat['link_pic_count']) ? $alb_stat['link_pic_count'] : 0;
$alb_list[$alb_idx]['aid'] = $alb_thumb['aid'];
$alb_list[$alb_idx]['album_title'] = $alb_thumb['title'];
$alb_list[$alb_idx]['album_desc'] = bb_decode($alb_thumb['description']);
$alb_list[$alb_idx]['pic_count'] = $count;
$alb_list[$alb_idx]['last_upl'] = $last_upload_date;
$alb_list[$alb_idx]['link_pic_count'] = $link_pic_count;
$alb_list[$alb_idx]['onmouse'] = $onmouse;
$alb_list[$alb_idx]['album_info'] = sprintf($lang_list_albums['n_pictures'], $count) . ($count ? sprintf($lang_list_albums['last_added'], $last_upload_date) : "") . (($CONFIG['link_pic_count'] && $link_pic_count > 0 ) ? sprintf(", {$lang_list_albums['n_link_pictures']}, {$lang_list_albums['total_pictures']}", $link_pic_count, $count + $link_pic_count) : "");
$alb_list[$alb_idx]['album_adm_menu'] = (GALLERY_ADMIN_MODE || (USER_ADMIN_MODE && $cat == USER_ID + FIRST_USER_CAT)) ? html_albummenu($alb_thumb['aid']) : ' ';
}
}
theme_display_album_list($alb_list, $nbAlb, $cat, $PAGE, $totalPages);
}
Anmerkung zur Konfiguration: Die Thumbnails werden auf der Startseite am Mauszeiger mit einer Größe von max. 120 Pixeln (Breite oder Höhe) angezeigt. Der Wert dafür wird in der Zeile
$new_size = 120;festgelegt.
Hey das wars, zwar nicht wenig aber jetzt nun auch nicht soviel an Arbeit, um diesen schönen Mod (ich weiß Geschmacksfrage) in die eigene Gallerie mit einzubauen. Zumal ich Euch die ganze Testerei damit schon abgenommen habe

.
Was brauche ich noch?Zunächst mal Euer Feedback. Ich bin mir fast sicher, ich habe noch nicht an alle Konstellationen gedacht, auch läßt sich die Funktion
theme_slideshow() sicher noch anpassen, damit auch die Diashows einen Mouseover-Effekt bekommen. Der fehlt nämlich noch. Anregungen hierzu sind willkommen, bevor ich mich selbst weiter damit abmühe.
Außerdem, wie ich schon eingangs erwähnte, hätte ich gern die zusätzlichen Informationen auf der
displayimage.php - Seite mit eingebaut, als da wären
- Name des Albums: (Albumname)
- Hinzugefügt am: (Datum des Bildes)
- Angezeigt: (x) mal
und wenn sie bewertet ist:
- derzeitige Bewertung : x/y mit z Stimme(n)
Im Code realisiert ist bisher:
- Dateiname: (Dateiname)
- Dateigröße: x kB
- Abmessungen: X x Y Pixel
Bisher habe ich noch nicht allzuviel Zeit investiert, um die Codestellen herauszufinden, die man in
theme_html_picture mit einbauen müsste, damit auch die anderen Infos dazukommen. Die entsprechende Zeile im Code ist oben auskommentiert:
// .$lang_display_thumbnails['date_added'].localised_date($CURRENT_PIC_DATA['ctime'], $album_date_fmt);In der Zeile davor gehört selbstverständlich das Semikolon entfernt, wenn man die Variable mit dem Bilddatum ermittelt hat.
Aber was red ich noch viel? Schaut es euch an, gebt Euren Senf dazu, und sagt mir, ob es so auch anwendbar in vielen anderen Gallerie-Umgebungen und -Konfigurationen ist. Verbessert meine Fehler, wenn denn noch welche da sind und gebt mir ein 'Go for an English translation', wenn's paßt.
Im Anhang dieses Beitrags wie gesagt findet man die Javascript Bibliothek sowie alle nötigen Programmcode-Funktionen die hier behandelt wurden.
cu,
rrwwxx
°¿°