You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
PHP
44 lines
1.1 KiB
PHP
<?php
|
|
|
|
if (!defined("_ECRIRE_INC_VERSION")) return;
|
|
|
|
/**
|
|
* Critere `{contenu_auteur_select}` qui recherche un·e auteur / autrice
|
|
*
|
|
* Récupère la valeur de query-string `q` pour effectuer la recherche.
|
|
*
|
|
* @syntaxe
|
|
* - `{contenu_auteur_select #ENV{q}} : dans tout le nom
|
|
* - `{contenu_auteur_select #ENV{q}, strict} : uniquement depuis le début du nom
|
|
*
|
|
* @critere contenu_auteur_select
|
|
*/
|
|
function critere_contenu_auteur_select_dist($idb, &$boucles, $crit) {
|
|
$boucle = &$boucles[$idb];
|
|
|
|
$debut = ($crit->param[0][0]->texte ?? null) === 'strict' ? '' : '%';
|
|
|
|
// un peu trop rapide, ca... le compilateur exige mieux (??)
|
|
// on ne cherche pas dans la bio etc
|
|
// si on peut trouver direct dans le nom ou l'email
|
|
$boucle->hash .= "
|
|
// RECHERCHE
|
|
\$s = 1;
|
|
if (\$r = _request('q')) {
|
|
\$r = _q('{$debut}' . \$r . '%');
|
|
\$s = \"(
|
|
auteurs.nom LIKE \$r
|
|
OR auteurs.email LIKE \$r";
|
|
if ($debut) {
|
|
$boucle->hash .= '
|
|
OR auteurs.bio LIKE $r
|
|
OR auteurs.nom_site LIKE $r
|
|
OR auteurs.url_site LIKE $r
|
|
';
|
|
}
|
|
$boucle->hash .= ")\";\n";
|
|
$boucle->hash .= "}";
|
|
|
|
$boucle->where[] = '$s';
|
|
}
|