Bilder verschieben

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Jasi
Regular
Posts: 7
Joined: Fri Jun 02, 2006 3:58 pm

Bilder verschieben

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Bilder verschieben

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Jasi
Regular
Posts: 7
Joined: Fri Jun 02, 2006 3:58 pm

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Jasi
Regular
Posts: 7
Joined: Fri Jun 02, 2006 3:58 pm

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Jasi
Regular
Posts: 7
Joined: Fri Jun 02, 2006 3:58 pm

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Jasi
Regular
Posts: 7
Joined: Fri Jun 02, 2006 3:58 pm

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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));
    }
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Jasi
Regular
Posts: 7
Joined: Fri Jun 02, 2006 3:58 pm

Post by Jasi »

Wow :shock: Klasse, jetzt klappt es. 1000 Dank für die Hilfe.#

Gruss

Jan
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply