search en test

This commit is contained in:
fredtempez 2021-04-08 19:29:40 +02:00
parent 6084179d1d
commit 0f3cdfe3c6
4 changed files with 57 additions and 35 deletions

View File

@ -1587,7 +1587,7 @@ class common {
} }
// Version 10.6.00 // Version 10.6.00
if ($this->getData(['core', 'dataVersion']) < 10600) { if ($this->getData(['core', 'dataVersion']) < 106) {
// Mise à jour des données des modules autonomes // Mise à jour des données des modules autonomes

View File

@ -5,6 +5,9 @@ class init extends search {
'resultHideContent' => false, 'resultHideContent' => false,
'placeHolder' => 'Un ou plusieurs mots-clés séparés par un espace ou par +', 'placeHolder' => 'Un ou plusieurs mots-clés séparés par un espace ou par +',
'submitText' => 'Rechercher', 'submitText' => 'Rechercher',
'versionData' => '2.0' 'versionData' => '2.0'
];
public static $defaultTheme = [
'keywordColor' => 'rgba(229, 229, 1, 1)'
]; ];
} }

View File

@ -51,24 +51,34 @@ class search extends common {
* Appelée par les fonctions index et config * Appelée par les fonctions index et config
*/ */
private function update() { private function update() {
return;
// Initialisation d'un nouveau module
$this->initCss($this->getUrl(0));
// Version 2.0 // Version 2.0
// Déplacement des données de l'instance
if (version_compare($this->getData(['module', $this->getUrl(0), 'config', 'versionData']), '2.0', '<') ) { if (version_compare($this->getData(['module', $this->getUrl(0), 'config', 'versionData']), '2.0', '<') ) {
// Données de l'instance
$data = $this->getData(['module', $this->getUrl(0)]); $data = $this->getData(['module', $this->getUrl(0)]);
// Feuille de style
$fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '.css' ;
$this->setData(['module', $this->getUrl(0), 'config', [ $this->setData(['module', $this->getUrl(0), 'config', [
'submitText' => $this->getData(['module', $this->getUrl(0), 'submitText']), 'submitText' => $this->getData(['module', $this->getUrl(0), 'submitText']),
'placeHolder' => $this->getData(['module', $this->getUrl(0), 'placeHolder']), 'placeHolder' => $this->getData(['module', $this->getUrl(0), 'placeHolder']),
'resultHideContent' => $this->getData(['module', $this->getUrl(0), 'resultHideContent']), 'resultHideContent' => $this->getData(['module', $this->getUrl(0), 'resultHideContent']),
'previewLength' => $this->getData(['module', $this->getUrl(0), 'previewLength']), 'previewLength' => $this->getData(['module', $this->getUrl(0), 'previewLength']),
'keywordColor' => $this->getData(['module', $this->getUrl(0), 'keywordColor']),
'style' => self::DATADIRECTORY . $this->getUrl(0) . '.css',
'versionData' => '2.0' 'versionData' => '2.0'
]]); ]]);
$this->setData(['module', $this->getUrl(0), 'theme', [
'keywordColor' => $this->getData(['module', $this->getUrl(0), 'keywordColor']),
'style' => $fileCSS
]]);
// Dossier de l'instance
if (!is_dir(self::DATADIRECTORY)) {
mkdir (self::DATADIRECTORY, 0777, true);
}
// Générer la feuille de CSS
$style = '.searchItem {background: ' . $this->getData(['module', $this->getUrl(0), 'theme', 'keywordColor']) . ';}';
// Sauver la feuille de style
$success = file_put_contents( $fileCSS, $style);
// Nettoyage des données précédentes
$this->deleteData(['module', $this->getUrl(0), 'submitText']); $this->deleteData(['module', $this->getUrl(0), 'submitText']);
$this->deleteData(['module', $this->getUrl(0), 'placeHolder']); $this->deleteData(['module', $this->getUrl(0), 'placeHolder']);
$this->deleteData(['module', $this->getUrl(0), 'resultHideContent']); $this->deleteData(['module', $this->getUrl(0), 'resultHideContent']);
@ -78,47 +88,49 @@ class search extends common {
} }
/** /**
* Initialisation du thème du module * Initialisation du module
* Appelée par les fonctions index et config
*/ */
private function initCss($moduleId){ private function init($moduleId){
// Variable commune // Variable commune
$fileCSS = self::DATADIRECTORY . $moduleId . '.css' ; $fileCSS = self::DATADIRECTORY . $moduleId . '.css' ;
// Absence des données CSS // Données du module
if ( $this->getData(['module', $moduleId, 'config', 'keywordColor']) === null ) { require_once('module/search/ressource/defaultdata.php');
$this->setData(['module', $moduleId, 'config',init::$defaultData ]);
// Données de thème
$this->setData(['module', $moduleId, 'theme',init::$defaultTheme ]);
// Feuille de style
// Générer la feuille de CSS
$style = '.searchItem {background: rgba(229, 229, 1, 1);}';
$this->setData(['module', $moduleId, 'config', 'keywordColor', 'rgba(229, 229, 1, 1)']); // Dossier de l'instance
if (!is_dir(self::DATADIRECTORY)) {
mkdir (self::DATADIRECTORY, 0777, true);
} }
// Absence de la feuille de style
if (!file_exists(self::DATADIRECTORY . $moduleId . '.css') ) {
// Générer la feuille de CSS
$style = '.searchItem {background: rgba(229, 229, 1, 1);}';
// Dossier de l'instance // Sauver la feuille de style
if (!is_dir(self::DATADIRECTORY)) { file_put_contents(self::DATADIRECTORY .$moduleId . '.css' , $style );
mkdir (self::DATADIRECTORY, 0777, true);
}
// Sauver la feuille de style // Stocker le nom de la feuille de style
$success = file_put_contents(self::DATADIRECTORY .$moduleId . '.css' , $style ); $this->setData(['module', $moduleId, 'theme', 'style', self::DATADIRECTORY . $moduleId . '.css']);
// Nom de la feuille de style
$this->setData(['module', $moduleId, 'config', 'style', self::DATADIRECTORY . $moduleId . '.css']);
}
} }
// Configuration vide // Configuration vide
public function config() { public function config() {
// Initialisation d'un nouveau module
if ($this->getData(['module', $this->getUrl(0)]) === null) {
$this->init($this->getUrl(0));
}
// Mise à jour des données de module // Mise à jour des données de module
$this->update(); $this->update();
if($this->isPost()) { if($this->isPost()) {
// Générer la feuille de CSS // Générer la feuille de CSS
$style = '.searchItem {background:' . $this->getInput('searchKeywordColor') . ';}'; $style = '.keywordColor {background:' . $this->getInput('searchKeywordColor') . ';}';
// Dossier de l'instance // Dossier de l'instance
if (!is_dir(self::DATADIRECTORY)) { if (!is_dir(self::DATADIRECTORY)) {
mkdir (self::DATADIRECTORY , 0777, true); mkdir (self::DATADIRECTORY , 0777, true);
@ -133,9 +145,11 @@ class search extends common {
'placeHolder' => $this->getInput('searchPlaceHolder'), 'placeHolder' => $this->getInput('searchPlaceHolder'),
'resultHideContent' => $this->getInput('searchResultHideContent',helper::FILTER_BOOLEAN), 'resultHideContent' => $this->getInput('searchResultHideContent',helper::FILTER_BOOLEAN),
'previewLength' => $this->getInput('searchPreviewLength',helper::FILTER_INT), 'previewLength' => $this->getInput('searchPreviewLength',helper::FILTER_INT),
'versionData' => $this->getData(['module', $this->getUrl(0), 'config', 'versionData'])
]]);
$this->setData(['module', $this->getUrl(0), 'theme',[
'keywordColor' => $this->getInput('searchKeywordColor'), 'keywordColor' => $this->getInput('searchKeywordColor'),
'style' => $success ? self::DATADIRECTORY . $this->getUrl(0) . '.css' : '', 'style' => $success ? self::DATADIRECTORY . $this->getUrl(0) . '.css' : '',
'versionData' => $this->getData(['module', $this->getUrl(0), 'config', 'versionData'])
]]); ]]);
@ -159,6 +173,11 @@ class search extends common {
public function index() { public function index() {
// Initialisation d'un nouveau module
if ($this->getData(['module', $this->getUrl(0)]) === null) {
$this->init($this->getUrl(0));
}
// Mise à jour des données de module // Mise à jour des données de module
$this->update(); $this->update();
@ -312,7 +331,7 @@ class search extends common {
'view' => 'index', 'view' => 'index',
'showBarEditButton' => true, 'showBarEditButton' => true,
'showPageContent' => !$this->getData(['module', $this->getUrl(0), 'config', 'resultHideContent']), 'showPageContent' => !$this->getData(['module', $this->getUrl(0), 'config', 'resultHideContent']),
'style' => $this->getData(['module', $this->getUrl(0), 'config', 'style']) 'style' => $this->getData(['module', $this->getUrl(0), 'theme', 'style'])
]); ]);
} else { } else {
// Valeurs en sortie, affichage du formulaire // Valeurs en sortie, affichage du formulaire
@ -361,7 +380,7 @@ class search extends common {
// Découper l'aperçu // Découper l'aperçu
$t = substr($contenu, $d ,$this->getData(['module',$this->getUrl(0), 'config', 'previewLength'])); $t = substr($contenu, $d ,$this->getData(['module',$this->getUrl(0), 'config', 'previewLength']));
// Applique une mise en évidence // Applique une mise en évidence
$t = preg_replace($keywords, '<span class= "searchItem">\1</span>',$t); $t = preg_replace($keywords, '<span class= "keywordColor">\1</span>',$t);
// Sauver résultat // Sauver résultat
$resultat .= '<p class="searchResult">'.$t.'...</p>'; $resultat .= '<p class="searchResult">'.$t.'...</p>';
$resultat .= '<p class="searchTitle">' . count($matches[0]) . (count($matches[0]) === 1 ? ' correspondance<p>' : ' correspondances<p>'); $resultat .= '<p class="searchTitle">' . count($matches[0]) . (count($matches[0]) === 1 ? ' correspondance<p>' : ' correspondances<p>');

View File

@ -59,7 +59,7 @@
'class' => 'colorPicker', 'class' => 'colorPicker',
'help' => 'Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.', 'help' => 'Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.',
'label' => 'Surlignement', 'label' => 'Surlignement',
'value' => $this->getData(['module', $this->getUrl(0), 'config', 'keywordColor']) 'value' => $this->getData(['module', $this->getUrl(0), 'theme', 'keywordColor'])
]); ?> ]); ?>
</div> </div>
</div> </div>