Relative Pfade für RSS Feed umwandeln?

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
spod
Posts: 3
Joined: Tue Nov 03, 2009 2:55 pm
Location: Frankfurt, Germany

Relative Pfade für RSS Feed umwandeln?

Post by spod »

Hi,

die Grafiken in meinen Beiträgen werden alle über relative Pfade eingebunden:

Code: Select all

<img src="uploads/subfolder/bild.jpg" class="serendipity_image_center" />
Das funktioniert im Blog natürlich einwandfrei. Ebenso, wenn ich die Feeds direkt aufrufe.
Sobald ich die Feeds allerdings über einen Feedreader anzeigen lasse, werden die Grafiken logischerweise nicht mehr gefunden, da auch im Feedreader nur relative Pfade angegeben sind.

Gibt es eine Möglichkeit (übersehene Einstellung, Plugin o.Ä.), die relativen Pfade in den Feeds automatisch in absolute Pfade umzuwandeln?

danke
spod

Version: Serendipity 1.4.1 und PHP 5.2.9
Plugins: TinyMCE als WYSIWYG Editor
Template: Bulletproof
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Relative Pfade für RSS Feed umwandeln?

Post by garvinhicking »

Hi!

Der RSS-Feed sollte Bildreferenzen eigentlich automatisch absolut platzieren, das soll der Kern von s9y übernehmen. Wie sind deine Pfadeinstellungen in s9y, wie ist deine Domain?

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/
spod
Posts: 3
Joined: Tue Nov 03, 2009 2:55 pm
Location: Frankfurt, Germany

Re: Relative Pfade für RSS Feed umwandeln?

Post by spod »

Der Blog ist noch nicht Öffentlich, daher kein Link zum anschauen.
Hier aber mal die Einstellungen:

Code: Select all

Voller Pfad: /opt/lampp/htdocs/blog/
Upload Pfad: uploads/
relativer HTTP-Pfad: /blog/
relativer Template-Pfad: templates/
relativer Upload-Pfad: uploads/
URL zum blog: http://domain.de/blog/
HTTP-Hostnamen automatisch erkennen : ja
Index-Datei: index.php
URL-Formung : Disable URL Rewriting
Bei den Permalinks sind die Standardeinstllungen vorhanden.

Feed-URL sieht so aus:

Code: Select all

http://domain.de/blog/index.php?/feeds/index.rss2
Auszug aus einem Eintrag:

Code: Select all

<p><a href="uploads/subfolder/bild.JPG" class="serendipity_image_link"><!-- s9ymdb:1486 --><img src="uploads/subfolder/bild.serendipityThumb.JPG" class="serendipity_image_center" /></a></p>
und so wird er im Blog und eben auch im Feed und im Reader angezeigt.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Relative Pfade für RSS Feed umwandeln?

Post by garvinhicking »

Hi!

In der include/functions_rss.inc.php wird beim darstellen der Feeds folgender Code benutzt:

Code: Select all

$entry['body'] = preg_replace('@(href|src)=("|\')(' . preg_quote($serendipity['serendipityHTTPPath']) . ')(.*)("|\')(.*)>@imsU', '\1=\2' . $serendipity['baseURL'] . '\4\2\6>', $entry['body']);
Der ersetzt also alle href/src in denen /blog/ vorkommt durch http://domain.de/blog/ - das müsste auch bei Dir so sein. Ohne Live-Blog kann ich mir das nicht exakt angucken. Aber wenn bei dir "uploads/" steht ist das falsch, es müsste "/blog/uploads/" heißen damit die Ersetzung greifen kann... wie fügst Du die Bilder denn genau ein? Über die s9y Mediathek müssten die korrekt relativ gesetzt werden. Höchstens ein wYSIWYG-Editor könnte da dazwischen funken, ggf. macht TinyMCE hier eine Relative URL mit rein. Leider bin ich mit TinyMCE nicht so erfahren wie man das ausstellt. Im s9y-internen htmlarea bzw. xinha haben wir das per Konfigurationsoption expandRelativeURL gelöst...


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/
spod
Posts: 3
Joined: Tue Nov 03, 2009 2:55 pm
Location: Frankfurt, Germany

Re: Relative Pfade für RSS Feed umwandeln?

Post by spod »

garvinhicking wrote:...Aber wenn bei dir "uploads/" steht ist das falsch, es müsste "/blog/uploads/" heißen damit die Ersetzung greifen kann... wie fügst Du die Bilder denn genau ein? Über die s9y Mediathek müssten die korrekt relativ gesetzt werden. Höchstens ein wYSIWYG-Editor könnte da dazwischen funken...
Genau da liegt der Fehler. Es liegt an TinyMCE. (bzw. dessen Einstellungen)

wenn ich TinyMCE deaktiviere und ein Bild über "Medien verwalten" einfüge, weren die Pfade richtig gesetzt und auch im RSS ersetzt:

Code: Select all

<a href="/blog/subfolder/bild.jpeg" class="serendipity_image_link"><!-- s9ymdb:1151 --><img width="92" height="110" src="/blog/subfolder/bild.serendipityThumb.jpeg" style="border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;" class="serendipity_image_left" /></a>
Wenn ich allerdings mit TinyMCE arbeite, sieht das Ganze schon anders aus:

Unter "das Bild soll hierher verlinken" steht noch: /blog/subfolder/bild.jpeg
wird dann allerdings so eingefügt:

Code: Select all

<p><a href="uploads/subfolder/bild.jpeg" class="serendipity_image_link"><!-- s9ymdb:1151 --><img src="uploads/subfolder/bild.serendipityThumb.jpeg" class="serendipity_image_left" style="border: 0px none ; float: left; padding-left: 5px; padding-right: 5px" height="110" width="92" /></a></p>
Demnach kann es dann nicht mehr ersetzt werden.

Der Grund dafür lag in den Einstellungen von TinyMCE. Dort gibt es diese Option:
Relative URLs erzeugen
TinyMCE kann lokale URLs in relative URLs konvertieren. Aus "http://deinblog.de/test.html" wird dann "/test.html". Die relativen URLs sind z.B. wichtig, falls sich die Blog Domain einmal ändern sollten, können aber evtl. in machen Blogs Probleme bereiten.
Diese war aktiviert und sorgte dafür, dass neben der kompletten Domain auch "/blog/" aus den Pfaden entfernt wurde.
Nachdem ich sie deaktiviert habe, funktioniert nun alles einwandfrei.

Ich werde nun die neueren Einträge, welche noch im Feed angezeigt werden, durchgehen und korrigieren.

Vielen Dank
spod
Post Reply