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


Das Plugin Add-From-Server musste ich auch noch etwas anpassen. Im Moment ist das Verhalten ja so, dass es alle Dateien im entsprechenden Verzeichnis anzeigt. Dadurch war es mir passiert, dass ich Bilder doppelt eingelesen hatte. :-( Außerdem werden auch die Thumbnail-Dateien angezeigt, – auch die möchte ich gar nicht sehen. Also habe ich den Script mal etwas erweitert, – mit folgenden „Patch“:

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

Nun sehe ich nur noch die Dateien, die noch nicht eingelesen worden sind :-)
Wer möchte kann den Patch übrigens mittels folgenden Aufruf (in Version 2.2.1 !!) einspielen:

patch add-from-server.php < add-from-server.php.patch