AMR-Link erzeugen

Gesperrt
derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

AMR-Link erzeugen

Beitrag von derSteffen » So 14. Jul 2013, 13:11

Ich möchte gerne in einem Modul einen AMR-LINK generiern, wo ich separat die idcat und idart angeben kann und das mehrmals.

Code: Alles auswählen

                       $idcat = "154";
			$idart = "332";
			$aParams = array('idcat' => $idcat, 'idart' => $idart, 'lang' => $lang);
			$mrUrlBuilder = Contenido_UrlBuilder_MR::getInstance();
			$mrUrlBuilder->buildUrl($aParams);
			$newUrl = $mrUrlBuilder->getUrl();
			$host = $_SERVER["HTTP_HOST"];
			echo $host,$newUrl;
Das klappt ja so ... aber ich dachte mir, ob das nicht eventuell auch eleganter geht!?

Vielen Dank

MfG Steffen

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: AMR-Link erzeugen

Beitrag von Spider IT » Mo 15. Jul 2013, 06:33

Moin Steffen,

ja, das geht "eleganter".
Aber zuerst mal, die Variablen $idcat und $idart darfst du nicht schreiben, denn sonst bringst du alles durcheinander (das sind die internen Variablen für die aktualle Kategorie und den aktuellen Artikel).
Und dann der Code:

Code: Alles auswählen

    $aParams = array('idcat' => $myidcat, 'idart' => $myidart, 'client' => $client, 'lang' => $lang);
    $link = Contenido_Url::getInstance()->build($aParams, true);
(funktioniert übrigens auch wenn AMR nicht aktiv ist, dann übernimmt Contenido die Generierung)
Der 2. Parameter in der letzten Zeile gibt übrigens an, ob ein absoluter Pfad (inkl. http://...) generiert werden soll.

Gruß
René

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: AMR-Link erzeugen

Beitrag von derSteffen » Mo 15. Jul 2013, 07:48

SPITZENANTWORT! Perfekt. Vielen Dank René.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: AMR-Link erzeugen

Beitrag von derSteffen » Mo 22. Jul 2013, 17:55

Doch noch eine Frage!

Das klapt im Frontend grandios aber im Backend beim Editor leider nicht, da hier jetzt der Link als
angezeigt wird und dieser nicht gefunden werden kann, da ja AMR aktiv ist und somit dieser Link gar nicht existiert. Würde ich den Link "hartcodiert" einfügen, würde es auch im Backend funktionieren.
Gibt es hier eine Möglichkeit auch im Backend eine AMR-Link erzeugen zu lassen odeer sowas ähnliches, dass man zur Not eventuell mit einer Weiche arbeitet?

Vielen Dank

MfG Steffen

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: AMR-Link erzeugen

Beitrag von xmurrix » Mo 22. Jul 2013, 22:00

Hallo Steffen,

im Backend ist die Generierung der Clean-URLs deaktiviert und es gibt auch gute Gründe dafür. Es sollen auch keine Clean-URLs im Editor eingegeben werden.

Gib einfach im Backen front_content.php?idart=123 oder ähnlich an, Redakteuere sollen sich auch daran halten. Ist AMR im Frontend aktiv, wird es sich je nach Einstellung darum kümmern, diese URLs in Clean-URLs umzuwandeln.

Auch in Artikeleigenschaften soll man bei Weiterleitungen keine Clean-URLs angeben, darum kümmert sich das AMR Plugin.

Also im Backend immer mit der altbekannten URL front_content.php arbeiten und im Frontend werden die URLs wie gewünscht generiert.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: AMR-Link erzeugen

Beitrag von derSteffen » Di 23. Jul 2013, 05:44

Hallo xmurrix,

dass mache ich auch so.

Ich dachte nur ich kann aus dieser Angabe

Code: Alles auswählen

$aParams = array('idcat' => $myidcat, 'idart' => $myidart, 'client' => $client, 'lang' => $lang);
im Backend mit Hilfe der Weiche

Code: Alles auswählen

if (edit) { NEUER CODE } elde { BESTEHENDER CODE }
einen anderen, normalen Link ausgeben lassen, an hand der Array-Daten, ala

Code: Alles auswählen

$link = .. . ?!?!?!? 
.

MfG Steffen

xmurrix
Beiträge: 3154
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: AMR-Link erzeugen

Beitrag von xmurrix » Di 23. Jul 2013, 07:59

Hallo Steffen,

du kannst im Backend auch folgendes schreiben:

Code: Alles auswählen

$url = "front_content.php?idcat={$myidcat}&idart={$myidart}&client={$client}&lang={$lang}";
Das funktioniert auch, sofern du die Option zum Umschreiben der URLs bei der Ausgabe der Seite eingestellt hast, was die Standardeinstellung ist.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Gesperrt