Page 1 of 1

Bilder verschieben

Posted: Fri Aug 18, 2006 10:41 am
by Jasi
Hallo, ich nutze die Version 1.1-beta1 und wollte nun Bilder meines Blogs in Unterorder verschieben, zur Zeit liegen die im Stammverzeichnis, jetzt habe ich Ordner angelegt und frage mich wie ich die in die Unterordner bekomme ohne das mein Blog keine Bilder mehr findet.

Viele Grüsse
Jan

Re: Bilder verschieben

Posted: Fri Aug 18, 2006 11:58 am
by garvinhicking
Hi!

Theoretisch kannst Du ein Bild editieren (mit der Werkzeugzange in der Mediendatenbank). Dort siehst Du ein Dropdown wo der aktuelle Pfad des Bildes angezeigt ist. Wenn Du dort den Pfad änderst, wird s9y die Datei verschieben (sofern Schreibrechte im Verzeichnisbaum bestehen!) und in der Datenbank die einträge korrigieren (nur wenn Du MySQL benutzt).

Viele Grüße,
Garvin

Posted: Fri Aug 18, 2006 1:19 pm
by Jasi
Ja, also auf Dateiebene verschiebt er die Bilder aber dann sind sie im Blog weg, sprich es wir nicht in der DB angepasst.

Gruss
Jan

Posted: Fri Aug 18, 2006 1:22 pm
by garvinhicking
Hi!

Kannst Du ein Beispiel nennen wie der Dateiname vorher war und wie er nachher war?

Und wie ein Eintrag von Dir aussieht, der noch auf das alte Bild linkt?

Und welche MySQL-Datenbank version setzt Du ein?

Grüße,
Garvin

Posted: Fri Aug 18, 2006 1:33 pm
by Jasi
Also der Dateiname ist ja identisch wir vorher, nur hat er das Bild in einen anderen Ordner verschoben, sprich Dateiname ist gleich geblieben.

Nur der Pfad in der Datenbank wird nicht aktualisiert, ich nutze mysql 4.0.25.

Gruss
Jan

Posted: Fri Aug 18, 2006 1:38 pm
by garvinhicking
Hi!

Das weiß ich ja :) Ich wollte von Dir so etwas:

Vorher:
/www/serendipity/uploads/x01.jpg

Nachher:
/www/serendipity/uploads/NeuerOrdner/x01.jpg

Eintrag:
Hi, hier ist mein bild: <img src="/www/serendipity/uploads/NeuerOrdner/x01.jpg" />.

MySQL-Version:
4.0.25

Viele Grüße,
Garvin

Posted: Fri Aug 18, 2006 1:46 pm
by Jasi
ahso ;-)

Vorher:
/bautagebuch/uploads/Schild_Entlastungsstrasse.jpg

Nachher:
/bautagebuch/uploads/Vorspiel/Schild_Entlastungsstrasse.jpg

Eintrag (html):
<p>Heute bin ich am Baugebiet vorbeigefahren und habe drei Vermesser gesehen die mit Plänen und Sense bewaffnet wohl die Vermessungspunkte freigelegt haben. Der Landwirt kann dann mit dem Ernten beginnen, bin mal gespannt wann er das macht. Auf dem Heimweg von Pattensen nach Hannover haben wir dann noch ein Schild der Stadt Pattensen gesehen mit dem auf den Bau der Entlastungsstrasse hingewiesen wird.<a class="serendipity_image_link" onclick="F1 = window.open('/bautagebuch/uploads/vermesser001.jpg','Zoom','height=615,width=815,top=132,left=176,toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes'); return false;" href="http://www.derjasimo.de/bautagebuch/upl ... .jpg"><img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; PADDING-LEFT: 5px; FLOAT: left; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="83" src="http://www.derjasimo.de/bautagebuch/upl ... yThumb.jpg" width="110" /></a><a class="serendipity_image_link" onclick="F1 = window.open('/bautagebuch/uploads/Schild_Entlastungsstrasse.jpg','Zoom','height=615,width=815,top=132,left=176,toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes'); return false;" href="http://www.derjasimo.de/bautagebuch/upl ... .jpg"><img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; PADDING-LEFT: 5px; FLOAT: left; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="83" src="http://www.derjasimo.de/bautagebuch/upl ... yThumb.jpg" width="110" /></a></p>


Bin mir nicht sicher ob Du das so wolltest.
Jan

Posted: Fri Aug 18, 2006 2:12 pm
by garvinhicking
Hi!

Hm, der suchen+ersetzen Code schlägt fehl, weil serendipiy nur relative Links (also /buatagebuch/uploads/XXX) ersetzen würde, anstelle http://XXXX.de.

Aber vielleicht könnten wir das beheben.

Öffne mal bitte deine Datein include/functions_images.inc.php. Dort steht ungefähr in Zeile 3246 folgendes:

Code: Select all

    $q = "SELECT id, body, extended
            FROM {$serendipity['dbPrefix']}entries
           WHERE body     REGEXP '(src|href)=(\'|\")" . serendipity_db_escape_string($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . "'
              OR extended REGEXP '(src|href)=(\'|\")" . serendipity_db_escape_string($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . "'
    ";

    $dirs = serendipity_db_query($q);
    if (is_array($dirs)) {
        foreach($dirs AS $dir) {
            $dir['body']     = preg_replace('@(src|href)=(\'|")' . preg_quote($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . '@', '\1=\2' . $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $newDir, $dir['body']);
            $dir['extended'] = preg_replace('@(src|href)=(\'|")' . preg_quote($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . '@', '\1=\2' . $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $newDir, $dir['extended']);

            $uq = "UPDATE {$serendipity['dbPrefix']}entries
                                     SET body     = '" . serendipity_db_escape_string($dir['body']) . "' ,
                                         extended = '" . serendipity_db_escape_string($dir['extended']) . "'
                                   WHERE id       = " . serendipity_db_escape_string($dir['id']);
            serendipity_db_query($uq);
        }

        printf(MEDIA_DIRECTORY_MOVE_ENTRIES . '<br />', count($dirs));
    }
ersetze diesen ganzen Block bitte mal durch dieses:

Code: Select all

    $q = "SELECT id, body, extended
            FROM {$serendipity['dbPrefix']}entries
           WHERE body     REGEXP '(src|href)=(\'|\")(" . serendipity_db_escape_String($serendipity['baseURL'] . $serendipity['uploadHTTPPath'] . $oldDir) . "|" . serendipity_db_escape_string($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . ")'
              OR extended REGEXP '(src|href)=(\'|\")(" . serendipity_db_escape_String($serendipity['baseURL'] . $serendipity['uploadHTTPPath'] . $oldDir) . "|" . serendipity_db_escape_string($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . ")'
    ";

    $dirs = serendipity_db_query($q);
    if (is_array($dirs)) {
        foreach($dirs AS $dir) {
            $dir['body']     = preg_replace('@(src|href)=(\'|")(' . preg_quote($serendipity['baseURL'] . $serendipity['uploadHTTPPath'] . $oldDir) . '|' . preg_quote($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . ')@', '\1=\2' . $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $newDir, $dir['body']);
            $dir['extended'] = preg_replace('@(src|href)=(\'|")(' . preg_quote($serendipity['baseURL'] . $serendipity['uploadHTTPPath'] . $oldDir) . '|' . preg_quote($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . ')@', '\1=\2' . $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $newDir, $dir['extended']);

            $uq = "UPDATE {$serendipity['dbPrefix']}entries
                                     SET body     = '" . serendipity_db_escape_string($dir['body']) . "' ,
                                         extended = '" . serendipity_db_escape_string($dir['extended']) . "'
                                   WHERE id       = " . serendipity_db_escape_string($dir['id']);
            serendipity_db_query($uq);
        }

        printf(MEDIA_DIRECTORY_MOVE_ENTRIES . '<br />', count($dirs));
    }
Und sag dann ob das was hilft? Theoretisch sollte es dann beim umbenennen auch den http:// Fall mit abdecken...

Viele Grüße,
Garvin

Posted: Fri Aug 18, 2006 2:44 pm
by Jasi
Hi, danke funktioniert fast ;-)

Also nun habe ich im selben arikel ein anderes Bild verschoben:
.<a class="serendipity_image_link" onclick="F1 = window.open('/bautagebuch/uploads/vermesser001.jpg','Zoom','height=615,width=815,top=132,left=176,toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes'); return false;" href="http://www.derjasimo.de/bautagebuch/upl ... .jpg"><img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; PADDING-LEFT: 5px; FLOAT: left; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="83" src="http://www.derjasimo.de/bautagebuch/upl ... yThumb.jpg" width="110" /></a>

das Bild welches ich verschoben habe ist das vermesser001.jpg, leider hat er es an der fettgedruckten Stelle nicht angepasst, dafür aber überall anders ;-)

Gruss
Jan

Posted: Fri Aug 18, 2006 2:47 pm
by garvinhicking
Hi!

Tatsache, das wurde von dem Ausdruck noch nicht erschlagen.

Probier mal folgnedes:

Code: Select all

    $q = "SELECT id, body, extended
            FROM {$serendipity['dbPrefix']}entries
           WHERE body     REGEXP '(src=|href=|window.open.)(\'|\")(" . serendipity_db_escape_String($serendipity['baseURL'] . $serendipity['uploadHTTPPath'] . $oldDir) . "|" . serendipity_db_escape_string($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . ")'
              OR extended REGEXP '(src=|href=|window.open.)(\'|\")(" . serendipity_db_escape_String($serendipity['baseURL'] . $serendipity['uploadHTTPPath'] . $oldDir) . "|" . serendipity_db_escape_string($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . ")'
    ";

    $dirs = serendipity_db_query($q);
    if (is_array($dirs)) {
        foreach($dirs AS $dir) {
            $dir['body']     = preg_replace('@(src=|href=|window.open.)(\'|")(' . preg_quote($serendipity['baseURL'] . $serendipity['uploadHTTPPath'] . $oldDir) . '|' . preg_quote($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . ')@', '\1\2' . $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $newDir, $dir['body']);
            $dir['extended'] = preg_replace('@(src=|href=|window.open.)(\'|")(' . preg_quote($serendipity['baseURL'] . $serendipity['uploadHTTPPath'] . $oldDir) . '|' . preg_quote($serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $oldDir) . ')@', '\1\2' . $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $newDir, $dir['extended']);

            $uq = "UPDATE {$serendipity['dbPrefix']}entries
                                     SET body     = '" . serendipity_db_escape_string($dir['body']) . "' ,
                                         extended = '" . serendipity_db_escape_string($dir['extended']) . "'
                                   WHERE id       = " . serendipity_db_escape_string($dir['id']);
            serendipity_db_query($uq);
        }

        printf(MEDIA_DIRECTORY_MOVE_ENTRIES . '<br />', count($dirs));
    }

Posted: Fri Aug 18, 2006 2:55 pm
by Jasi
Wow :shock: Klasse, jetzt klappt es. 1000 Dank für die Hilfe.#

Gruss

Jan

Posted: Fri Aug 18, 2006 3:14 pm
by garvinhicking
Hi!

Na, das ist doch super! Danke für die Hilfe, ich werde das dann auch mal ins Repository übernehmen! :)

Viele Grüße,
Garvin