$this->fields['navOrder'] = array('type' => 'textarea', 'default' => 'index, chapters, print, friend, bookmark, pdf, archives, basket, fullscreen, sound, 3d, help, lang', 'editable' => true, 'label' => __('Ordre des icônes dans la nav'), 'grade' => 3);
$this->fields['tooltipTimer'] = array('type' => 'float', 'default' => 3, "editable" => true, 'label' => __("Temps maximum d'apparition des infos-bulles (en secondes)"));
- $this->fields['navExtraImage'] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Nav extra image (desktop)'), 'fileFilter' => $svgFilter);
- $this->fields['navExtraImageMobile'] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Nav extra image (mobile, optional)'), 'fileFilter' => $svgFilter);
- $this->fields['navExtraLink'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("URL for Nav extra image"));
+ $this->fields['navExtraImage'] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Nav extra image (desktop)'), 'fileFilter' => $svgFilter);
+ $this->fields['navExtraImageMobile'] = array('type' => 'freefile', 'default' => '', 'editable' => true, 'label' => __('Nav extra image (mobile, optional)'), 'fileFilter' => $svgFilter);
+ $this->fields['navExtraLink'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __("URL for Nav extra image"));
$this->forms['general'] = array('label' => __('Fonctionnalités générales'),
'fieldsnames' => array('navOrder', 'navExtraImage', 'navExtraImageMobile', 'navExtraLink', 'tooltipTimer', 'preload', 'pages', 'width', 'height'));
$this->fields['search'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Activer le moteur de recherche'));
$this->fields['highlightResults'] = array('type' => 'boolean', 'default' => true, 'editable' => true, 'label' => __('Surligner les résultats'));
+ $this->fields['highlightAllOccurences'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __('Surligner toutes les occurences'), 'hint' => __('Même sur les pages non considérées comme un résultat'));
$this->fields['ignoreSearch'] = array('type' => 'textarea', 'default' => '', 'editable' => true, 'label' => __('Mots à ignorer'),
'hint' => __('Liste des mots à ignorer séparés par des virgules'), 'grade' => 5);
$this->fields['ignoreSearchSeparators'] = array('type' => 'text', 'default' => '', 'editable' => true, 'label' => __('Caractères à ne pas considérer comme un séparateur de mot'));
+ $this->fields['ignoreWordLimit'] = ['type' => 'integer', 'default' => 3, 'editable' => true, 'label' => __('Ignorer les mots de moins de X caractères')];
$this->fields['textExtraction'] = array('type' => 'combo', 'default' => 'pdfbox', 'editable' => true, 'label' => __("Méthode d'extraction des textes"),
'datas' => array(__('PDFBox') => 'pdfbox',
__('Poppler') => 'poppler'));
$this->fields['searchShowNoResultsPages'] = array('type' => 'boolean', 'default' => false, 'editable' => true, 'label' => __("Afficher les pages sans résultats"));
+ $this->fields['searchPageSelectionAlgorithm'] = array('type' => 'combo', 'editable' => true, 'default' => 'AND',
+ 'datas' => [__('les double-pages qui contiennent tous les mots recherchés (ET logique)') => 'AND', __('les double-page qui contiennent un des mots recherché (OU logique)') => 'OR'], 'label' => __('Algorithme de sélection des résultats'));
+ $this->fields['searchWordSelectionAlgorithm'] = array('type' => 'combo', 'editable' => true, 'default' => 'begins',
+ 'datas' => [__('mot commençant par la requête') => 'begins', __('mot correspondant exactement à la requête') => 'exact', __('mot contenant la requête') => 'contains'],
+ 'label' => __('Algorithme de sélection des occurences'));
$this->forms['search'] = array('label' => __('Moteur de recherche'),
- 'fieldsnames' => array('search', 'highlightResults', 'searchShowNoResultsPages', '|', 'ignoreSearch', 'ignoreSearchSeparators', 'textExtraction'));
+ 'fieldsnames' => array('search', '|', 'ignoreWordLimit', 'ignoreSearch', 'ignoreSearchSeparators',
+ '|', 'searchWordSelectionAlgorithm', 'searchPageSelectionAlgorithm',
+ '|', 'highlightResults', 'highlightAllOccurences',
+ '|', 'searchShowNoResultsPages',
+ '|', 'textExtraction'));
$this->fields['soundTheme'] = array('type' => 'combo', 'default' => 'classic', 'editable' => true, 'label' => __("Thème sonore"),
'datas' => array(__('Pas de son') => '',