/** * Crée l'affichage des listes de rubriques dans le privé * * @param int $collection * L'identifiant numérique de la rubrique à lister * @param int $debut * Le numéro de la pagination si paginé (> 500) * @param int $limite * Le pas de pagination si paginé (> 500) * @return array $res * Un tableau des sous rubriques */ function enfant_rub($collection, $debut = 0, $limite = 500) { $voir_logo = (isset($GLOBALS['meta']['image_process']) and $GLOBALS['meta']['image_process'] != "non"); $logo = ""; if ($voir_logo) { $chercher_logo = charger_fonction('chercher_logo', 'inc'); include_spip('inc/filtres_images_mini'); } $res = array(); $result = sql_select("id_rubrique, id_parent, titre, descriptif, lang ", "spip_rubriques", "id_parent={$collection}", '', '0+titre,titre', "{$debut},{$limite}"); while ($row = sql_fetch($result)) { $id_rubrique = $row['id_rubrique']; $id_parent = $row['id_parent']; $titre = generer_info_entite($id_rubrique, 'rubrique', 'titre'); // pour etre sur de passer par tous les traitements if ('' !== ($rang = recuperer_numero($row['titre']))) { $rang = "{$rang}. "; } if (autoriser('voir', 'rubrique', $id_rubrique)) { $les_sous_enfants = sous_enfant_rub($id_rubrique); changer_typo($row['lang']); $lang_dir = lang_dir($row['lang']); $descriptif = propre($row['descriptif']); if ($voir_logo) { if ($logo = $chercher_logo($id_rubrique, 'id_rubrique', 'on')) { list($fid, $dir, $nom, $format) = $logo; $logo = image_reduire("<img src='{$fid}' alt='' />", 48, 36); if ($logo) { $logo = inserer_attribut($logo, 'class', 'logo'); } } } $lib_bouton = (!acces_restreint_rubrique($id_rubrique) ? "" : http_img_pack('auteur-0minirezo-16.png', '', " width='16' height='16'", _T('image_administrer_rubrique'))) . " <a dir='{$lang_dir}'" . ($row['lang'] !== $GLOBALS['spip_lang'] ? " hreflang='" . $row['lang'] . "'" : '') . " href='" . generer_url_entite($id_rubrique, 'rubrique') . "'>" . $rang . $titre . "</a>"; $titre = (is_string($logo) ? $logo : '') . bouton_block_depliable($lib_bouton, $les_sous_enfants ? false : -1, "enfants{$id_rubrique}"); $res[] = debut_cadre_sous_rub($id_parent ? "rubrique-24.png" : "secteur-24.png", true, "", $titre) . (!$descriptif ? '' : "\n<div class='descriptif'>{$descriptif}</div>") . $les_sous_enfants . fin_cadre_sous_rub(true); } } changer_typo($GLOBALS['spip_lang']); # remettre la typo de l'interface pour la suite return $res; }
function enfant_rub($collection){ global $spip_display, $spip_lang_left, $spip_lang_right, $spip_lang; $voir_logo = ($spip_display != 1 AND $spip_display != 4 AND isset($GLOBALS['meta']['image_process']) AND $GLOBALS['meta']['image_process'] != "non"); if ($voir_logo) { $voir_logo = "float: $spip_lang_right; margin-$spip_lang_right: 0px; margin-top: 0px;"; $chercher_logo = charger_fonction('chercher_logo', 'inc'); } else $logo =''; $res = ""; $result = sql_select("id_rubrique, id_parent, titre, descriptif, lang ", "spip_rubriques", "id_parent=$collection",'', '0+titre,titre'); while($row=sql_fetch($result)){ $id_rubrique=$row['id_rubrique']; $id_parent=$row['id_parent']; $titre=$row['titre']; if (autoriser('voir','rubrique',$id_rubrique)){ $les_sous_enfants = sous_enfant_rub($id_rubrique); changer_typo($row['lang']); $lang_dir = lang_dir($row['lang']); $descriptif=propre($row['descriptif']); if ($voir_logo) { if ($logo = $chercher_logo($id_rubrique, 'id_rubrique', 'on')) { list($fid, $dir, $nom, $format) = $logo; include_spip('inc/filtres_images_mini'); $logo = image_reduire("<img src='$fid' alt='' />", 48, 36); if ($logo) $logo = "\n<div style='$voir_logo'>$logo</div>"; } } $lib_bouton = (!acces_restreint_rubrique($id_rubrique) ? "" : http_img_pack("admin-12.gif", '', " width='12' height='12'", _T('image_administrer_rubrique'))) . " <span dir='$lang_dir'><a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>". typo($titre) . "</a></span>"; $titre = (is_string($logo) ? $logo : '') . bouton_block_depliable($lib_bouton,$les_sous_enfants ?false:-1,"enfants$id_rubrique"); $les_enfants = "\n<div class='enfants'>" . debut_cadre_sous_rub(($id_parent ? "rubrique-24.gif" : "secteur-24.gif"), true, "", $titre) . (!$descriptif ? '' : "\n<div class='verdana1'>$descriptif</div>") . (($spip_display == 4) ? '' : $les_sous_enfants) . "\n<div style='clear:both;'></div>" . fin_cadre_sous_rub(true) . "</div>"; $res .= ($spip_display != 4) ? $les_enfants : "\n<li>$les_enfants</li>"; } } changer_typo($spip_lang); # remettre la typo de l'interface pour la suite return (($spip_display == 4) ? "\n<ul>$res</ul>\n" : $res); }