diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php index 23b3e9550225d0cb60205b6f1554fae20440e3f8..d1ca833f953ee8bb9e66370e19282f7891164776 100644 --- a/ecrire/exec/naviguer.php +++ b/ecrire/exec/naviguer.php @@ -18,37 +18,30 @@ include_spip('inc/forum'); // http://doc.spip.org/@exec_naviguer_dist function exec_naviguer_dist() { - global $connect_toutes_rubriques; - global $spip_display,$spip_lang_left,$spip_lang_right; - $cherche_mot = _request('cherche_mot'); $id_rubrique = intval(_request('id_rubrique')); $select_groupe = intval(_request('select_groupe')); - $row = sql_fetch(spip_query("SELECT * FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); - if ($row) { + if (!$id_rubrique) { + $lang = $statut = $titre = $extra = $id_parent=$id_secteur=''; + $ze_logo = "racine-site-24.gif"; + } else { + $row = sql_fetsel('id_parent, id_secteur, titre, statut, extra, lang, descriptif, texte', 'spip_rubriques', "id_rubrique=$id_rubrique"); + + if (!$row OR !autoriser('voir','rubrique',$id_rubrique)) { + include_spip('inc/minipres'); + echo minipres(); + exit; + } $id_parent=$row['id_parent']; $id_secteur=$row['id_secteur']; $titre=$row['titre']; - $descriptif=$row['descriptif']; - $texte=$row['texte']; $statut = $row['statut']; - $extra = $row["extra"]; $lang = $row["lang"]; - } elseif ($id_rubrique) - { - include_spip('inc/minipres'); - echo minipres(); - exit; - } - else $lang = $statut = $titre = $descriptif = $texte = $extra = $id_parent=''; - - if ($id_rubrique == 0) $ze_logo = "racine-site-24.gif"; - else if ($id_parent == 0) $ze_logo = "secteur-24.gif"; - else $ze_logo = "rubrique-24.gif"; - - $flag_editable = autoriser('publierdans','rubrique',$id_rubrique); + if ($id_parent == 0) $ze_logo = "secteur-24.gif"; + else $ze_logo = "rubrique-24.gif"; + } pipeline('exec_init',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>'')); @@ -64,67 +57,64 @@ function exec_naviguer_dist() else $titre = _T('info_racine_site').": ". $GLOBALS['meta']["nom_site"]; echo fin_grand_cadre(true); - changer_typo($lang); - - if (!autoriser('voir','rubrique',$id_rubrique)){ - echo "<strong>"._T('avis_acces_interdit')."</strong>"; - echo fin_page(); - exit; - } - echo debut_gauche('', true); - if (autoriser('publierdans','rubrique',$id_rubrique)) { - $parent = sql_fetch(spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique")); - if (!$parent['id_parent']) { - list($from, $where) = critere_statut_controle_forum('prop', $id_rubrique); - $n_forums = sql_countsel($from, $where); - } - } - $iconifier = charger_fonction('iconifier', 'inc'); + $flag_editable = autoriser('publierdans','rubrique',$id_rubrique); - echo infos_naviguer($id_rubrique, $statut, $ze_logo, $n_forums); - echo ($iconifier('id_rubrique', $id_rubrique, 'naviguer', false)); + if ($flag_editable AND !$id_parent) { + list($from, $where) = critere_statut_controle_forum('prop', $id_rubrique); + $n_forums = sql_countsel($from, $where); + } else $n_forums = 0; + changer_typo($lang); + echo infos_naviguer($id_rubrique, $statut, $row, $n_forums); - echo bloc_des_raccourcis(icone_horizontale(_T('icone_tous_articles'), generer_url_ecrire("articles_page"), "article-24.gif", '', false, false)); + $iconifier = charger_fonction('iconifier', 'inc'); + echo ($iconifier('id_rubrique', $id_rubrique, 'naviguer', false)); + echo raccourcis_naviguer($id_rubrique, $id_parent); echo pipeline('affiche_gauche',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>'')); - // - // Afficher les boutons de creation d'article et de breve - // - /*if ($spip_display != 4) { - raccourcis_naviguer($id_rubrique, $id_parent); - }*/ - echo creer_colonne_droite('', true); echo pipeline('affiche_droite',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>'')); echo debut_droite('', true); - $haut = montre_naviguer($id_rubrique, $titre, $id_parent, $ze_logo, $flag_editable); - if ($extra) - include_spip('inc/extra'); - if ($id_rubrique > 0) + + $boucles = contenu_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable); + + if ($id_rubrique > 0) { $editer_mot = charger_fonction('editer_mot', 'inc'); + $editer_mot = $editer_mot('rubrique', $id_rubrique, $cherche_mot, $select_groupe, $flag_editable, true); + } else $editer_mot = ''; + + if ($row['extra']) { + include_spip('inc/extra'); + $extra = extra_affichage($extra, "rubriques"); + } else $extra = ""; + + echo naviguer_droite($row, $id_rubrique, $id_parent, $id_secteur, $haut, $n_forums, $editer_mot, $flag_editable, $boucles, $extra), + fin_gauche(), + fin_page(); +} + +function naviguer_droite($row, $id_rubrique, $id_parent, $id_secteur, $haut, $n_forums, $editer_mot, $flag_editable, $boucles, $extra) +{ + global $spip_lang_right, $connect_toutes_rubriques; + + $afficher_contenu_objet = charger_fonction('afficher_contenu_objet', 'inc'); $onglet_proprietes = afficher_rubrique_rubrique($id_rubrique, $id_parent, $id_secteur, $connect_toutes_rubriques) - /// Mots-cles - . ($editer_mot ? $editer_mot('rubrique', $id_rubrique, $cherche_mot, $select_groupe, $flag_editable, true):"") + . $editer_mot . langue_naviguer($id_rubrique, $id_parent, $flag_editable) . pipeline('affiche_milieu',array('args'=>array('exec'=>'naviguer','id_rubrique'=>$id_rubrique),'data'=>'')) ; - $afficher_contenu_objet = charger_fonction('afficher_contenu_objet', 'inc'); - - $onglet_contenu = - ($extra?extra_affichage($extra, "rubriques"):"") + $onglet_contenu = $extra . $afficher_contenu_objet('rubrique', $id_rubrique,$row) - . (_INTERFACE_ONGLETS?contenu_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable):"") - ; + . (_INTERFACE_ONGLETS? $boucles:""); $onglet_enfants = afficher_enfant_rub($id_rubrique, false, true) @@ -136,47 +126,40 @@ function exec_naviguer_dist() :"") . "</div>") . "<br class='nettoyeur' />" - . contenu_naviguer($id_rubrique, $id_parent, $ze_logo, $flag_editable); - + . $boucles; - // Logos de la rubrique $onglet_documents = - /// Documents associes a la rubrique ($id_rubrique > 0 ? naviguer_doc($id_rubrique, "rubrique", 'naviguer', $flag_editable) :"" ) ; - $onglet_interactivite = ""; - if ($n_forums) - $onglet_interactivite = icone_inline(_T('icone_suivi_forum', array('nb_forums' => $n_forums)), generer_url_ecrire("controle_forum","id_rubrique=$id_rubrique"), "suivi-forum-24.gif", "", 'center'); - $onglet_interactivite = - $onglet_interactivite - ; - - echo - "<div class='fiche_objet'>", - $haut, + if ($n_forums) + $onglet_interactivite = icone_inline(_T('icone_suivi_forum', array('nb_forums' => $n_forums)), generer_url_ecrire("controle_forum","id_rubrique=$id_rubrique"), "suivi-forum-24.gif", "", 'center'); + else $onglet_interactivite = ""; + + return + "<div class='fiche_objet'>". + $haut. (_INTERFACE_ONGLETS? - afficher_onglets_pages(array( - 'sousrub'=>_L('Sous-rubriques'), - 'voir' =>_L('Contenu'), - 'props' => _L('Propriétés'), - 'docs' => _L('Documents'), - 'interactivite' => _L('Interactivité')), - array( - 'voir'=>$onglet_contenu, - 'sousrub'=>$onglet_enfants, - 'props'=>$onglet_proprietes, - 'docs'=>$onglet_documents, - 'interactivite'=>$onglet_interactivite - )):$onglet_contenu.$onglet_proprietes), - "</div>", - (_INTERFACE_ONGLETS?"":$onglet_enfants.$onglet_interactivite), - fin_gauche(), - fin_page(); + afficher_onglets_pages(array( + 'sousrub'=>_L('Sous-rubriques'), + 'voir' =>_L('Contenu'), + 'props' => _L('Propriétés'), + 'docs' => _L('Documents'), + 'interactivite' => _L('Interactivité')), + array( + 'voir'=>$onglet_contenu, + 'sousrub'=>$onglet_enfants, + 'props'=>$onglet_proprietes, + 'docs'=>$onglet_documents, + 'interactivite'=>$onglet_interactivite + )) + :$onglet_contenu.$onglet_proprietes). + "</div>". + (_INTERFACE_ONGLETS?"":$onglet_enfants.$onglet_interactivite); } // http://doc.spip.org/@infos_naviguer -function infos_naviguer($id_rubrique, $statut, $ze_logo, $n_forums) +function infos_naviguer($id_rubrique, $statut, $row, $n_forums) { $boite = pipeline ('boite_infos', array('data' => '', 'args' => array( diff --git a/ecrire/inc/afficher_contenu_objet.php b/ecrire/inc/afficher_contenu_objet.php index 26abb41c7fbbc3e20c9ed98925e6d6c09fd7d380..a83076a8ef6c53c5345a8bae2a05a107ae3bbf7e 100644 --- a/ecrire/inc/afficher_contenu_objet.php +++ b/ecrire/inc/afficher_contenu_objet.php @@ -54,6 +54,7 @@ function inc_afficher_contenu_objet_dist($type, $id,$row = NULL){ include_spip('public/interfaces'); // afficher chaque champ // lui appliquer le traitement public + $contenu_objet = ''; foreach($champs_libelles as $champ=>$libelle) { if ($champ!='notes') { $valeur = $row[$champ]; @@ -130,9 +131,9 @@ function afficher_objet_champs_libelles($type,$table,$id, $row){ ); // gerer les champs desactives sur option - foreach(array_keys($liste) as $champ) { - if (isset($GLOBALS['meta']["$table_$champ"]) - AND $GLOBALS['meta']["articles_$champ"]=='non' + foreach($liste as $champ => $x) { + if (isset($GLOBALS['meta'][$x = ($table . '_' . $champ)]) + AND $GLOBALS['meta'][$x]=='non' AND (!isset($row[$champ]) OR !strlen($row[$champ]))) { unset($liste[$champ]); }