Skip to content

CPG: FLV Videos in der Galerie

Im Zeitalter von YouTube und Co. reichen Bilder mitunter nicht mehr aus. Die große Masse schreit nach Videos und damit das auch in der hauseigenen Galerie möglich ist, habe ich mich mal auf die Suche begeben und bin im Coppermine Forum auch fündig geworden. Hier mal eine kleine Übersetzung des Artikels.

  • Filetype Editor Plugin von Nibler herunterladen und installieren

  • über den neuen Menüpunkt Filetypes einen neue Typ definieren

  • File extension: flv, MIME type: application/x-shockwave-flash, Content type: movie, Associated Player: Flash Player

  • Füge folgenden Code in deine themes/dein_theme/theme.php ein. Bitte darauf achten das dies eine Zeile vor dem schließenden PHP Tag (?>) passiert. Sollte die Funktion theme_html_picture() bereits vorhanden sein, gehe bitte nach dieser Anleitung vor und tausche die entsprechenden Codeschnipsel.

  • jetzt wird noch ein FLV Player benötigt, den man hier herunterladen kann

  • auspacken und die beiden Dateien (flvPlayer.swf und flashobject.js) in das Rootverzeichnis der Galerie kopieren

  • Fertig

CPG: Kalender Plugin

Wo ich gerade so schön bei Coppermine bin, möchte ich euch nicht vorenthalten, welch tolles Plugin (meine Bescheidene Meinung) ich vor ein paar Tagen entdeckt habe.

Dieses Plugin fügt einen neuen Menüpunkt namens Kalender hinzu und bietet die Möglichkeit seine Galerie nach dem Datum zu durchsuchen! Alle angemeldeten User auf wetterling.org können in der hauseigenen Galerie mal einen Blick drauf werfen! ;-)

CPG: Download kompletter Alben

Ich suche schon seit einiger Zeit nach DER Lösung, um den Usern ein Zip Download eines kompletten Albums anbieten zu können. Nach einer kleiner Unterhaltung (sehr einseitig) mit dem CPG Forum bin ich dann fündig geworden - hier das Ganze jetzt auf deutsch.

Zunächst einmal erstellt man eine Datei namens zip.php im Root Verzeichnis der Galerie mit folgendem Inhalt:
<?php
include "include/config.inc.php";

/ Write here the name of the folder  where the zip will be created /
$sFolderZip = "zipfiles/";

/ Connecting to the server /
$db = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass'])
   or die (mysql_error());

/ Selecting the database /
$db_check = @mysql_select_db($CONFIG['dbname']);

/ Retrieving pictures list /
$sql = 'SELECT FROM `'.$CONFIG['TABLE_PREFIX'].'pictures` where `aid` = ' . $aid;
$result = mysql_query($sql) OR die(mysql_error());
$bilder = "";
while ($row = mysql_fetch_assoc($result))
   $bilder .= "albums/" . $row['filepath'].$row['filename'].",";

/
Retrieving album name /
$sql = 'SELECT
FROM `'.$CONFIG['TABLE_PREFIX'].'albums` where `aid` = ' . $aid;
$result = mysql_query($sql) OR die(mysql_error());
$o_AlbumName = mysql_fetch_object($result);
$sDesiredZipName = urlencode($o_AlbumName->title);

/ Creating the zip file /
include_once('pclzip.lib.php');
$archive = new PclZip($sFolderZip.$sDesiredZipName . '.zip');
$v_list = $archive->create($bilder);
if ($v_list == 0)
        die("Error : ".$archive->errorInfo(true));

$file = $sFolderZip.$sDesiredZipName.".zip";
$filename = basename($file);
$size = filesize($file);
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".$filename);
header("Content-Length:".$size);
readfile($file);
?>
Anschließend lädt man sich die aktuelle PclZip library herunter und kopiert sie ebenfalls in das Root Verzeichnis seiner Galerie.

Wo wir gerade im Rootverzeichnis sind, schnell noch ein Ordner namens zipfiles angelegt und per chmod 777 die richtigen Rechte verpassen.

Als letzter Schritt muss jetzt nur noch das eigene Theme ein wenig angepasst werden. Öffne hierzu folgende Datei /Pfad_zu_Deiner_Galerie/themes/Dein_Theme/theme.php und füge vor dem abschließende PHP Tag - ?> diesen Code ein:
function theme_display_thumbnails(&$thumb_list, $nbThumb, $album_name, $aid, $cat, $page, $total_pages, $sort_options, $display_tabs, $mode = 'thumb')
{
    global $CONFIG;
    global $template_thumb_view_title_row,$template_fav_thumb_view_title_row, $lang_thumb_view, $template_tab_display, $template_thumbnail_view, $lang_album_list;

    static $header = '';
    static $thumb_cell = '';
    static $empty_cell = '';
    static $row_separator = '';
    static $footer = '';
    static $tabs = '';
    static $spacer = '';

    if ($header == '') {
        $thumb_cell = template_extract_block($template_thumbnail_view, 'thumb_cell');
        $tabs = template_extract_block($template_thumbnail_view, 'tabs');
        $header = template_extract_block($template_thumbnail_view, 'header');
        $empty_cell = template_extract_block($template_thumbnail_view, 'empty_cell');
        $row_separator = template_extract_block($template_thumbnail_view, 'row_separator');
        $footer = template_extract_block($template_thumbnail_view, 'footer');
        $spacer = template_extract_block($template_thumbnail_view, 'spacer');
    }

    $cat_link = is_numeric($aid) ? '' : '&amp;cat=' . $cat;
    $uid_link = (isset($_GET['uid']) && is_numeric($_GET['uid'])) ? '&amp;uid=' . $_GET['uid'] : '';

    $theme_thumb_tab_tmpl = $template_tab_display;

    if ($mode == 'thumb') {
        $theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => $aid == 'lastalb' ? $lang_album_list['album_on_page'] : $lang_thumb_view['pic_on_page']));
        $theme_thumb_tab_tmpl['inactive_tab'] = strtr($theme_thumb_tab_tmpl['inactive_tab'], array('{LINK}' => 'thumbnails.php?album=' . $aid . $cat_link . $uid_link . '&amp;page=%d'));
        $theme_thumb_tab_tmpl['inactive_next_tab'] = strtr($theme_thumb_tab_tmpl['inactive_next_tab'], array('{LINK}' => 'thumbnails.php?album=' . $aid . $cat_link . $uid_link . '&amp;page=%d'));
        $theme_thumb_tab_tmpl['inactive_prev_tab'] = strtr($theme_thumb_tab_tmpl['inactive_prev_tab'], array('{LINK}' => 'thumbnails.php?album=' . $aid . $cat_link . $uid_link . '&amp;page=%d'));
    } else {
        $theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => $lang_thumb_view['user_on_page']));
        $theme_thumb_tab_tmpl['inactive_tab'] = strtr($theme_thumb_tab_tmpl['inactive_tab'], array('{LINK}' => 'index.php?cat=' . $cat . '&amp;page=%d'));
        $theme_thumb_tab_tmpl['inactive_next_tab'] = strtr($theme_thumb_tab_tmpl['inactive_next_tab'], array('{LINK}' => 'index.php?cat=' . $cat . '&amp;page=%d'));
        $theme_thumb_tab_tmpl['inactive_prev_tab'] = strtr($theme_thumb_tab_tmpl['inactive_prev_tab'], array('{LINK}' => 'index.php?cat=' . $cat . '&amp;page=%d'));
    }

    $thumbcols = $CONFIG['thumbcols'];
    $cell_width = ceil(100 / $CONFIG['thumbcols']) . '%';

    $tabs_html = $display_tabs ? create_tabs($nbThumb, $page, $total_pages, $theme_thumb_tab_tmpl) : '';
    // 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'],
            '{TITLE}' => $lang_thumb_view['title'],
            '{DATE}' => $lang_thumb_view['date'],
            '{SORT_TA}' => $lang_thumb_view['sort_ta'],
            '{SORT_TD}' => $lang_thumb_view['sort_td'],
            '{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'],
            '{POSITION}' => $lang_thumb_view['position'],
            '{SORT_PA}' => $lang_thumb_view['sort_pa'],
            '{SORT_PD}' => $lang_thumb_view['sort_pd'],
            );
        // MOD - begin
        $param['{ALBUM_NAME}'] .= '&nbsp;<a href="zip.php?aid=' . $aid . '" title="Download album as *zip archive">[ Download Album ]</a>';
        // MOD - end
        $title = template_eval($template_thumb_view_title_row, $param);
    } else if ($aid == 'favpics' && $CONFIG['enable_zipdownload'] == 1) { //Lots of stuff can be added here later
       $param = array('{ALBUM_NAME}' => $album_name,
                             '{DOWNLOAD_ZIP}'=>$lang_thumb_view['download_zip']
                               );
       $title = template_eval($template_fav_thumb_view_title_row, $param);
    }else{
        $title = $album_name;
    }


    if ($mode == 'thumb') {
        starttable('100%', $title, $thumbcols);
    } else {
        starttable('100%');
    }

    echo $header;

    $i = 0;
    foreach($thumb_list as $thumb) {
        $i++;
        if ($mode == 'thumb') {
            if ($aid == 'lastalb') {
                $params = array('{CELL_WIDTH}' => $cell_width,
                    '{LINK_TGT}' => "thumbnails.php?album={$thumb['aid']}",
                    '{THUMB}' => $thumb['image'],
                    '{CAPTION}' => $thumb['caption'],
                    '{ADMIN_MENU}' => $thumb['admin_menu']
                    );
            } else {
                $params = array('{CELL_WIDTH}' => $cell_width,
                    '{LINK_TGT}' => "displayimage.php?album=$aid$cat_link&amp;pos={$thumb['pos']}$uid_link",
                    '{THUMB}' => $thumb['image'],
                    '{CAPTION}' => $thumb['caption'],
                    '{ADMIN_MENU}' => $thumb['admin_menu']
                    );
            }
        } else {
            $params = array('{CELL_WIDTH}' => $cell_width,
                '{LINK_TGT}' => "index.php?cat={$thumb['cat']}",
                '{THUMB}' => $thumb['image'],
                '{CAPTION}' => $thumb['caption'],
                '{ADMIN_MENU}' => ''
                );
        }
        echo template_eval($thumb_cell, $params);

        if ((($i % $thumbcols) == 0) && ($i < count($thumb_list))) {
            echo $row_separator;
        }
    }
    for (;($i % $thumbcols); $i++) {
        echo $empty_cell;
    }
    echo $footer;

    if ($display_tabs) {
        $params = array('{THUMB_COLS}' => $thumbcols,
            '{TABS}' => $tabs_html
            );
        echo template_eval($tabs, $params);
    }

    endtable();
    echo $spacer;
}

Fertig.

Coppermine - Neues Gesicht

Coppermine hat dazu aufgerufen ein neues Logo für die Galerie zu entwerfen und seit ein paar Tagen steht der Gewinner fest. Vermutlich ab Version 1.5 wird dieses Logo das neue Gesicht von Coppermine sein:
Super Arbeit wie ich finde! Aber nicht nur das Siegerlogo kann sich sehen lassen. Wer mal einen kleinen Blick zurückwerfen möchte, bitte hier klicken!

Coppermine: Schöne neue Plugin Welt (Teil 2)

Vor ein paar Monaten hatte ich mal damit angefangen einige Plugins der Coppermine Gallery vorzustellen. Seit dieser Zeit hat sich natürliches einiges getan - das schreit quasi nach einer Fortsetzung! ;-)

Easy RSS feed - Mit diesem Plugin kann man schnell und unkompliziert einen RSS Feed für die Galerie einbauen.

Update History - Wie der Name schon sagt, kann man mit diesem Plugin eine Update History auf der Startseite darstellen.

Contact Form - Hiermit wird der Galerie ein Kontaktformular hinzugefügt, welches per Captcha geschützt ist.

Login Info - Einfaches, aber doch sehr effektives Plugin - unter dem bereits existierenden Menü wird eine weitere Zeile angezeigt. Im Admin Modus findet man dann so brauchbare Links, wie Plugins verwalten, Logs anzeigen, Versions-Check oder Phpinfo anzeigen.

Coppermine: cpmFetch Beispiel 1

Nachdem ich vor geraumer Zeit mal erläutert habe wie cpmFetch für die Coppermine Gallery installiert wird, möchte ich heute mit einer kleinen Serie starten. Dabei soll es darum gehen anhand von ein paar Beispielen den Funktionsumfang von cpmFetch zu demonstrieren!

Zufallsbilder auf einer externen Seite darstellen:
<?php
  include "<Pfad_zu_cpmfetch>/cpmfetch.php";
  $objCpm = new cpm("<Pfad_zu_cpmfetch>/cpmfetch_config.php");
  $options = array("Subtitle" => "%a",
                   "tableStyle" => "random",);
  $objCpm->cpm_viewRandomMedia (1, 1, $options);
  $objCpm->cpm_close();
?>
Mit der Funktion options hat man die Möglichkeit einige Einstellungen bzw. CSS - Styles vorzunehmen! Eine genaue Übersicht findet ihr hier! Ausschlaggebend für die zufällig angezeigten Bilder, ist die Funktion cpm_viewRandomMedia. Hier hat man die Möglichkeit die Anzahl der Bilder pro Reihe und Spalte zu definieren!

Wie das Ganze aussieht kann man sich unter www.wetterling.org/frank/ anschauen!

Coppermine - Installation von cpmFetch

CpmFetch ist ein MOD für die Coppermine Gallery, der es erlaubt Coppermine Inhalte auf einer anderen Seite "außerhalb" der Galerie darzustellen.

Für die Installation lädt man sich zunächst die aktuellen Pakete herunter. Ich habe mich für das Development release entschieden, welches derzeit in der Version 1.9.12 vorliegt!

Also runterladen, auspacken und rauf auf den Webserver! Für Anfänger ist es möglicherweise einfacher, wenn der cpmFetch Ordner innerhalb der Galerie ist. Deswegen werde ich meine Anleitung auch daran ausrichten! Soll schließlich jeder etwas davon haben! :-)

Nachdem man nun alle Dateien hoch geladen hat, müssen noch die Rechte (chmod 666) für cpmfetch_config.php angepasst werden! Im Anschluss kann man die install.php (http://www.meindomain.de/pfad_zur_galerie/cpmfetch/install.php) aufrufen! Wenn ihr alles richtig gemacht habt, müsstet ihr jetzt 4 Beispielbilder aus eurer Galerie sehen! Damit ist die Installation erstmal abgeschlossen.

Weiterführende Links: Support Forum, Offizielle Seite

Anpassung des Submenüs

Hierbei geht es darum, bestimmte Links (Mein Profil, FAQ, Suche, etc.) des Submenüs von seiner Seite zu entfernen! Zunächst benötigt man 2 Funktionen (assemble_template_buttons, addbutton) aus der theme.php Datei, die unter [pfad_zu_deiner_gallery]/themes/sample/ zu finden sind. Diese 2 Funktionien kopiert man nach [pfad_zu_deiner_gallery]/themes/[dein_gewähltes_theme]/theme.php!

Hier der Code für CPG 1.4.10, als Textdatei zum praktischen Copy & Paste. Wichtig dabei ist, den Code nach der Zeile:
define('THEME_IS_XHTML10_TRANSITIONAL',1);
und vor dem abschließende PHP Tag
?>
einzufügen!

Soweit die bescheidene Vorbereitungsphase. ;-) Jetzt kann man sich daran machen, die ungewünschten Menüpunkte zu entfernen! Um beispielsweise die Suche in die ewigen Jagdgründe zu schicken, sucht man nach folgender Zeile in seiner theme.php (Zeile gekürzt):
addbutton($sub_menu_buttons,'{SEARCH_LNK}','{SEARCH_TITLE}','...);
Nun noch 2 auskommentierende
//
davor und fertig!

Alternativ dazu kann man auch auf das Final Extract Plugin von Paver zurückgreifen!

Registrierung - ausfüllen der Optional Felder erzwingen

Für die Registrierung in einer Coppermine Gallery wird derzeit nur Benutzername, Emailadresse und das Passwort verlangt. Allerdings finde ich dies relativ wenig Information für den Webmaster! Mit Hilfe eines kleinen Hack kann man dies auf die Optional Felder erweitern.

Öffne [Coppermine_Root_Directory]/register.php und suche folgenden Code (Zeile 222):
$profile1 = addslashes($_POST['user_profile1']);
$profile2 = addslashes($_POST['user_profile2']);
$profile3 = addslashes($_POST['user_profile3']);
$profile4 = addslashes($_POST['user_profile4']);
$profile5 = addslashes($_POST['user_profile5']);
$profile6 = addslashes($_POST['user_profile6']);

Um jetzt das ausfüllen eines Feldes (Beispiel - Feld 1) zu erzwingen, muss folgender Code eingefügt werden:
if (!$profile1) $error .= "<font color='red'>Sie m&uuml;ssen einen Wohnort angeben!<br /></font>";

Zusammen sieht das dann ungefähr so aus:
$profile1 = addslashes($_POST['user_profile1']);
if (!$profile1) $error .= "<font color='red'>Sie m&uuml;ssen einen Wohnort angeben!<br /></font>";
$profile2 = addslashes($_POST['user_profile2']);
$profile3 = addslashes($_POST['user_profile3']);
$profile4 = addslashes($_POST['user_profile4']);
$profile5 = addslashes($_POST['user_profile5']);
$profile6 = addslashes($_POST['user_profile6']);

Schöne neue Plugin Welt

Nach dem letzten Update auf die Version 1.4.9 habe ich mich seit langen mal wieder etwas ausführlich mit den Plugins von Coppermine beschäftigt. Scheinbar hätte ich es schon viel früher machen sollen, denn mittlerweile wurden richtigen kleine Schätze gecodet! :-)

Full-Size & Intermediate Photos Access Control - Hiermit ist es möglich den Zugriff auf Basis der Benutzergruppe für die Full-Size und Intermediate Bilder zu kontrollieren.

Captcha (Visual Confirmation) for adding comments
- Mit diesen Plugin kann man die Kommentarfunktion vor lästigen Spambots schützen.

Fullsize Access - Bei diesem Plugin handelt es sich um ein All-In-One Wunder. Neben einer Full-Size Bilder Beschränkung für registrierte Benutzer, bietet das Plugin ein Download Link für einzelnen Bilder und dem kompletten Album als Zip File! Aber damit noch nicht genug. Es besteht noch die Möglichkeit sowohl Admin (Downloadmail) als auch User (Dankesmail) per Email zu benachrichtigen!

User Online Today - Dieses Plugin zeigt an welche Benutzer am aktuellen Tag online waren!

"Who is online" plugin
- Die Idee für dieses Plugin kommt aus dem Forenbereich. Es wird ein Block mit Benutzerinformationen (Wie viele registrierte Benutzer, Wer ist gerade online, Letzter registrierte Benutzer, ...) angezeigt.

Anpassung der Seitenauswahl

Nach dem Update auf die aktuelle Version 1.4.9 erstreckt sich die Seitenauswahlleiste über die gesamte Breite. Eine kleine Anpassung in der Datei [Pfad zur Gallery]/include/themes.inc.php schafft abhilfe:

Suche nach:
// Template used for tabbed display
if (!isset($template_tab_display))  //{THEMES}
$template_tab_display = array('left_text' => '<td width="100%" align="left" valign="middle" class="tableh1_compact" style="white-space: nowrap"><b>{LEFT_TEXT}</b></td>' . "\n",
    'tab_header' => '',
    'tab_trailer' => '',
    'active_tab' => '<td><img src="images/spacer.gif" width="1" height="1" alt="" /></td>' . "\n" . '<td align="center" valign="middle" class="tableb_compact"><b>%d</b></td>',
    'inactive_tab' => '<td><img src="images/spacer.gif" width="1" height="1" alt="" /></td>' . "\n" . '<td align="center" valign="middle" class="navmenu"><a href="{LINK}"><b>%d</b></a></td>' . "\n",
    'inactive_prev_tab' => '<td><img src="images/spacer.gif" width="1" height="1" alt="" /></td>' . "\n" . '<td align="center" valign="middle" class="navmenu"><a href="{LINK}"><b>{PREV}</b></a></td>' . "\n",
    'inactive_next_tab' => '<td><img src="images/spacer.gif" width="1" height="1" alt="" /></td>' . "\n" . '<td align="center" valign="middle" class="navmenu"><a href="{LINK}"><b>{NEXT}</b></a></td>' . "\n",
);

und ersetzte es durch:
// Template used for tabbed display
$template_tab_display = array('left_text' => '<td width="100%%" align="left" valign="middle" class="tableh1_compact" style="white-space: nowrap"><b>{LEFT_TEXT}</b></td>' . "\n",
    'tab_header' => '',
    'tab_trailer' => '',
    'active_tab' => '<td><img src="images/spacer.gif" width="1" height="1" alt="" /></td>' . "\n" . '<td align="center" valign="middle" class="tableb_compact"><b>%d</b></td>',
    'inactive_tab' => '<td><img src="images/spacer.gif" width="1" height="1" alt="" /></td>' . "\n" . '<td align="center" valign="middle" class="navmenu"><a href="{LINK}"><b>%d</b></a></td>' . "\n",
    'inactive_prev_tab' => '<td><img src="images/spacer.gif" width="1" height="1" alt="" /></td>' . "\n" . '<td align="center" valign="middle" class="navmenu"><a href="{LINK}"><b>{PREV}</b></a></td>' . "\n",
    'inactive_next_tab' => '<td><img src="images/spacer.gif" width="1" height="1" alt="" /></td>' . "\n" . '<td align="center" valign="middle" class="navmenu"><a href="{LINK}"><b>{NEXT}</b></a></td>' . "\n",
);

Image Download Link für die Thumbnail Seite

Auf Wunsch eines Modembesitzers (und wir wissen alle wer gemeint ist :-P ), "durfte" ich mich mit dem Problem beschäftigen. ;-) Hier die Lösung:

Folgende Datei /include/functions.inc.php muss editiert werden, um diesen kleine Hack einzubauen. Such nach folgender Zeile:

function build_caption(&$rowset,$must_have=array())
{
    global $CONFIG, $THEME_DIR;
    global $album_date_fmt, $lastcom_date_fmt, $lastup_date_fmt, $lasthit_date_fmt, $cat;
    global $lang_get_pic_data, $lang_meta_album_names, $lang_errors;

    foreach ($rowset as $key => $row) {
        $caption='';
 

und füge anschließen folgenden Code ein:

//download link start
        $pic_url =  get_pic_url($row, 'thumb');
        $downloadfilename = str_replace("thumb_", "", $pic_url);
        $filesizecorr = $row['filesize'] >> 10 . $lang_byte_units[1];
        $caption .= "<span class=\"thumb_title\"><a href=\"download_images.php?getfile=$downloadfilename\">Download ($filesizecorr KB)</a></span>";
//download link end
 

Um diesen Hack zu verwenden, benötigt ihr ein File namens download_images.php im Root Directory der Gallery, wie hier beschrieben!

Update von 1.4.x auf die aktuelle Version

So wie bereits angekündigt, werde ich mal einen kurzen Überblick geben, was zu tun ist, wenn man die Gallery updaten möchte!

Zunächst einmal sollte man eine Sicherung der Datenbank anlegen! Entweder per Kommandozeile:
mysqldump -u<dbuser> -p dbname > /home/dump.sql

oder man verwendet ein MySQL Management Tool, wie zum Beispiel phpMyAdmin!

Weiterhin sollte man ein Sicherung der wichtigsten Dateien durchführen:

  • include/config.inc.php

  • anycontent.php

  • "albums" Verzeichnis

Jetzt kann man das runtergeladene Archiv auf dem Server entpacken! Soll heißen, alle existierenden Dateien sollen mit dem neuen Archiv überschrieben werden!

Nachdem alle Datei auf den Server kopiert wurden, ruft man www.meinegallery.de/update.php auf! Jetzt müssen eigentlich nur noch alle vorherigen Modifikationen wieder hergestellt werden!

Coppermine Photo Gallery 1.4.5

Seit heute Morgen gibt es die Coppermine Photo Gallery in einer neuen Version! Es handelt sich dabei um ein reines Bugfix Release. Der Update wird dringend empfohlen!

Die Gallery auf wetterling.org erstrahlt bereits in neuen Glanz! :-) In den kommenden Tagen werde ich mal ein kleines How-To zum Thema Gallery Update veröffentlichen!

Weitere Informationen:

Maintenance release cpg1.4.5 fixes directory traversal bug ("imei")

Probleme mit Sonderzeichen

Zunächst einmal benötigt man einen Editor mit den man Dateien konvertieren kann. Ich habe GVim (ftp://ftp.vim.org/pub/vim/pc) verwendet!

Das Language File (Pfad zu Deiner Gallery/lang/german.php) mit einem FTP Client runterladen! Anschließend im GVim öffnen und den Befehl ":set fileencoding=latin1" (ohne Anführungzeichen) absetzen. Abspeichern und wieder Hochladen! Fertig!