diff --git a/.gitattributes b/.gitattributes index 64c698e5cb93600e2ec31b3b39bbc812bdede768..aee02ac88f3442b4ce6754f2513c1ed82bde4189 100644 --- a/.gitattributes +++ b/.gitattributes @@ -331,6 +331,7 @@ ecrire/inc_agenda.php -text ecrire/inc_ajax.php -text ecrire/inc_auteur_voir.php -text ecrire/inc_barre.php -text +ecrire/inc_boutons.php -text ecrire/inc_cookie.php -text ecrire/inc_distant.php -text ecrire/inc_headers.php -text diff --git a/ecrire/inc_boutons.php b/ecrire/inc_boutons.php new file mode 100644 index 0000000000000000000000000000000000000000..61e674efaffb6411756632e8ad703c202469cf57 --- /dev/null +++ b/ecrire/inc_boutons.php @@ -0,0 +1,301 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2006 * + * 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. * +\***************************************************************************/ + + +/** + * une classe definissant un bouton dans la barre du haut de l'interface + * privee ou dans un de ses sous menus + */ +class Bouton { + var $icone; /* l'icone a mettre dans le bouton */ + var $libelle; /* le nom de l'entree d'i18n associe */ + var $url= null; /* l'url de la page (null => ?exec=nom) */ + var $urlArg= null; /* arguments supplementaires de l'url */ + var $url2= null; /* url jscript */ + var $target= null; /* pour ouvrir dans une fenetre a part */ + var $sousmenu= null;/* sous barre de boutons / onglets */ + + function Bouton($icone, $libelle, $url=null, $urlArg=null, + $url2=null, $target=null) { + $this->icone = $icone; + $this->libelle= $libelle; + $this->url = $url; + $this->urlArg = $urlArg; + $this->url2 = $url2; + $this->target = $target; + } +} + +/** + * definir la liste des boutons du haut et de ses sous-menus + * On defini les boutons a metrtre selon les droits de l'utilisateur + * puis on balance le tout au pipeline "ajouter_boutons" pour que des plugins + * puissent y mettre leur grain de sel + */ +function definir_barre_boutons() { + global $boutons_admin; + + global $REQUEST_URI, $HTTP_HOST, $adresse_site; + $adresse_site = $GLOBALS['meta']["adresse_site"]; + if (!$adresse_site) { + $adresse_site = "http://$HTTP_HOST".substr($REQUEST_URI, 0, strpos($REQUEST_URI, "/" . _DIR_RESTREINT_ABS)); + ecrire_meta("adresse_site", $adresse_site); + ecrire_metas(); + } + if (strlen($adresse_site)<10) $adresse_site = _DIR_RACINE; + + global $spip_lang, $spip_lang_rtl, $spip_lang_left, $spip_lang_right; + + $boutons_admin=array( + 'accueil' => new Bouton('asuivre-48.png', 'icone_a_suivre'), + 'naviguer' => new Bouton("documents-48$spip_lang_rtl.png", + 'icone_edition_site'), + 'forum_admin' => new Bouton('messagerie-48.png', 'titre_forum'), + 'auteurs' => new Bouton('redacteurs-48.png', 'icone_auteurs') + ); + + if ($GLOBALS['connect_statut'] == "0minirezo" + AND $GLOBALS['meta']["activer_statistiques"] != 'non') { + $boutons_admin['statistiques_visites']= + new Bouton('statistiques-48.png', 'icone_statistiques_visites'); + } + if ($GLOBALS['connect_statut'] == '0minirezo' + AND $GLOBALS['connect_toutes_rubriques']) { + $boutons_admin['configuration']= + new Bouton('administration-48.png', 'icone_configuration_site'); + } + $boutons_admin['espacement']=null; + $urlAide= generer_url_ecrire('aide_index')."&var_lang=$spip_lang"; + $boutons_admin['aide_index']= + new Bouton('aide-48'.$spip_lang_rtl.'.png', 'icone_aide_ligne', + $urlAide, null, "javascript:window.open('$urlAide', 'aide_spip', 'scrollbars=yes,resizable=yes,width=740,height=580');", 'aide_spip'); + $boutons_admin['visiter']= + new Bouton("visiter-48$spip_lang_rtl.png", 'icone_visiter_site', + $adresse_site); + + // les sous menu des boutons, que si on est admin + if ($GLOBALS['connect_statut'] == '0minirezo' + AND $GLOBALS['connect_toutes_rubriques']) { + + // sous menu edition + + $sousmenu=array(); + + $nombre_articles = spip_num_rows(spip_query("SELECT art.id_article FROM spip_articles AS art, spip_auteurs_articles AS lien WHERE lien.id_auteur = '".$GLOBALS['connect_id_auteur']."' AND art.id_article = lien.id_article LIMIT 1")); + if ($nombre_articles > 0) { + $sousmenu['articles_page']= + new Bouton('article-24.gif', 'icone_tous_articles'); + } + + if ($GLOBALS['meta']["activer_breves"] != "non") { + $sousmenu['breves']= + new Bouton('breve-24.gif', 'icone_breves'); + } + + if ($GLOBALS['options'] == "avancees"){ + $articles_mots = $GLOBALS['meta']['articles_mots']; + if ($articles_mots != "non") { + $sousmenu['mots_tous']= + new Bouton('mot-cle-24.gif', 'icone_mots_cles'); + } + + $activer_sites = $GLOBALS['meta']['activer_sites']; + if ($activer_sites<>'non') + $sousmenu['sites_tous']= + new Bouton('site-24.gif', 'icone_sites_references'); + + if (@spip_num_rows(spip_query("SELECT * FROM spip_documents_rubriques LIMIT 1")) > 0) { + $sousmenu['documents_liste']= + new Bouton('doc-24.gif', 'icone_doc_rubrique'); + } + } + $boutons_admin['naviguer']->sousmenu= $sousmenu; + + // sous menu forum + + $sousmenu=array(); + + if ($GLOBALS['meta']['forum_prive_admin'] == 'oui') + $sousmenu['forum_admin']= + new Bouton('forum-admin-24.gif', 'icone_forum_administrateur'); + + $sousmenu['controle_forum']= + new Bouton("suivi-forum-24.gif", "icone_suivi_forums"); + $sousmenu['controle_petition']= + new Bouton("suivi-petition-24.gif", "icone_suivi_pettions"); + + $boutons_admin['forum_admin']->sousmenu= $sousmenu; + + // sous menu auteurs + + $boutons_admin['auteurs']->sousmenu= array( + 'auteurs_edit' => + new Bouton("fiche-perso-24.gif", "icone_informations_personnelles", + null, 'id_auteur='.$GLOBALS['connect_id_auteur']), + 'auteur_infos' => + new Bouton("auteur-24.gif", "icone_creer_nouvel_auteur", + null, 'new=oui') + ); + + // sous menu statistiques + + $sousmenu=array( + 'espacement' => null, + 'statistiques_repartition' => + new Bouton("rubrique-24.gif", "icone_repartition_visites") + ); + + if ($GLOBALS['meta']['multi_articles'] == 'oui' + OR $GLOBALS['meta']['multi_rubriques'] == 'oui') + $sousmenu['statistiques_lang']= + new Bouton("langues-24.gif", "onglet_repartition_lang"); + + $sousmenu['statistiques_referers']= + new Bouton("referers-24.gif", "titre_liens_entrants"); + + $boutons_admin['statistiques_visites']->sousmenu= $sousmenu; + + // sous menu configuration + + $sousmenu=array( + 'config_lang' => + new Bouton("langues-24.gif", "icone_gestion_langues"), + 'espacement' => null + ); + + if ($GLOBALS['options'] == "avancees") { + $sousmenu['admin_tech']= + new Bouton("base-24.gif", "icone_maintenance_site"); + $sousmenu['admin_vider']= + new Bouton("cache-24.gif", "onglet_vider_cache"); + } else { + $sousmenu['admin_tech']= + new Bouton("base-24.gif", "icone_sauver_site"); + } + + $boutons_admin['configuration']->sousmenu= $sousmenu; + + } // fin si admin + + $boutons_admin = pipeline('ajouter_boutons', $boutons_admin); +} + +/** + * definir la liste des onglets dans une page de l'interface privee + * on passe la main au pipeline "ajouter_onglets". + */ +function definir_barre_onglets($rubrique) { + global $id_auteur, $connect_id_auteur, $connect_statut, $statut_auteur, $options; + + $onglets=array(); + + switch($rubrique) { + case 'statistiques_repartition': + case 'repartition': + if ($GLOBALS['meta']['multi_articles'] == 'oui' OR $GLOBALS['meta']['multi_rubriques'] == 'oui') { + $onglets['rubriques']= + new Bouton('rubrique-24.gif', 'onglet_repartition_rubrique'); + $onglets['langues']= + new Bouton('langues-24.gif', 'onglet_repartition_lang'); + } + break; + + case 'rep_depuis': + $onglets['statistiques_lang']= + new Bouton(null, 'icone_repartition_actuelle'); + $onglets['debut']= + new Bouton(null, 'onglet_repartition_debut', + generer_url_ecrire("statistiques_lang","critere=debut")); + break; + + case 'stat_depuis': + $onglets['popularite']= + new Bouton(null, 'icone_repartition_actuelle', + generer_url_ecrire("statistiques_repartition","")); + $onglets['debut']= + new Bouton(null, 'onglet_repartition_debut', + generer_url_ecrire("statistiques_repartition","critere=debut")); + break; + + case 'stat_referers': + $onglets['jour']= + new Bouton(null, 'date_aujourdhui', + generer_url_ecrire("statistiques_referers","")); + $onglets['veille']= + new Bouton(null, 'date_hier', + generer_url_ecrire("statistiques_referers","jour=veille")); + break; + + case 'administration': + $onglets['sauver']= + new Bouton('base-24.gif', 'onglet_save_restaur_base', + generer_url_ecrire("admin_tech","")); + $onglets['effacer']= + new Bouton('supprimer.gif', 'onglet_affacer_base', + generer_url_ecrire("admin_effacer","")); + break; + + //?????? + case 'auteur': + $onglets['auteur']= + new Bouton('auteur-24.gif', 'onglet_auteur', + generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur")); + $onglets['infos']= + new Bouton('fiche-perso-24.gif', 'onglet_informations_personnelles', + generer_url_ecrire("auteurs_infos","id_auteur=$id_auteur")); + break; + + case 'configuration': + $onglets['contenu']= + new Bouton('racine-site-24.gif', 'onglet_contenu_site', + generer_url_ecrire("configuration")); + $onglets['interactivite']= + new Bouton('forum-interne-24.gif', 'onglet_interactivite', + generer_url_ecrire("config_contenu")); + $onglets['fonctions']= + new Bouton('image-24.gif', 'onglet_fonctions_avances', + generer_url_ecrire("config_fonctions")); + break; + + case 'config_lang': + $onglets['langues']= + new Bouton('langues-24.gif', 'info_multilinguisme', + generer_url_ecrire("config_lang")); + $onglets['multi']= + new Bouton('traductions-24.gif', 'info_langue_principale', + generer_url_ecrire("config_multilang")); + if ($GLOBALS['meta']['multi_articles'] == "oui" OR $GLOBALS['meta']['multi_rubriques'] == "oui") { + $onglets['fichiers']= + new Bouton('traductions-24.gif', 'module_fichiers_langues', + generer_url_ecrire("lang_raccourcis")); + } + break; + + // inutilise + case 'suivi_forum': + break; + + } + + $onglets = pipeline('ajouter_onglets', $onglets, $rubrique); + + return $onglets; +} + +function definir_barre_gadgets() { + global $barre_gadgets; + $barre_gadgets= array( + // ????????? + ); +} + +?> diff --git a/ecrire/inc_presentation.php b/ecrire/inc_presentation.php index d2104a0a067536d56e5b0ced4b09768cd1569f42..9be5f0300c2fba068e6be78be797a03060ab57c7 100644 --- a/ecrire/inc_presentation.php +++ b/ecrire/inc_presentation.php @@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire ("inc_layer"); include_ecrire("inc_agenda"); +include_ecrire("inc_boutons"); // Choix dynamique de la couleur @@ -1921,84 +1922,20 @@ function onglet($texte, $lien, $onglet_ref, $onglet, $icone=""){ echo "</td>"; } - -function barre_onglets($rubrique, $onglet){ - global $id_auteur, $connect_id_auteur, $connect_statut, $statut_auteur, $options; +function barre_onglets($rubrique, $ongletCourant){ + $onglets= definir_barre_onglets($rubrique); + if(count($onglets)==0) return; debut_onglet(); - if ($rubrique == "statistiques") { - // onglet(_T('onglet_evolution_visite_mod'), generer_url_ecrire("statistiques_visites",""), "evolution", $onglet, "statistiques-24.gif"); - // onglet(_T('titre_liens_entrants'), generer_url_ecrire("statistiques_referers",""), "referers", $onglet, "referers-24.gif"); - } - if ($rubrique == "repartition") { - if ($GLOBALS['meta']['multi_articles'] == 'oui' OR $GLOBALS['meta']['multi_rubriques'] == 'oui') { - onglet(_T('onglet_repartition_rubrique'), generer_url_ecrire("statistiques_repartition"), "rubriques", $onglet, "rubrique-24.gif"); - onglet(_T('onglet_repartition_lang'), generer_url_ecrire("statistiques_lang",""), "langues", $onglet, "langues-24.gif"); - } - } - - if ($rubrique == "rep_depuis") { - onglet(_T('icone_repartition_actuelle'), generer_url_ecrire("statistiques_lang",""), "popularite", $onglet); - onglet(_T('onglet_repartition_debut'), generer_url_ecrire("statistiques_lang","critere=debut"), "debut", $onglet); - - } - - if ($rubrique == "stat_depuis") { - onglet(_T('icone_repartition_actuelle'), generer_url_ecrire("statistiques_repartition"), "popularite", $onglet); - onglet(_T('onglet_repartition_debut'), generer_url_ecrire("statistiques_repartition", "critere=debut"), "debut", $onglet); - - } - - if ($rubrique == "stat_referers") { - onglet(ucfirst(_T('date_aujourdhui')), generer_url_ecrire("statistiques_referers",""), "jour", $onglet); - onglet(ucfirst(_T('date_hier')), generer_url_ecrire("statistiques_referers","jour=veille"), "veille", $onglet); - } - - if ($rubrique == "administration"){ - onglet(_T('onglet_save_restaur_base'), generer_url_ecrire("admin_tech"), "sauver", $onglet, "base-24.gif"); - onglet(_T('onglet_affacer_base'), generer_url_ecrire("admin_effacer"), "effacer", $onglet, "supprimer.gif"); - } - - if ($rubrique == "auteur"){ - onglet(_T('onglet_auteur'), generer_url_ecrire("auteurs_edit","id_auteur=$id_auteur"), "auteur", $onglet, "auteur-24.gif"); - onglet(_T('onglet_informations_personnelles'), generer_url_ecrire("auteur_infos","id_auteur=$id_auteur"), "infos", $onglet, "fiche-perso-24.gif"); - } - - if ($rubrique == "configuration"){ - onglet(_T('onglet_contenu_site'), generer_url_ecrire("configuration"), "contenu", $onglet, "racine-site-24.gif"); - onglet(_T('onglet_interactivite'), generer_url_ecrire("config_contenu"), "interactivite", $onglet, "forum-interne-24.gif"); - onglet(_T('onglet_fonctions_avances'), generer_url_ecrire("config_fonctions"), "fonctions", $onglet, "image-24.gif"); - } - - if ($rubrique == "config_lang") { - onglet(_T('info_langue_principale'), generer_url_ecrire("config_lang"), "langues", $onglet, "langues-24.gif"); - onglet(_T('info_multilinguisme'), generer_url_ecrire("config_multilang"), "multi", $onglet, "traductions-24.gif"); - if ($GLOBALS['meta']['multi_articles'] == "oui" OR $GLOBALS['meta']['multi_rubriques'] == "oui") { - onglet(_T('module_fichiers_langues'), generer_url_ecrire("lang_raccourcis"), "fichiers", $onglet, "traductions-24.gif"); - } - } - - if ($rubrique == "suivi_forum"){ - onglet(_T('onglet_messages_publics'), generer_url_ecrire("controle_forum","page=public"), "public", $onglet, "forum-public-24.gif"); - onglet(_T('onglet_messages_internes'), generer_url_ecrire("controle_forum","page=interne"), "interne", $onglet, "forum-interne-24.gif"); - - $query_forum = "SELECT * FROM spip_forum WHERE statut='publie' AND texte='' LIMIT 1"; - $result_forum = spip_query($query_forum); - if ($row = spip_fetch_array($result_forum)) - onglet(_T('onglet_messages_vide'), generer_url_ecrire("controle_forum","page=vide"), "vide", $onglet); - - $query_forum = "SELECT * FROM spip_forum WHERE statut='prop' LIMIT 1"; - $result_forum = spip_query($query_forum); - if ($row = spip_fetch_array($result_forum)) - onglet(_T('texte_statut_attente_validation'), generer_url_ecrire("controle_forum","page=prop"), "prop", $onglet); - + foreach($onglets as $exec => $onglet) { + $url= $onglet->url ? $onglet->url : generer_url_ecrire($exec); + onglet(_T($onglet->libelle), $url, + $exec, $ongletCourant, $onglet->icone); } - fin_onglet(); } - function largeur_icone_bandeau_principal($texte) { global $spip_display, $spip_ecran ; global $connect_statut, $connect_toutes_rubriques; @@ -2258,7 +2195,9 @@ document.write(\"" . addslashes(strtr($html, "\n\r", " "))."\")"); function debut_page($titre = "", $rubrique = "asuivre", $sous_rubrique = "asuivre", $onLoad = "", $css="") { init_entete($titre, $rubrique, $onLoad, $css); + definir_barre_boutons(); init_body($rubrique, $sous_rubrique); + debut_corps_page(); } function init_entete($titre, $rubrique, $onLoad="", $css="") { @@ -2285,11 +2224,8 @@ function init_entete($titre, $rubrique, $onLoad="", $css="") { } // fonction envoyant la double serie d'icones de redac - function init_body($rubrique = "asuivre", $sous_rubrique = "asuivre") { - global $couleur_foncee; - global $couleur_claire; - global $REQUEST_URI, $HTTP_HOST; + global $couleur_foncee, $couleur_claire, $adresse_site; global $connect_id_auteur; global $connect_statut; global $connect_activer_messagerie; @@ -2299,16 +2235,8 @@ function init_body($rubrique = "asuivre", $sous_rubrique = "asuivre") { global $spip_lang, $spip_lang_rtl, $spip_lang_left, $spip_lang_right; $activer_messagerie = "oui"; - $adresse_site = $GLOBALS['meta']["adresse_site"]; - if (!$adresse_site) { - $adresse_site = "http://$HTTP_HOST".substr($REQUEST_URI, 0, strpos($REQUEST_URI, "/" . _DIR_RESTREINT_ABS)); - ecrire_meta("adresse_site", $adresse_site); - ecrire_metas(); - } - - if (strlen($adresse_site)<10) $adresse_site = _DIR_RACINE; - - if ($spip_ecran == "large") $largeur = 974; else $largeur = 750; + if ($spip_ecran == "large") $largeur = 974; + else $largeur = 750; $link = new Link; echo "\n<map name='map_layout'>"; @@ -2319,17 +2247,18 @@ function init_body($rubrique = "asuivre", $sous_rubrique = "asuivre") { -if ($spip_display == "4") { - // Icones principales - echo "<ul>"; - echo "<li><a href='./'>"._T('icone_a_suivre')."</a>"; - echo "<li><a href='" . generer_url_ecrire("naviguer") . "'>"._T('icone_edition_site')."</a>"; - echo "<li><a href='" . generer_url_ecrire("forum_admin"). "'>"._T('titre_forum')."</a>"; - echo "<li><a href='" . generer_url_ecrire("auteurs") . "'>"._T('icone_auteurs')."</a>"; - echo "<li><a href=\"$adresse_site/\">"._T('icone_visiter_site')."</a>"; - echo "</ul>"; -} -else { + if ($spip_display == "4") { + // Icones principales + echo "<ul>"; + echo "<li><a href='./'>"._T('icone_a_suivre')."</a>"; + echo "<li><a href='" . generer_url_ecrire("naviguer") . "'>"._T('icone_edition_site')."</a>"; + echo "<li><a href='" . generer_url_ecrire("forum_admin"). "'>"._T('titre_forum')."</a>"; + echo "<li><a href='" . generer_url_ecrire("auteurs") . "'>"._T('icone_auteurs')."</a>"; + echo "<li><a href=\"$adresse_site/\">"._T('icone_visiter_site')."</a>"; + echo "</ul>"; + + return; + } // iframe permettant de passer les changements de statut rapides echo "<iframe id='iframe_action' name='iframe_action' width='1' height='1' style='position: absolute; visibility: hidden;'></iframe>"; @@ -2344,183 +2273,52 @@ else { echo "<div class='bandeau-icones'>\n"; echo "<table width='$largeur' cellpadding='0' cellspacing='0' border='0' align='center'><tr>\n"; - icone_bandeau_principal (_T('icone_a_suivre'), './', "asuivre-48.png", "asuivre", $rubrique, "", "asuivre", $sous_rubrique); - icone_bandeau_principal (_T('icone_edition_site'), generer_url_ecrire("naviguer"), "documents-48$spip_lang_rtl.png", "documents", $rubrique, "", "rubriques", $sous_rubrique); - icone_bandeau_principal (_T('titre_forum'), generer_url_ecrire("forum_admin"), "messagerie-48.png", "redacteurs", $rubrique, "", "forum-interne", $sous_rubrique); - icone_bandeau_principal (_T('icone_auteurs'), generer_url_ecrire("auteurs"), "redacteurs-48.png", "auteurs", $rubrique, "", "redacteurs", $sous_rubrique); - if ($connect_statut == "0minirezo" AND $GLOBALS['meta']["activer_statistiques"] != 'non') { - //bandeau_barre_verticale(); - icone_bandeau_principal (_T('icone_statistiques_visites'), generer_url_ecrire("statistiques_visites"), "statistiques-48.png", "suivi", $rubrique, "", "statistiques", $sous_rubrique); - } - if ($connect_statut == '0minirezo' and $connect_toutes_rubriques) { - icone_bandeau_principal (_T('icone_configuration_site'), generer_url_ecrire("configuration"), "administration-48.png", "administration", $rubrique, "", "configuration", $sous_rubrique); + foreach($GLOBALS['boutons_admin'] as $page => $detail) { + if($page=='espacement') { + echo "<td> </td>"; + } else { + icone_bandeau_principal( + _T($detail->libelle), + $detail->url?$detail->url:generer_url_ecrire($page), + $detail->icone, $page, $rubrique, $detail->url2, + $page, $sous_rubrique); + } } - - echo "<td> </td>"; - - icone_bandeau_principal (_T('icone_aide_ligne'), "javascript:window.open('" . generer_url_ecrire("aide_index","var_lang=$spip_lang") . - "', 'aide_spip', 'scrollbars=yes,resizable=yes,width=740,height=580');", - "aide-48".aide_lang_dir($spip_lang,$spip_lang_rtl).".png", - "vide", "", generer_url_ecrire("aide_index","var_lang=$spip_lang"), - "aide-en-ligne", $sous_rubrique); - - icone_bandeau_principal (_T('icone_visiter_site'), $adresse_site, "visiter-48$spip_lang_rtl.png", "visiter","", "visiter", $sous_rubrique); - echo "</tr></table>\n"; - - - echo "</div>\n"; - + echo "<table width='$largeur' cellpadding='0' cellspacing='0' align='center'><tr><td>"; echo "<div style='text-align: $spip_lang_left; width: ".$largeur."px; position: relative; z-index: 2000;'>"; - + // Icones secondaires + + $decal=0; $activer_messagerie = "oui"; $connect_activer_messagerie = "oui"; - - if ($rubrique == "asuivre"){ - $class = "visible_au_chargement"; - } else { - $class = "invisible_au_chargement"; - } - $decal = largeur_icone_bandeau_principal(_T('icone_a_suivre')); - - - if ($rubrique == "documents"){ - $class = "visible_au_chargement"; - } else { - $class = "invisible_au_chargement"; - } - if ($connect_statut == "0minirezo" AND $connect_toutes_rubriques) { - echo "<div class='$class' id='bandeaudocuments' style='position: absolute; $spip_lang_left: ".$decal."px;'><div class='bandeau_sec'><table class='gauche'><tr>\n"; - //icone_bandeau_secondaire (_T('icone_rubriques'), generer_url_ecrire("naviguer",""), "rubrique-24.gif", "rubriques", $sous_rubrique); - - $nombre_articles = spip_num_rows(spip_query("SELECT art.id_article FROM spip_articles AS art, spip_auteurs_articles AS lien WHERE lien.id_auteur = '$connect_id_auteur' AND art.id_article = lien.id_article LIMIT 1")); - if ($nombre_articles > 0) { - icone_bandeau_secondaire (_T('icone_tous_articles'), generer_url_ecrire("articles_page"), "article-24.gif", "articles", $sous_rubrique); - } - - /*if ($options == "avancees") { - if ($connect_statut == "0minirezo") $req_where = " AND articles.statut IN ('prepa','prop','publie')"; - else $req_where = " AND articles.statut IN ('prop','publie')"; - $nombre_versions = spip_num_rows(spip_query(" - SELECT versions.*, articles.statut, articles.titre - FROM spip_versions AS versions, spip_articles AS articles - WHERE versions.id_article = articles.id_article AND versions.id_version > 1$req_where LIMIT 1")); - if ($nombre_versions > 0 OR 1==1) { - icone_bandeau_secondaire (_T('icone_suivi_revisions'), generer_url_ecrire("suivi_revisions",""), "historique-24.gif", "revisions", $sous_rubrique); - } - }*/ - - $activer_breves=$GLOBALS['meta']["activer_breves"]; - if ($activer_breves != "non"){ - icone_bandeau_secondaire (_T('icone_breves'), generer_url_ecrire("breves"), "breve-24.gif", "breves", $sous_rubrique); - } - - if ($options == "avancees"){ - $articles_mots = $GLOBALS['meta']['articles_mots']; - if ($articles_mots != "non") { - icone_bandeau_secondaire (_T('icone_mots_cles'), generer_url_ecrire("mots_tous"), "mot-cle-24.gif", "mots", $sous_rubrique); - } - - $activer_sites = $GLOBALS['meta']['activer_sites']; - if ($activer_sites<>'non') - icone_bandeau_secondaire (_T('icone_sites_references'), generer_url_ecrire("sites_tous"), "site-24.gif", "sites", $sous_rubrique); - - if (@spip_num_rows(spip_query("SELECT * FROM spip_documents_rubriques LIMIT 1")) > 0) { - icone_bandeau_secondaire (_T('icone_doc_rubrique'), generer_url_ecrire("documents_liste"), "doc-24.gif", "documents", $sous_rubrique); - } - } - echo "</tr></table></div></div>"; - } - - $decal = $decal + largeur_icone_bandeau_principal(_T('icone_edition_site')); - - - - if ($connect_statut == "0minirezo" AND $connect_toutes_rubriques) { - if ($rubrique == "redacteurs") { - $class = "visible_au_chargement"; - } else { - $class = "invisible_au_chargement"; - } - - echo "<div class='$class' id='bandeauredacteurs' style='position: absolute; $spip_lang_left: ".$decal."px;'><div class='bandeau_sec'><table class='gauche'><tr>\n"; - if ($GLOBALS['meta']['forum_prive_admin'] == 'oui') icone_bandeau_secondaire (_T('icone_forum_administrateur'), generer_url_ecrire("forum_admin","admin=admin"), "forum-admin-24.gif", "privadm", $sous_rubrique); - - icone_bandeau_secondaire (_T('icone_suivi_forums'), generer_url_ecrire("controle_forum"), "suivi-forum-24.gif", "forum-controle", $sous_rubrique); - icone_bandeau_secondaire (_T('icone_suivi_pettions'), generer_url_ecrire("controle_petition"), "suivi-petition-24.gif", "suivi-petition", $sous_rubrique); - - echo "</tr></table></div></div>"; - - } - - $decal = $decal + largeur_icone_bandeau_principal(_T('icone_discussions')); - - if ($connect_statut == "0minirezo" AND $connect_toutes_rubriques) { - if ($rubrique == "auteurs") { + foreach($GLOBALS['boutons_admin'] as $page => $detail) { + if ($rubrique == $page) { $class = "visible_au_chargement"; } else { $class = "invisible_au_chargement"; } - echo "<div class='$class' id='bandeauauteurs' style='position: absolute; $spip_lang_left: ".$decal."px;'><div class='bandeau_sec'><table class='gauche'><tr>\n"; - icone_bandeau_secondaire (_T('icone_informations_personnelles'), generer_url_ecrire("auteurs_edit","id_auteur=$connect_id_auteur"), "fiche-perso-24.gif", "perso", $sous_rubrique); - icone_bandeau_secondaire (_T('icone_creer_nouvel_auteur'), generer_url_ecrire("auteur_infos","new=oui"), "auteur-24.gif", "xxx", $sous_rubrique); - - echo "</tr></table></div></div>"; - } - - - $decal = $decal + largeur_icone_bandeau_principal(_T('icone_auteurs')); - - // decalage pour barre verticale - // $decal = $decal + 11; - - if ($connect_statut == "0minirezo" AND $connect_toutes_rubriques AND $GLOBALS['meta']["activer_statistiques"] != 'non') { - if ($rubrique == "suivi") { - $class = "visible_au_chargement"; - } else { - $class = "invisible_au_chargement"; - } - echo "<div class='$class' id='bandeausuivi' style='position: absolute; $spip_lang_left: ".$decal."px;'><div class='bandeau_sec'><table class='gauche'><tr>\n"; - if ($connect_toutes_rubriques) bandeau_barre_verticale(); - - icone_bandeau_secondaire (_T('icone_repartition_visites'), generer_url_ecrire("statistiques_repartition"), "rubrique-24.gif", "repartition", $sous_rubrique); - if ($GLOBALS['meta']['multi_articles'] == 'oui' OR $GLOBALS['meta']['multi_rubriques'] == 'oui') - icone_bandeau_secondaire (_T('onglet_repartition_lang'), generer_url_ecrire("statistiques_lang"), "langues-24.gif", "repartition-langues", $sous_rubrique); - icone_bandeau_secondaire (_T('titre_liens_entrants'), generer_url_ecrire("statistiques_referers"), "referers-24.gif", "referers", $sous_rubrique); - - echo "</tr></table></div></div>"; - - $decal = $decal + largeur_icone_bandeau_principal(_T('icone_suivi_actualite')); - - } - - - if ($connect_statut == '0minirezo' and $connect_toutes_rubriques) { - if ($rubrique == "administration") { - $class = "visible_au_chargement"; - } else { - $class = "invisible_au_chargement"; - } - echo "<div class='$class' id='bandeauadministration' style='position: absolute; $spip_lang_left: ".$decal."px;'><div class='bandeau_sec'><table class='gauche'><tr>\n"; - icone_bandeau_secondaire (_T('icone_gestion_langues'), generer_url_ecrire("config_lang"), "langues-24.gif", "langues", $sous_rubrique); - - bandeau_barre_verticale(); - if ($options == "avancees") { - icone_bandeau_secondaire (_T('icone_maintenance_site'), generer_url_ecrire("admin_tech"), "base-24.gif", "base", $sous_rubrique); - icone_bandeau_secondaire (_T('onglet_vider_cache'), generer_url_ecrire("admin_vider"), "cache-24.gif", "cache", $sous_rubrique); - } - else { - icone_bandeau_secondaire (_T('icone_sauver_site'), generer_url_ecrire("admin_tech"), "base-24.gif", "base", $sous_rubrique); + $sousmenu= $detail->sousmenu; + if($sousmenu) { + echo "<div class='$class' id='bandeau$page' style='position: absolute; $spip_lang_left: ".$decal."px;'><div class='bandeau_sec'><table class='gauche'><tr>\n"; + + foreach($sousmenu as $souspage => $sousdetail) { + if($souspage=='espacement') { + echo "<td class='separateur'></td>\n"; + } else { + icone_bandeau_secondaire (_T($sousdetail->libelle), generer_url_ecrire($sousdetail->url?$sousdetail->url:$souspage, $sousdetail->urlArg), $sousdetail->icone, $souspage, $sous_rubrique); + } } echo "</tr></table></div></div>"; - - + } + + $decal += largeur_icone_bandeau_principal(_T($detail->libelle)); } // Refermer tout de suite le bandeau deroule par defaut @@ -2954,6 +2752,10 @@ if (true /*$gadgets*/) { } +function debut_corps_page() { + global $couleur_foncee; + global $connect_id_auteur; + // Ouverture de la partie "principale" de la page // Petite verif pour ne pas fermer le formulaire de recherche pendant qu'on l'edite echo "<center onMouseOver=\"if (findObj('bandeaurecherche') && findObj('bandeaurecherche').style.visibility == 'visible') { ouvrir_recherche = true; } else { ouvrir_recherche = false; } changestyle('bandeauvide', 'visibility', 'hidden'); if (ouvrir_recherche == true) { changestyle('bandeaurecherche','visibility','visible'); }\">"; diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php index fe3ac4bcb88f00388790e3657edfb1dbeede464a..527c575ef4b1f36c6031608d1dde4b9a676c9671 100644 --- a/ecrire/inc_utils.php +++ b/ecrire/inc_utils.php @@ -87,18 +87,21 @@ function pipeline($action, $val) { if (!isset($pipe[$action])) $pipe[$action] = array_filter(explode('|',$spip_pipeline[$action])); + $args= func_get_args(); + array_shift($args); + // Eclater le pipeline en filtres et appliquer chaque filtre foreach ($pipe[$action] as $fonc) { // fonction if (function_exists($fonc)) - $val = $fonc($val); + $val = call_user_func_array($fonc, $args); // Class::Methode else if (preg_match("/^(\w*)::(\w*)$/", $fonc, $regs) AND $methode = array($regs[1], $regs[2]) AND is_callable($methode)) - $val = call_user_func($methode, $val); + $val = call_user_func_array($methode, $args); // Charger un fichier else if ($f = $spip_matrice[$fonc]) { diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index 506031bff708ae33cdc34598ef71a342d8066ede..304ae99cd02c045748b9a9c07e19e1ee737a95d5 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -175,7 +175,9 @@ $spip_pipeline = array( 'post_propre' => '', 'pre_indexation' => '', 'pre_syndication' => '', - 'post_syndication' => '' + 'post_syndication' => '', + 'ajouter_boutons' => '', + 'ajouter_onglets' => '' ); # la matrice standard (fichiers definissant les fonctions a inclure) $spip_matrice = array (); diff --git a/ecrire/presentation.js b/ecrire/presentation.js index 231dbadf19230e8b49cd727ba0727bcddfe8ee23..53acf4f6a4942d29c18306b6200d329c0d11ceec 100644 --- a/ecrire/presentation.js +++ b/ecrire/presentation.js @@ -3,11 +3,11 @@ var init_gauche = true; function changestyle(id_couche, element, style) { if (admin) { - hide_obj("bandeaudocuments"); - hide_obj("bandeauredacteurs"); + hide_obj("bandeaunaviguer"); + hide_obj("bandeauforum_admin"); hide_obj("bandeauauteurs"); - if (stat) { hide_obj("bandeausuivi"); } - hide_obj("bandeauadministration"); + if (stat) { hide_obj("bandeaustatistiques_visites"); } + hide_obj("bandeauconfiguration"); } hide_obj("bandeaudeconnecter"); hide_obj("bandeautoutsite"); @@ -25,11 +25,11 @@ function changestyle(id_couche, element, style) { if (init_gauche) { if (admin) { - decalerCouche('bandeaudocuments'); - decalerCouche('bandeauredacteurs'); + decalerCouche('bandeaunaviguer'); + decalerCouche('bandeauforum_admin'); decalerCouche('bandeauauteurs'); - if (stat) decalerCouche('bandeausuivi'); - decalerCouche('bandeauadministration'); + if (stat) decalerCouche('bandeaustatistiques_visites'); + decalerCouche('bandeauconfiguration'); } init_gauche = false; }