[TYPO3-english] Crawler Configuration and protected content

Russel Anderson dkages at hotmail.com
Tue Oct 4 22:30:02 CEST 2011


Thank you all for your answers.

While solr appears to be kind of overkill for my project, I will 
certainly look into extending indexedsearch.

King Regards,

Russel


On 29/09/2011 4:59 AM, Patrick Schriner wrote:
> On Wed, 28 Sep 2011 16:43:22 +0200, Russel Anderson <dkages at hotmail.com>
> wrote:
>
>> Hello everyone,
>>
>> I manage a Typo3 website for an NGO that uses about 2 dozens of
>> frontend groups for about 3,000 frontend users. Consequently they have
>> close to 50 frontend group combinations.
>>
>> I am currently trying to setup indexed_search & crawler and it is my
>> understanding that the content must be crawled with all feuser
>> combinations so that all users can get fairly the same search results
>> [1].
>>
>> I don’t know how to configure indexed_search/crawler to fit all those
>> profiles. I mean, I want to avoid creating 50 crawler configuration
>> records in tree’s root (will result in astronomical crawler queue). As
>> a side note, I use sr_feuser_register to register all my users so they
>> all belong, at least, to a base group called "feuserapproved". I would
>> be satisfied that all users belonging "at least" to this group could
>> see all the content reserved for this group. Is it possible to achieve
>> that with indexed_search/crawler?
>>
>> Does anyone have a suggestion/workaround to this problem?
>
> I solved this by creating an xclass to tx_indexedsearch
>
> Roughly my solution goes like this:
>
> class ux_tx_indexedsearch extends tx_indexedsearch {
> var $checkGroups;
> function initialize(){
> $this->checkGroups = $GLOBALS['TSFE']->gr_list;
> $groupfilter = $this->conf['ux.']['groupfilter'];
> if($groupfilter){
> $groupfilter = explode(',',$groupfilter);
> if(is_array($groupfilter)){
> $this->checkGroups = explode(',',$this->checkGroups);
> $this->checkGroups = array_diff($this->checkGroups,$groupfilter);
> $this->checkGroups = implode(',',$this->checkGroups);
> }
> }
> parent::initialize();
> }
> function checkResume($row) {
> $save = $GLOBALS['TSFE']->gr_list;
> $GLOBALS['TSFE']->gr_list = $this->checkGroups;
> $result = parent::checkResume($row);
> $GLOBALS['TSFE']->gr_list = $save;
> return $result;
> }
> }
>
> This will make indexed_search "drop" those groups which are configured
> by ux.groupfilter. Thereby IF you know some groups are more like "marker
> groups" and not really used to distinguish content, you can lower you
> the number of search configurations considerably.
>
> Originally I had planned to expand this to a full aliasing, but the
> above served our need well enough.
>
> I could think of more elegant solutions, like checking "pages" and
> "tt_content" for usergroups that really occur.
>
> Note: If you use an extension like pmkisac, you will have to apply a
> similar patch in that extension as well!
>
>>
>> Regards,
>>
>> Russel
>>
>> ---
>> [1] On this topic, see Xavier’s excellent article:
>>
>> http://xavier.perseguers.ch/tutoriels/typo3/articles/indexed-search-crawler.html#c868
>>
>>
>> Particularly the Protected Content section which says: “you have to
>> provide a Crawler Configuration for each and every subset of user
>> groups you have”
>
> Regards,
> Patrick Schriner



More information about the TYPO3-english mailing list