PSR et oubli d'une sécurité en début de fichier.
parent
2ce871139d
commit
d4f689dabb
@ -1,60 +1,60 @@
|
||||
<?php
|
||||
/**
|
||||
* Ce fichier contient l'action `rubrique_prefixe_generer` utilisée lors de la migration
|
||||
* pour actualiser le préfixe des rubrique-plugin à partir de l'url sur Plugins SPIP si elle existe.
|
||||
*
|
||||
*/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
/**
|
||||
* Cette action permet d'actualiser le préfixe des rubrique-plugin à partir de l'url
|
||||
* sur Plugins SPIP si elle existe.
|
||||
*
|
||||
* Cette action est réservée aux webmestres. Elle ne nécessite aucun argument.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function action_rubrique_prefixe_generer_dist(){
|
||||
|
||||
// Securisation: aucun argument attendu.
|
||||
|
||||
// Verification des autorisations
|
||||
if (!autoriser('webmestre')) {
|
||||
include_spip('inc/minipres');
|
||||
echo minipres();
|
||||
exit();
|
||||
}
|
||||
|
||||
// Actualisation des rubriques-plugin :
|
||||
// Un rubrique-plugin a une profondeur de 2 et est incluse dans un secteur-plugin.
|
||||
// -- on récupère les secteurs-plugin
|
||||
include_spip('inc/contrib_rubrique');
|
||||
$secteurs_plugin = rubrique_lister_secteur_plugin();
|
||||
|
||||
// Pour limiter le nombre de rubriques récupérées, on boucle par secteur.
|
||||
foreach ($secteurs_plugin as $_id_secteur) {
|
||||
// -- on récupère les rubriques-plugin
|
||||
$from = 'spip_rubriques';
|
||||
$where = array('id_secteur=' . intval($_id_secteur));
|
||||
$rubriques_plugin = sql_allfetsel('id_rubrique', $from, $where);
|
||||
if ($rubriques_plugin) {
|
||||
// Pour chaque rubrique-plugin on identifie si il existe un article possédant une url_site
|
||||
// pointant vers plugins spip car le basename est égal au préfixe (http[s]://plugins.spip.net/prefixe[.html]).
|
||||
foreach ($rubriques_plugin as $_rubrique) {
|
||||
$from = 'spip_articles';
|
||||
$where = array('id_rubrique=' . intval($_rubrique['id_rubrique']));
|
||||
if ($urls = sql_allfetsel('url_site, id_article', $from, $where)) {
|
||||
foreach ($urls as $_url) {
|
||||
if ($_url['url_site']
|
||||
and ((stripos($_url['url_site'], 'https://plugins.spip.net/') === 0)
|
||||
or (stripos($_url['url_site'], 'http://plugins.spip.net/') === 0))) {
|
||||
$maj['prefixe'] = basename($_url['url_site'], '.html');
|
||||
sql_updateq('spip_rubriques', $maj, $where);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/**
|
||||
* Ce fichier contient l'action `rubrique_prefixe_generer` utilisée lors de la migration
|
||||
* pour actualiser le préfixe des rubrique-plugin à partir de l'url sur Plugins SPIP si elle existe.
|
||||
*/
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cette action permet d'actualiser le préfixe des rubrique-plugin à partir de l'url
|
||||
* sur Plugins SPIP si elle existe.
|
||||
*
|
||||
* Cette action est réservée aux webmestres. Elle ne nécessite aucun argument.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function action_rubrique_prefixe_generer_dist() {
|
||||
|
||||
// Securisation: aucun argument attendu.
|
||||
|
||||
// Verification des autorisations
|
||||
if (!autoriser('webmestre')) {
|
||||
include_spip('inc/minipres');
|
||||
echo minipres();
|
||||
exit();
|
||||
}
|
||||
|
||||
// Actualisation des rubriques-plugin :
|
||||
// Un rubrique-plugin a une profondeur de 2 et est incluse dans un secteur-plugin.
|
||||
// -- on récupère les secteurs-plugin
|
||||
include_spip('inc/contrib_rubrique');
|
||||
$secteurs_plugin = rubrique_lister_secteur_plugin();
|
||||
|
||||
// Pour limiter le nombre de rubriques récupérées, on boucle par secteur.
|
||||
foreach ($secteurs_plugin as $_id_secteur) {
|
||||
// -- on récupère les rubriques-plugin
|
||||
$from = 'spip_rubriques';
|
||||
$where = array('id_secteur=' . intval($_id_secteur));
|
||||
$rubriques_plugin = sql_allfetsel('id_rubrique', $from, $where);
|
||||
if ($rubriques_plugin) {
|
||||
// Pour chaque rubrique-plugin on identifie si il existe un article possédant une url_site
|
||||
// pointant vers plugins spip car le basename est égal au préfixe (http[s]://plugins.spip.net/prefixe[.html]).
|
||||
foreach ($rubriques_plugin as $_rubrique) {
|
||||
$from = 'spip_articles';
|
||||
$where = array('id_rubrique=' . intval($_rubrique['id_rubrique']));
|
||||
if ($urls = sql_allfetsel('url_site, id_article', $from, $where)) {
|
||||
foreach ($urls as $_url) {
|
||||
if ($_url['url_site']
|
||||
and ((stripos($_url['url_site'], 'https://plugins.spip.net/') === 0)
|
||||
or (stripos($_url['url_site'], 'http://plugins.spip.net/') === 0))) {
|
||||
$maj['prefixe'] = basename($_url['url_site'], '.html');
|
||||
sql_updateq('spip_rubriques', $maj, $where);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,255 +1,244 @@
|
||||
<?php
|
||||
|
||||
/***************************************************************************\
|
||||
* SPIP, Systeme de publication pour l'internet *
|
||||
* *
|
||||
* Copyright (c) 2001-2019 *
|
||||
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
|
||||
* *
|
||||
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
|
||||
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
|
||||
\***************************************************************************/
|
||||
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
include_spip('inc/autoriser');
|
||||
include_spip('inc/presentation');
|
||||
|
||||
/**
|
||||
* 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, categorie, prefixe',
|
||||
'spip_rubriques',
|
||||
'id_parent='.intval($collection),
|
||||
'',
|
||||
'0+titre,titre',
|
||||
"$debut,$limite"
|
||||
);
|
||||
while ($row = sql_fetch($result)) {
|
||||
$id_rubrique = $row['id_rubrique'];
|
||||
$id_parent = $row['id_parent'];
|
||||
$categorie = $row['categorie'];
|
||||
$prefixe = $row['prefixe'];
|
||||
// pour etre sur de passer par tous les traitements
|
||||
$titre = generer_info_entite($id_rubrique, 'rubrique', 'titre');
|
||||
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 . " (${id_rubrique})" .
|
||||
'</a>';
|
||||
|
||||
$titre = (is_string($logo) ? $logo : '') .
|
||||
bouton_block_depliable($lib_bouton, $les_sous_enfants ? false : -1, "enfants$id_rubrique");
|
||||
|
||||
// déterminer l'icone de la rubrique.
|
||||
include_spip('inc/contrib_rubrique');
|
||||
$type = rubrique_determiner_type($id_rubrique);
|
||||
$icone = $prefixe
|
||||
? 'plugin-24.png'
|
||||
: ($id_parent ? 'rubrique' : 'secteur') . ($type ? '_' . $type : '') . '-24.png';
|
||||
|
||||
// déterminer le complément au titre, cad , la catégorie ou le préfixe.
|
||||
$complement = '';
|
||||
if ($categorie or $prefixe) {
|
||||
include_spip('inc/contrib_rubrique');
|
||||
$classe = 'couleur_' . rubrique_lire_categorie(rubrique_lire_secteur($id_rubrique));
|
||||
$complement = ($categorie ? _T('svptype:categorie_identifiant_label') : _T('svp:label_prefixe'))
|
||||
. " : <span class='plugin ${classe}'>"
|
||||
. ($categorie ? $categorie : $prefixe)
|
||||
. "</span></p>";
|
||||
}
|
||||
|
||||
$res[] =
|
||||
debut_cadre_sous_rub($icone, true, '', $titre) .
|
||||
(!$complement ? '' : "\n<div class='descriptif'>$complement</div>") .
|
||||
(!$descriptif ? '' : "\n<div class='descriptif'>$descriptif</div>") .
|
||||
$les_sous_enfants .
|
||||
fin_cadre_sous_rub();
|
||||
}
|
||||
}
|
||||
|
||||
changer_typo($GLOBALS['spip_lang']); # remettre la typo de l'interface pour la suite
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Affiche les enfants d'une sous rubrique dans un bloc dépliable
|
||||
* (Utilisé dans les pages du privé)
|
||||
*
|
||||
* @param int $collection2
|
||||
* L'identifiant numérique de la rubrique parente
|
||||
* @return string
|
||||
* Le contenu du bloc dépliable
|
||||
*/
|
||||
function sous_enfant_rub($collection2) {
|
||||
$nb = sql_countsel('spip_rubriques', 'id_parent='.intval($collection2));
|
||||
|
||||
$retour = '';
|
||||
$pagination = '';
|
||||
$debut = 0;
|
||||
$limite = 500;
|
||||
|
||||
/**
|
||||
* On ne va afficher que 500 résultats max
|
||||
* Si > 500 on affiche une pagination
|
||||
*/
|
||||
if ($nb > $limite) {
|
||||
$debut = _request('debut_rubrique' . $collection2) ? _request('debut_rubrique' . $collection2) : $debut;
|
||||
$pagination = chercher_filtre('pagination');
|
||||
$pagination = '<p class="pagination">' . $pagination($nb, '_rubrique' . $collection2, $debut, $limite, true,
|
||||
'prive') . '</p>';
|
||||
$limite = $debut + $limite;
|
||||
}
|
||||
|
||||
$result = sql_select(
|
||||
'id_rubrique, id_parent, titre, lang, categorie, prefixe',
|
||||
'spip_rubriques',
|
||||
'id_parent='.intval($collection2),
|
||||
'',
|
||||
'0+titre,titre',
|
||||
"$debut,$limite"
|
||||
);
|
||||
|
||||
while ($row = sql_fetch($result)) {
|
||||
$id_rubrique2 = $row['id_rubrique'];
|
||||
$titre2 = generer_info_entite(
|
||||
$id_rubrique2,
|
||||
'rubrique',
|
||||
'titre'
|
||||
); // pour etre sur de passer par tous les traitements
|
||||
$titre2 .= $row['categorie'] ? " ({$row['categorie']})" : '';
|
||||
$titre2 .= $row['prefixe'] ? " ({$row['prefixe']})" : '';
|
||||
$titre2 .= " - ${id_rubrique2}";
|
||||
if ('' !== ($rang2 = recuperer_numero($row['titre']))) {
|
||||
$rang2 = "$rang2. ";
|
||||
}
|
||||
|
||||
changer_typo($row['lang']);
|
||||
$lang_dir = lang_dir($row['lang']);
|
||||
if (autoriser('voir', 'rubrique', $id_rubrique2)) {
|
||||
$retour .= "\n<li class='item' dir='$lang_dir'><a href='" . generer_url_entite(
|
||||
$id_rubrique2,
|
||||
'rubrique'
|
||||
) . "'>" . $rang2 . $titre2 . "</a></li>\n";
|
||||
}
|
||||
}
|
||||
|
||||
$retour = $pagination . $retour . $pagination;
|
||||
|
||||
if (!$retour) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return debut_block_depliable($debut > 0 ? true : false, "enfants$collection2")
|
||||
. "\n<ul class='liste-items sous-sous-rub'>\n"
|
||||
. $retour
|
||||
. "</ul>\n" . fin_block() . "\n\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Affiche la liste des rubriques enfants d'une rubrique
|
||||
* (Utilisé dans les pages du privé notamment ?exec=rubriques)
|
||||
*
|
||||
* Si plus de 500 rubriques enfants, on pagine par 500 les résultats
|
||||
*
|
||||
* @param int $id_rubrique
|
||||
* L'identifiant numérique de la rubrique parente (0 par défaut, la racine)
|
||||
* @return string $res
|
||||
* Le contenu textuel affiché, la liste des sous rubriques
|
||||
*/
|
||||
function afficher_enfant_rub($id_rubrique = 0) {
|
||||
$pagination = '';
|
||||
$debut = 0;
|
||||
$limite = 500;
|
||||
|
||||
$nb = sql_countsel('spip_rubriques', 'id_parent='.intval($id_rubrique));
|
||||
|
||||
if ($nb > $limite) {
|
||||
$debut = _request('debut_rubrique' . $id_rubrique) ? _request('debut_rubrique' . $id_rubrique) : $debut;
|
||||
$pagination = chercher_filtre('pagination');
|
||||
$pagination = '<br class="nettoyeur"><p class="pagination">' .
|
||||
$pagination($nb, '_rubrique' . $id_rubrique, $debut, $limite, true, 'prive') .
|
||||
'</p>';
|
||||
}
|
||||
|
||||
$les_enfants = enfant_rub($id_rubrique, $debut, $limite);
|
||||
|
||||
if (!$n = count($les_enfants)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if ($n == 1) {
|
||||
$les_enfants = reset($les_enfants);
|
||||
$les_enfants2 = '';
|
||||
} else {
|
||||
$n = ceil($n / 2);
|
||||
$les_enfants2 = implode('', array_slice($les_enfants, $n));
|
||||
$les_enfants = implode('', array_slice($les_enfants, 0, $n));
|
||||
}
|
||||
|
||||
$res =
|
||||
$pagination
|
||||
. "<div class='gauche'>"
|
||||
. $les_enfants
|
||||
. '</div>'
|
||||
. "<div class='droite'>"
|
||||
. $les_enfants2
|
||||
. '</div>'
|
||||
. $pagination;
|
||||
|
||||
return $res;
|
||||
}
|
||||
<?php
|
||||
if (!defined('_ECRIRE_INC_VERSION')) {
|
||||
return;
|
||||
}
|
||||
|
||||
include_spip('inc/autoriser');
|
||||
include_spip('inc/presentation');
|
||||
|
||||
/**
|
||||
* 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 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, categorie, prefixe',
|
||||
'spip_rubriques',
|
||||
'id_parent=' . intval($collection),
|
||||
'',
|
||||
'0+titre,titre',
|
||||
"${debut},${limite}"
|
||||
);
|
||||
while ($row = sql_fetch($result)) {
|
||||
$id_rubrique = $row['id_rubrique'];
|
||||
$id_parent = $row['id_parent'];
|
||||
$categorie = $row['categorie'];
|
||||
$prefixe = $row['prefixe'];
|
||||
// pour etre sur de passer par tous les traitements
|
||||
$titre = generer_info_entite($id_rubrique, 'rubrique', 'titre');
|
||||
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 . " (${id_rubrique})" .
|
||||
'</a>';
|
||||
|
||||
$titre = (is_string($logo) ? $logo : '') .
|
||||
bouton_block_depliable($lib_bouton, $les_sous_enfants ? false : -1, "enfants${id_rubrique}");
|
||||
|
||||
// déterminer l'icone de la rubrique.
|
||||
include_spip('inc/contrib_rubrique');
|
||||
$type = rubrique_determiner_type($id_rubrique);
|
||||
$icone = $prefixe
|
||||
? 'plugin-24.png'
|
||||
: ($id_parent ? 'rubrique' : 'secteur') . ($type ? '_' . $type : '') . '-24.png';
|
||||
|
||||
// déterminer le complément au titre, cad , la catégorie ou le préfixe.
|
||||
$complement = '';
|
||||
if ($categorie or $prefixe) {
|
||||
include_spip('inc/contrib_rubrique');
|
||||
$classe = 'couleur_' . rubrique_lire_categorie(rubrique_lire_secteur($id_rubrique));
|
||||
$complement = ($categorie ? _T('svptype:categorie_identifiant_label') : _T('svp:label_prefixe'))
|
||||
. " : <span class='plugin ${classe}'>"
|
||||
. ($categorie ? $categorie : $prefixe)
|
||||
. '</span></p>';
|
||||
}
|
||||
|
||||
$res[] =
|
||||
debut_cadre_sous_rub($icone, true, '', $titre) .
|
||||
(!$complement ? '' : "\n<div class='descriptif'>${complement}</div>") .
|
||||
(!$descriptif ? '' : "\n<div class='descriptif'>${descriptif}</div>") .
|
||||
$les_sous_enfants .
|
||||
fin_cadre_sous_rub();
|
||||
}
|
||||
}
|
||||
|
||||
changer_typo($GLOBALS['spip_lang']); // remettre la typo de l'interface pour la suite
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Affiche les enfants d'une sous rubrique dans un bloc dépliable
|
||||
* (Utilisé dans les pages du privé).
|
||||
*
|
||||
* @param int $collection2 L'identifiant numérique de la rubrique parente
|
||||
*
|
||||
* @return string Le contenu du bloc dépliable
|
||||
*/
|
||||
function sous_enfant_rub($collection2) {
|
||||
$nb = sql_countsel('spip_rubriques', 'id_parent=' . intval($collection2));
|
||||
|
||||
$retour = '';
|
||||
$pagination = '';
|
||||
$debut = 0;
|
||||
$limite = 500;
|
||||
|
||||
/**
|
||||
* On ne va afficher que 500 résultats max
|
||||
* Si > 500 on affiche une pagination.
|
||||
*/
|
||||
if ($nb > $limite) {
|
||||
$debut = _request('debut_rubrique' . $collection2) ? _request('debut_rubrique' . $collection2) : $debut;
|
||||
$pagination = chercher_filtre('pagination');
|
||||
$pagination = '<p class="pagination">' . $pagination(
|
||||
$nb,
|
||||
'_rubrique' . $collection2,
|
||||
$debut,
|
||||
$limite,
|
||||
true,
|
||||
'prive'
|
||||
) . '</p>';
|
||||
$limite = $debut + $limite;
|
||||
}
|
||||
|
||||
$result = sql_select(
|
||||
'id_rubrique, id_parent, titre, lang, categorie, prefixe',
|
||||
'spip_rubriques',
|
||||
'id_parent=' . intval($collection2),
|
||||
'',
|
||||
'0+titre,titre',
|
||||
"${debut},${limite}"
|
||||
);
|
||||
|
||||
while ($row = sql_fetch($result)) {
|
||||
$id_rubrique2 = $row['id_rubrique'];
|
||||
$titre2 = generer_info_entite(
|
||||
$id_rubrique2,
|
||||
'rubrique',
|
||||
'titre'
|
||||
); // pour etre sur de passer par tous les traitements
|
||||
$titre2 .= $row['categorie'] ? " ({$row['categorie']})" : '';
|
||||
$titre2 .= $row['prefixe'] ? " ({$row['prefixe']})" : '';
|
||||
$titre2 .= " - ${id_rubrique2}";
|
||||
if ('' !== ($rang2 = recuperer_numero($row['titre']))) {
|
||||
$rang2 = "${rang2}. ";
|
||||
}
|
||||
|
||||
changer_typo($row['lang']);
|
||||
$lang_dir = lang_dir($row['lang']);
|
||||
if (autoriser('voir', 'rubrique', $id_rubrique2)) {
|
||||
$retour .= "\n<li class='item' dir='${lang_dir}'><a href='" . generer_url_entite(
|
||||
$id_rubrique2,
|
||||
'rubrique'
|
||||
) . "'>" . $rang2 . $titre2 . "</a></li>\n";
|
||||
}
|
||||
}
|
||||
|
||||
$retour = $pagination . $retour . $pagination;
|
||||
|
||||
if (!$retour) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return debut_block_depliable($debut > 0 ? true : false, "enfants${collection2}")
|
||||
. "\n<ul class='liste-items sous-sous-rub'>\n"
|
||||
. $retour
|
||||
. "</ul>\n" . fin_block() . "\n\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* Affiche la liste des rubriques enfants d'une rubrique
|
||||
* (Utilisé dans les pages du privé notamment ?exec=rubriques).
|
||||
*
|
||||
* Si plus de 500 rubriques enfants, on pagine par 500 les résultats
|
||||
*
|
||||
* @param int $id_rubrique L'identifiant numérique de la rubrique parente (0 par défaut, la racine)
|
||||
*
|
||||
* @return string Le contenu textuel affiché, la liste des sous rubriques
|
||||
*/
|
||||
function afficher_enfant_rub($id_rubrique = 0) {
|
||||
$pagination = '';
|
||||
$debut = 0;
|
||||
$limite = 500;
|
||||
|
||||
$nb = sql_countsel('spip_rubriques', 'id_parent=' . intval($id_rubrique));
|
||||
|
||||
if ($nb > $limite) {
|
||||
$debut = _request('debut_rubrique' . $id_rubrique) ? _request('debut_rubrique' . $id_rubrique) : $debut;
|
||||
$pagination = chercher_filtre('pagination');
|
||||
$pagination = '<br class="nettoyeur"><p class="pagination">' .
|
||||
$pagination($nb, '_rubrique' . $id_rubrique, $debut, $limite, true, 'prive') .
|
||||
'</p>';
|
||||
}
|
||||
|
||||
$les_enfants = enfant_rub($id_rubrique, $debut, $limite);
|
||||
|
||||
if (!$n = count($les_enfants)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if ($n == 1) {
|
||||
$les_enfants = reset($les_enfants);
|
||||
$les_enfants2 = '';
|
||||
} else {
|
||||
$n = ceil($n / 2);
|
||||
$les_enfants2 = implode('', array_slice($les_enfants, $n));
|
||||
$les_enfants = implode('', array_slice($les_enfants, 0, $n));
|
||||
}
|
||||
|
||||
$res =
|
||||
$pagination
|
||||
. "<div class='gauche'>"
|
||||
. $les_enfants
|
||||
. '</div>'
|
||||
. "<div class='droite'>"
|
||||
. $les_enfants2
|
||||
. '</div>'
|
||||
. $pagination;
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
Loading…
Reference in New Issue