thelia/tnt-search-module

Installs: 296

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 6

Forks: 4

Open Issues: 2

Language:HTML

Type:thelia-module

0.7.3 2021-12-21 17:18 UTC

This package is auto-updated.

Last update: 2022-05-17 13:50:10 UTC


README

This module provides TNTSearch feature to Thelia. TNTSearch is a full-featured full text search (FTS) engine written entirely in PHP.

The module could be used in front-office, using the dedicated loop. It also replaces the standard back-office search.

Installation

Manually

  • Copy the module into <thelia_root>/local/modules/ directory and be sure that the name of the module is TntSearch.
  • Activate it in your thelia administration panel

Composer

Add it in your main thelia composer.json file

composer require thelia/tnt-search-module:~0.6.1

Configuration

The search indexes will be updated each time a product, category, folder, content, brand, ... is updated in the back-office. This could take some time, depending on your configuration. You can disable this reali-time udate in the module configuration, to speed up back-office changes.

In this case, you have to rebuild the indexes manually, using the Rebuild Indexes button in the module configuiration page, or automatically using a cron which trigger the index build from time to time with this Thelia command: Thelia tntsearch:indexes

Thelia Loops

tnt-search loop

This loops return ids of the elements selected.

Input arguments

Arguments Description
search_for A list of elements you want to search for (products, categories, folders, contents, brands, orders or customers)
langs A list of lang you want to search on ex: 'fr_FR, en_US'
search The search term to look for

Output arguments

Variable Description
$PRODUCTS A list of product ids or 0
$CATEGORIES A list of category ids or 0
$BRANDS A list of brand ids or 0
$FOLDERS A list of folder ids or 0
$CONTENTS A list of content ids or 0
$CUSTOMERS A list of customer ids or 0
$ORDERS A list of order ids or 0

Example

To use this loop you need to combine it with another loop

{loop type="tnt-search" name="product-tnt-search-loop" search_for="products" langs="fr_FR" search=$search}
    {loop type="product" name="product-loop" id=$PRODUCTS order="given_id"}
        Put your code here
    {/loop}
{/loop}

The order="given_id" is important because TNTSearch return the ids in order of pertinence.