Changeset 108288 in spip-zone


Ignore:
Timestamp:
Jan 2, 2018, 1:14:58 PM (15 months ago)
Author:
p@…
Message:

Ajouter une balise #BLOCKGRID, similaire à #COLONNES, mais pour les block grid de Foundation

Location:
_plugins_/foundation_6/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/foundation_6/trunk/foundation_6_fonctions.php

    r108270 r108288  
    8686        // On calcule la class
    8787        $p->code = "class_grid_foundation($nombre_colonnes, $type, $total_boucle).'columns'";
     88        $p->interdire_scripts = false;
     89
     90        return $p;
     91}
     92
     93/**
     94 * Cette balise va permettre de rendre le squelette compatible avec toutes les
     95 * versions de Foundation.
     96 *
     97 * La syntaxe est la suivante:
     98 *
     99 * ```
     100 * [(#BLOCKGRID{#ARRAY{large-up, 4, medium-up, 3, small-up, 3}})]
     101 * ```
     102 *
     103 * Pour activer le calcule automatique en fonction du total d'une boucle :
     104 *
     105 * ```
     106 * [(#BLOCKGRID{#ARRAY{large-up, 4*, medium-up, 3*, small-up, 3*}})]
     107 * ```
     108 *
     109 * @param mixed $p
     110 * @access public
     111 * @return mixed
     112 */
     113function balise_BLOCKGRID_dist($p) {
     114        // On récupère les paramètres de la balise.
     115        $nombre_colonnes = interprete_argument_balise(1, $p);
     116        $type = interprete_argument_balise(2, $p);
     117
     118        // Dans le cas ou on ce trouve dans une boucle SPIP, on va passer le total
     119        // de la boucle à la fonction class_grid_foundation.
     120        $b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
     121        if ($b !== '') {
     122                $total_boucle = "\$Numrows['$b']['total']";
     123                $p->boucles[$b]->numrows = true;
     124        } else {
     125                $total_boucle = 'null';
     126        }
     127
     128        // On met une valeur par défaut à type.
     129        if (!$type) {
     130                $type = "'large-up'";
     131        }
     132
     133        // On calcule la class
     134        $p->code = "class_blocs_foundation($nombre_colonnes, $type, $total_boucle).'columns'";
    88135        $p->interdire_scripts = false;
    89136
     
    213260}
    214261
    215 function balise_CALCULER_COLONNES($p) {
     262function balise_CALCULER_COLONNES_dist($p) {
    216263        // Nombre maximum de colonne
    217264        $max = interprete_argument_balise(1, $p);
  • _plugins_/foundation_6/trunk/inc/foundation.php

    r108270 r108288  
    8989
    9090/**
     91 * Cette fonction va créer la class Foundation de la balise #BLOCKGRID
     92 *
     93 * @param int|array|string $nombre_colonnes Nombre de colonne désiré. Un étoile
     94 * (ex: 4*) activera les colonnes calculée
     95 * @param  string $type type de colonne: large-up, medium-up ou small-up
     96 * @return string $class Foundation applicable directement.
     97 */
     98function class_blocs_foundation($nombre_colonnes, $type = '', $total_boucle = null) {
     99        // Si la première variable est un tableau, on va le convertir en class
     100        if (is_array($nombre_colonnes)) {
     101                $class= '';
     102                foreach ($nombre_colonnes as $key => $value) {
     103                        // On va traiter le nombre de colonne avant de créer la class css
     104                        if (strpos($value, '*')) {
     105                                $calculer_colonnes = true; // L'étoile est détectée, on active les colonnes calculée
     106                                $value = str_replace('*', '', $value); // Supprimer l'étoile
     107                        }
     108
     109                        // Utiliser un tableau large => 4
     110                        if (is_numeric($value)) {
     111                                if (!is_null($total_boucle) and $calculer_colonnes) {
     112                                        $value = calculer_bloc($value, $total_boucle);
     113                                }
     114
     115                                $class .= $key.'-'.$value.' ';
     116                        }
     117                }
     118                return $class;
     119        } else {
     120                return $type.'-'.$nombre_colonnes.' ';
     121        }
     122}
     123
     124/**
     125 * Cette fonction va calculer le nombre de colonne d'une blockgrid et les limiter à $max
     126 *
     127 * @param int $max nombre maximum de colonne
     128 * @param int $total_boucle nombre d'élément dans la boucle
     129 * @access public
     130 * @return int
     131 */
     132function calculer_bloc($max, $total_boucle) {
     133        if ($total_boucle >= $max) {
     134                return $max;
     135        } else {
     136                return $total_boucle;
     137        }
     138}
     139
     140/**
    91141 * Utiliser jQl pour charger les scripts de Foundation
    92142 *
  • _plugins_/foundation_6/trunk/paquet.xml

    r108232 r108288  
    22        prefix="foundation_6"
    33        categorie="outil"
    4         version="6.7.0"
     4        version="6.7.1"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.