Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> cms://-Links direkt Parsen
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post
mistral
Beitrag 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)
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post
braendle
Beitrag Tue. 12. September 2006, 14:24
Beitrag #4


Member
**

Gruppe: Members
Beiträge: 32
Mitglied seit: 26.06.2006
Mitglieds-Nr.: 6



ZITAT(MaZderMind @ Tue. 12. September 2006, 13:51) *
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!
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag 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
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 19.4.24 - 13:41

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.