source: spip-zone/_plugins_/z-core/zcore_pipelines.php @ 48624

Last change on this file since 48624 was 48624, checked in by cedric@…, 10 years ago

#SI_PAGE{sommaire} doit repondre oui sur la home, meme si l'url est vide (url du site)

File size: 3.8 KB
Line 
1<?php
2/*
3 * Plugin Z-core
4 * (c) 2008-2010 Cedric MORIN Yterium.net
5 * Distribue sous licence GPL
6 *
7 */
8
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11// definition des balises et filtres boites
12include_spip('inc/filtres_boites');
13
14// verifier une seule fois que l'on peut utiliser APL si demande
15if (defined('_Z_AJAX_PARALLEL_LOAD')) {
16        // les pages APL contiennent un <noscript>
17        // avec une meta refresh sur self()+var_zapl=non
18        // ainsi, les clients sans javascript rechargent la page,
19        // se voient poser un cookie, et voient ensuite le site sans APL
20        if (_request('var_zapl')=='non') {
21                include_spip('inc/cookie');
22                spip_setcookie('no_zapl',$_COOKIE['no_zapl']='no_zapl');
23        }
24        if (!isset($_COOKIE['no_zapl'])
25         AND !_IS_BOT
26         AND !_request('var_zajax')
27         AND _request('var_mode')!=="debug"
28         AND $_SERVER['REQUEST_METHOD'] == 'GET'
29         ) {
30                define('_Z_AJAX_PARALLEL_LOAD_OK',true);
31                $GLOBALS['marqueur'] .= ":Zapl";
32        }
33}
34
35/**
36 * Inutilise mais permet le chargement de ce fichier avant le decodage des urls
37 * et l'utilisation de _DEFINIR_CONTEXTE_TYPE
38 * @param <type> $flux
39 * @return <type>
40 */
41function zcore_declarer_url_objets($flux){
42        return $flux;
43}
44
45/**
46 * Fonction Page automatique a partir de contenu/page-xx
47 *
48 * @param array $flux
49 * @return array
50 */
51function zcore_styliser($flux){
52        // dans les futures versions de SPIP on pourra faire simplement un define('_ZPIP',true);
53        if (!test_espace_prive() AND !defined('_ZCORE_EXCLURE_PATH')) {
54                $styliser_par_z = charger_fonction('styliser_par_z','public');
55                $flux = $styliser_par_z($flux);
56        }
57       
58        return $flux;
59}
60
61
62
63
64/**
65 * Surcharger les intertires avant que le core ne les utilise
66 * pour y mettre la class h3
67 * une seule fois suffit !
68 *
69 * @param string $flux
70 * @return string
71 */
72function zcore_pre_propre($flux){
73/*      static $init = false;
74        if (!$init){
75                $intertitre = $GLOBALS['debut_intertitre'];
76                $class = extraire_attribut($GLOBALS['debut_intertitre'],'class');
77                $class = ($class ? " $class":"");
78                $GLOBALS['debut_intertitre'] = inserer_attribut($GLOBALS['debut_intertitre'], 'class', "h3$class");
79                foreach($GLOBALS['spip_raccourcis_typo'] as $k=>$v){
80                        $GLOBALS['spip_raccourcis_typo'][$k] = str_replace($intertitre,$GLOBALS['debut_intertitre'],$GLOBALS['spip_raccourcis_typo'][$k]);
81                }
82                $init = true;
83        }*/
84        return $flux;
85}
86
87/**
88 * Ajouter le inc-insert-head du theme si il existe
89 *
90 * @param string $flux
91 * @return string
92 */
93function zcore_insert_head($flux){
94        if (find_in_path('inc-insert-head.html')){
95                $flux .= recuperer_fond('inc-insert-head',array());
96        }
97        return $flux;
98}
99
100/**
101 * Ajouter la definition du bloc contenu pour var_zajax
102 * @param string $flux
103 * @return string
104 */
105function zcore_insert_head_css($flux){
106        include_spip('public/styliser_par_z');
107        $contenu = reset(z_blocs(false));
108        $flux = "<script type='text/javascript'>var var_zajax_content='$contenu';</script>" . $flux;
109        return $flux;
110}
111
112//
113// fonction standard de calcul de la balise #INTRODUCTION
114// mais retourne toujours dans un <p> comme propre
115//
116// http://doc.spip.org/@filtre_introduction_dist
117if (!function_exists('filtre_introduction')){
118function filtre_introduction($descriptif, $texte, $longueur, $connect) {
119        include_spip('public/composer');
120        $texte = filtre_introduction_dist($descriptif, $texte, $longueur, $connect);
121
122        if ($GLOBALS['toujours_paragrapher'] AND strpos($texte,"</p>")===FALSE)
123                // Fermer les paragraphes ; mais ne pas en creer si un seul
124                $texte = paragrapher($texte, $GLOBALS['toujours_paragrapher']);
125
126        return $texte;
127}
128}
129
130/**
131 * Tester la presence sur une page
132 * @param <type> $p
133 * @return <type>
134 */
135if (!function_exists('balise_SI_PAGE_dist')){
136function balise_SI_PAGE_dist($p) {
137        $_page = interprete_argument_balise(1,$p);
138        $p->code = "(((\$Pile[0][_SPIP_PAGE]==(\$zp=$_page)) OR (\$Pile[0]['type']==\$zp) OR (\$Pile[0]['composition']==\$zp AND \$Pile[0]['type']=='page'))?' ':'')";
139        $p->interdire_scripts = false;
140        return $p;
141}
142}
143?>
Note: See TracBrowser for help on using the repository browser.