source: spip-zone/_plugins_/foundation_6/trunk/foundation_6_fonctions.php @ 93786

Last change on this file since 93786 was 93786, checked in by p@…, 5 years ago

Importer la balise LIRE_CONSTANTE de Zoundation

File size: 4.4 KB
Line 
1<?php
2/**
3 * Fonction d'upgrade/installation du plugin foundation-4-spip
4 *
5 * @plugin     foundation-4-spip
6 * @copyright  2013
7 * @author     Phenix
8 * @licence    GNU/GPL
9 */
10if (!defined('_ECRIRE_INC_VERSION')) return;
11
12/**
13 * Rendre les iframes responsive via un filtre et la classe flex-video de Foundation.
14 * @param  string $texte HTML pouvant contenir des iFrames
15 * @return string        HTML avec les iFrames modifiée pour être responsive.
16 */
17function filtre_iframe_responsive($texte) {
18  include_spip('inc/foundation');
19  // On détecte tout les iFrames et on les rends responsives.
20  return preg_replace_callback('/<iframe(.+)><\/iframe>/', 'responsive', $texte);
21}
22
23/*
24*   Cette balise va permettre de rendre le squelette compatible avec toutes les versions de Foundation.
25*   La syntaxe est la suivante:
26*
27*   #COLONNES{nombre,type}
28*   nombre: le nombre de colonne foundation
29*   (optionnel) type: Dans le cas des version utilisant une syntaxe avec prefix, on lui passe le type (défaut: large)
30*/
31
32// On va cherche trouver_syntaxe_foundation dans le inc
33include_spip('inc/foundation');
34function balise_COLONNES_dist($p) {
35  // On récupère les paramètres de la balise.
36  $nombre_colonnes = interprete_argument_balise(1, $p);
37  $type = interprete_argument_balise(2, $p);
38
39  // On met une valeur par défaut à type.
40  if (!$type) $type = "'large'";
41
42  // On calcule la class
43  $p->code = "class_grid_foundation($nombre_colonnes, $type).'columns'";
44  $p->interdire_scripts = false;
45  return $p;
46}
47
48/**
49 * Balise #ORBIT, un alias pour le modèle orbit.
50 */
51function balise_ORBIT_dist($p) {
52  // On récupère les paramètres de la balise.
53  $objet = interprete_argument_balise(1, $p);
54  $id_objet = interprete_argument_balise(2, $p);
55  $data_option = interprete_argument_balise(3, $p);
56  $class = interprete_argument_balise(4, $p);
57
58  // On appel le modèle orbit avec les paramètres de la balise.
59  // Inspirer la la balise #LESAUTEURS
60  $p->code = sprintf(CODE_RECUPERER_FOND, "'modeles/orbit'",
61           "array(
62                  'objet' => $objet,
63                  'id_objet' => $id_objet,
64                  'data-options' => $data_option,
65                  'class' => $class
66                  )",
67           '',
68           _q($connect));
69  return $p;
70}
71
72/**
73 * Generer un bouton d'action qui accepte les class de foundation
74 */
75function balise_F_BOUTON_ACTION_dist($p){
76
77        $args = array();
78        for ($k=1;$k<=6;$k++){
79                $_a = interprete_argument_balise($k,$p);
80                if (!$_a) $_a="''";
81          $args[] = $_a;
82        }
83        // supprimer les args vides
84        while(end($args)=="''" AND count($args)>2)
85                array_pop($args);
86        $args = implode(",",$args);
87
88        $bouton_action = chercher_filtre("f_bouton_action");
89        $p->code = "$bouton_action($args)";
90        $p->interdire_scripts = false;
91        return $p;
92}
93
94/**
95 * On surcharge le filtre bouton_action pour ajouter $class
96 * sur la balise <button> au lieu de pour assurer la
97 * compatibilité avec les class button de foundation
98 */
99function filtre_f_bouton_action_dist($libelle, $url, $class="", $confirm="", $title="", $callback=""){
100  if ($confirm) {
101    $confirm = "confirm(\"" . attribut_html($confirm) . "\")";
102    if ($callback)
103      $callback = "$confirm?($callback):false";
104    else
105      $callback = $confirm;
106  }
107  $onclick = $callback?" onclick='return ".addcslashes($callback,"'")."'":"";
108  $title = $title ? " title='$title'" : "";
109  return "<form class='bouton_action_post' method='post' action='$url'><div>".form_hidden($url)
110    ."<button type='submit' class='submit $class'$title$onclick>$libelle</button></div></form>";
111}
112
113
114/**
115 * Filtre pour afficher des étoiles à la suite via les
116 * icone foundation.
117 *
118 * @param mixed $nombre
119 * @access public
120 * @return mixed
121 */
122function filtre_etoile_foundation_dist ($nombre) {
123
124    $config = lire_config('foundation');
125
126    if (!$config['foundation-icons'])
127        return '<span>Les icones foundation ne sont pas activée !</span>';
128
129    $etoile = '<span class="foundation_etoile">';
130    for ($i=0;$i<$nombre; $i++) {
131        $etoile .= '<span class="fi-star"></span>';
132    }
133    $etoile .= '</span>';
134
135    return $etoile;
136}
137
138
139if (!function_exists('balise_LIRE_CONSTANTE_dist')) {
140        /**
141         * Balise LIRE_CONSTANT pour SPIP
142         *
143         * @param mixed $p
144         * @access public
145         * @return mixed
146         */
147        function balise_LIRE_CONSTANTE_dist($p) {
148        $constante = interprete_argument_balise(1,$p);
149
150        $p->code = "constant($constante)";
151
152        $p->interdire_scripts = false;
153
154        return $p;
155    }
156}
Note: See TracBrowser for help on using the repository browser.