Blog mit Rewrite?
Blog mit Rewrite?
Hallo,
habe ein phpwcms 1.3.3 mit dem WcmsBLog laufen und auch alles soweit funktionstüchtig,...
Nun wollte ich das Rewrite-Modul einbinden, um die URLs in phpMyVisites besser zu sehen - nur leider funktioniert dann das Blog nicht mehr.
Dieses baut ja im Render-Skript die Links (Previous, Next, Permalink, usw.) aus der aktuellen Server-URI zusammen und bekommt daher die Rewrite-URL als Basis.
Das resultiert dann in Links a la:
http://www.janina-arpa.de/blog.phtml?offset=5
Hierbei wird die Offset-Variable aber nicht ausgewertet.
Ohne Rewrite funktioniert es, dort wird der Link
http://www.janina-arpa.de/index.php?blog&offset=5
erzeugt und dieser ist valid und alle Variablen sind gültig.
Muss man im Blog-Skript das Erzeugen der Links modifizieren oder kann man den phtml-Seiten beibringen, dass diese php-Variablen akzeptieren?
Vielen Dank,
Björn M. Albrecht
habe ein phpwcms 1.3.3 mit dem WcmsBLog laufen und auch alles soweit funktionstüchtig,...
Nun wollte ich das Rewrite-Modul einbinden, um die URLs in phpMyVisites besser zu sehen - nur leider funktioniert dann das Blog nicht mehr.
Dieses baut ja im Render-Skript die Links (Previous, Next, Permalink, usw.) aus der aktuellen Server-URI zusammen und bekommt daher die Rewrite-URL als Basis.
Das resultiert dann in Links a la:
http://www.janina-arpa.de/blog.phtml?offset=5
Hierbei wird die Offset-Variable aber nicht ausgewertet.
Ohne Rewrite funktioniert es, dort wird der Link
http://www.janina-arpa.de/index.php?blog&offset=5
erzeugt und dieser ist valid und alle Variablen sind gültig.
Muss man im Blog-Skript das Erzeugen der Links modifizieren oder kann man den phtml-Seiten beibringen, dass diese php-Variablen akzeptieren?
Vielen Dank,
Björn M. Albrecht
Hallo Björn,
ich denke dass das Problem entsteht, wenn phpwcms schon die url geschrieben hat und dann der HACK die Get Variable drüber schiebt.
Da muß man ziemlich tief unter die wcms Haube klettern und den Hack vorher eingreifen lassen. In Anbetracht der Tatsache dass Oliver bekundet hatte einen BLOG zu bauen ... naja
ich denke dass das Problem entsteht, wenn phpwcms schon die url geschrieben hat und dann der HACK die Get Variable drüber schiebt.
Da muß man ziemlich tief unter die wcms Haube klettern und den Hack vorher eingreifen lassen. In Anbetracht der Tatsache dass Oliver bekundet hatte einen BLOG zu bauen ... naja

Pepe hatte es einfach hinbekommen (nur gerade keine Zeit nachzuschauen, wie)...
Ich nehme mal an, dass es im frontend-Renderer sein müsste:
z-B. für den next/previous-Link:
Hier wird die aktuelle URI ausgelesen und bei Bedarf die Blog-Variablen hintergehängt,...
Damit werden dann auch die ungültigen URLS erzeugt, a la:
http://www.janina-arpa.de/Blog.phtml?offset=5
wobei das bis zu phtml ja die URI ist, die der Server sendet (ist ja so vor dem Serverinternen Rewrite)...
Ich denke, dass man die Linkerzeugung so umschreiben müsste, dass er es nicht dahinterhängt, sondern zwischen den Alias und die phtml-Endung,...
Dann müsste da:
"www.janina-arpa.de/Blog" (erster Teil bis vor den Punkt vom phtml) - dann die Variablen: "&offset=5" und dann die Endung ".phtml".
Denn die URL
"www.janina-arpa.de/Blog&offset=5.phtml" wird dann ja vom Rewrite-Mod auf "www.janina-arpa.de/index.php?Blog&offset=5" umgeschrieben und das wäre dann wieder richtig,...
Nur, wie müsste dann das Skript modifiziert werden?
MfG,
Björn
Ich nehme mal an, dass es im frontend-Renderer sein müsste:
z-B. für den next/previous-Link:
Code: Select all
$prevlink = $_SERVER["REQUEST_URI"];
$nextlink = $_SERVER["REQUEST_URI"];
$prevlink = preg_replace("/&offset=\d*/i", "", $prevlink);
$nextlink = preg_replace("/&offset=\d*/i", "", $nextlink);
if (strstr($prevlink, "?") !== false)
{
$prevlink .= "&";
$nextlink .= "&";
}
else
{
$prevlink .= "?";
$nextlink .= "?";
}
$prevlink .= "offset=" . ($_GET["offset"] + $pp);
$nextlink .= "offset=" . ($_GET["offset"] - $pp);
Damit werden dann auch die ungültigen URLS erzeugt, a la:
http://www.janina-arpa.de/Blog.phtml?offset=5
wobei das bis zu phtml ja die URI ist, die der Server sendet (ist ja so vor dem Serverinternen Rewrite)...
Ich denke, dass man die Linkerzeugung so umschreiben müsste, dass er es nicht dahinterhängt, sondern zwischen den Alias und die phtml-Endung,...
Dann müsste da:
"www.janina-arpa.de/Blog" (erster Teil bis vor den Punkt vom phtml) - dann die Variablen: "&offset=5" und dann die Endung ".phtml".
Denn die URL
"www.janina-arpa.de/Blog&offset=5.phtml" wird dann ja vom Rewrite-Mod auf "www.janina-arpa.de/index.php?Blog&offset=5" umgeschrieben und das wäre dann wieder richtig,...
Nur, wie müsste dann das Skript modifiziert werden?
MfG,
Björn
Code: Select all
if (strstr($prevlink, "?") !== false)
{
$prevlink .= "&";
$nextlink .= "&";
}
else
{
if ($phpwcms['rewrite_url'] == 1)
{
$prevlink .= "&";
$nextlink .= "&";
}
else
{
$prevlink .= "?";
$nextlink .= "?";
}
}
......

Aber das Problem scheint zu sein, dass er die GET Variable nicht lesen kann weil "&" fehlt....
Jedenfalls hat sich $GET bei meinen Sachen nie an einem rewrite gestört. Du bekommst somit 4% Funktionsgarantie *g*
Jürgen
Ich hab MEINE Lösung hier zum Download abgelegt...
http://phpwcms-templates.de/punBB-forum ... 1956#p1956
Einloggen nicht vergessen
Aber bitte, ich hab PHP auch nicht gelernt, sondern mir nur "experimentell angeeignet"...
Somit wird sich dem wahren Proggi sicher der Magen rumdrehen
Ich war aber froh, daß es danach klappte.
Nach dem Motto: Eine schlecht Lösung ist besser als keine Lösung Oder einfach als Start für die perfekte EIGENE Variante...
http://phpwcms-templates.de/punBB-forum ... 1956#p1956
Einloggen nicht vergessen

Aber bitte, ich hab PHP auch nicht gelernt, sondern mir nur "experimentell angeeignet"...
Somit wird sich dem wahren Proggi sicher der Magen rumdrehen

Ich war aber froh, daß es danach klappte.
Nach dem Motto: Eine schlecht Lösung ist besser als keine Lösung Oder einfach als Start für die perfekte EIGENE Variante...

Naja claus, wie zeitweise behinderte das machen...
Man nehme ein glossary modul, schlachte es aus und montiere die Blog Teile vorsichtig hinein...
Die DB hat er mit setup installiert, im Backend meldet sich das Modul OHNE Hack .. weil ich muss doch jeden trunk installieren *g*
Aber ganz fertig ist es nicht .. die Eingabe im Backend muß ausfindig gemacht werden .. bis zur Eingabe des BLOG Titels ist es da...
Man nehme ein glossary modul, schlachte es aus und montiere die Blog Teile vorsichtig hinein...
Die DB hat er mit setup installiert, im Backend meldet sich das Modul OHNE Hack .. weil ich muss doch jeden trunk installieren *g*
Aber ganz fertig ist es nicht .. die Eingabe im Backend muß ausfindig gemacht werden .. bis zur Eingabe des BLOG Titels ist es da...


ES GEHT ! .. 99%, claus .. ich darf dich mal in mein Backend einladen ??

100 % CHEERS !
Last edited by juergen on Mon 5. Nov 2007, 09:08, edited 1 time in total.