Von Haus aus werden die Bilder in alphabetischer Reihenfolge angezeigt, wenn Du sie editierst. Um die Sortierreihenfolge zu ändern "nach Datum", editiere die Datei editpics.php und ändere
$sql = "SELECT p.*,a.category FROM {$CONFIG['TABLE_PICTURES']} as p ".
"INNER JOIN {$CONFIG['TABLE_ALBUMS']} as a ".
"ON a.aid=p.aid ".
"WHERE p.aid = '$album_id' ".
"ORDER BY p.filename LIMIT $start, $count";
$result = cpg_db_query($sql);$sql = "SELECT p.*,a.category FROM {$CONFIG['TABLE_PICTURES']} as p ".
"INNER JOIN {$CONFIG['TABLE_ALBUMS']} as a ".
"ON a.aid=p.aid ".
"WHERE p.aid = '$album_id' ".
"ORDER BY pid LIMIT $start, $count";
$result = cpg_db_query($sql);Wenn die template.html gelesen wird, gibt es 2 Sachen. Das was vor dem {GALLERY} tag ist, wird von der pageheader Funktion ausgegeben, und das danach, von der pagefooter Funktion.
Wenn Dein Menü im "footer" ist, musst Du Deine theme.php Datei ändern
$template_vars = array(
'{LANG_DIR}' => $lang_text_dir,
'{TITLE}' => $CONFIG['gallery_name'].' - '.$section,
'{CHARSET}' => $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'],
'{META}' => $meta,
'{GAL_NAME}' => $CONFIG['gallery_name'],
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
'{MAIN_MENU}' => theme_main_menu(),
'{ADMIN_MENU}' => theme_admin_mode_menu()
);
echo template_eval($template_header, $template_vars);
soll werden
$template_vars = array(
'{LANG_DIR}' => $lang_text_dir,
'{TITLE}' => $CONFIG['gallery_name'].' - '.$section,
'{CHARSET}' => $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'],
'{META}' => $meta,
'{GAL_NAME}' => $CONFIG['gallery_name'],
'{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
);
echo template_eval($template_header, $template_vars);
und $template_vars = array(
'{MAIN_MENU}' => theme_main_menu(),
'{ADMIN_MENU}' => theme_admin_mode_menu()
);
echo template_eval($template_footer, $template_vars);
Editiere die
login.php
und suche nach
pageheader($lang_login_php['login'],"<META http-equiv=\"refresh\" content=\"3;url=$referer\">");
und füge davor Folgendes ein
$referer = 'index.php?cat='.(FIRST_USER_CAT+$USER_DATA['user_id']);
In der Konfiguration, wenn "Nicht-angemeldeten Besuchern (Gäste) Zugriff erlauben" auf "Nein" gesetzt ist, dann können nicht eingeloggte Nutzer oder Gäste nicht auf die Galerie zugreifen - außer auf die Login-Seite (und die Registrierungseite, wenn Du Registrierungen erlaubst). Komplettes Deaktivieren des anonymen Zugriffs wird wahrscheinlich die Beliebtheit Deiner Seite schmälern. Nutze diese Option nur, wenn Du eine absolut private Galerie brauchst. Der empfohlene Weg ist den anonymen Zugriff zu gestatten und die viel spezifischeren Gruppen- und Albenberechtigungen zu nutzen stattdessen.
Warnung: Dies ist ein ziemlich komplizierter Hack für einen Neuling! Prüfe ob Du auch wirklich Deine Original-Dateien gesichert hast bevor Du diesen durchführst.
Editiere die displayimage.php und suche nach:
$info[$lang_picinfo['Filename']] = htmlspecialchars($CURRENT_PIC_DATA['filename']);
füge danach hinzu:
$info[$lang_picinfo['Username']] = htmlspecialchars($CURRENT_PIC_DATA['user_name']);.
Dann öffne die /include/functions.inc.php und suche nach Folgendem in der Funktion get_pic_data():
if($select_columns != '*') $select_columns .= ', title, caption';
und ersetze es mit:
if($select_columns != '*') $select_columns .= ', title, caption, user_name';.
Danach suche nach:
$result = cpg_db_query("SELECT $select_columns from {$CONFIG['TABLE_PICTURES']} WHERE aid='$album' $approved $ALBUM_SET ORDER BY $sort_order $limit");
und ersetze es mit:
$result = cpg_db_query("SELECT $select_columns from {$CONFIG['TABLE_PICTURES']} AS p LEFT JOIN {$CONFIG['TABLE_USERS']} AS u ON u.user_id = p.owner_id WHERE p.aid='$album' $approved $ALBUM_SET ORDER BY $sort_order $limit");
Dann musst du den language string für den Nutzername hinzufügen. Öffne die /lang/yourlang.php und suche nach:
$lang_picinfo = array(
und füge danach hinzu:
'Username' => 'Nutzername',
Außerdem musst Du diese Abfrage in MySQL druchführen (mit einem Tool wie phpMyAdmin):
ALTER TABLE `cpg11d_pictures` ADD INDEX ( `owner_id` );
(Achtung: Wenn Dein Datenbank-Tabellen_Prefix nicht "cpg11d_" ist, dann musst Du diese Abfrage vorher entsprechend anpassen)
Editiere die displayimage.php und ändere
$info[$CONFIG['user_field'.$i.'_name']] = make_clickable($CURRENT_PIC_DATA['user'.$i]);
zu
$info[$CONFIG['user_field'.$i.'_name']] = bb_decode($CURRENT_PIC_DATA['user'.$i]);
Dies erlaubt Dir BBCodes in den benutzerdefinierten Feldern zu benutzen: Du kannst dann dort etwas einfügen, wie das hier
[url]http://www.somesite.com/foo/bar.php?whatever=42[/url]
oder
[url=http://www.somesite.com/foo/bar.php?whatever=42]link to some site![/url]
(die Darstellung davon muss aber in der Konfiguration auch erlaubt sein).
$sort_array = array('na' => 'filename ASC', 'nd' => 'filename DESC', 'da' => 'pid ASC', 'dd' => 'pid DESC');
zu $sort_array = array(
'na' => 'filename ASC',
'nd' => 'filename DESC',
'da' => 'pid ASC',
'dd' => 'pid DESC',
'f1a' => 'user1 ASC',
'f1d' => 'user1 DESC',
'f2a' => 'user2 ASC',
'f2d' => 'user2 DESC',
'f3a' => 'user3 ASC',
'f3d' => 'user3 DESC',
'f4a' => 'user1 ASC',
'f4d' => 'user1 DESC'
);
// The sort order options are not available for meta albums
if ($sort_options){
$param = array(
'{ALBUM_NAME}' => $album_name,
'{AID}' => $aid,
'{PAGE}' => $page,
'{NAME}' => $lang_thumb_view['name'],
'{DATE}' => $lang_thumb_view['date'],
'{SORT_NA}' => $lang_thumb_view['sort_na'],
'{SORT_ND}' => $lang_thumb_view['sort_nd'],
'{SORT_DA}' => $lang_thumb_view['sort_da'],
'{SORT_DD}' => $lang_thumb_view['sort_dd'],
);
// The sort order options are not available for meta albums
if ($sort_options){
$param = array(
'{ALBUM_NAME}' => $album_name,
'{AID}' => $aid,
'{PAGE}' => $page,
'{NAME}' => $lang_thumb_view['name'],
'{DATE}' => $lang_thumb_view['date'],
'{SORT_NA}' => $lang_thumb_view['sort_na'],
'{SORT_ND}' => $lang_thumb_view['sort_nd'],
'{SORT_DA}' => $lang_thumb_view['sort_da'],
'{SORT_DD}' => $lang_thumb_view['sort_dd'],
// Exxodus Sorting
'{FIELD1}' => $CONFIG['user_field1_name'],
'{FIELD2}' => $CONFIG['user_field2_name'],
'{FIELD3}' => $CONFIG['user_field3_name'],
'{FIELD4}' => $CONFIG['user_field4_name'],
// Exxodus Sorting
);
// HTML template for title row of the thumbnail view (album title + sort options)
// Exxodus (Adding Sorting by UserField)
$template_thumb_view_title_row = <<<EOT
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" class="statlink"><h2>{ALBUM_NAME}</h2></td>
<td><img src="images/spacer.gif" width="1"></td>
<td class="sortorder_cell">
<table height="100%" cellpadding="0" cellspacing="0">
<tr>
<td class="sortorder_options">{NAME}</td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=na" title="{SORT_NA}">&+&</a>/</span></td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=nd" title="{SORT_ND}">&-&</a></span></td>
</tr>
<tr>
<td class="sortorder_options">{DATE}</td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=da" title="{SORT_DA}">&+&</a>/</span></td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=dd" title="{SORT_DD}">&-&</a></span></td>
</tr>
</table>
</td>
<td><img src="images/spacer.gif" width="10"></td>
<td class="sortorder_cell">
<table height="100%" cellpadding="0" cellspacing="0">
<tr>
<td class="sortorder_options">{FIELD1}</td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=f1a">&+&</a>/</span></td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=f1d">&-&</a></span></td>
</tr>
<tr>
<td class="sortorder_options">{FIELD2}</td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=f2a">&+&</a>/</span></td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=f2d">&-&</a></span></td>
</tr>
</table>
</td>
<td><img src="images/spacer.gif" width="10"></td>
<td class="sortorder_cell">
<table height="100%" cellpadding="0" cellspacing="0">
<tr>
<td class="sortorder_options">{FIELD3}</td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=f3a">&+&</a>/</span></td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=f3d">&-&</a></span></td>
</tr>
<tr>
<td class="sortorder_options">{FIELD4}</td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=f4a">&+&</a>/</span></td>
<td class="sortorder_options"><span class="statlink">
<a href="thumbnails.php?album={AID}&page={PAGE}&sort=f4d">&-&</a></span></td>
</tr>
</table>
</td>
</tr>
</table>
EOT;
Editiere /includes/picmgmt.inc.php und suche nach
$imagesize = getimagesize($image);
ersetze es mit:
$imagesize = getimagesize($image,&$info);
$iptc = iptcparse($info["APP13"]);
if (is_array($iptc)) {
$caption.=$iptc['2#120'][0];
$title.=$iptc['2#105'][0];
(is_array($iptc['2#025'])) && ($keywords.=implode(" ", $iptc['2#025']));
}
Achtung: Dieser Hack ist nicht gründlich genug getestet, nutze ihn auf Dein eigenes Riskio...!Editiere die /themes/yourtheme/theme.php, suche nach echo $template_footer und füge das hinzu was Du ausgeben willst vor der Zeile, wie print '<span class="footer"><a href="http://www.mylink.com/foo.htm">My Link</a></span>';
Es gibt eine Menge Leute (speziell PHP Neulinge), welche Fragen stellen, wie diese hier: Ich bekomme den Fehler "Parse error: parse error in XXX" und weiß nicht was es bedeutet. Das ist der Grund, warum ich diese Liste der häufigen Fehler (und eine Lösung dazu) vom deutschen Artikel in Dr. Webhier hinzugefügt habe:
Nein, das ist einfach nicht der Weg wie Coppermine arbeitet; für "normale" Seiten verrät die Extension dem Webserver, ob die Datei vom PHP Interpreter geparsed werden soll. Die Template-Dateien im themes Ordner werden nicht über diesen Weg geparsed - Die Extension .html wurde nur gewählt um das Editieren leichter zu machen. Du kannst keinen PHP code in der template-Datei haben, egal wie Du sie bennenst - das ist alles nur ein Trick!
Du kannst es nicht wirklich - das liegt daran wie das www arbeitet: Wenn ein Bild im Browser dargestellt wird, dann hat der Nutzer bereits eine Kopie davon auf seiner Festplatte. Es gibt also nur einige Methoden es für einen Neuling etwas schwerer zu machen:
GD 1.x 2.x sind normalerweise ein Teil von allen Standard PHP Distributionen unter Windows.
Um zu überprüfen ob Du es hast, gehe in das Verzeichnis in dem Du PHP installiert hast, gehe in das "extensions" Unterverzeichnis und schaue nach ob Du eine Datei "php_gd2.dll" hast.
Eventuell musst Du weiterhin deine php.ini editieren (normalerweise im Windows Ordner zu finden) und dort das ";" vom Anfang der Zeile weglöschen: extension=php_gd2.dll (ungefähr am Ende der Datei). Dies wird PHP anweisen die GD2 Extension zu laden.
Vergiss nicht, immer wenn Du die php.ini änderst, musst Du Deinen Webserver neu starten bevor die Änderungen wirksam werden.
ImageMagick ist hingegen weitaus schwieriger zu Benutzen unter Windows
Greg
ImageMagick ist viel schwieriger als GD einzurichten auf einem Windowsserver. Da müssen sehr viele Sachen in Betracht gezogen werden. Das Coppermine Support Forum ist nicht der richtige Platz dafür um dort nach Unterstützung zu fragen zu diesem Thema, da es sich nur mit Coppermine beschäftigt, nicht mit "Wie richte ich meinen Server ein?" (die meisten Leute im Coppermine Forum haben keinen eigenen Server am Laufen, sondern sie haben irgendwo Webspace bei einem Webhoster). Stattdessen solltest Du versuchen im Internet andere Support Foren zu finden, welche sich mit diesem speziellen Thema befassen.
Kein Problem, jeder beginnt als Anfänger. Aber bitte startet nicht jedes Posting mit "Ich bin ein Anfänger", "Ich weiß nichts über PHP" usw.
Meistens kann man das auch aus der Art der eigentlichen Frage erkennen. Es gibt keinen Grund sich dafür extra noch zu entschuldigen. Die Meisten von uns können Sich noch daran erinnern, wie es bei Ihnen damals war, als sie anfingen.
Als Erstes, das Support Forum ist keine Hotline. Obwohl es viele Besucher im Forum gibt, leisten nur weinige davon Support - und diesen auch auf unbezahlter freiwilliger Basis. Ja wir erhalten keinerlei Bezahlung für die Hilfestellung, welche wir geben und wir alle haben ein Leben, einen Job, eine Familie und mehr. Wir sind auch manchmal einfach nicht da. So, bitte seid geduldig, lest die Dokumentationen und durchsucht das Forum während Ihr wartet.
Wenn Du keine Antwort auf Deine Frage erhältst:
Wenn Du eine Frage stellst, gib bitte auch alle nötigen Informationen dazu mit:
Wenn Du im englischem SupportForum schreibst, so bitte schreib nicht in irgendeiner anderen Sprache - dadurch profitieren auch Andere von Deiner Frage (und den Antworten, die Du erhältst). Hab keine Angst in einfachem Englsich zu schreiben, - niemand wird über Dich lachen - und bei den meisten Besuchern ist Englisch nicht die Muttersprache! Es gibt ein deutsches Support Forum verfügbar unter http://coppermine-gallery.net/forum/index.php?board=67.0Benutze dieses, wenn es für Dich einfacher ist auf Deutsch zu schreiben oder wenn Du nicht in der Lage bist in English zu schreiben!
Eine Übersicht über die language-specific support boards findest Du hier
Definitiv NEIN - Das darfst Du nicht! Stelle deine Frage öffentlich im Coppermine Support Forum - wenn wir (die Community) keine Lösung finden und wenn Ich Zeit habe und Ich dazu Lust habe, dann werde Ich Dir eine Email/PM/IM schreiben, niemals umgekehrt! Schreibe nie jemand unaufgefordert eine Email/PM/IM. Sollten zusätzliche Informationen benötigt werden, um Dir zu helfen, zum Beispiel administrative Zugangsdaten, dann wird der SupporterDich auffordern Ihm diese per Email/PM/IM zu schicken und dann und auch nur dann, darfst Du Ihn auf diesen Weg kontaktieren.
Wir sind eine Gruppe von Leuten, welche sich entschieden haben ein Team zu bilden, um Coppermine weiter zu entwickeln - Schaue auf die Team Webseite, wenn Du mehr Details wissen willst...