Add-ons / Modifications / Hacks

Wie kann ich die Reihenfolge der Bilder beim Editieren ändern?

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);

zu
$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);


[nach oben]

Wie kann ich ein Menü erzeugen, welches auf der rechten Seite der Galerie angezeigt wird?

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
echo $template_footer;
soll werden
   $template_vars = array(
      '{MAIN_MENU}' => theme_main_menu(),
      '{ADMIN_MENU}' => theme_admin_mode_menu()
   );

   echo template_eval($template_footer, $template_vars);


[nach oben]

Wie kann ich einen Nutzer direkt in sein privates Album schicken, wenn er sich einloggt?

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']);


[nach oben]

Wie kann ich verhindern, dass unregistierte Benutzer die Galerie sehen?

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.

Wie kann ich den Namen des Uploaders mit der Bildinformation zusammen anzeigen?

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)


[nach oben]

Wie erlaube ich klickbare Links in benutzerdefinierten Feldern?

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).


[nach oben]

Wie kann ich die Thumbnails nach benutzerdefinierten Feldern sortieren?

  1. Editiere die /includes/functions.inc.php
    Ändere
    $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'
       );
    
  2. Editiere die /themes/yourtheme/theme.php


[nach oben]

Wie erlaube ich IPTC Unterstützung?

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...!


[nach oben]

Wie kann ich eine Ausgabe direkt vor die Zeile "Powered by Coppermine" einfügen?

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>';


[nach oben]

Häufig vorkommende PHP-Fehler und wie man sie los wird...

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:



[nach oben]

Kann ich die Datei template.html in template.php umbenennen damit ich PHP Code in mein Template einfügen kann?

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!


[nach oben]

Wie kann ich verhindern, dass Nutzer meine Bilder speichern (stehlen)?

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:



[nach oben]


 

Ich habe meinen eigenen Server am Laufen

Wie erlaube ich GD auf meinen Windows Server?

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


[nach oben]

Wie erlaube ich ImageMagick auf eminem Windows Server?

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.


[nach oben]


 

Coppermine Support Forum

Es gibt natürlich auch nicht so häufig gestellte Fragen im Coppermine Forum. Bevor Du dort (oder, eigentlich auch in einem anderen Forum) eine Frage stellst, lies Dir bitte Folgendes durch:

Ich kenne mich mit PHP/mySQL... nicht so aus...

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.

Selbiges gilt übrigens auch für die Beiträge im englischsprachigen Teil des Forums, auch dort muss man sich für sein English nicht schämen und es deshalb auch nicht extra erklären.


[nach oben]

Ich habe meine Farge schon vor einiger Zeit gestellt, aber niemand antwortet darauf. Was ist der Grund...?

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:



[nach oben]

Wie sollte ich meine Frage stellen?

Wenn Du eine Frage stellst, gib bitte auch alle nötigen Informationen dazu mit:



[nach oben]

Ich habe Probleme. Was sollte ich zuerst tun (bevor ich im Forum poste)?



[nach oben]

Hey, ich habe in Deinem Profil gesehen, dass Du ein Deutscher/Franzose/Wasauchimmer bist. Kann ich meine Frage in dieser Sprache stellen?

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


[nach oben]

Darf ich Dir oder einem anderen Supporter eine Email schreiben/eine persönliche Nachricht übers Forum (pm) schicken/oder Dich per im (Instant Messenger) kontaktieren um Support zu erhalten?

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.


[nach oben]

Wer seid Ihr eigentlich?

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...


[nach oben]


 
Diese FAQ ist in laufender Überarbeitung, Du darfst gern dazu beitragen im Coppermine Gallery Support Forum Bitte meldet alle Fehler, Schreibfehler, Übersetzungsfehler usw.
Überprüft die Online-Version dieses Dokuments wegen Updates!
Und nun viel Spaß!

GauGau (aka Joachim Mueller) - coppermine dev team



[nach oben]


SourceForge.net LogoPowered by Sourceforge.net