source: spip-zone/_plugins_/acs/lib/composant/composants_variables.php @ 41495

Last change on this file since 41495 was 41495, checked in by webmaster@…, 9 years ago

Passage en version 0.7.2 en raison de la creation d'un nouveau type de variable (key)

  • Nouveau type de variable : key (mot-clef)


Cat :

  • page recherche avec composants contextuels pour les résultats (les composants breves, forums, keys,rubnav et syndic affichent des resultats contextuels selon l page où ils sont utilisés. Par exemple, sur la page de resultats d'une recherche, ils donnent le résultat de la recherche.
  • Encart : ce composant devient instanciable et utilise le nouveau type de variable mot-clef
  • Login : affichage du nombre d'articles et de messages de l'utilisateur
File size: 2.3 KB
Line 
1<?php
2#              ACS
3#          (Plugin Spip)
4#     http://acs.geomaticien.org
5#
6# Copyright Daniel FAIVRE, 2007-2010
7# Copyleft: licence GPL - Cf. LICENCES.txt
8
9/**
10 * Retourne un tableau de toutes les variables de composants
11 *
12 * Utilise le cache ACS
13 */
14
15include_spip('lib/composant/composants_liste');
16
17function composants_variables() {
18  static $cv=array();
19
20  if (count($cv) > 0)
21    return $cv;
22
23  include_spip('inc/acs_cache');
24  $model = (isset($GLOBALS['meta']['acsModel']) ? $GLOBALS['meta']['acsModel'] : 'cat');
25  $cv = cache('lecture_composants_variables', 'a_'.$model.'_cv');
26  $cv = $cv[0];
27
28  return $cv;
29}
30
31// On profite de la lecture du fichier composant.xml pour récupérer en une seule fois toutes les informations utiles:
32// lien variable<->composant, type de variable, actif/inactif
33function lecture_composants_variables() {
34  require_once _DIR_ACS.'lib/composant/composants_liste.php';
35
36  include_spip('inc/xml');
37  $r = array();
38  foreach(composants_liste() as $composant=>$tag) {
39    $config = find_in_path('composants/'.$composant.'/ecrire/composant.xml');
40    $config = spip_xml_load($config); // Lit les paramètres de configuration du composant
41    $c = $config['composant'][0];
42    $r[$composant]['vars']['Use'] = array('type' => 'use');
43                if ($tag['over']) 
44                        $r[$composant]['over'] = $tag['over'];
45
46                // Lecture des parametres : todo
47               
48                // Lecture des variables
49    if (is_array($c['variable'])) {
50      foreach($c['variable'] as $k=>$var) {
51        /*$option = array();
52        $chemin = false;*/
53        foreach($var as $xmltag=>$value) {
54          if ($xmltag == 'nom')
55            $nom = $value[0];
56          elseif (count($value) > 1)
57            $r[$composant]['vars'][$nom][$xmltag] = $value;
58          else
59            $r[$composant]['vars'][$nom][$xmltag] = $value[0];
60        }
61      }
62    }
63  }
64  return $r;
65}
66
67function liste_variables() {
68        static $lv = array();
69  if (count($lv) > 0)
70    return $lv;
71   
72  $cv = composants_variables();
73        foreach($cv as $c=>$p) {
74                foreach($p['vars'] as $var=>$vp) {
75                        $lv[ucfirst($c).$var] = array('c' => $c, 'type' => $vp['type']);
76                }
77        foreach(composant_instances($c) as $nic) {
78                foreach($p['vars'] as $var=>$vp) {
79                                $lv[ucfirst($c).$nic.$var] = array('c' => $c, 'type' => $vp['type'], 'nic' => $nic);
80                }
81        }
82  }
83  return $lv;
84}
85
86?>
Note: See TracBrowser for help on using the repository browser.