Hi!
Mit Dieser Modifikation ist es möglich mehrere Bilder gleichzeitig auf der Detail Seite darzustellen.
Beliebig viele Bilder können zu einer Gruppe zusammengefasst werden und auf der Detail Seite dargestellt werden.
Von der Gruppe kann eines oder beliebig viele Bilder auf der Kategorie Seite angezeigt werden.
Mit der Modifikation von @mawenzi:
http://www.4homepages.de/forum/index.php?topic=25017.msg137021#msg137021 ist es möglich die größe der Gruppen Bilder individuell anzupassen.
Demo More Pictures on Detail Pagesneu punkt 11.) Admin Plugin
CODE UPDATE 11.04.2011neu Member Addon
CODE UPDATE 13.04.2011 Step 3.2) 4.) 6.)Neu im code punkt
4.) könnt ihr einstellen wieviele Bilder in einer Reihe dargestellt werden sollen.
für eine Vertikale anzeige schreibt im Code ganz oben eine "1" hinnein.
1.) müßen 2 zusätzliche Datenbank Felder angelegt werden.
dazu könnt ihr euch das Plugin aus dem Anhang runterladen (install_group_images.zip), in eure Root Ordner hochladen und ausführen.
2.) sucht in der includes/db_definitions.php:
?>
und fügt davor ein:
//2######################################## Start MOD: More Pictures on Detail Page #################################################
$additional_image_fields['image_group_image'] = array($lang['image_group_image'], "text", 0);
$additional_image_fields['image_group'] = array($lang['image_group'], "text", 0);
//######################################## End MOD: More Pictures on Detail Page #################################################
3.)sucht in der lang/deutsch/main.php
$lang['allow_comments'] = "Kommentare erlauben:";
und fügt danach ein:
//3######################################## Start MOD: More Pictures on Detail Page #################################################
$lang['image_group'] = "Bild Gruppe:";
$lang['image_group_image'] = "Gruppen Bild:";
//######################################## End MOD: More Pictures on Detail Page #################################################
4.)sucht in der details.php
include(ROOT_PATH.'includes/page_header.php');
und fügt danach ein:
//4######################################## Start MOD: More Pictures on Detail Page #################################################
$image_cells = 6; // Anzahl der Bilder in einer Reihe
$sql = "SELECT image_id,image_group
FROM ".IMAGES_TABLE."
WHERE image_id = '$image_id' ";
$result = $site_db->query($sql);
$row = mysql_fetch_object($result);
$image_group = $row->image_group;
if($image_group >= 1){
$sql = "SELECT image_id, cat_id, image_name, image_active, image_media_file, image_thumb_file, image_group
FROM ".IMAGES_TABLE."
WHERE image_group = '$image_group' ";
$result = $site_db->query($sql);
$num_rows = $site_db->get_numrows($result);
//echo " Group ";
//echo $image_group;
$thumbnails = "<table style=\"border:1px solid #cccccc; \">\n";
$count = 0;
$bgcounter = 0;
while ($image_row = $site_db->fetch_array($result)){
if ($count == 0) {
$row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
$thumbnails .= "<tr style=\"margin:0px;\" >\n";
}
$thumbnails .= "<td style=\"padding:10px 10px;\">\n";
show_image($image_row);
$thumbnails .= $site_template->parse_template("group_thumbnail_bit");
$thumbnails .= "\n</td>\n";
$count++;
if ($count == $image_cells) {
$thumbnails .= "</tr>\n";
$count = 0;
}
}
if ($count > 0) {
$leftover = ($image_cells - $count);
if ($leftover >= 1) {
for ($f = 0; $f < $leftover; $f++) {
$thumbnails .= "<td >\n \n</td>\n";
}
$thumbnails .= "</tr>\n";
}
}
$thumbnails .= "</table>\n";
$site_template->register_vars("group_preview", $thumbnails);
}
unset($thumbnails);
//######################################## End MOD: More Pictures on Detail Page #################################################
5.) suche in der categories.php:
include(ROOT_PATH.'includes/paging.php');
füge darüber ein:
//5######################################## Start MOD: More Pictures on Detail Page #################################################
$sql = "SELECT COUNT('image_group') AS sum
FROM ".IMAGES_TABLE."
WHERE cat_id = '$cat_id' AND image_group_image <= 'image_group' AND image_group != 0";
$row = $site_db->query_firstrow($sql);
$num_rows_all = $num_rows_all - $row['sum'];
//######################################## End MOD: More Pictures on Detail Page #################################################
6.) suche in der categories.php
$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.", "user_name")."
FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
WHERE i.image_active = 1 AND i.cat_id = $cat_id AND c.cat_id = i.cat_id
ORDER BY ".$config['image_order']." ".$config['image_sort'].", i.image_id ".$config['image_sort']."
LIMIT $offset, $perpage ";
und ersetze es mit:
$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_allow_comments, i.image_comments, i.image_downloads, i.image_votes, i.image_rating, i.image_hits,i.image_group,i.image_group_image".$additional_sql.", c.cat_name".get_user_table_field(", u.", "user_name")."
FROM (".IMAGES_TABLE." i, ".CATEGORIES_TABLE." c)
LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
WHERE i.image_active = 1 AND i.cat_id = $cat_id AND c.cat_id = i.cat_id AND NOT i.image_group <> i.image_group_image
ORDER BY ".$config['image_order']." ".$config['image_sort'].", i.image_id ".$config['image_sort']."
LIMIT $offset, $perpage ";
schritt 7.) und 8.) sind optional wenn in der thumbnail vorschau, die gesamt anzahl der vorhandenen bilder angezeigt werden sollen.
7.) suche in der categories.php und search.php
$thumbnails .= "<tr class=\"imagerow".$row_bg_number."\">\n";
}
und füge darunter ein:
//7######################################## Start MOD: More Pictures on Detail Page #################################################
if ($image_row['image_group'] > 0 ){
$sum_image_group = $image_row['image_group'];
$sql = "SELECT COUNT('image_group') AS sum
FROM ".IMAGES_TABLE."
WHERE image_group = $sum_image_group";
$row = $site_db->query_firstrow($sql);
$sum_image_group = "<span style=\"color:red\">Gesamt:".$row['sum']." Bild(er) in Gruppe: ".$image_row['image_group']."</span>"."<br>";
}
else{
$sum_image_group = "";
}
$site_template->register_vars("sum_image_group", $sum_image_group);
//######################################## End MOD: More Pictures on Detail Page #################################################
8.) suche in templates/yourTemplates thumbnail_bit.html:
<a href="{cat_url}">{cat_name}{num_images}</a><br>
und füge darunter ein:
{sum_image_group}<br>
9.) Der folgende Schritt ist nur ein Vorschlag, einfügen könnt ihr {group_preview} natürlich wo ihr wollt.
suche in der details.html
<div >
{image}
{if admin_links}<br />
{admin_links}<br />
{endif admin_links}<br />
{lightbox_button} {postcard_button} {download_button} {download_zip_button}
</div>
<br />
und ersetze es mit:
<div style="float:left;">
{image}
{if admin_links}<br />
{admin_links}<br />
{endif admin_links}<br />
{lightbox_button} {postcard_button} {download_button} {download_zip_button}
</div>
<div style="float:right;">
{group_preview}
</div>
<br style="clear:both;"/>
10.)Erstellt eine neue Datei mit dem Namen "group_thumbnail_bit.html" und speichert sie in euren templates ordner mit folgenden Inhalt ab:
{thumbnail}<br />
11.) Admin Plugin
Neu Ladet euch die Datei "image_group.php" aus dem Anhang herrunter und speichert sie unter admin/plugins ab.
Im ACP unter Plugins könnt ihr jetzt die Bild Gruppen editieren.
Optional: Member Addon1.) müßen 2 zusätzliche Datenbank Felder angelegt werden.
dazu könnt ihr euch das Plugin aus dem Anhang runterladen (install_group_images_member.zip), in eure Root Ordner hochladen und ausführen.
2.) suche includes/db_field_definitions.php und füge ein:
$additional_user_fields['user_group'] = array($lang['user_group'], "text", 0);
$additional_user_fields['user_per_group'] = array($lang['user_per_group'], "text", 0);
3.) suche in root/member.php im Abschnitt: "if ($action == "updateimage")"
$sql = "SELECT image_id, cat_id, user_id, image_name
und ersetzte es mit:
//3######################################## Start [MOD] More Pictures on Detail Page ###############################################
// $sql = "SELECT image_id, cat_id, user_id, image_name
//######################################## End [MOD] More Pictures on Detail Page #################################################
$sql = "SELECT image_id, cat_id, user_id, image_name, image_group, image_group_image
3.1)suche:
if (isset($HTTP_POST_VARS['image_allow_comments']))
füge darüber ein:
//3.1######################################## Start [MOD] More Pictures on Detail Page ###############################################
$count_group_image = ($image_row['image_group'] != 0) ? $image_row['image_group'] : $HTTP_POST_VARS['image_group'];
$sql = "SELECT COUNT('image_group_image') AS count_group_image
FROM ".IMAGES_TABLE."
WHERE image_group = $count_group_image AND image_group_image > 0
";
$row_count_group_image = $site_db->query_firstrow($sql);
//######################################## End [MOD] More Pictures on Detail Page #################################################
3.2)suche 9 zeilen darunter:
$additional_sql .= ", $key = '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key]))."'";
füge darunter ein:
//3.2######################################## Start [MOD] More Pictures on Detail Page ###############################################
if($HTTP_POST_VARS['image_group_image'] >= 1 && $HTTP_POST_VARS['image_group'] == 0){
$additional_sql .= ", image_group_image = '0'";
}
if($HTTP_POST_VARS['image_group'] != 0 && $HTTP_POST_VARS['image_group_image'] == 0){
if(($row_count_group_image['count_group_image']) < 1 ){
$additional_sql .= ", image_group = '".$HTTP_POST_VARS['image_group']."'";
$additional_sql .= ", image_group_image = '".$HTTP_POST_VARS['image_group']."'";
}
else{
$additional_sql .= ", image_group = '".$HTTP_POST_VARS['image_group']."'";
$additional_sql .= ", image_group_image = '".$HTTP_POST_VARS['image_group_image']."'";
}
}
//######################################## End [MOD] More Pictures on Detail Page #################################################
4.) suche in root/member.php im Abschnitt: "if ($action == "editimage")"
$txt_clickstream .= $lang['image_edit'];
füge darunter ein:
//4######################################## Start [MOD] More Pictures on Detail Page #############################################
if ($user_info['user_group'] == 0 && $user_info['user_level'] != ADMIN) {
$image_group = "<select class=\"input\" name='image_group'><option value=''disabled=\"disabled\">".$lang['temporarily']."</option></select>\n";
$image_group_image_no = 1;
}
else{
$count = 0;
$image_group = "<select class=\"input\" name='image_group' >\n";
If($image_row['image_group'] == 0 ){
$image_group .= "<option value='".$image_row['image_group']."'>".$lang['no_group']."</option>\n";
}
else{
$image_group .= "<option value='".$image_row['image_group']."'>".$lang['group']."".$image_row['image_group']."</option>\n";
$image_group .= "<option value='0'> ".$lang['remove_group']."".$image_row['image_group']."</option>\n";
}
$sql = "SELECT DISTINCT(image_group), user_id
FROM ".IMAGES_TABLE."
WHERE user_id = ".$user_info['user_id']." AND image_group >0
ORDER BY image_group ASC
";
$row = $site_db->query_firstrow($sql);
$image_group .= (isset($row['image_group'])) ? "<optgroup label= \"".$lang['already']."\">" : "" ;
$result = $site_db->query($sql);
while($image_group_row = $site_db->fetch_array($result)){
if ($image_group_row['image_group'] > 0 ){
$sql = "SELECT COUNT('image_group') AS count_group
FROM ".IMAGES_TABLE."
WHERE image_group = ".$image_group_row['image_group']."
";
$row = $site_db->query_firstrow($sql);
}
if($row['count_group'] < $user_info['user_per_group']){
$image_group .= "<option value='".$image_group_row['image_group']."'>".$lang['group']."".$image_group_row['image_group']." ".$lang['image']."".$row['count_group']."</option>\n";
}
else{
$image_group .= "<option value='".$image_row['image_group']."' disabled=\"disabled\">".$lang['group']."".$image_group_row['image_group']." ".$lang['max_obtained']."</option>\n";
}
$count++;
} //while
$image_group .= (isset($row['image_group'])) ? "</optgroup>\n" : "" ;
if ($count < $user_info['user_group']){
$sql = "SELECT DISTINCT(image_group)
FROM ".IMAGES_TABLE."
ORDER BY image_group ASC
";
$result = $site_db->query($sql);
$gesamt= 0;
while($min_group_row = $site_db->fetch_array($result)){
$min_group[] = $min_group_row['image_group'];
$gesamt++;
}
$image_group .= "<optgroup label= \"".$lang['new_group']."\">\n";
$zahl =0;
foreach($min_group as $group_key => $group_value){
if($group_key != $group_value){
$image_group .= "<option value= '".$group_key."'>".$lang['group']."".$group_key."</option>\n";
$zahl++; //test
if($zahl == 1){
break;
}
}
}
if($group_key == $group_value){
$image_group .= "<option value= '".$gesamt."'>".$lang['group']."".$gesamt."</option>\n";
}
}
$image_group .= "</optgroup>\n";
$image_group .= "</select>\n";
$image_group_image_yes = (isset($HTTP_POST_VARS['image_group_image'])) ? intval($HTTP_POST_VARS['image_group_image']) : $image_row['image_group_image'];
}
$site_template->register_vars(array(
"image_group" => $group_key,
"lang_max_obtained" => $lang['max_obtained'],
"lang_image" => $lang['image'],
"lang_already" => $lang['already'],
"lang_remove_group" => $lang['remove_group'],
"lang_new_group" => $lang['new_group'],
"lang_group" => $lang['group'],
"lang_no_group" => $lang['no_group'],
"lang_temporarily" => $lang['temporarily'],
"image_group_image_no" => ($image_group_image_no == 1) ? " disabled=\"disabled\"" : "",
"image_group_image_yes" => ($image_group_image_yes > 0) ? " checked=\"checked\"" : "",
"member_image_group" => $image_group,
));
//######################################## END [MOD] More Pictures on Detail Page #################################################
5.) suche in lang/deutsch main.php:
$lang['allow_comments'] = "Kommentare erlauben:";
füge darunter ein:
//5######################################## Start [MOD] More Pictures on Detail Page ###############################################
$lang['max_obtained'] = " Max. Bildanzahl erreicht !";
$lang['image'] = "Bilder: ";
$lang['already'] = "Bereits vorhanden: ";
$lang['remove_group'] = "Entfernen aus Gruppe: ";
$lang['new_group'] = "Neue Gruppe: ";
$lang['group'] = "Gruppe: ";
$lang['no_group'] = "Keine Gruppe";
$lang['temporarily'] = "Zur Zeit nicht Verfügbar !";
$lang['image_group'] = "Bild Gruppe:";
$lang['image_group_image'] = "Gruppen Bild:";
$lang['user_group'] = "Wieviele Bild Gruppen Max.:";
$lang['user_per_group'] = "Wieviele Bilder pro Gruppe:";
//######################################## End [MOD] More Pictures on Detail Page #################################################
optional: lang/english main.php:
//5######################################## Start [MOD] More Pictures on Detail Page ###############################################
$lang['max_obtained'] = "Max.Number of Images Obtained !";
$lang['image'] = "Image: ";
$lang['already'] = "Already Available: ";
$lang['remove_group'] = "Remove from Group: ";
$lang['new_group'] = "New Group: ";
$lang['group'] = "Group: ";
$lang['no_group'] = "No Group";
$lang['temporarily'] = "Temporarily not Available !";
$lang['image_group'] = "Image Group: ";
$lang['image_group_image'] = "Group Image: ";
$lang['user_group'] = "How many Group max.: ";
$lang['user_per_group'] = "How many Images per Group: ";
//######################################## End [MOD] More Pictures on Detail Page #################################################
6.) suche in templates/yourTemplates member_editimages.html:
<tr>
<td class="row2"><b>{lang_image_name}</b></td>
<td class="row2">
<input type="text" name="image_name" size="30" value="{image_name}" class="input" />
</td>
</tr>
füge darunter ein:
<tr>
<td class="row1"><b>{lang_image_group}</b></td>
<td class="row1">
{member_image_group}
</td>
</tr>
<tr>
<td class="row2"><b>{lang_image_group_image}</b></td>
<td class="row2">
<input type="checkbox" name="image_group_image" value="{image_group}" {image_group_image_yes}{image_group_image_no}>
{lang_yes}
</td>
</tr>
Im ACP unter User Verwalten edit/user, könnt ihr einstellen wieviele Gruppen und wieviele Bilder in der Gruppen ein User anlegen darf.
mfg Andi
79