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.
selecteur_generique/selecteurgenerique_fonction...

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';
}