cms://-Links direkt Parsen |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
cms://-Links direkt Parsen |
Mon. 11. September 2006, 16:17
Beitrag
#1
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hallo
Manchmal ist es nötig, cms://-Links direkt zu parsen (z.B. wenn man per mail() eine Mail mit Link verschicken will) und nicht erst nach dem vollständigen erzeugen der Seite oder wenn man einen Link mit einr absoluten URL erzeugen will (*). Wie kann man das bewerkstelligen? *: Ich habe in einr Variable $vareinen cms://-Link vorliegen (in meinem Fall aus einem preg_match) QUELLTEXT $var = 'cms://idcatside=1'; echo $var; // gibt startseite/index.html echo $cfg_client['htmlpath'] // gibt http://sefrengo.<meinname>.homeip.net/ echo $cfg_client['htmlpath'].$var; // gibt http://sefrengo.<meinname>.homeip.net/index.php?idcatside=1 Gruß, Peter Der Beitrag wurde von MaZderMind bearbeitet: Fri. 5. January 2007, 16:35 |
|
|
Mon. 11. September 2006, 20:48
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 343 Mitglied seit: 26.06.2006 Wohnort: CH Mitglieds-Nr.: 5 |
Funktioniert das nicht in der Form?
QUELLTEXT //Sefengolinks ersetzen $in = array("!cms://idcat=(\d+)!e", "!cms://idcatside=(\d+)!e"); $out = array('\$con_tree[\\1][\'link\']', '\$con_side[\\1][\'link\']'); $code = preg_replace($in, $out, $code); Das heisst also für Dich: QUELLTEXT //Sefengolinks ersetzen
$in = array("!cms://idcat=(\d+)!e", "!cms://idcatside=(\d+)!e"); $out = array('\$con_tree[\\1][\'link\']', '\$con_side[\\1][\'link\']'); $var = preg_replace($in, $out, $var); -------------------- So einfach wie möglich, aber nicht einfacher!
(Albert Einstein) |
|
|
Tue. 12. September 2006, 12:51
Beitrag
#3
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Hi
Wenn du dir mal innerhalb eines Scriptes den Inhalt von $con_tree[#]['link'] z.B. in eine Datei schreiben lässt, wirst du feststellen dass da auch nur /index.php?idcatside=# rauskommt. Interessant wird es da, wo diese Links in spoken-urls gewandelt werden.. aber ich habs jetz grad selbst gefunden: rewriteGetCatUrl($idcat, $lang) gibt die relative URL zu einem Ordner direkt zurück, rewriteGetPageUrl($idcatside, $lang) entsprechend zu einer Seite. Um die Pfade absolut zu machen muss noch $cfg_client['htmlpath'] davorgehängt werden. Ist mod_rewrite nicht aktiviert, sind diese Funktiionen nicht definiert und es muss stattdessen $con_side oder $con_tree direkt benutzt werden. Gruß, Peter [edit] Für solche Fälle wäre es sinnvoller, die Links in $con_tree und $con_side schon vorher in spoken_urls zu verwandeln. Der Beitrag wurde von MaZderMind bearbeitet: Tue. 12. September 2006, 13:07 |
|
|
Tue. 12. September 2006, 14:24
Beitrag
#4
|
|
Member Gruppe: Members Beiträge: 32 Mitglied seit: 26.06.2006 Mitglieds-Nr.: 6 |
rewriteGetCatUrl($idcat, $lang) gibt die relative URL zu einem Ordner direkt zurück, rewriteGetPageUrl($idcatside, $lang) entsprechend zu einer Seite. Um die Pfade absolut zu machen muss noch $cfg_client['htmlpath'] davorgehängt werden. Ist mod_rewrite nicht aktiviert, sind diese Funktiionen nicht definiert und es muss stattdessen $con_side oder $con_tree direkt benutzt werden. Hm, wenn mod_rewrite nicht aktiviert ist, fände ich es aber besser, wenn die Funktionen dann die entsprechende Werte aus $con_side und $con_tree zurückgeben würden. Dann müsste im Code für diesen Fall keine Unterscheidung eingebaut werden. Es wäre hilfreich sozusagen ... Der Beitrag wurde von braendle bearbeitet: Tue. 12. September 2006, 14:24 -------------------- Gruß
JB --- -> Du hast keine Chance. Nutze sie! |
|
|
Tue. 12. September 2006, 15:11
Beitrag
#5
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 680 Mitglied seit: 09.08.2006 Wohnort: nähe Mainz Mitglieds-Nr.: 182 |
Ja. und bitte auf dem Weg auch das zweite Attribut bei nichtvorhandensein standardmäßig mit $lang belegen.
Der halen mit der deklaration liegft darin dass bei nicht.aktiviert-sein die fnc.mod_rewrite.php garnich erst eingebunden wird. Gruß, Peter |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 26.9.24 - 03:51 |