Ergebnis 1 bis 1 von 1

Thema: Bug oder Fehlerhafte Nutzung (getSearchablePages und auto_item)?

  1. #1
    Contao-Nutzer
    Registriert seit
    14.06.2010.
    Beiträge
    81

    Standard Bug oder Fehlerhafte Nutzung (getSearchablePages und auto_item)?

    Hallo Zusammen,

    Folgendes Problem ist bei mir aufgetreten (Version 2.11.6):
    1) Ich habe ein eigenes Content Element erstellt, welches auf einer Seite (home.html) eingefügt ist. Mit Hilfe von auto_item (In Einstellungen wurde es aktiviert) verwende ich schöne URLs:
    http://localhost/home/firma1.html
    http://localhost/home/firma2.html
    usw.
    Das Content Element funktioniert einwandfrei -> also im auto_item steht entweder firma1 oder firma2 drinnen.

    2) Gleichzeitig will ich jetzt aber auch meine neue 2 Seiten in den Suchindex einbauen, dafür habe ich den HOOK getSearchablePages verwendet. Die Seiten werden jetzt zwar beim Klicken auf System->Systemwartung->"Suchindex neu aufbauen" aufgelistet, aber in der tl_search Tabelle nicht eingetragen.

    Ich habe deshalb den Code genau angeschaut und bin auch folgendes Problem gestoßen (FrontendTemplate Output Funktion).

    Am Ende dieser output Funktion wird $this->Search->indexPage aufgerufen (Output in der tl_search Tabelle speichern wenn nötig). Hier wird ohne obige Änderung aber beim url-Parameter http://localhost/home.html statt http://localhost/home/firma1.html übergeben (wenn ich die Seite http://localhost/home/firma1.html aufrufe), wodurch immer nur die falsche URL im Index gespeichert wurde. Aus meinen zwei Seiten home/firma1.html und home/firma2.html haben beide als URL home.html, wodurch diese auch nur einmal in tl_search eingetragen wird.


    Mit folgenden 2 Änderungen (fett) in der FrontendTemplate output Funktion funktioniert alles einwandfrei:
    Code:
    public function output()
    	{
    		global $objPage;
    
    		// Ignore certain URL parameters 
    		$arrIgnore = array('id', 'file', 'token', 'page', 'day', 'month', 'year');
    
    		//LUDI
    		/*if ($GLOBALS['TL_CONFIG']['useAutoItem'])
    		{
    			$arrIgnore[] = 'auto_item';
    		}*/
    		if ($GLOBALS['TL_CONFIG']['addLanguageToUrl'])
    		{
    			$arrIgnore[] = 'language';
    		}
    
    		$strParams = '';
    
    		// Rebuild the URL to eliminate duplicate parameters
    		foreach (array_keys($_GET) as $key)
    		{
    			if (!in_array($key, $arrIgnore))
    			{
    				if ($GLOBALS['TL_CONFIG']['useAutoItem'] && (in_array($key, $GLOBALS['TL_AUTO_ITEM']) || $key =='auto_item'))
    				{
    					$strParams .= '/' . $this->Input->get($key);
    				}
    				else
    				{
    					$strParams .= '/' . $key . '/' . $this->Input->get($key);
    				}
    			}
    		}

    Die 1. if Bedingung (if ($GLOBALS['TL_CONFIG']['useAutoItem'])) musste auskommentiert werden, ansonsten wird in meinem Fall der Parameter firma1 bzw. firma2 immer entfernt. Weiters muss der Parmeter auch im "// Rebuild the URL to eliminate duplicate parameters" Bereich wieder korrekt zusammengebaut werden --> Änderung 2.



    Jetzt meine konkrete Frage:
    Verwende ich es falsch, oder gibt es in der aktuellen Version ein Problem mit dem Suchindex, wenn man auto_item verwendet?
    Mit obigen 2 Anpassungen funktioniert jetzt bei mir alles genau so wie ich es mir erwartet habe.

    Schöne Grüße
    Ludi
    Geändert von ludi (19.10.2012 um 08:49 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •