diff --git a/.gitattributes b/.gitattributes index 021e16ef339e11007c338f81683ef4fa2b67e137..c797d88646caea8c9475c8f5a70bb92e8c7dcebd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -105,6 +105,7 @@ ecrire/configuration/rubriques.php -text ecrire/configuration/syndications.php -text ecrire/configuration/transcodeur.php -text ecrire/configuration/visiteurs.php -text +ecrire/core.xml -text ecrire/exec/403.php -text ecrire/exec/404.php -text ecrire/exec/accueil.php -text @@ -255,6 +256,8 @@ ecrire/inc/nfslock.php -text ecrire/inc/notes.php -text ecrire/inc/notifications.php -text ecrire/inc/php3.php -text +ecrire/inc/pipelines.php -text +ecrire/inc/pipelines_ecrire.php -text ecrire/inc/plonger.php -text ecrire/inc/plugin.php -text ecrire/inc/prepare_recherche.php -text @@ -399,7 +402,6 @@ prive/contenu/item_rss_plugin.html -text prive/contenu/rubrique.html -text prive/contenu/site.html -text prive/contenu/syndic_article.html -text -prive/core.xml -text prive/editer/article.html -text prive/editer/auteur.html -text prive/editer/breve.html -text diff --git a/ecrire/core.xml b/ecrire/core.xml new file mode 100644 index 0000000000000000000000000000000000000000..5acc6661b360f1173ce0548c5259f8bba52f5a39 --- /dev/null +++ b/ecrire/core.xml @@ -0,0 +1,340 @@ +<plugin> + <nom>SPIP</nom> + <version></version> + <prefix>spip</prefix> + + <bouton id="bando_accueil"> + <icone>images/accueil-48.png</icone> + <titre>icone_accueil</titre> + <url>accueil</url> + </bouton> + + <bouton id="bando_edition"> + <icone>images/edition-48.png</icone> + <titre>icone_edition</titre> + <url>navigation</url> + <args>menu=bando_edition</args> + </bouton> + <bouton id='auteurs' parent="bando_edition"> + <icone>images/auteur-16.png</icone> + <titre>icone_auteurs</titre> + </bouton> + <bouton id='rubriques' parent="bando_edition"> + <icone>images/rubrique-16.png</icone> + <titre>info_rubriques</titre> + <url>naviguer</url> + </bouton> + <bouton id='breves' parent="bando_edition"> + <icone>images/breve-16.png</icone> + <titre>icone_breves</titre> + </bouton> + <bouton id='mots' parent="bando_edition"> + <icone>images/mot-16.png</icone> + <titre>icone_mots_cles</titre> + <url>mots_tous</url> + </bouton> + <bouton id='sites' parent="bando_edition"> + <icone>images/site-16.png</icone> + <titre>icone_sites_references</titre> + <url>sites_tous</url> + </bouton> + + <bouton id="bando_publication"> + <icone>images/publication-48.png</icone> + <titre>icone_publication</titre> + <url>navigation</url> + <args>menu=bando_publication</args> + </bouton> + <bouton id='articles' parent="bando_publication"> + <icone>images/article-16.png</icone> + <titre>icone_tous_articles</titre> + <url>articles_page</url> + </bouton> + <bouton id='suivi_edito' parent="bando_publication"> + <icone>images/suivi-16.png</icone> + <titre>icone_suivi_publication</titre> + </bouton> + <bouton id='synchro' parent="bando_publication"> + <icone>images/rss-16.png</icone> + <titre>icone_suivi_activite</titre> + </bouton> + + <bouton id="bando_activite"> + <icone>images/activite-48.png</icone> + <titre>icone_activite</titre> + <url>navigation</url> + <args>menu=bando_activite</args> + </bouton> + <bouton id='visiteurs' parent="bando_activite"> + <icone>images/auteur-6forum-16.png</icone> + <titre>icone_afficher_visiteurs</titre> + <url>visiteurs</url> + </bouton> + + <bouton id="bando_squelette"> + <icone>images/squelette-48.png</icone> + <titre>icone_squelette</titre> + <url>navigation</url> + <args>menu=bando_squelette</args> + </bouton> + + <bouton id="bando_administration"> + <icone>images/administration-48.png</icone> + <titre>icone_administration</titre> + <url>navigation</url> + <args>menu=bando_administration</args> + </bouton> + <bouton id='admin_vider' parent='bando_administration'> + <icone>images/cache-empty-16.png</icone> + <titre>onglet_vider_cache</titre> + </bouton> + <bouton id='admin_maintenir' parent='bando_administration'> + <icone>images/base-maintenance-16.png</icone> + <titre>titre_admin_tech</titre> + <url>admin_tech</url> + </bouton> + + + + <bouton id="bando_configuration"> + <icone>images/configuration-48.png</icone> + <titre>icone_configuration</titre> + <url>navigation</url> + <args>menu=bando_configuration</args> + </bouton> + <bouton id='configurer_identite' parent="bando_configuration"> + <icone>images/identite-16.png</icone> + <titre>titre_identite_site</titre> + <url>configurer_identite</url> + </bouton> + <bouton id='config_lang' parent="bando_configuration"> + <icone>images/langue-16.png</icone> + <titre>icone_gestion_langues</titre> + </bouton> + <bouton id='config_contenu' parent="bando_configuration"> + <icone>images/config-contenu-16.png</icone> + <titre>onglet_contenu_site</titre> + <url>configurer_contenu</url> + </bouton> + <bouton id='config_interactivite' parent="bando_configuration"> + <icone>images/config-interaction-16.png</icone> + <titre>onglet_interactivite</titre> + <url>config_contenu</url> + </bouton> + <bouton id='config_avancee' parent="bando_configuration"> + <icone>images/configuration-16.png</icone> + <titre>onglet_fonctions_avances</titre> + <url>config_fonctions</url> + </bouton> + + <bouton id='admin_plugin' parent="bando_configuration"> + <icone>images/plugin-16.png</icone> + <titre>icone_admin_plugin</titre> + </bouton> + + <bouton id="outils_collaboratifs"> + <titre></titre> + </bouton> + <bouton id='calendrier' parent="outils_collaboratifs"> + <icone>images/calendrier-16.png</icone> + <titre>Agenda interne</titre> + </bouton> + <bouton id='messagerie' parent="outils_collaboratifs"> + <icone>images/message-16.png</icone> + <titre>info_messagerie_interne</titre> + </bouton> + + <bouton id="outils_rapides"> + <titre></titre> + </bouton> + <bouton id='rubrique_creer' parent="outils_rapides"> + <icone>images/rubrique-new-16.png</icone> + <titre>icone_creer_rubrique_2</titre> + <url>rubriques_edit</url> + <args>new=oui&id_parent=@id_rubrique@</args> + </bouton> + <bouton id='article_creer' parent="outils_rapides"> + <icone>images/article-new-16.png</icone> + <titre>icone_ecrire_article</titre> + <url>articles_edit</url> + <args>new=oui&id_rubrique=@id_rubrique@</args> + </bouton> + <bouton id='auteur_creer' parent="outils_rapides"> + <icone>images/auteur-new-16.png</icone> + <titre>icone_creer_nouvel_auteur</titre> + <url>auteur_infos</url> + <args>new=oui</args> + </bouton> + <bouton id='mot_creer' parent="outils_rapides"> + <icone>images/mot-new-16.png</icone> + <titre>icone_creation_mots_cles</titre> + <url>mots_edit</url> + <args>new=oui</args> + </bouton> + <bouton id='site_creer' parent="outils_rapides"> + <icone>images/site-new-16.png</icone> + <titre>icone_referencer_nouveau_site</titre> + <url>sites_edit</url> + <args>new=oui&id_rubrique=@id_rubrique@</args> + </bouton> + <bouton id='breve_creer' parent="outils_rapides"> + <icone>images/breve-new-16.png</icone> + <titre>icone_nouvelle_breve</titre> + <url>breves_edit</url> + <args>new=oui&id_rubrique=@id_rubrique@</args> + </bouton> + + <onglet id='infos_perso' parent="infos_perso"> + <icone>images/infos_perso-24.png</icone> + <titre>icone_mes_infos</titre> + </onglet> + <onglet id='configurer_langage' parent="infos_perso"> + <icone>images/ma_langue-24.png</icone> + <titre>icone_ma_langue</titre> + </onglet> + <onglet id='configurer_preferences' parent="infos_perso"> + <icone>images/mes_preferences-24.png</icone> + <titre>icone_mes_preferences</titre> + </onglet> + + <onglet id='plugins_actifs' parent="plugins"> + <icone>images/plugin-24.png</icone> + <titre>plugins_actifs_liste</titre> + <url>admin_plugin</url> + </onglet> + <onglet id='admin_plugin' parent="plugins"> + <icone>images/plugin-24.png</icone> + <titre>plugins_liste</titre> + <url>admin_plugin</url> + <args>voir=tous</args> + </onglet> + <onglet id='charger_plugin' parent="plugins"> + <icone>images/spip-pack-24.png</icone> + <titre>plugin_titre_automatique_ajouter</titre> + <url>charger_plugin</url> + </onglet> + + + + <pipeline><nom>accueil_encours</nom><action></action></pipeline> + <pipeline><nom>accueil_gadgets</nom><action></action></pipeline> + <pipeline><nom>accueil_informations</nom><action></action></pipeline> + <pipeline><nom>affichage_final</nom> + <action>f_surligne</action> + <inclure>inc/pipelines.php</inclure> + </pipeline> + <pipeline><nom>affichage_final</nom><action>f_tidy</action></pipeline> + <pipeline><nom>affichage_final</nom><action>f_admin</action></pipeline> + <pipeline><nom>affichage_final_prive</nom> + <action>affichage_final_prive_title_auto</action> + <inclure>inc/pipelines_ecrire.php</inclure> + </pipeline> + <pipeline><nom>affichage_entetes_final</nom><action></action></pipeline> + <pipeline><nom>affichage_entetes_final_prive</nom><action></action></pipeline> + <pipeline><nom>afficher_fiche_objet</nom><action></action></pipeline> + <pipeline><nom>afficher_fiche_objet</nom><action></action></pipeline> + <pipeline><nom>afficher_config_objet</nom><action></action></pipeline> + <pipeline><nom>afficher_contenu_objet</nom><action></action></pipeline> + <pipeline><nom>afficher_nombre_objets_associes_a</nom><action></action></pipeline> + <pipeline><nom>afficher_message_statut_objet</nom><action></action></pipeline> + <pipeline><nom>affiche_droite</nom><action></action></pipeline> + <pipeline><nom>affiche_gauche</nom><action></action></pipeline> + <pipeline><nom>affiche_milieu</nom><action></action></pipeline> + <pipeline><nom>affiche_enfants</nom><action></action></pipeline> + <pipeline><nom>affiche_hierarchie</nom><action></action></pipeline> + <pipeline><nom>affiche_formulaire_login</nom> + <action>auth_formulaire_login</action> + <inclure>inc/pipelines.php</inclure> + </pipeline> + <pipeline><nom>agenda_rendu_evenement</nom><action></action></pipeline> + <pipeline><nom>alertes_auteur</nom><action></action></pipeline> + <pipeline><nom>arbo_creer_chaine_url</nom><action></action></pipeline> + <pipeline><nom>autoriser</nom><action></action></pipeline> + <pipeline><nom>base_admin_repair</nom><action></action></pipeline> + <pipeline><nom>boite_infos</nom> + <action>f_boite_infos</action> + <inclure>inc/pipelines_ecrire.php</inclure> + </pipeline> + <pipeline><nom>ajouter_boutons</nom><action></action></pipeline> + <pipeline><nom>ajouter_onglets</nom><action></action></pipeline> + <pipeline><nom>body_prive</nom><action></action></pipeline> + <pipeline><nom>calculer_rubriques</nom><action></action></pipeline> + <pipeline><nom>configurer_liste_metas</nom><action></action></pipeline> + <pipeline><nom>compter_contributions_auteur</nom><action></action></pipeline> + <pipeline><nom>declarer_tables_interfaces</nom><action></action></pipeline> + <pipeline><nom>declarer_tables_principales</nom><action></action></pipeline> + <pipeline><nom>declarer_tables_auxiliaires</nom><action></action></pipeline> + <pipeline><nom>declarer_tables_objets_surnoms</nom><action></action></pipeline> + <pipeline><nom>declarer_url_objets</nom><action></action></pipeline> + <pipeline><nom>definir_session</nom><action></action></pipeline> + <pipeline><nom>delete_tables</nom><action></action></pipeline> + <pipeline><nom>editer_contenu_objet</nom><action></action></pipeline> + <pipeline><nom>exec_init</nom><action></action></pipeline> + <pipeline><nom>formulaire_charger</nom><action></action></pipeline> + <pipeline><nom>formulaire_verifier</nom><action></action></pipeline> + <pipeline><nom>formulaire_traiter</nom><action></action></pipeline> + <pipeline><nom>formulaire_admin</nom><action></action></pipeline> + <pipeline><nom>header_prive</nom> + <action>f_jQuery_prive</action> + <inclure>inc/pipelines_ecrire.php</inclure> + </pipeline> + <pipeline><nom>insert_head</nom> + <action>f_jQuery</action> + <inclure>inc/pipelines.php</inclure> + </pipeline> + <pipeline><nom>insert_head_css</nom><action></action></pipeline> + <pipeline><nom>jquery_plugins</nom><action></action></pipeline> + <pipeline><nom>lister_tables_noerase</nom><action></action></pipeline> + <pipeline><nom>lister_tables_noexport</nom><action></action></pipeline> + <pipeline><nom>lister_tables_noimport</nom><action></action></pipeline> + <pipeline><nom>libelle_association_mots</nom><action></action></pipeline> + <pipeline><nom>mots_indexation</nom><action></action></pipeline> + <pipeline><nom>nettoyer_raccourcis_typo</nom><action></action></pipeline> + <pipeline><nom>notifications</nom><action></action></pipeline> + <pipeline><nom>objet_compte_enfants</nom><action></action></pipeline> + <pipeline><nom>optimiser_base_disparus</nom><action></action></pipeline> + <pipeline><nom>prepare_recherche</nom><action></action></pipeline> + <pipeline><nom>pre_boucle</nom><action></action></pipeline> + <pipeline><nom>post_boucle</nom><action></action></pipeline> + <pipeline><nom>post_image_filtrer</nom><action></action></pipeline> + <pipeline><nom>pre_propre</nom> + <action>traiter_poesie</action> + </pipeline> + <pipeline><nom>pre_propre</nom> + <action>traiter_retours_chariots</action> + </pipeline> + <pipeline><nom>pre_liens</nom> + <action>traiter_raccourci_liens</action> + </pipeline> + <pipeline><nom>pre_liens</nom> + <action>traiter_raccourci_glossaire</action> + </pipeline> + <pipeline><nom>pre_liens</nom> + <action>traiter_raccourci_ancre</action> + </pipeline> + <pipeline><nom>post_propre</nom><action></action></pipeline> + <pipeline><nom>pre_typo</nom><action></action></pipeline> + <pipeline><nom>post_typo</nom> + <action>quote_amp</action> + </pipeline> + <pipeline><nom>pre_edition</nom><action></action></pipeline> + <pipeline><nom>post_edition</nom><action></action></pipeline> + <pipeline><nom>pre_insertion</nom><action></action></pipeline> + <pipeline><nom>post_insertion</nom><action></action></pipeline> + <pipeline><nom>pre_syndication</nom><action></action></pipeline> + <pipeline><nom>post_syndication</nom><action></action></pipeline> + <pipeline><nom>pre_indexation</nom><action></action></pipeline> + <pipeline><nom>propres_creer_chaine_url</nom><action></action></pipeline> + <pipeline><nom>requete_dico</nom><action></action></pipeline> + <pipeline><nom>rubrique_encours</nom><action></action></pipeline> + <pipeline><nom>taches_generales_cron</nom><action></action></pipeline> + <pipeline><nom>rechercher_liste_des_champs</nom><action></action></pipeline> + <pipeline><nom>rechercher_liste_des_jointures</nom><action></action></pipeline> + <pipeline><nom>recuperer_fond</nom><action></action></pipeline> + <pipeline><nom>styliser</nom><action></action></pipeline> + <pipeline><nom>trig_calculer_prochain_postdate</nom><action></action></pipeline> + <pipeline><nom>trig_calculer_langues_rubriques</nom><action></action></pipeline> + <pipeline><nom>trig_propager_les_secteurs</nom><action></action></pipeline> + <pipeline><nom>trig_supprimer_objets_lies</nom><action></action></pipeline> + +</plugin> diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index 787f7ffbbaa4ca4a5073a0606b36eb2a1d54bc9e..c3c3beffd8f38987b017f8f3f4079afd55439d78 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -2067,27 +2067,6 @@ function env_to_attributs ($texte, $ignore_params=array()) { return $texte; } -// Inserer jQuery -// ne pas verifier ici qu'on ne doublonne pas #INSERT_HEAD -// car cela empeche un double appel (multi calcul en cache cool, -// ou erreur de l'espace prive) -// http://doc.spip.org/@f_jQuery -function f_jQuery ($texte) { - $x = ''; - foreach (array_unique(pipeline('jquery_plugins', - array( - 'javascript/jquery.js', - 'javascript/jquery.form.js', - 'javascript/jquery.autosave.js', - 'javascript/ajaxCallback.js', - 'javascript/jquery.cookie.js' - ))) as $script) - if ($script = find_in_path($script)) - $x .= "\n<script src=\"$script\" type=\"text/javascript\"></script>\n"; - $texte = $x.$texte; - return $texte; -} - // Concatener des chaines // #TEXTE|concat{texte1,texte2,...} // http://doc.spip.org/@concat diff --git a/ecrire/inc/filtres_ecrire.php b/ecrire/inc/filtres_ecrire.php index 099593b73afb23f4329f57389e7d62e0f0c0ea3d..f93b614bc069ed78ed612bf2a44e6e0833fd8d0d 100644 --- a/ecrire/inc/filtres_ecrire.php +++ b/ecrire/inc/filtres_ecrire.php @@ -32,33 +32,6 @@ function interdire_acces($ok=false) { exit; } -/** - * Filtre d'ajout automatique du title dans les pages du prive en squelette - * appelle dans le pipeline affichage_final_prive - * - * @param string $texte - * @return string - */ -function f_title_auto($texte){ - if (strpos($texte,'<title>')===false - AND - (preg_match(",<h1[^>]*>(.+)</h1>,Uims", $texte, $match) - OR preg_match(",<h[23][^>]*>(.+)</h[23]>,Uims", $texte, $match)) - AND $match = trim($match[1]) - AND ($p = strpos($texte,'<head>'))!==FALSE) { - if (!$nom_site_spip = textebrut(typo($GLOBALS['meta']["nom_site"]))) - $nom_site_spip= _T('info_mon_site_spip'); - - $titre = "<title>[" - . $nom_site_spip - . "] ". $match - ."</title>"; - - $texte = substr_replace($texte, $titre, $p+6,0); - } - return $texte; -} - /** * #BOITE_OUVRIR{titre[,type]} * Racourci pour ouvrir une boite (info, simple, pour noisette ...) diff --git a/ecrire/inc/pipelines.php b/ecrire/inc/pipelines.php new file mode 100644 index 0000000000000000000000000000000000000000..e109993a34f152d8328b188da687c11b409c7b2f --- /dev/null +++ b/ecrire/inc/pipelines.php @@ -0,0 +1,102 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2009 * + * 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; + + +// Inserer jQuery +// ne pas verifier ici qu'on ne doublonne pas #INSERT_HEAD +// car cela empeche un double appel (multi calcul en cache cool, +// ou erreur de l'espace prive) +// http://doc.spip.org/@f_jQuery +function f_jQuery ($texte) { + $x = ''; + foreach (array_unique(pipeline('jquery_plugins', + array( + 'javascript/jquery.js', + 'javascript/jquery.form.js', + 'javascript/jquery.autosave.js', + 'javascript/ajaxCallback.js', + 'javascript/jquery.cookie.js' + ))) as $script) + if ($script = find_in_path($script)) + $x .= "\n<script src=\"$script\" type=\"text/javascript\"></script>\n"; + $texte = $x.$texte; + return $texte; +} + +// Traiter var_recherche ou le referrer pour surligner les mots +// http://doc.spip.org/@f_surligne +function f_surligne ($texte) { + if (!$GLOBALS['html']) return $texte; + $rech = _request('var_recherche'); + if (!$rech AND !isset($_SERVER['HTTP_REFERER'])) return $texte; + include_spip('inc/surligne'); + return surligner_mots($texte, $rech); +} + +// Valider/indenter a la demande. +// http://doc.spip.org/@f_tidy +function f_tidy ($texte) { + global $xhtml; + + if ($xhtml # tidy demande + AND $GLOBALS['html'] # verifie que la page avait l'entete text/html + AND strlen($texte) + AND !headers_sent()) { + # Compatibilite ascendante + if (!is_string($xhtml)) $xhtml ='tidy'; + + if (!$f = charger_fonction($xhtml, 'inc', true)) { + spip_log("tidy absent, l'indenteur SPIP le remplace"); + $f = charger_fonction('sax', 'xml'); + } + return $f($texte); + } + + return $texte; +} + +// Offre #INSERT_HEAD sur tous les squelettes (bourrin) +// a activer dans mes_options via : +// $spip_pipeline['affichage_final'] .= '|f_insert_head'; +// http://doc.spip.org/@f_insert_head +function f_insert_head($texte) { + if (!$GLOBALS['html']) return $texte; + include_spip('public/admin'); // pour strripos + + ($pos = stripos($texte, '</head>')) + || ($pos = stripos($texte, '<body>')) + || ($pos = 0); + + if (false === strpos(substr($texte, 0,$pos), '<!-- insert_head -->')) { + $insert = "\n".pipeline('insert_head','<!-- f_insert_head -->')."\n"; + $texte = substr_replace($texte, $insert, $pos, 0); + } + + return $texte; +} + +// Inserer au besoin les boutons admins +// http://doc.spip.org/@f_admin +function f_admin ($texte) { + if ($GLOBALS['affiche_boutons_admin']) { + include_spip('public/admin'); + $texte = affiche_boutons_admin($texte); + } + if (_request('var_mode')=='noajax'){ + $texte = preg_replace(',(class=[\'"][^\'"]*)ajax([^\'"]*[\'"]),Uims',"\\1\\2",$texte); + } + return $texte; +} + +?> \ No newline at end of file diff --git a/ecrire/inc/pipelines_ecrire.php b/ecrire/inc/pipelines_ecrire.php new file mode 100644 index 0000000000000000000000000000000000000000..2d2c9589ae8a4ec135e49ddb33e6fef89030e8fc --- /dev/null +++ b/ecrire/inc/pipelines_ecrire.php @@ -0,0 +1,71 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2009 * + * 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; + +// Inserer jQuery pour ecrire/ +// http://doc.spip.org/@f_jQuery +function f_jQuery_prive ($texte) { + $x = ''; + foreach (array_unique(pipeline('jquery_plugins', + array( + 'javascript/jquery.js', + 'javascript/jquery.form.js', + 'javascript/jquery.autosave.js', + 'javascript/ajaxCallback.js', + 'javascript/jquery.cookie.js' + ))) as $script) + if ($script = find_in_path($script)) + $x .= "\n<script src=\"$script\" type=\"text/javascript\"></script>\n"; + $texte = $x.$texte; + return $texte; +} + +/** + * Ajout automatique du title dans les pages du prive en squelette + * appelle dans le pipeline affichage_final_prive + * + * @param string $texte + * @return string + */ +function affichage_final_prive_title_auto($texte){ + if (strpos($texte,'<title>')===false + AND + (preg_match(",<h1[^>]*>(.+)</h1>,Uims", $texte, $match) + OR preg_match(",<h[23][^>]*>(.+)</h[23]>,Uims", $texte, $match)) + AND $match = trim($match[1]) + AND ($p = strpos($texte,'<head>'))!==FALSE) { + if (!$nom_site_spip = textebrut(typo($GLOBALS['meta']["nom_site"]))) + $nom_site_spip= _T('info_mon_site_spip'); + + $titre = "<title>[" + . $nom_site_spip + . "] ". $match + ."</title>"; + + $texte = substr_replace($texte, $titre, $p+6,0); + } + return $texte; +} + + +// Fonction standard pour le pipeline 'boite_infos' +// http://doc.spip.org/@f_boite_infos +function f_boite_infos($flux) { + $args = $flux['args']; + $type = $args['type']; + unset($args['row']); + $flux['data'] .= recuperer_fond("prive/infos/$type",$args); + return $flux; +} + +?> \ No newline at end of file diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php index 13da566656c12574f2649f1d1062ff5becdd62c8..d391e315fc4564627a55b3e4c4abdd704b735bf6 100644 --- a/ecrire/inc/plugin.php +++ b/ecrire/inc/plugin.php @@ -179,7 +179,7 @@ function liste_plugin_valides($liste_plug, $force = false){ // creer une premiere liste non ordonnee mais qui ne retient // que les plugins valides, et dans leur derniere version en cas de doublon $get_infos = charger_fonction('get_infos','plugins'); - $infos['_DIR_RESTREINT'][''] = $get_infos($plug,$force,_DIR_RACINE.'prive/','core.xml'); + $infos['_DIR_RESTREINT'][''] = $get_infos('./',$force,_DIR_RESTREINT,'core.xml'); $infos['_DIR_RESTREINT']['SPIP']['version'] = $GLOBALS['spip_version_branche']; $infos['_DIR_RESTREINT']['SPIP']['path'] = array(); $liste_non_classee = array('SPIP'=>array( @@ -465,7 +465,7 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') { $plug = $plugin_valides[$p]['dir']; $info = $infos[$dir_type][$plug]; $prefix = ""; - $prefix = $info['prefix']."_"; + $prefix = ($info['prefix']=='spip'?'':$info['prefix']."_"); if (isset($info['pipeline']) AND is_array($info['pipeline'])){ foreach($info['pipeline'] as $pipe){ $nom = $pipe['nom']; @@ -483,11 +483,13 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') { $nom = $nomlower; if (!isset($GLOBALS['spip_pipeline'][$nom])) // creer le pipeline eventuel $GLOBALS['spip_pipeline'][$nom]=""; - if (strpos($GLOBALS['spip_pipeline'][$nom],"|$prefix$action")===FALSE) - $GLOBALS['spip_pipeline'][$nom] = preg_replace(",(\|\||$),","|$prefix$action\\1",$GLOBALS['spip_pipeline'][$nom],1); - if (isset($pipe['inclure'])){ - $GLOBALS['spip_matrice']["$prefix$action"] = - "$root_dir_type:$plug/".$pipe['inclure']; + if ($action) { + if (strpos($GLOBALS['spip_pipeline'][$nom],"|$prefix$action")===FALSE) + $GLOBALS['spip_pipeline'][$nom] = preg_replace(",(\|\||$),","|$prefix$action\\1",$GLOBALS['spip_pipeline'][$nom],1); + if (isset($pipe['inclure'])){ + $GLOBALS['spip_matrice']["$prefix$action"] = + "$root_dir_type:$plug/".$pipe['inclure']; + } } } } diff --git a/ecrire/inc/presentation_mini.php b/ecrire/inc/presentation_mini.php index 77c8e13d4aff85c3d9b66be20341322c7534047e..8afd78cd42d32452322359dad6a486343f1b04ea 100644 --- a/ecrire/inc/presentation_mini.php +++ b/ecrire/inc/presentation_mini.php @@ -180,16 +180,6 @@ function debut_javascript() http_script('', 'gadgets.js'); } -// Fonction standard pour le pipeline 'boite_infos' -// http://doc.spip.org/@f_boite_infos -function f_boite_infos($flux) { - $args = $flux['args']; - $type = $args['type']; - unset($args['row']); - $flux['data'] .= recuperer_fond("prive/infos/$type",$args); - return $flux; -} - // // Cadre centre (haut de page) // diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index bc569388e2eb9168476e669f8d7a736af268d5ec..dd7a6f6c5209bb3ee454c0a497b028a0a357ffea 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -101,7 +101,7 @@ function minipipe($fonc,&$val){ // chargement du pipeline sous la forme d'un fichier php prepare // http://doc.spip.org/@pipeline -function pipeline($action, $val=null) { +function pipeline($action, $val=null , $create_ifnotexists = true) { static $charger; // chargement initial des fonctions mises en cache, ou generation du cache @@ -126,7 +126,7 @@ function pipeline($action, $val=null) { $val = $fonc($val); } // plantage ? - else { + elseif ($create_ifnotexists) { include_spip('inc/plugin'); // on passe $action en arg pour creer la fonction meme si le pipe // n'est defini nul part ; vu qu'on est la c'est qu'il existe ! diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index baf4aa4f953aa1c4a09bd55be693f439722f318f..6c3571b394742c5859006bbc2e5e7a858c8fe6f6 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -263,89 +263,7 @@ $notes_vues = array(); # lorsqu'il est rencontre // http://doc.spip.org/@Tuto-Se-servir-des-points-d-entree $spip_pipeline = array( - 'accueil_encours' => '', - 'accueil_gadgets' => '', - 'accueil_informations' => '', - # cf. public/assembler - 'affichage_final' => '|f_surligne|f_tidy|f_admin', - 'affichage_final_prive' => '|f_title_auto', - 'affichage_entetes_final' => '', - 'affichage_entetes_final_prive' => '', - 'afficher_fiche_objet'=>'', - 'afficher_config_objet' => '', - 'afficher_contenu_objet' => '', - 'afficher_nombre_objets_associes_a' => '', - 'affiche_droite' => '', - 'affiche_gauche' => '', - 'affiche_milieu' => '', - 'affiche_enfants' => '', - 'affiche_hierarchie' => '', - 'affiche_formulaire_login' => '|auth_formulaire_login', - 'alertes_auteur' => '', - 'base_admin_repair' => '', - 'boite_infos' => 'f_boite_infos', - 'ajouter_boutons' => '', - 'ajouter_onglets' => '', - 'body_prive' => '', - 'configurer_liste_metas'=>'', - 'compter_contributions_auteur'=>'', - 'declarer_tables_interfaces'=>'', - 'declarer_tables_principales'=>'', - 'declarer_tables_auxiliaires'=>'', - 'declarer_tables_objets_surnoms' => '', - 'declarer_url_objets' => '', - 'definir_session' => '', - 'delete_tables' => '', - 'exec_init' => '', - 'formulaire_charger' => '', - 'formulaire_verifier' => '', - 'formulaire_traiter' => '', - 'formulaire_admin' => '', - 'header_prive' => '|f_jQuery', - 'insert_head' => '|f_jQuery', - 'jquery_plugins' => '', -# 'insert_js' => '', - 'lister_tables_noerase' => '', - 'lister_tables_noexport' => '', - 'lister_tables_noimport' => '', - 'libelle_association_mots' => '', -# 'verifie_js_necessaire' => '', - 'mots_indexation' => '', - 'nettoyer_raccourcis_typo' => '', - 'objet_compte_enfants' => '', - 'optimiser_base_disparus' => '', - 'pre_boucle' => '', - 'post_boucle' => '', - 'post_image_filtrer' => '', - 'pre_propre' => 'traiter_poesie|traiter_retours_chariots', - 'pre_liens' => '|traiter_raccourci_liens|traiter_raccourci_glossaire - |traiter_raccourci_ancre', - 'post_propre' => '', - 'pre_typo' => '', - 'post_typo' => '|quote_amp', - 'pre_edition' => '', - 'post_edition' => '', - 'pre_insertion' => '', - 'post_insertion' => '', - 'pre_syndication' => '', - 'post_syndication' => '', - 'pre_indexation' => '', - 'requete_dico' => '', - 'rubrique_encours' => '', - 'agenda_rendu_evenement' => '', - 'taches_generales_cron' => '', - 'calculer_rubriques' => '', - 'autoriser' => '', - 'notifications' => '', - 'editer_contenu_objet' => '', - 'rechercher_liste_des_champs' => '', - 'rechercher_liste_des_jointures' => '', - 'recuperer_fond' => '', 'styliser' => '||styliser_par_rubrique|styliser_par_langue', - 'trig_calculer_prochain_postdate' => '', - 'trig_calculer_langues_rubriques' => '', - 'trig_propager_les_secteurs' => '', - 'trig_supprimer_objets_lies' => '', ); # la matrice standard (fichiers definissant les fonctions a inclure) diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php index 70ab8bf5cd9ab3f48d58cdca5a87c7de7e8f6fe4..9b325ee45ca8243a8826b44810deb3ca164e4495 100644 --- a/ecrire/public/assembler.php +++ b/ecrire/public/assembler.php @@ -343,23 +343,22 @@ function inclure_balise_dynamique($texte, $echo=true, $contexte_compil=array()) $args = is_array($page['contexte']['_pipeline'])?end($page['contexte']['_pipeline']):array(); $args['contexte'] = $page['contexte']; unset($args['contexte']['_pipeline']); // par precaution, meme si le risque de boucle infinie est a priori nul - if (isset($GLOBALS['spip_pipeline'][$pipe])) $texte = pipeline($pipe,array( 'data'=>$texte, - 'args'=>$args)); + 'args'=>$args), + false); } // Le parametre _pipeline devient deprecie, remplace par _pipelines au pluriel avec une syntaxe permettant plusieurs pipelines if (isset($page['contexte']['_pipelines']) and is_array($page['contexte']['_pipelines'])) { foreach($page['contexte']['_pipelines'] as $pipe=>$args){ - if (isset($GLOBALS['spip_pipeline'][$pipe])){ - $texte = pipeline( - $pipe, - array( - 'data'=>$texte, - 'args'=>$args - ) - ); - } + $texte = pipeline( + $pipe, + array( + 'data'=>$texte, + 'args'=>$args + ), + false + ); } } } @@ -376,72 +375,6 @@ function inclure_balise_dynamique($texte, $echo=true, $contexte_compil=array()) } -// Traiter var_recherche ou le referrer pour surligner les mots -// http://doc.spip.org/@f_surligne -function f_surligne ($texte) { - if (!$GLOBALS['html']) return $texte; - $rech = _request('var_recherche'); - if (!$rech AND !isset($_SERVER['HTTP_REFERER'])) return $texte; - include_spip('inc/surligne'); - return surligner_mots($texte, $rech); -} - -// Valider/indenter a la demande. -// http://doc.spip.org/@f_tidy -function f_tidy ($texte) { - global $xhtml; - - if ($xhtml # tidy demande - AND $GLOBALS['html'] # verifie que la page avait l'entete text/html - AND strlen($texte) - AND !headers_sent()) { - # Compatibilite ascendante - if (!is_string($xhtml)) $xhtml ='tidy'; - - if (!$f = charger_fonction($xhtml, 'inc', true)) { - spip_log("tidy absent, l'indenteur SPIP le remplace"); - $f = charger_fonction('sax', 'xml'); - } - return $f($texte); - } - - return $texte; -} - -// Offre #INSERT_HEAD sur tous les squelettes (bourrin) -// a activer dans mes_options via : -// $spip_pipeline['affichage_final'] .= '|f_insert_head'; -// http://doc.spip.org/@f_insert_head -function f_insert_head($texte) { - if (!$GLOBALS['html']) return $texte; - include_spip('public/admin'); // pour strripos - - ($pos = stripos($texte, '</head>')) - || ($pos = stripos($texte, '<body>')) - || ($pos = 0); - - if (false === strpos(substr($texte, 0,$pos), '<!-- insert_head -->')) { - $insert = "\n".pipeline('insert_head','<!-- f_insert_head -->')."\n"; - $texte = substr_replace($texte, $insert, $pos, 0); - } - - return $texte; -} - -// Inserer au besoin les boutons admins -// http://doc.spip.org/@f_admin -function f_admin ($texte) { - if ($GLOBALS['affiche_boutons_admin']) { - include_spip('public/admin'); - $texte = affiche_boutons_admin($texte); - } - if (_request('var_mode')=='noajax'){ - $texte = preg_replace(',(class=[\'"][^\'"]*)ajax([^\'"]*[\'"]),Uims',"\\1\\2",$texte); - } - return $texte; -} - - // http://doc.spip.org/@message_erreur_404 function message_erreur_404 ($erreur= "", $code='404 Not Found') { static $deja = false; diff --git a/prive/core.xml b/prive/core.xml deleted file mode 100644 index 9c71bdab1640417547df2ea6da2a8c50176148ce..0000000000000000000000000000000000000000 --- a/prive/core.xml +++ /dev/null @@ -1,217 +0,0 @@ -<plugin> - <nom>SPIP</nom> - <version></version> - <prefix>spip</prefix> - - <bouton id="bando_accueil"> - <icone>images/accueil-48.png</icone> - <titre>icone_accueil</titre> - <url>accueil</url> - </bouton> - - <bouton id="bando_edition"> - <icone>images/edition-48.png</icone> - <titre>icone_edition</titre> - <url>navigation</url> - <args>menu=bando_edition</args> - </bouton> - <bouton id='auteurs' parent="bando_edition"> - <icone>images/auteur-16.png</icone> - <titre>icone_auteurs</titre> - </bouton> - <bouton id='rubriques' parent="bando_edition"> - <icone>images/rubrique-16.png</icone> - <titre>info_rubriques</titre> - <url>naviguer</url> - </bouton> - <bouton id='breves' parent="bando_edition"> - <icone>images/breve-16.png</icone> - <titre>icone_breves</titre> - </bouton> - <bouton id='mots' parent="bando_edition"> - <icone>images/mot-16.png</icone> - <titre>icone_mots_cles</titre> - <url>mots_tous</url> - </bouton> - <bouton id='sites' parent="bando_edition"> - <icone>images/site-16.png</icone> - <titre>icone_sites_references</titre> - <url>sites_tous</url> - </bouton> - - <bouton id="bando_publication"> - <icone>images/publication-48.png</icone> - <titre>icone_publication</titre> - <url>navigation</url> - <args>menu=bando_publication</args> - </bouton> - <bouton id='articles' parent="bando_publication"> - <icone>images/article-16.png</icone> - <titre>icone_tous_articles</titre> - <url>articles_page</url> - </bouton> - <bouton id='suivi_edito' parent="bando_publication"> - <icone>images/suivi-16.png</icone> - <titre>icone_suivi_publication</titre> - </bouton> - <bouton id='synchro' parent="bando_publication"> - <icone>images/rss-16.png</icone> - <titre>icone_suivi_activite</titre> - </bouton> - - <bouton id="bando_activite"> - <icone>images/activite-48.png</icone> - <titre>icone_activite</titre> - <url>navigation</url> - <args>menu=bando_activite</args> - </bouton> - <bouton id='visiteurs' parent="bando_activite"> - <icone>images/auteur-6forum-16.png</icone> - <titre>icone_afficher_visiteurs</titre> - <url>visiteurs</url> - </bouton> - - <bouton id="bando_squelette"> - <icone>images/squelette-48.png</icone> - <titre>icone_squelette</titre> - <url>navigation</url> - <args>menu=bando_squelette</args> - </bouton> - - <bouton id="bando_administration"> - <icone>images/administration-48.png</icone> - <titre>icone_administration</titre> - <url>navigation</url> - <args>menu=bando_administration</args> - </bouton> - <bouton id='admin_vider' parent='bando_administration'> - <icone>images/cache-empty-16.png</icone> - <titre>onglet_vider_cache</titre> - </bouton> - <bouton id='admin_maintenir' parent='bando_administration'> - <icone>images/base-maintenance-16.png</icone> - <titre>titre_admin_tech</titre> - <url>admin_tech</url> - </bouton> - - - - <bouton id="bando_configuration"> - <icone>images/configuration-48.png</icone> - <titre>icone_configuration</titre> - <url>navigation</url> - <args>menu=bando_configuration</args> - </bouton> - <bouton id='configurer_identite' parent="bando_configuration"> - <icone>images/identite-16.png</icone> - <titre>titre_identite_site</titre> - <url>configurer_identite</url> - </bouton> - <bouton id='config_lang' parent="bando_configuration"> - <icone>images/langue-16.png</icone> - <titre>icone_gestion_langues</titre> - </bouton> - <bouton id='config_contenu' parent="bando_configuration"> - <icone>images/config-contenu-16.png</icone> - <titre>onglet_contenu_site</titre> - <url>configurer_contenu</url> - </bouton> - <bouton id='config_interactivite' parent="bando_configuration"> - <icone>images/config-interaction-16.png</icone> - <titre>onglet_interactivite</titre> - <url>config_contenu</url> - </bouton> - <bouton id='config_avancee' parent="bando_configuration"> - <icone>images/configuration-16.png</icone> - <titre>onglet_fonctions_avances</titre> - <url>config_fonctions</url> - </bouton> - - <bouton id='admin_plugin' parent="bando_configuration"> - <icone>images/plugin-16.png</icone> - <titre>icone_admin_plugin</titre> - </bouton> - - <bouton id="outils_collaboratifs"> - <titre></titre> - </bouton> - <bouton id='calendrier' parent="outils_collaboratifs"> - <icone>images/calendrier-16.png</icone> - <titre>Agenda interne</titre> - </bouton> - <bouton id='messagerie' parent="outils_collaboratifs"> - <icone>images/message-16.png</icone> - <titre>info_messagerie_interne</titre> - </bouton> - - <bouton id="outils_rapides"> - <titre></titre> - </bouton> - <bouton id='rubrique_creer' parent="outils_rapides"> - <icone>images/rubrique-new-16.png</icone> - <titre>icone_creer_rubrique_2</titre> - <url>rubriques_edit</url> - <args>new=oui&id_parent=@id_rubrique@</args> - </bouton> - <bouton id='article_creer' parent="outils_rapides"> - <icone>images/article-new-16.png</icone> - <titre>icone_ecrire_article</titre> - <url>articles_edit</url> - <args>new=oui&id_rubrique=@id_rubrique@</args> - </bouton> - <bouton id='auteur_creer' parent="outils_rapides"> - <icone>images/auteur-new-16.png</icone> - <titre>icone_creer_nouvel_auteur</titre> - <url>auteur_infos</url> - <args>new=oui</args> - </bouton> - <bouton id='mot_creer' parent="outils_rapides"> - <icone>images/mot-new-16.png</icone> - <titre>icone_creation_mots_cles</titre> - <url>mots_edit</url> - <args>new=oui</args> - </bouton> - <bouton id='site_creer' parent="outils_rapides"> - <icone>images/site-new-16.png</icone> - <titre>icone_referencer_nouveau_site</titre> - <url>sites_edit</url> - <args>new=oui&id_rubrique=@id_rubrique@</args> - </bouton> - <bouton id='breve_creer' parent="outils_rapides"> - <icone>images/breve-new-16.png</icone> - <titre>icone_nouvelle_breve</titre> - <url>breves_edit</url> - <args>new=oui&id_rubrique=@id_rubrique@</args> - </bouton> - - <onglet id='infos_perso' parent="infos_perso"> - <icone>images/infos_perso-24.png</icone> - <titre>icone_mes_infos</titre> - </onglet> - <onglet id='configurer_langage' parent="infos_perso"> - <icone>images/ma_langue-24.png</icone> - <titre>icone_ma_langue</titre> - </onglet> - <onglet id='configurer_preferences' parent="infos_perso"> - <icone>images/mes_preferences-24.png</icone> - <titre>icone_mes_preferences</titre> - </onglet> - - <onglet id='plugins_actifs' parent="plugins"> - <icone>images/plugin-24.png</icone> - <titre>plugins_actifs_liste</titre> - <url>admin_plugin</url> - </onglet> - <onglet id='admin_plugin' parent="plugins"> - <icone>images/plugin-24.png</icone> - <titre>plugins_liste</titre> - <url>admin_plugin</url> - <args>voir=tous</args> - </onglet> - <onglet id='charger_plugin' parent="plugins"> - <icone>images/spip-pack-24.png</icone> - <titre>plugin_titre_automatique_ajouter</titre> - <url>charger_plugin</url> - </onglet> - -</plugin>