[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / noiZetier / noizetier_pipelines.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6 function noizetier_header_prive($flux){
7 $js = find_in_path('javascript/noizetier.js');
8 $flux .= "\n<script type='text/javascript' src='$js'></script>\n";
9 $css = generer_url_public('noizetier.css');
10 $flux .= "\n<link rel='stylesheet' href='$css' type='text/css' />\n";
11 return $flux;
12 }
13
14
15 /**
16 * Pipeline recuperer_fond pour ajouter les noisettes
17 *
18 * @param array $flux
19 * @return array
20 */
21 function noizetier_recuperer_fond($flux){
22 if (defined('_NOIZETIER_RECUPERER_FOND')?_NOIZETIER_RECUPERER_FOND:true) {
23 include_spip('inc/noizetier');
24 $fond = $flux['args']['fond'];
25 $composition = $flux['args']['contexte']['composition'];
26 // Si une composition est définie et si elle n'est pas déjà dans le fond, on l'ajoute au fond
27 // sauf s'il s'agit d'une page de type page (les squelettes page.html assurant la redirection)
28 if ($composition!='' AND noizetier_page_composition($fond)=='' AND noizetier_page_type($fond)!='page')
29 $fond .= '-'.$composition;
30
31 // Tester l'installation du noizetier pour éviter un message d'erreur à l'installation
32 if (isset($GLOBALS['meta']['noizetier_base_version'])) {
33 if (in_array($fond,noizetier_lister_blocs_avec_noisettes())) {
34 $contexte = $flux['data']['contexte'];
35 $contexte['bloc'] = substr($fond,0,strpos($fond,'/'));
36 $complements = recuperer_fond('noizetier-generer-bloc',$contexte,array('raw'=>true));
37 $flux['data']['texte'] .= $complements['texte'];
38 }
39 }
40 }
41 return $flux;
42 }
43
44 /**
45 * Pipeline compositions_lister_disponibles pour ajouter les compositions du noizetier
46 *
47 * @param array $flux
48 * @return array
49 */
50
51 function noizetier_compositions_lister_disponibles($flux){
52 $noizetier_compositions = unserialize($GLOBALS['meta']['noizetier_compositions']);
53 if (!is_array($noizetier_compositions))
54 $noizetier_compositions = array();
55 $type = $flux['args']['type'];
56 $informer = $flux['args']['informer'];
57
58 include_spip('inc/texte');
59 foreach($noizetier_compositions as $t => $compos_type)
60 foreach($compos_type as $c => $info_compo) {
61 if($informer) {
62 $noizetier_compositions[$t][$c]['nom'] = typo($info_compo['nom']);
63 $noizetier_compositions[$t][$c]['description'] = propre($info_compo['description']);
64 $noizetier_compositions[$t][$c]['icon'] = $info_compo['icon']!='' ? find_in_path($info_compo['icon']) : '';
65 }
66 else
67 $noizetier_compositions[$t][$c] = 1;
68 }
69
70 if ($type=='' AND count($noizetier_compositions)>0) {
71 if (!is_array($flux['data']))
72 $flux['data'] = array();
73 $flux['data'] = array_merge($flux['data'],$noizetier_compositions);
74 }
75 elseif (count($noizetier_compositions[$type])>0) {
76 if (!is_array($flux['data'][$type]))
77 $flux['data'][$type] = array();
78 if (!is_array($noizetier_compositions[$type]))
79 $noizetier_compositions[$type] = array();
80 $flux['data'][$type] = array_merge($flux['data'][$type],$noizetier_compositions[$type]);
81 }
82 return $flux;
83 }
84
85 /**
86 * Pipeline styliser pour les compositions du noizetier de type page si celles-ci sont activées
87 *
88 * @param array $flux
89 * @return array
90 */
91 function noizetier_styliser($flux){
92 if(defined('_NOIZETIER_COMPOSITIONS_TYPE_PAGE') AND _NOIZETIER_COMPOSITIONS_TYPE_PAGE) {
93 $squelette = $flux['data'];
94 $fond = $flux['args']['fond'];
95 $ext = $flux['args']['ext'];
96 // Si on n'a pas trouvé de squelette
97 if (!$squelette) {
98 $noizetier_compositions = unserialize($GLOBALS['meta']['noizetier_compositions']);
99 // On vérifie qu'on n'a pas demandé une composition du noizetier de type page et qu'on appele ?page=type
100 if (isset($noizetier_compositions['page'][$fond])) {
101 $flux['data'] = substr(find_in_path("page.$ext"), 0, - strlen(".$ext"));
102 $flux['args']['composition'] = $fond;
103 }
104 }
105 }
106 return $flux;
107 }
108
109 /**
110 * Pipeline jqueryui_forcer pour demander au plugin l'insertion des scripts pour .sortable()
111 *
112 * @param array $plugins
113 * @return array
114 */
115 function noizetier_jqueryui_forcer($plugins){
116 $plugins[] = "jquery.ui.core";
117 $plugins[] = "jquery.ui.widget";
118 $plugins[] = "jquery.ui.mouse";
119 $plugins[] = "jquery.ui.sortable";
120 return $plugins;
121 }
122
123
124 function noizetier_noizetier_lister_pages($flux){return $flux;}
125 function noizetier_noizetier_blocs_defaut($flux){return $flux;}
126 function noizetier_noizetier_config_export($flux){return $flux;}
127 function noizetier_noizetier_config_import($flux){return $flux;}
128
129 ?>