Changeset 111843 in spip-zone


Ignore:
Timestamp:
Oct 4, 2018, 5:15:41 PM (10 months ago)
Author:
tcharlss@…
Message:

Un plugin pour ajouter des rôles aux sélections éditoriales (enfin aux liens quoi). Il ne fournit qu'un rôle par défaut, c'est aux plugins qui le nécessitent de déclarer les rôles utiles aux projets.

Location:
_plugins_
Files:
20 added
26 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/albums/trunk/albums_pipelines.php

    r108754 r111843  
    5353                $champs          = sql_fetsel('*', $table_objet_sql, addslashes($id_table_objet).'='.intval($id));
    5454                $marquer_doublons_album = charger_fonction('marquer_doublons_album', 'inc');
    55                 $marquer_doublons_album($champs, $id, $type, $id_table_objet, $table_objet, $table_objet_sql);
     55                $marquer_doublons_album($champs,$id,$type,$id_table_objet,$table_objet,$table_objet_sql);
    5656                // puis on récupère le squelette
    5757                $texte .= recuperer_fond('prive/squelettes/contenu/portfolio_albums', array(
    5858                                'objet' => $type,
    5959                                'id_objet' => $id,
     60                                'ajouter' => _request('ajouter'),
    6061                        ), array('ajax'=>'albums'));
    6162        }
    6263
    63         // Fiches des albums : documents liés quand les documents «classiques» ne sont pas affichés
     64        // Fiches des albums : documents liés quand le portfolio n'est pas affiché
    6465        if (
    6566                $e !== false // page d'un objet éditorial
     
    272273
    273274        return $flux;
    274 }
    275 
    276 
    277 /**
    278  * Plugins Jquery UI nécessaires au plugin
    279  *
    280  * @pipeline jqueryui_plugins
    281  *
    282  * @param  array $scripts Liste des js chargés
    283  * @return array          Liste complétée des js chargés
    284 **/
    285 function albums_jqueryui_plugins($plugins) {
    286         if (test_espace_prive()) {
    287                 include_spip('inc/config');
    288                 $plugins[] = 'jquery.ui.autocomplete';
    289                 if (lire_config('albums/deplacer_documents')) {
    290                         $plugins[] = 'jquery.ui.sortable';
    291                 }
    292         }
    293         return $plugins;
    294275}
    295276
     
    600581function albums_album_boutons_actions($flux) {
    601582
    602         if (!function_exists('bouton_action')) {
    603                 include_spip('inc/filtres');
    604         }
    605         if (!function_exists('generer_action_auteur')) {
    606                 include_spip('inc/actions');
    607         }
    608         if (!function_exists('autoriser')) {
    609                 include_spip('inc/autoriser');
    610         }
     583        include_spip('inc/filtres');
     584        include_spip('inc/actions');
     585        include_spip('inc/autoriser');
     586        $icone_horizontale = chercher_filtre('icone_horizontale');
    611587
    612588        $data = (is_array($flux['data']) and count($flux['data'])) ? $flux['data'] : array();
     
    675651                'remplir' => array(
    676652                        'positions' => array('footer'),
    677                         'liaison' => '',
     653                        'liaison'   => '',
    678654                        'autoriser' => autoriser('modifier', 'album', $id_album),
    679                         'html' => '<a href="#" class="bouton remplir" role="button" tabindex="0">'._T('medias:bouton_ajouter_document').'</a>'
     655                        'html'      => $icone_horizontale(parametre_url(self(), 'ajouter', 'album'.$id_album), _T('medias:bouton_ajouter_document'), 'ajouter-16.png', '', 'bouton-remplir-album ajax right'),
    680656                ),
    681657        );
  • _plugins_/albums/trunk/formulaires/ajouter_album.html

    r99737 r111843  
    3131                        </h4>
    3232
    33                         <p class="explication"><strong><:album:label_onglet_ajouter_creer:></strong></p>
    34                         <p class="explication"><:album:explication_onglet_ajouter_creer:></p>
     33                        <p class="explication">
     34                                <strong><:album:label_onglet_ajouter_creer:></strong>
     35                                <br><:album:explication_onglet_ajouter_creer:>
     36                        </p>
    3537
    3638                        <[(#GET{ul})] class="editer-groupe">
     
    7476                        </h4>
    7577
    76                         <p class="explication"><strong><:album:label_onglet_ajouter_choisir:></strong></p>
    77                         <p class="explication"><:album:explication_onglet_ajouter_choisir:></p>
     78                        <p class="explication">
     79                                <strong><:album:label_onglet_ajouter_choisir:></strong>
     80                                <br><:album:explication_onglet_ajouter_choisir:>
     81                        </p>
    7882
    7983                        <[(#GET{ul})] class="editer-groupe">
  • _plugins_/albums/trunk/formulaires/ajouter_album.php

    r103635 r111843  
    164164                include_spip('inc/joindre_document');
    165165                $id_temporaire = 0-$GLOBALS['visiteur_session']['id_auteur'];
    166                 $verifier_joindre_document = charger_fonction('verifier', 'formulaires/joindre_document');
    167                 $res_verifier_joindre_document = $verifier_joindre_document('new', $id_temporaire, 'album', 'document');
    168                 if (count($res_verifier_joindre_document) == 0) {
    169                         $traiter_joindre_document = charger_fonction('traiter', 'formulaires/joindre_document');
    170                         $res_joindre_document = $traiter_joindre_document('new', $id_temporaire, 'album', 'document');
    171                         $res = array_merge($res, $res_joindre_document);
    172                 }
     166                $traiter_joindre_document = charger_fonction('traiter', 'formulaires/joindre_document');
     167                $res_joindre_document = $traiter_joindre_document('new', $id_temporaire, 'album', 'document');
     168                $res = array_merge($res, $res_joindre_document);
    173169                // pas besoin du js ajouté dans le message de retour
    174170                if (isset($res['message_ok']) and $res['message_ok']) {
     
    179175                set_request('statut', 'publie');
    180176                $traiter_editer_album = charger_fonction('traiter', 'formulaires/editer_album');
    181                 $res_editer_album = $traiter_editer_album('new', $retour, $objet.'|'.$id_objet, $lier_trad);
     177                $res_editer_album = $traiter_editer_album('new',$retour,$objet.'|'.$id_objet,$lier_trad);
    182178                if (is_array($res_editer_album)) {
    183179                        $res = array_merge($res, $res_editer_album);
     
    245241        $divs = implode(',', $divs);
    246242        $callback = "jQuery('${divs}').animateAppend();";
    247         $js = "if (window.jQuery) jQuery(function(){ajaxReload('liste_albums',{callback:function(){ $callback }});});";
     243        $js = "if (window.jQuery) jQuery(function(){ajaxReload('albums',{callback:function(){ $callback }});});";
    248244        $js = "<script type='text/javascript'>${js}</script>";
    249245        return $js;
  • _plugins_/albums/trunk/lang/album.xml

    r102881 r111843  
    11<traduction module="album" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/albums/trunk/lang/" reference="fr">
    2         <langue code="de" url="https://trad.spip.net/tradlang_module/album?lang_cible=de" total="115" traduits="115" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
     2        <langue code="de" url="https://trad.spip.net/tradlang_module/album?lang_cible=de" total="115" traduits="110" relire="0" modifs="1" nouveaux="4" pourcent="95.65">
    33                <traducteur nom="Torsten Willmann" lien="https://trad.spip.net/auteur/torsten-willmann" />
    44        </langue>
  • _plugins_/albums/trunk/lang/album_de.php

    r102881 r111843  
    5656        'icone_modifier_album' => 'Album bearbeiten',
    5757        'info_1_album' => '1 Album',
    58         'info_1_doclie' => '1 verknüpftes Dokument',
    59         'info_1_utilisation' => '1 Verwendung',
     58        'info_1_utilisation' => '1 Verwendung', # MODIF
    6059        'info_aucun_album' => 'Kein Album',
    61         'info_docslies' => 'Verknüpfte Dokumente',
    6260        'info_nb_albums' => '@nb@ Alben',
    63         'info_nb_docslies' => '@nb@ verknüpfte Dokumente',
    6461        'info_nb_utilisations' => '@nb@ Verwendungen',
    6562        'info_nouvel_album' => 'Neues Album',
    66         'info_utilisation' => 'Verwendungen',
    6763
    6864        // L
  • _plugins_/albums/trunk/lang/album_fr.php

    r100676 r111843  
    2020        'bouton_vider' => 'Vider',
    2121        'bouton_vider_explication' => 'Vider l’album de ses documents',
     22        'bouton_enlever_albums' => 'Enlever tous les albums',
     23        'bouton_ajouter_document' => 'Ajouter un document à l\'album',
    2224
    2325        // C
  • _plugins_/albums/trunk/lang/paquet-albums.xml

    r104074 r111843  
    11<traduction module="paquet-albums" gestionnaire="salvatore" url="https://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/albums/trunk/lang/" reference="fr">
    2         <langue code="de" url="https://trad.spip.net/tradlang_module/paquet-albums?lang_cible=de" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
     2        <langue code="de" url="https://trad.spip.net/tradlang_module/paquet-albums?lang_cible=de" total="3" traduits="2" relire="0" modifs="0" nouveaux="1" pourcent="66.67">
    33                <traducteur nom="Torsten Willmann" lien="https://trad.spip.net/auteur/torsten-willmann" />
    44        </langue>
  • _plugins_/albums/trunk/lang/paquet-albums_de.php

    r104074 r111843  
    1111
    1212        // A
    13         'albums_description' => 'Dieses Plugin erweitert die Dokumentenverwaltung und erlaubt es Gruppen von Dokumenten als Alben zu definieren.
    14 <br>Alben sind editierbare Objekte, die eine Reihe von Dokumenten enthalten.
    15 Sie können für sich stehen oder mit anderen Objekten verknüpft werden.
    16 Damit haben Sie in der Praxis  die Auswahl beim Hinzufügen eines Domkunets: einzeln oder als Gruppe in einem Album-
    17 <br>Es gibt 2 Modelle « album » :
    18 - das Basismodell für Bildergalerien
    19 - eine Variante zur anzeige der Dokumente in einer Liste.
    20 <br>Ein Formular erlaubt es &lt;album&gt;- Tags anzupassen und im Text einzufügen. Dafür müssen die Plugins «YAML» und «Saisies» installiert sein.',
    2113        'albums_nom' => 'Alben',
    2214        'albums_slogan' => 'Verwaltung von Dokumentengruppen in Form von Alben'
  • _plugins_/albums/trunk/paquet.xml

    r110113 r111843  
    2929        <pipeline nom="objet_compte_enfants" inclure="albums_pipelines.php" />
    3030        <pipeline nom="boite_infos" inclure="albums_pipelines.php" />
    31         <pipeline nom="jqueryui_plugins" inclure="albums_pipelines.php" />
    3231        <pipeline nom="optimiser_base_disparus" inclure="albums_pipelines.php" />
    3332        <pipeline nom="formulaire_fond" inclure="albums_pipelines.php" />
  • _plugins_/albums/trunk/prive/objets/liste/albums.html

    r102872 r111843  
    3232                {pagination #ENV{nb,10}}{!lang_select}>
    3333                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
    34                         <td class='statut'>[(#STATUT|puce_statut{album,#ID_ALBUM})]</td>
     34                        <td class='statut'>[(#STATUT|puce_statut{album,#ID_ALBUM,#ID_RUBRIQUE})]</td>
    3535                        <td class='titre principale'>[(#LOGO_ALBUM|image_reduire{20,26})]<a href="[(#ID_ALBUM|generer_url_entite{album})]"
    3636                                        title="<:info_numero_abbreviation|attribut_html:> #ID_ALBUM">[(#RANG). ][(#TITRE)]</a></td>
  • _plugins_/albums/trunk/prive/objets/liste/albums_complets.html

    r100676 r111843  
    33        Liste des albums.
    44
    5 ][(#REM)
    6 
    75        Inclus dans :
    86                prive/squelettes/albums.html
     7
    98        Utilise :
    109                prive/squelettes/inclure/album.html
    11 
    12 ][(#REM)
    1310
    1411        Paramètres :
     
    5754                {pagination #ENV{nb,10}}>
    5855
    59         <INCLURE{fond=prive/squelettes/inclure/album, id_album, env, ajax=#VAL{album}|concat{#ID_ALBUM}}>
     56        <INCLURE{fond=prive/squelettes/inclure/resume/album, id_album, class='documents_cases', env, ajax=#VAL{album}|concat{#ID_ALBUM}}>
    6057
    6158        </BOUCLE_liste_albums>
  • _plugins_/albums/trunk/prive/squelettes/contenu/albums.html

    r100676 r111843  
    1212[(#AUTORISER{administrer,albumotheque}|sinon_interdire_acces)]
    1313
    14 <div id='albums' class='albumotheque'>
     14<div id='albums' class='portfolios albums albumotheque'>
    1515
    1616        #FORMULAIRE_RECHERCHE_ECRIRE{#SELF,ajax}
     
    1919                nb=10,
    2020                env,
    21                 ajax=liste_albums, sinon=<:album:info_aucun_album:>}>
    22 
    23         [(#REM) formulaire pour déplacer les documents par glisser-déposer ]
    24         [(#AUTORISER{deplacerdocumentsalbums}|oui)
    25         <div class='ajax'>#FORMULAIRE_ALBUMS_DEPLACER_DOCUMENTS</div>
    26         ]
     21                ajax=albums, sinon=<:album:info_aucun_album:>}>
    2722
    2823        [(#AUTORISER{creer,album})
  • _plugins_/albums/trunk/prive/squelettes/contenu/portfolio_albums.html

    r99736 r111843  
    11[(#REM)
    22
    3         Gestion du portfolio des albums liés à un objet.
    4         - liste des albums liés (portfolio d'albums)
    5         - formulaire d'ajout d'albums
     3        Gestion des albums liés à un objet.
    64
    7         Appelé par le pipeline «afficher_complement_objet»
     5        Inséré via le pipeline « afficher_complement_objet »
     6
    87        Utilise :
    9                 prive/squelettes/inclure/portfolio_albums.html
    10                 prive/squelettes/inclure/ajouter_albums.html
     8                - prive/squelettes/inclure/resume/album.html
     9                - prive/squelettes/inclure/ajouter_albums.html
     10                - javascript/medias_edit.js (plugin medias)
     11                - javascript/jquery.multifile.js (plugin medias)
     12
     13                Paramètres :
     14                **obligatoire
     15                *conseillé
     16
     17                        - **objet     (string)  Type d'objet lié
     18                        - **id_objet  (int)     Identifiant de l'objet lié
     19                        - statut      (string)  Statut des albums
     20                                                valeurs : prepa | publie | poubelle
     21                                                défaut: tous
     22                        - pagination  (int)     Nombre pour la pagination
     23                                                défaut: 10
     24                        - par         (string)  Critère de tri
    1125
    1226]
    1327<div class='nettoyeur'></div>
    14 <a name='albums'></a>
    15 <div id='albums' class='albums-lies'>
     28<div id='albums' class='portfolios albums lies'>
    1629
    17 [(#REM) PORTFOLIO DES ALBUMS LIÉS ]
    18 <INCLURE{fond=prive/squelettes/inclure/portfolio_albums,
    19         objet,
    20         id_objet,
    21         nb=10,
    22         ajax=liste_albums}>
     30        [(#REM) Liste des albums liés ]
     31        <B_albums_lies>
     32        #ANCRE_PAGINATION
    2333
    24 [(#REM) formulaire pour déplacer les documents par glisser-déposer ]
    25 [(#AUTORISER{deplacerdocumentsalbums,#ENV{objet},#ENV{id_objet}}|oui)
    26 <div class='ajax'>#FORMULAIRE_ALBUMS_DEPLACER_DOCUMENTS{#ENV{objet},#ENV{id_objet}}</div>
    27 ]
     34        [(#REM)<h2 class="titrem"><:album:titre_albums:></h2>]
    2835
    29 [(#REM) AJOUTER : ICONE ET FORMULAIRE ]
    30 <INCLURE{fond=prive/squelettes/inclure/ajouter_albums,
    31         objet,
    32         id_objet,
    33         ajouter,
    34         lier_trad,
    35         ajax=ajouter_albums}>
     36        <BOUCLE_albums_lies(ALBUMS)
     37                {objet}
     38                {id_objet}
     39                {!par date}
     40                {statut == #ENV{statut,.*}}
     41                {pagination #ENV{pagination,10} albums}
     42        >
     43        <INCLURE{fond=prive/squelettes/inclure/resume/album,
     44                id_album,
     45                objet,
     46                id_objet,
     47                ajouter}>
     48        </BOUCLE_albums_lies>
    3649
    37 </div><!-- #albums -->
     50        [<p class='pagination'>(#PAGINATION{prive})</p>]
     51
     52        [(#REM) Bouton pour enlever tous les albums ]
     53        [(#GRAND_TOTAL|>{1}|oui)
     54                <div class="actions-liste">
     55                        [(#BOUTON_ACTION{
     56                                [(#REM|icone_horizontale{'',album,del}|extraire_balise{img})]<b><:album:bouton_enlever_albums:></b>,
     57                                #URL_ACTION_AUTEUR{dissocier_album,tous/#ENV{objet}/#ENV{id_objet},#SELF|ancre_url{albums}},
     58                                'ajax icone s24 right enlever_albums',
     59                                <:ecrire:lien_tout_supprimer:> ?})]
     60                </div>
     61        ]
     62
     63        [(#REM) Formulaire d'ajout d'un album ]
     64        <INCLURE{fond=prive/squelettes/inclure/ajouter_albums,
     65                objet,
     66                id_objet,
     67                ajouter,
     68                lier_trad,
     69                ajax=ajouter_albums}>
     70
     71</div>
     72
     73[(#REM) Script pour la gestion des documents s'il n'est pas présent (pas de portfolio) ]
     74<BOULE_media_edit(CONDITION){si #AUTORISER{joindredocument,#ENV{objet},#ENV{id_objet}}|non}>
     75<script type='text/javascript'>/*<![CDATA[*/
     76        var multifile='[(#CHEMIN{javascript/jquery.multifile.js}|texte_script)]';
     77        [(#INCLURE{javascript/medias_edit.js}|compacte{js})]
     78/*]]>*/</script>
     79</BOUCLE_media_edit>
     80</B_albums_lies>
  • _plugins_/albums/trunk/prive/style_prive_plugin_albums.html

    r108002 r111843  
    77
    88/*
    9     BLOC ALBUM
    10     ==========
     9    ===========
     10    BLOC ALBUMS
     11    ===========
    1112*/
    1213.liste-albums.lies .boite-album         { margin: 10px 0; }
     
    4647.documents-album .pagination            { margin: 0;}
    4748
    48 /* footer */
    49 .footer-album .bouton.remplir           { font-weight: bold; }
    50 .boite-album .formulaire_joindre_document { margin: 0; text-align: #ENV{left}; }
    51 /* boutons */
    52 .documents-album .item .actions,
    53 .documents-album .item .actions button,
    54 .footer-album .bouton,
    55 .footer-album button                    { font-size: x-small; }
    56 .boite-album .bouton:hover ,
    57 .boite-album button:hover               { cursor: pointer; }
    58 /* reveal */
    59 .documents-album .item .actions > *:not(.editbox),
    60 .documents-album .item .tourner,
    61 .boite-album .reveal                    { opacity: .1; }
    62 .documents-album .item:hover .actions > *,
    63 .documents-album .item:hover .tourner,
    64 .header-album:hover .reveal,
    65 .footer-album:hover .reveal,
    66 .boite-album .reveal:focus              { opacity: 1; }
    67 /* header + document + footer */
    68 .boite-album.editable .header-album.hover,
    69 .boite-album.editable .header-album:hover,
    70 .boite-album.editable .item.hover       { background-color: [#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)]; }
    71 .boite-album:not(.editable) .liste_items .item:hover,
    72 .documents-album:not(.editable) .item:hover { background-color: transparent; }
    73 
    74 
    75 /*
     49
     50/*
     51    ============
    7652    ALBUMOTHEQUE
    7753    ============
    7854*/
     55body.albums {
     56        background-color: #f8f8f8;
     57}
     58.portfolios.albumotheque .tri.simple {
     59        margin-bottom: 1em;
     60}
     61.portfolios.albumotheque .titre-album,
     62.portfolios.albumotheque .resume-album {
     63        border: 1px solid #eee;
     64        background-color: white;
     65}
     66.portfolios.albumotheque .titre-album {
     67        font-size: 100%;
     68        border-bottom: 0 none;
     69        padding: 0.25em;
     70}
     71.portfolios.albumotheque .resume-album {
     72        border-top: 0 none;
     73        border-bottom-right-radius: 5px;
     74        border-bottom-left-radius: 5px;
     75}
     76.portfolios.albumotheque .sortable {
     77        padding: 0.25em;
     78}
     79.portfolios.albumotheque .actions-liste {
     80        margin-top: 0;
     81        padding: 0.25em;
     82}
     83
    7984.albums #navigation,
    8085.albumotheque                           { margin-top: 2.0775em; } /* = marging-top de li.sous_navigation */
     
    95100
    96101/*
     102    =======
    97103    FILTRES
    98104    =======
     
    126132
    127133/*
     134    ======================
    128135    BOITE COMPLEMENT OBJET
    129136    ======================
     
    135142
    136143/*
    137     GLISSER-DEPOSER
    138     ===============
    139 */
    140 #portfolios.cible-album,
    141 .boite-album.cible-album ,               { position: relative; } /* pour .cible-album */
    142 .cible-album:after                       {
    143                                          position: absolute; top: 1px; right: 1px; bottom: 1px; left: 1px; content: " ";
    144                                          outline: 2px dashed #GET{foncee};
    145                                          }
    146 .placeholder-album                       { height: 1em; background-color:#GET{claire}; }
    147 #portfolios .liste_items.temp            { border: 0 none; }
    148 .cible-album .liste_items.temp           { height: 1.5em; }
    149 #albums .item.drag,
    150 #portfolios .item.drag                   { opacity: .66; }
    151 #albums .ui-sortable .item:hover,
    152 #portfolios .ui-sortable .item:hover     { cursor: move; /*grab*/ }
    153 #albums .ui-sortable .item:active,
    154 #portfolios .ui-sortable .item:active    { cursor: move; }
    155 /* documents déplacés */
    156 #albums .item.deplace .mode,
    157 #albums .item.deplace .actions,
    158 #albums .item.deplace .tourner,
    159 #albums .item.deplace .sanstitre,
    160 #portfolios .item.deplace .mode,
    161 #portfolios .item.deplace .actions,
    162 #portfolios .item.deplace .tourner       { display: none; }
    163 .formulaire_albums_deplacer_documents .fermer { float: #ENV{right}; }
    164 .formulaire_albums_deplacer_documents .fermer:hover { cursor: pointer; }
    165 .formulaire_albums_deplacer_documents .titrounet,
    166 .formulaire_albums_deplacer_documents .titrounet img { float: #ENV{left}; }
    167 .formulaire_albums_deplacer_documents .titrounet img { margin-#ENV{right}: 5px; }
    168 
    169 
    170 /*
     144    ================
    171145    FICHE D'UN ALBUM
    172146    ================
     
    180154
    181155/*
     156    =======
    182157    EDITION
    183158    =======
     
    211186
    212187/*
     188    =============
    213189    LISTE CHOISIR
    214190    =============
     
    224200
    225201/*
     202    ======
    226203    MODELE
    227204    ======
  • _plugins_/chartjs/trunk/modeles/chart.html

    r107440 r111843  
    109109#SET{donnees,      #ENV{data,#ENV{datasets}}}
    110110
    111 [(#REM) Dimensions ]
     111[(#REM) Dimensions du conteneur ]
    112112#SET{width,        #ENV{width,#ENV{canvaswidth}}}
    113113#SET{width_unit,   #GET{width}|concat{#GET{width}|match{\w\{2\}$}|?{px}}}
     
    117117#SET{height_int,   #GET{height}|intval|sinon{''}}
    118118
    119 [(#REM) Apparence ]
     119[(#REM) Options par défaut des jeux de données ]
    120120#SET{colors_defaut,#LISTE{#69D2E7,#E0E4CC,#F38630,#96CE7F,#CEBC17,#CE4264,#F7464A,#46BFBD,#FDB45C,#FD7B9B,#8C99FD,#A2DB2F,#DB7368,#6B84DB,#DBBF37,#DB97AB,#2EC087}}
    121121#SET{colors,       #ENV{colors}|is_null|?{
     
    130130        1,
    131131        #GET{lineTension}|=={false}|?{0,#GET{lineTension}}
    132 }|floatval}}
     132}|floatval|sinon{''}}}
     133#SET{fontSize,     #ENV{fontSize,#ENV{scaleFontSize}}|intval|sinon{''}}
     134#SET{fontColor,    #ENV{fontColor,#ENV{scaleFontColor}}}
    133135
    134136[(#REM) Axes ]
     
    140142#SET{uniteY,       #ENV{uniteY}}
    141143
    142 [(#REM) Options ]
     144[(#REM) Options générales ]
    143145#SET{stacked,      #ENV{stacked}|=={true}|?{true}}
    144146#SET{responsive,   #ENV{responsive}|=={false}|?{false}}
    145 #SET{fontSize,     #ENV{fontSize,#ENV{scaleFontSize}}|intval|sinon{''}}
    146 #SET{fontColor,    #ENV{fontColor,#ENV{scaleFontColor}}}
     147
    147148
    148149
     
    172173        )
    173174]
    174 [(#REM) On convertit le texte en tableau si nécessaire ]
     175[(#REM) Si on a du texte, on convertit en tableau ]
    175176[(#GET{donnees}|is_string|oui)
    176177#SET{donnees, #VAL{chartjs_explode_virgule}|array_map{#GET{donnees}|explode{next}}}
    177178]
    178 [(#REM) Si on a un tableau linéaire, on le réarrange ]
     179[(#REM) Si le tableau est linéaire, on le réarrange ]
    179180[(#GET{donnees/0}|is_string|oui)
    180181#SET{donnees,#LISTE{#GET{donnees}}}
     
    185186]
    186187#SET{datasets, #ARRAY}
    187 #SET{datalabels, #ENV{dataLabels}|is_string|?{#ENV{dataLabels}|replace{' '}|explode{','}, #ENV{dataLabels}}}
    188 #SET{tableau_est_complet, #GET{donnees/0/data}|?{oui}}
     188#SET{labels, #ENV{dataLabels}|is_string|?{#ENV{dataLabels}|replace{' '}|explode{','}, #ENV{dataLabels}}}
    189189<BOUCLE_datasets(DATA){source table, #GET{donnees}}{si #GET{tableau_est_complet}|non}>
    190190#SET{cle,   #COMPTEUR_BOUCLE|moins{1}}
    191 #SET{label, #GET{datalabels/#GET{cle}}|sinon{#CLE}}
    192 #SET{data,  #VALEUR}
     191#SET{label, #GET{labels/#GET{cle}}|sinon{#VALEUR{label}}|sinon{#CLE}}
     192#SET{data,  #VALEUR{data}|sinon{#VALEUR}}
    193193<BOUCLE_data_bubble(DATA){source table, #VALEUR|array_chunk{3}}{si #GET{type}|=={bubble}}>
    194194[(#COMPTEUR_BOUCLE|=={1}|oui)#SET{data,#ARRAY}]
     
    200200</BOUCLE_data_scatter>
    201201#SET{multiple_colors,pie|doughnut|polarArea}
    202 #SET{borderColor, #GET{type}|match{#GET{multiple_colors}}|?{
     202#SET{borderColor_set, #VALEUR{borderColor}|sinon{#GET{type}|match{#GET{multiple_colors}}|?{
    203203        #GET{colors},
    204204        #GET{colors/#GET{cle}}
    205 }}
    206 #SET{backgroundColor, #GET{type}|match{#GET{multiple_colors}}|?{
     205}}}
     206#SET{backgroundColor_set, #VALEUR{backgroundColor}|sinon{#GET{type}|match{#GET{multiple_colors}}|?{
    207207        #GET{colors},
    208208        #GET{colors/#GET{cle}}
    209 }}
     209}}}
     210#SET{fill_set, #VALEUR{fill}|sinon{#GET{fill}}}
     211#SET{lineTension_set, #VALEUR{lineTension}|!={''}|?{#VALEUR{lineTension},#GET{lineTension}}}
    210212#SET{dataset, #ARRAY{
    211213        label,           #GET{label},
    212214        data,            #GET{data},
    213         borderColor,     #GET{borderColor},
    214         backgroundColor, #GET{backgroundColor},
    215         fill,            #GET{fill,true},
    216 }}
    217 [(#GET{lineTension}|ou{#GET{lineTension}|=={0}}|oui)
    218 #SET{dataset, #GET{dataset}|array_merge{#ARRAY{lineTension,#GET{lineTension}}}}
    219 ]
     215        borderColor,     #GET{borderColor_set},
     216        backgroundColor, #GET{backgroundColor_set},
     217        fill,            #GET{fill_set},
     218        lineTension,     #GET{lineTension_set}
     219}}
    220220#SET{datasets, #GET{datasets}|push{#GET{dataset}}}
    221221</BOUCLE_datasets>
    222 #SET{datasets, #GET{donnees}}
    223 <//B_datasets>
     222#SET{datasets, #GET{datasets}|chartjs_array_filter_recursive}
    224223
    225224[(#REM) Labels en abscisse ]
  • _plugins_/chartjs/trunk/modeles/chart_fonctions.php

    r104998 r111843  
    11<?php
    22
    3 // conversion de couleur
     3/**
     4 * Convertir une couleur hexa vers rgb
     5 */
    46function chartjs_hex2rgb($hex) {
    57           $hex = str_replace("#", "", $hex);
     
    1921}
    2022
    21 // Convertir des mots spéparés par des virgules en tableau (pour utiliser dans un array_map)
     23/**
     24 * Convertir des mots spéparés par des virgules en tableau (pour utiliser dans un array_map)
     25 */
    2226function chartjs_explode_virgule($texte){
    2327        $tableau = explode(',', $texte);
     
    2529}
    2630
    27 // Typer les valeurs texte d'un tableau
     31/**
     32 * Typer les valeurs texte d'un tableau
     33 */
    2834function chartjs_array_typecaster($table){
    2935        $table = chartjs_array_map_recursive('chartjs_typecaster', $table);
     
    3137}
    3238
    33 // Typer une valeur texte en entier ou booléen
     39/**
     40 * Typer une valeur texte en entier ou booléen
     41 */
    3442function chartjs_typecaster($v){
    3543        if (is_numeric($v)) {
     
    4351}
    4452
    45 // Pas dans php :(
     53/**
     54 * array_map récursif
     55 */
    4656function chartjs_array_map_recursive($function, $table) {
    4757        $out = array();
     
    5464}
    5565
    56 // Pas dans php :(
     66/**
     67 * array_filter récursif pour un tableau (conserve les 0)
     68 */
    5769function chartjs_array_filter_recursive($input) {
    5870        foreach ($input as &$value) {
     
    6173                }
    6274        }
    63         return array_filter($input);
     75        return array_filter($input, 'chartjs_filtrer');
    6476}
     77
     78/**
     79 * Idem array_filter mais conserve les 0
     80 */
     81function chartjs_filtrer($v){
     82        $filtrer = (count($v) and $v !== null and $v !== false and $v !== '');
     83        return $filtrer;
     84}
  • _plugins_/dev_reloaded/paquet.xml

    r102997 r111843  
    22        prefix="dev"
    33        categorie="outil"
    4         version="0.3.9"
     4        version="0.3.10"
    55        etat="stable"
    6         compatibilite="[3.0.0;3.1.*]"
     6        compatibilite="[3.0.0;3.2.*]"
    77        logo="prive/themes/spip/images/dev-32.png"
    88>
  • _plugins_/dublin_core/trunk/paquet.xml

    r106133 r111843  
    44        version="2.0.2"
    55        etat="stable"
    6         compatibilite="[3.0.0;3.1.*]"
     6        compatibilite="[3.0.0;3.2.*]"
    77        logo="prive/themes/spip/images/dublin_core-48.png"
    88        documentation="https://contrib.spip.net/Dublin-Core"
  • _plugins_/formidable_mailsubscribers/trunk/paquet.xml

    r106996 r111843  
    22        prefix="formidable_mailsubscribers"
    33        categorie="communication"
    4         version="1.0.0"
     4        version="1.0.1"
    55        etat="test"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/formidable_mailsubscribers/trunk/traiter/mailsubscribe.php

    r106955 r111843  
    5252                }
    5353                // 2) options : valeurs configurées dans les traitements
    54                 if (isset($options['notify'])
    55                         and $notify = $options['notify']
    56                 ){
     54                if (!empty($options['notify'])) {
    5755                        $options_subscribe['notify'] = true;
    5856                }
  • _plugins_/formidable_mailsubscribers/trunk/traiter/mailsubscribe.yaml

    r106955 r111843  
    2323      obligatoire: 'oui'
    2424      env: true
    25   -
    26     saisie: 'case'
    27     options:
    28       nom: 'notify'
    29       label: '<:formidable_mailsubscribers:traiter_mailsubscribe_champ_notify_label:>'
    30       label_case: '<:formidable_mailsubscribers:traiter_mailsubscribe_champ_notify_label_case:>'
    31       defaut: 'on'
     25#  -
     26#    saisie: 'case'
     27#    options:
     28#      nom: 'notify'
     29#      label: '<:formidable_mailsubscribers:traiter_mailsubscribe_champ_notify_label:>'
     30#      label_case: '<:formidable_mailsubscribers:traiter_mailsubscribe_champ_notify_label_case:>'
     31#      defaut: 'on'
  • _plugins_/ordoc/trunk/paquet.xml

    r106610 r111843  
    44        version="1.1.2"
    55        etat="test"
    6         compatibilite="[3.1.3;3.1.*]"
     6        compatibilite="[3.1.3;3.2.*]"
    77        logo="prive/themes/spip/images/ordoc-64.png"
    88        documentation="https://contrib.spip.net/4860"
  • _plugins_/polyhierarchie/trunk/polyhier_fonctions.php

    r109739 r111843  
    2323        global $exceptions_des_tables;
    2424        $boucle = &$boucles[$idb];
     25        $not = $crit->not;
    2526
    2627        if (isset($crit->param[0])) {
     
    5455                $where[] = "array('IN', '" . $boucle->id_table . "." . $boucle->primary . "', '(SELECT * FROM('.$sous.') AS subquery)')";
    5556        }
    56        
     57
    5758        if (count($where) == 2) {
    5859                $where = array("'OR'", $where[0], $where[1]);
     
    6263        }
    6364
    64         $boucle->where[]= $where;
     65        $boucle->where[] = $where;
    6566}
    6667
  • _plugins_/tooltip/paquet.xml

    r103720 r111843  
    44        version="1.6.1"
    55        etat="stable"
    6         compatibilite="[1.9.1;3.1.*]"
     6        compatibilite="[1.9.1;3.2.*]"
    77        logo="icon/tooltip.png"
    88        documentation="https://contrib.spip.net/?article4437"
  • _plugins_/tooltip/plugin.xml

    r103727 r111843  
    3030        </pipeline>
    3131
    32         <necessite id="SPIP" version="[1.9.1;3.1.99]" />
     32        <necessite id="SPIP" version="[1.9.1;3.2.99]" />
    3333</plugin>
  • _plugins_/urls_pages/trunk/TODO.md

    r110246 r111843  
    1313Tous les traitements se font actuellement dans le formulaire editer_url_page.
    1414Il faut les déplacer dans l'API (à créer) :
    15 
    1615- action/editer_url_page.php
    1716    - url_page_insert()
     
    1918    - url_page_delete()
    2019- supprimer_url_page.php
    21 
    22 ## Langues
    23 
    24 Réfléchir à la prise en compte des langues.
Note: See TracChangeset for help on using the changeset viewer.