Zum Inhalt springen

Keine Such-Ergebnisse, wenn eingeloggt

Erstellt am 16. November 2006 · 5 Antworten · letzte Antwort am 3. Juni 2012

Tags: Frontend-Benutzer, Suche, Frage

Uwe82 ·

Hallo,

ich setze die aktuelle Version von indexed_search ein und dazu den crawler. Das Crawling funktioniert inzwischen auch einwandfrei, aber ich habe eine seltsame Entdeckung gemacht.

Im normalen Modus (nicht eingeloggt) werden alle Ergebnisse aufgelistet. Sobald ich mich aber im Frontend einlogge, bekomme ich alle Suchergebnisse, die über den crawler indexiert wurden, nicht mehr aufgelistet.

Indexiere ich nun über Frontend-Zugriff werden diese Seiten auch wieder im eingeloggten Zustand gefunden.

Kennt jemand den Grund hierfür?

T0m ·

ich bekomm garkeine Suchergebnisse wenn ich eingeloggt bin ?
wie hab ich denn des geschafft 🙁

Gruss TOm

Uwe82 ·

Du willst mir damit sagen, dass Du das Problem auch hast?

Hat jemand noch etwas zu diesem Problem mitzuteilen? Wäre relativ dringend, da das Projekt dem Ende nahe ist :o

Zappelphilipp ·

Hi,
ich hab, bzw. hatte, das gleiche Problem.

Als Lösung hab ich ein wenig im PHP-Code rumgerührt.
In der class.tx_indexedsearch.php hab ich die Funktion checkResume ein wenig modifiziert:

      if (strcmp($row['gr_list'],$GLOBALS['TSFE']->gr_list))  {
          // Selecting for the grlist records belonging to the phash-row where the current users gr_list exists. If it is found it is proof that this user has direct access to the phash-rows content although he did not himself initiate the indexing...
        $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('phash', 'index_grlist', 'phash='.intval($row['phash']).' AND gr_list='.$GLOBALS['TYPO3_DB']->fullQuoteStr($GLOBALS['TSFE']->gr_list, 'index_grlist'));
        if ($GLOBALS['TYPO3_DB']->sql_num_rows($res)) {

geändert in:

      if (strcmp($row['gr_list'],$GLOBALS['TSFE']->gr_list))  {
          // Selecting for the grlist records belonging to the phash-row where the current users gr_list exists. If it is found it is proof that this user has direct access to the phash-rows content although he did not himself initiate the indexing...
        if(!$this->conf['search.']['allow_group'])
          $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('phash', 'index_grlist', 'phash='.intval($row['phash']).' AND gr_list='.$GLOBALS['TYPO3_DB']->fullQuoteStr($GLOBALS['TSFE']->gr_list, 'index_grlist'));
        else
          $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('phash', 'index_grlist', 'phash='.intval($row['phash']).' AND gr_list IN ('.$GLOBALS['TYPO3_DB']->fullQuoteStr($GLOBALS['TSFE']->gr_list, 'index_grlist').','.$GLOBALS['TYPO3_DB']->fullQuoteStr($this->conf['search.']['allow_group'],'index_grlist').')');
        if ($GLOBALS['TYPO3_DB']->sql_num_rows($res)) {

Dann über TS:

plugin.tx_indexedsearch.search.allow_group=0,-1

0,-1 ist die Default-Berechtigung in der indexed search. Also für dann, wenn jemand nicht eingelogt ist.

Ob das alles so richtig is, was ich da verzapft hab, kann ich nich genau sagen. 😉
Jetzt bekommen aber alle neuen User wenigstens ein paar Suchergebnisse. 8-)

... Langzeitwirkungen werden noch untersucht...

Ach ja... mit show.forbiddenRecords=1 bekommt man auch alle Ergebnisse. Aber da halt auch die, die durch die Berechtigungen normalerweise nicht zugängig sind.