diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php index a9722202c2303e976551cef6e9b2724693e46f38..09ef02b4420c0acda6b736c7d0e8461155013270 100644 --- a/ecrire/public/composer.php +++ b/ecrire/public/composer.php @@ -19,7 +19,7 @@ include_spip('inc/documents'); include_spip('inc/forum'); include_spip('inc/distant'); include_spip('inc/rubriques'); # pour calcul_branche (cf critere branche) -include_spip('public/debug'); # toujours prévoir le pire +include_spip('public/debug'); # toujours prevoir le pire # Charge et retourne un composeur, i.e. la fonction principale d'un squelette # ou '' s'il est inconnu. Le compile au besoin @@ -313,6 +313,27 @@ function calcul_exposer ($id, $type, $reference) { return $exposer[$type][$id]; } +function lister_objets_avec_logos ($type) { + $type_logos = array( + 'hierarchie' => 'rub', + 'rubriques' => 'rub', + 'articles' => 'art', + 'breves' => 'breve', + 'mots' => 'mot', + 'sites' => 'site', + 'auteurs' => 'aut' + ); + + $logos = array(); + if ($type = $type_logos[$type]) { + $a = preg_files(_DIR_IMG.$type.'on[0-9]+\.(gif|png|jpg)$'); + foreach ($a as $f) + $logos[] = intval(substr($f, strlen(_DIR_IMG.$type.'on'))); + } + + return join(',',$logos); +} + function table_from_primary($id) { global $tables_principales; include_spip('base/serial'); diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index 50e09bbc91e1a2fffe94af76a7d46259dab87d79..6a8968f8dc0cd2deada4ee9bee120985bbf8c14a 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -185,6 +185,22 @@ function critere_branche_dist($idb, &$boucles, $crit) { $boucle->where[]= $c; } +// {logo} liste les objets qui ont un logo +function critere_logo_dist($idb, &$boucles, $crit) { + $not = $crit->not; + $boucle = &$boucles[$idb]; + + $c = "calcul_mysql_in('" . + $boucle->id_table . '.' . $boucle->primary + . "', lister_objets_avec_logos(". $boucle->type_requete ."), '')"; + if ($crit->cond) $c = "($arg ? $c : 1)"; + + if ($not) + $boucle->where[]= array("'NOT'", $c); + else + $boucle->where[]= $c; +} + // Tri : {par xxxx} // http://www.spip.net/@par function critere_par_dist($idb, &$boucles, $crit) {