Suche in passwortgeschützten Bereichen

Gesperrt
smart

Suche in passwortgeschützten Bereichen

Beitrag von smart »

Liebe Community,
ich betreue eine Seite, die passwortgeschützte Bereiche im Frontend hat, auf die man nur per Login zugreifen kann.

Leider habe ich nun festgestellt, dass diese über die Suchfunktion gar nicht indexiert werden. Auch nicht, wenn der Benutzer mit Rechten auf Zugriff zu diesen Kategorien eingeloggt ist.

Habt ihr einen Tipp? Ich dachte an einen Hinweis für alle, dass man sich erst einloggen muss - und danach eine ganz normale Ergebnisliste für alleEingeloggten.

Ist so etwas umsetzbar?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ich bin mir jetzt nicht sicher, aber class.search.php hat eine option geschützte seiten ebenfalls zu durchsuchen.. (ich bin mir sicher das diese seiten auch indiziert werden...)
such dort einfach mal nach protected

du musst dann an sich nur mehr diesen parameter beim suchmodul mit berücksichtigen, wenn der user eingelogged ist...
*** make your own tools (wishlist :: thx)
smart

Beitrag von smart »

Leider bin ich kein PHP-Experte, aber unter dem Begriff "protected" ist in der class.search.php nichts zu finden... :-(
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

smart hat geschrieben:Leider bin ich kein PHP-Experte, aber unter dem Begriff "protected" ist in der class.search.php nichts zu finden... :-(
Dann solltest du deinen Text-/PHP-Editor nochmal suchen lassen. Oder schau mal direkt in Zeile 796 (Contenido 4.6.8 ).
smart

Beitrag von smart »

Sorry, hatte nicht bemerkt, dass sich nach dem Update meines Weaverslave das Suchfenster verändert hat...

Habe nun also folgende Codestelle gefunden:

Code: Alles auswählen

    /**
     * Constructor
	 *
	 * @param array $options
	 * $options['db'] 'regexp' => DB search with REGEXP; 'like' => DB search with LIKE; 'exact' => exact match;
	 * $options['combine'] 'and', 'or' Combination of search words with AND, OR
	 * $options['exclude'] 'true'  => searchrange specified in 'cat_tree', 'categories' and 'articles' is excluded; 'false' => searchrange specified in 'cat_tree', 'categories' and 'articles' is included
     * $options['cat_tree']  e.g. array(8) => The complete tree with root 8 is in/excluded from search
     * $options['categories'] e.g. array(10, 12) => Categories 10, 12 in/excluded 
     * $options['articles'] e.g. array(23) => Article 33 in/excluded
	 * $options['artspecs'] => e.g. array(2, 3) => search only articles with certain article specifications
	 * $options['protected'] 'true' => do not search articles which are offline (locked) or articles in catgeories which are offline (protected)
	 * $options['dontshowofflinearticles'] 'false' => search offline articles or articles in categories which are offline
	 * $options['searchable_articles'] array of article ID's which should be searchable
	 * 
     * @return void
     */
    function Search($options, $oDB = false)
    {
    	# TODO: avoid globals
	    global $cfg, $lang, $client;
    	
    	$this->cfg = $cfg;
    	$this->lang = $lang;
    	$this->client = $client;
    	$this->bDebug = false;
		if ($oDB == false)
    	{
			$this->db = new DB_Contenido;
    	}elseif(is_object($oDB))
    	{
    		$this->db = &$oDB;
    	}
		$this->index = new Index($oDB);
		
		$this->cms_type = $this->index->cms_type;
		$this->cms_type_suffix = $this->index->cms_type_suffix;
		
		$this->search_option = (array_key_exists('db', $options)) ? strtolower($options['db']) : 'regexp';
		$this->search_combination = (array_key_exists('combine', $options)) ? strtolower($options['combine']) : 'or';
		$this->protected = (array_key_exists('protected', $options)) ? $options['protected'] : true;
		$this->dontshowofflinearticles = (array_key_exists('dontshowofflinearticles', $options)) ? $options['dontshowofflinearticles'] : false;
		$this->exclude = (array_key_exists('exclude', $options)) ? $options['exclude'] : true;
		$this->article_specs = (array_key_exists('artspecs', $options) AND is_array($options['artspecs'])) ? $options['artspecs'] : array(); 
		$this->index->setCmsOptions($this->cms_type_suffix);
		
		if (array_key_exists('searchable_articles', $options) AND is_array($options['searchable_articles']))
		{ 							
			$this->searchable_arts = $options['searchable_articles'];
		}else
		{
			$this->searchable_arts = $this->getSearchableArticles($options);
		}		
	}
Da ich - wie gesagt - keine große PHP-Ahnung habe:
Wo sollte ich denn nun die Zeile

Code: Alles auswählen

$options['dontshowofflinearticles'] 'false' => search offline articles or articles in categories which are offline
einfügen? Vor der letzten }-Klammer?

Sorry für diese Noob-Fragen - würde mich freuen, wen mir jemand helfen könnte. Für alle bisherigen Tipps ein dickes Dankschön!
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

im suchmodul findet sich ja etwas wie das hier:

Code: Alles auswählen

      $options = array ('db' => 'regexp', // use db function regexp 
      'combine' => $combine, // combine searchterms with and 
      'exclude' => false, // => searchrange specified in 'cat_tree', 'categories' and 'articles' is excluded, otherwise included (exclusive) 
      'cat_tree' => $aSearchRange, // searchrange 
      'artspecs' => $aArtSpecs, // array of article specifications => search only articles with these artspecs 
   'protected' => true); // => do not search articles or articles in categories which are offline or protected 

   $search = new Search($options); 
es sollte reichen

Code: Alles auswählen

'protected' => true
auf

Code: Alles auswählen

'protected' => false
zu setzen...
*** make your own tools (wishlist :: thx)
smart

Beitrag von smart »

Gesagt, getan - funktioniert aber leider noch immer nicht... :-(
Weiterhin keine Suchergebnisse...
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ich könnte mir noch vorstellen, dass deine geschützten kategorien nicht in der searchrange definiert sind... (eventuell mal bei den mandanten settings nachsehen...)

sonst kann ich dir momentan keine weiteren tipps geben..
*** make your own tools (wishlist :: thx)
smart

Beitrag von smart »

Dort habe ich folgendes gefunden:
Bild

Dann habe ich die geschützten Kategorien (85,86) einfach beim Wert hinzugefügt. Leider immer noch ohne Erfolg. Ich habe es so aber richtig verstanden, oder?

Was hat es denn mit diesem Searchrange auf sich?
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

smart hat geschrieben:Was hat es denn mit diesem Searchrange auf sich?
searchrange include verlangt nach einer idcat, die dann rekusiv abwärts ind die suche it aufgenommen wird

hat dein baum der zu includieren ist die 1, dann wird der komplette baum includiert
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
smart

Beitrag von smart »

Habe jetzt 85,86 durch die jeweils übergeordneten Kategorien ersetzt (74,75) - obwohl eh alle im Baum 1 liegen. Trotzdem kein Ergebnis. Hilfe!!!
smart

Beitrag von smart »

Niemand? *bump*
smart

Beitrag von smart »

*mal wieder nach oben schieb*
Gesperrt