search_output und Advanced Mod Rewrite Plugin

Gesperrt
simas
Beiträge: 153
Registriert: Fr 7. Mär 2003, 11:15
Wohnort: Gampelen, Schweiz
Kontaktdaten:

search_output und Advanced Mod Rewrite Plugin

Beitrag von simas » Mi 25. Feb 2009, 09:53

Hallo zusammne,

Wenn ich das Advanced Mod Rewrite Plugin aktiviert habe, erhalte ich beim Modul search_output zwar die richtigen Suchergebnisse, aber der Link wurde ebenfalls verändert und stimmt nicht mehr!

Wie muss ich Advanced Mod Rewrite konfigurieren, damit er die Links vom search_output Modul belässt oder richtig setzt?

Vielen Dank und Gruss
Simon

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

Re: search_output und Advanced Mod Rewrite Plugin

Beitrag von xmurrix » Mi 25. Feb 2009, 22:42

Hallo Simon,
simas hat geschrieben:...Wenn ich das Advanced Mod Rewrite Plugin aktiviert habe, erhalte ich beim Modul search_output zwar die richtigen Suchergebnisse, aber der Link wurde ebenfalls verändert und stimmt nicht mehr!

Wie muss ich Advanced Mod Rewrite konfigurieren, damit er die Links vom search_output Modul belässt oder richtig setzt?...
das AMR-Plugin muss man nicht extra für ein Modul konfigurieren.

Anscheinend, so habe ich das jetzt aufgefasst, gibt es bei dir ein Problem mit den URLs, die in Search_Output ausgegeben werden, andere URLs (Navigation, u. andere Module) sind davon nicht betroffen.

Welche Version von Contenido und dem Plugin verwendest du eigentlich? Hast du eventuell die Search_Output angepasst oder verwendest du ein anderes Modul das im Template mit Search_Output zusammen vorkommt?

Ich weiß, das sind viele Fragen, aber ohne die Antworten ist das Helfen etwas schwierig.

Zur Not lässt sich das Umschreiben der URLs im Artikel, in dem das Suchergebnis ausgegeben wird, unterbinden - Falls du bei der Einstellung "Zeitpunkt zum Generieren der URLs" die Option "Bei der Ausgabe des HTML Codes der Seite" gewählt hast.

Über eine Mandanteneinstellungen wie folgt:

Code: Alles auswählen

Typ                          Name     Wert
frontend.no_outputbuffer     idart    {id_des_artikels}
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.

simas
Beiträge: 153
Registriert: Fr 7. Mär 2003, 11:15
Wohnort: Gampelen, Schweiz
Kontaktdaten:

Re: search_output und Advanced Mod Rewrite Plugin

Beitrag von simas » Do 26. Feb 2009, 12:58

Hallo xmurrix,

Vielen Dank für Deine Antwort.

Ich verwende 4.8.11 und habe alles so belassen wie's beim Beispielmandaten war.

Das "Phänomen" lässt sich auf http://www.simas.ch beobachten. Wenn Du z.B. test im Suchfeld oben rechts eingibst erscheint auch ein Resultat, dies hat aber die Adresse:
http://www.simas.ch/suchergebnisse/inde ... h=&level=1

Die anderen Urls funktionieren alle wunschgemäss.
Der Tipp mit frontend.no_outputbuffer funktioniert in diesem Zusammenhang leider auch nicht. Im Quelltext steht beim form action="/suchergebnisse/suchergebnisse.html"

An was könntest es liegen?

Danke und Gruss

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

Re: search_output und Advanced Mod Rewrite Plugin

Beitrag von xmurrix » Do 26. Feb 2009, 13:55

simas hat geschrieben:...
Ich verwende 4.8.11 und habe alles so belassen wie's beim Beispielmandaten war.
...
Die anderen Urls funktionieren alle wunschgemäss.
Der Tipp mit frontend.no_outputbuffer funktioniert in diesem Zusammenhang leider auch nicht. Im Quelltext steht beim form action="/suchergebnisse/suchergebnisse.html"

An was könntest es liegen?...
Ich habe mir das mal genauer angesehen, die Ursache liegt an der Modulausgabe des Moduls "Search_Output".
Du müsstest die folgenden Codezeilen ab Zeile 262

Code: Alles auswählen

                #Send output to template
                // this is just for sample client - modify to your needs!
                if ($cfg['url_builder']['name'] == 'front_content') {
                    $aParams = array('lang' => $lang, 'idcat' => $cat_id, 'idart' => $key);
                } else {
                    $aParams = array('search' => array('lang' => $lang, 'idcat' => $cat_id, 'idart' => $key), 
                                    'idcat' => $idcat, // needed to build category path
                                    'lang' => $lang, // needed to build category path
                                    'level' => 1); // needed to build category path
                }
ändern in

Code: Alles auswählen

                #Send output to template
                // this is just for sample client - modify to your needs!
                if ($cfg['url_builder']['name'] == 'front_content' || $cfg['url_builder']['name'] == 'MR' ) {
                    $aParams = array('lang' => $lang, 'idcat' => $cat_id, 'idart' => $key);
                } else {
                    $aParams = array('search' => array('lang' => $lang, 'idcat' => $cat_id, 'idart' => $key), 
                                    'idcat' => $idcat, // needed to build category path
                                    'lang' => $lang, // needed to build category path
                                    'level' => 1); // needed to build category path
                }
dann werden die Parameter übergeben, die auch vom AMR-Plugin verarbeitar sind.

Für Contenido gibt es verschiedene URL-Builder und die sind nicht kompatibel zueinander. Während die einen Parameter wie

Code: Alles auswählen

$aParams = array('lang' => $lang, 'idcat' => $cat_id, 'idart' => $key);
erwarten, möchten andere URL-Builder Parameter wie

Code: Alles auswählen

$aParams = array('search' => array('lang' => $lang, 'idcat' => $cat_id, 'idart' => $key), 
				'idcat' => $idcat, // needed to build category path
				'lang' => $lang, // needed to build category path
				'level' => 1); // needed to build category path
Solange das nicht einheitlich ist, das wird auch sehr wahrscheinlich nicht der Fall sein, muss man als Contenido User sich entweder auf einen URL-Builder entscheiden und die Modulcodes dann auf diesen Url-Builder anpassen, oder man baut überall das folgende Konstrukt rein:

Code: Alles auswählen

if ($cfg['url_builder']['name'] == 'front_content') {
	// parameter fuer url-builder 'front_content'
} elseif ($cfg['url_builder']['name'] == 'foobar') {
	// parameter fuer url-builder 'foobar'
} elseif ($cfg['url_builder']['name'] == 'mybuilder') {
	// parameter fuer url-builder 'mybuilder'
...usw...
} else {
	// default parameter fuer default url-builder
}
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.

simas
Beiträge: 153
Registriert: Fr 7. Mär 2003, 11:15
Wohnort: Gampelen, Schweiz
Kontaktdaten:

Re: search_output und Advanced Mod Rewrite Plugin

Beitrag von simas » Do 26. Feb 2009, 19:44

Hallo xmurrix,

PERFEKT! Nun funktioniert alles wie gewünscht.

Vielen Dank und Gruss
Simon

Kickbanignore
Beiträge: 37
Registriert: Mi 20. Jan 2010, 11:13
Kontaktdaten:

Re: search_output und Advanced Mod Rewrite Plugin

Beitrag von Kickbanignore » So 14. Apr 2013, 08:56

Hallo

Ich hatte auch Probleme mit dem AMR in Verbindung mit dem Standard-Modul "search_output" und die Tipps dieses Threads hatten nicht geholfen. :( Mittlerweile konnte ich es aber lösen.

Und zwar wurden die Links zu den Artikeln zwar richtig generiert und auch die Navigations-Ergebnis-Links (1, 2, 3, 4, etc.). Jedoch wurden die Links "vor" und "zurück" oder wie auch immer man die benennt hat, nicht richtig umgewandelt.

Ich hab dann im Modul "Search_Output" bei den Bereichen "#Build link to next result page" und "#Build link to previous result page" die Zeilen

Code: Alles auswählen

if ($aCfg['url_builder']['name'] == 'front_content' || $aCfg['url_builder']['name'] == 'MR') {
zu

Code: Alles auswählen

if ($cfg['url_builder']['name'] == 'front_content' || $cfg['url_builder']['name'] == 'MR') {
geändert. Also das "a" rausgenommen. Danach ging es.

Gesperrt