Seiten: neuer Status | Dateien umziehen | SQL anpassen | Plugin zum Einlesen | alte Shortcodes ändern


Die Ruhr bei Kettwig

Die Ruhr bei Kettwig

Nach dem das MyGallery-Plugin ja schon seit ewiger Zeit zunehmend schlechter mit den neueren WordPress-Versionen funktioniert und der Autor die Probleme nicht abschafft, habe ich jetzt ein deutlich größeres Problem. Das Plugin MyGallery läuft mit der neuen php Version 5.3 überhaupt nicht mehr und das ganze Blog gibt nur noch einen 500-Status und einer leeren Seite aus. :evil: Übergangsweise konnte ich ja noch kurz auf php-5.2 downgeaden :( , aber auf Dauer ist das selbstverständlich kein Zustand. Also habe ich mich, wie schon angekündigt, jetzt doch mal etwas intensiver auf dem WordPress-Plugin-“Markt” umgesehen. Ich suchte ja (am liebsten) ein Plugin das die vorhandene WordPress-Mediathek benutzt und “erweitert”. Ich möchte weiterhin meine Fotos per “rsync” auf den Webserver schieben können und diese Fotos möchte ich dann per Knopfdruck in besagte Mediathek “importieren”. So schwierig war es dann doch nicht, ein passendes Plugin zu finden, – nur auf den Plugin-Seiten hätte ich nicht suchen sollen. Als ich dann doch mal Mister Google bemühte, war mein erster Klick ein Treffer! :-) : WordPress Mediathek nach FTP-Upload aktualisieren Das war genau das, was ich gesucht hatte… Okay ein klein wenig musste ich daran noch ändern, aber jetzt ist es richtig gut. :-)

RuhrtalbrückeAls nächstes brauche ich dann also wieder eine Lightbox-Funktion. Das erste Plugin Lightbox 2 tat es auch gleich ganz gut. :-) Hätte ich gar nicht gedacht, dass das so leicht geht – und auch das (noch vorhandene) myGallery-Plugin hat damit kein Problem. :-)

Dann kann es ja losgehen. Alle neuen, zukünftigen Bilder/Fotos werden ich nun also in die Mediathek stecken… Heute stand aber erst mal an, die bisherigen Fotos und so weiter in den Mediathek-Uploadbereich einzulesen. Erstmal habe ich also alle Files aus dem myGallery-Verzeichnis in den upload-Bereich kopiert. Dazu habe ich mir einen kleinen Script gebastelt. Als die Dateien dann im upload-Bereich lagen, brauchte ich “nur” noch alle Dateien mit dem Add-From-Server-Plugin in die Datenbank einlesen. Da man das auch mit dem schönen Plugin immer nur Verzeichnis-weise machen konnte, dauerte dieses Einlesen auch schon einige Zeit. Aktueller Zwischenstand: Bilder (9,189) | Videos (3) Da kommt was zusammen…
Nun muss ich mir “nur” noch etwas überlegen, wie ich die Bilderbeschreibungen aus der einen Datenbank in die andere übertrage. Als kleinen Anfang habe ich schon mal für bestimmte Verzeichnisse die Beschreibung angepasst. Hier mal ein Beispiel:

# diff -u add-from-server.php.org add-from-server.php
--- add-from-server.php.org     2009-10-24 05:07:20.000000000 +0200
+++ add-from-server.php 2010-06-29 23:59:39.000000000 +0200
@@ -249,7 +249,8 @@
 
        //Create the content for the page
        function main_content() {
-               global $pagenow;
+               /* global $pagenow;   //UP Erweitert */
+               global $pagenow, $wpdb, $table_prefix; //UP
                $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
                $import_to_gallery = !( isset($_POST['no-gallery']) && 'on' == $_POST['no-gallery'] );
 
@@ -368,6 +369,30 @@
                        foreach( (array)$files as $file  ) :
                                $filename = preg_replace('!^' . preg_quote($cwd) . '!', '', $file);
                                $filename = ltrim($filename, '/');
+                                /* UP */
+/*
+                                if ( preg_match('/-150x/', $filename)) continue;
+                                if ( preg_match('/x150\./', $filename)) continue;
+                                if ( preg_match('/-300x/', $filename)) continue;
+                                if ( preg_match('/x300\./', $filename)) continue;
+                                if ( preg_match('/-700x/', $filename)) continue;
+                                if ( preg_match('/x700\./', $filename)) continue;
+*/
+                                $file2 = preg_replace( '/^.*uploads\//', '', $file );
+                                /* wandelt Thumbnail-Filename in den Filename des 'Originals' um:
+                                      2010/06/dsc67271-150x100.jpg -> 2010/06/dsc67271.jpg
+                                     2010/06/dsc67271-300x201.jpg -> 2010/06/dsc67271.jpg  */
+                                $file3 = preg_replace('/-[0-9][0-9]+x[0-9][0-9]+(\.)/', '${1}', ${file2});
+                                //SELECT post_id FROM ch_postmeta WHERE meta_key = "_wp_attached_file" AND meta_value = "StPankratiusAllg/dsc25718_HDRgimp.jpg";
+                                $ats_SELECT = "SELECT post_id FROM " . $table_prefix . "postmeta 
+                                                 WHERE meta_key = '_wp_attached_file' AND
+                                                       (
+                                                         meta_value = '" . $file2 . "' OR 
+                                                         meta_value = '" . $file3 . "' 
+                                                       ) ;";
+                                $ats_ROWS = $wpdb->get_results($ats_SELECT);
+                                if ( $ats_ROWS != null ) continue;
+                                /* /UP */
                                $sanname = preg_replace('![^a-zA-Z0-9]!', '', $filename);
                ?>
                        <tr>

Aber man kann ja auch auf die Daten zurückgreifen, die sich schon in myGallery angesammelt wurden. Das machte ich diesmal mit phpmyadmin, s. dieser Script. Als nächstes habe ich dann noch eine Funktion geschrieben, die die vorhandenen MyGallery-ShortCodes nutzt, um die Fotos wie gewohnt darzustellen. Allerdings werde ich nach und nach die alten MyGallery-ShortCodes gegen die WordPress-Mediathek-Links tauschen, auch wenn mir persönlich die Idee hinter den ShortCodes deutlich – mit weitem Abstand – besser gefällt, als die festen Links auf die Bilder. Aber die MyGallery-“Kacke” nervt natürlich noch mehr.