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

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

Accolade

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) {
41          $type = "'large'";
42  }
43
44  // On calcule la class
45  $p->code = "class_grid_foundation($nombre_colonnes, $type).'columns'";
46  $p->interdire_scripts = false;
47  return $p;
48}
49
50/**
51 * Balise #ORBIT, un alias pour le modèle orbit.
52 */
53function balise_ORBIT_dist($p) {
54  // On récupère les paramètres de la balise.
55  $objet = interprete_argument_balise(1, $p);
56  $id_objet = interprete_argument_balise(2, $p);
57  $data_option = interprete_argument_balise(3, $p);
58  $class = interprete_argument_balise(4, $p);
59
60  // On appel le modèle orbit avec les paramètres de la balise.
61  // Inspirer la la balise #LESAUTEURS
62  $p->code = sprintf(CODE_RECUPERER_FOND, "'modeles/orbit'",
63           "array(
64                  'objet' => $objet,
65                  'id_objet' => $id_objet,
66                  'data-options' => $data_option,
67                  'class' => $class
68                  )",
69           '',
70           _q($connect));
71  return $p;
72}
73
74/**
75 * Generer un bouton d'action qui accepte les class de foundation
76 */
77function balise_F_BOUTON_ACTION_dist($p){
78
79        $args = array();
80        for ($k=1;$k<=6;$k++){
81                $_a = interprete_argument_balise($k,$p);
82                if (!$_a) $_a="''";
83          $args[] = $_a;
84        }
85        // supprimer les args vides
86        while(end($args)=="''" AND count($args)>2) {
87                array_pop($args);
88        }
89        $args = implode(",",$args);
90
91        $bouton_action = chercher_filtre("f_bouton_action");
92        $p->code = "$bouton_action($args)";
93        $p->interdire_scripts = false;
94        return $p;
95}
96
97/**
98 * On surcharge le filtre bouton_action pour ajouter $class
99 * sur la balise <button> au lieu de pour assurer la
100 * compatibilité avec les class button de foundation
101 */
102function filtre_f_bouton_action_dist($libelle, $url, $class="", $confirm="", $title="", $callback=""){
103  if ($confirm) {
104    $confirm = "confirm(\"" . attribut_html($confirm) . "\")";
105    if ($callback)
106      $callback = "$confirm?($callback):false";
107    else
108      $callback = $confirm;
109  }
110  $onclick = $callback?" onclick='return ".addcslashes($callback,"'")."'":"";
111  $title = $title ? " title='$title'" : "";
112  return "<form class='bouton_action_post' method='post' action='$url'><div>".form_hidden($url)
113    ."<button type='submit' class='submit $class'$title$onclick>$libelle</button></div></form>";
114}
115
116
117/**
118 * Filtre pour afficher des étoiles à la suite via les
119 * icone foundation.
120 *
121 * @param mixed $nombre
122 * @access public
123 * @return mixed
124 */
125function filtre_etoile_foundation_dist ($nombre) {
126
127    $config = lire_config('foundation');
128
129    if (!$config['foundation-icons']) {
130        return '<span>Les icones foundation ne sont pas activée !</span>';
131    }
132
133    $etoile = '<span class="foundation_etoile">';
134    for ($i=0;$i<$nombre; $i++) {
135        $etoile .= '<span class="fi-star"></span>';
136    }
137    $etoile .= '</span>';
138
139    return $etoile;
140}
141
142
143if (!function_exists('balise_LIRE_CONSTANTE_dist')) {
144        /**
145         * Balise LIRE_CONSTANT pour SPIP
146         *
147         * @param mixed $p
148         * @access public
149         * @return mixed
150         */
151        function balise_LIRE_CONSTANTE_dist($p) {
152        $constante = interprete_argument_balise(1,$p);
153
154        $p->code = "constant($constante)";
155
156        $p->interdire_scripts = false;
157
158        return $p;
159    }
160}
Note: See TracBrowser for help on using the repository browser.