Changeset 113372 in spip-zone


Ignore:
Timestamp:
Jan 11, 2019, 5:27:49 PM (7 days ago)
Author:
tcharlss@…
Message:

Révision du bloc contenant le lien pour configurer les noisettes d'un objet, sur la page d'un objet. Ce bloc doit servir à configurer les noisettes dans tous les cas, qu'il s'agisse des noisettes spécifiques à l'objet, ou celles de la page/composition correspondante à celui-ci. Seul le 1er cas de figure était pris en compte, du coup quand il n'y avait pas de noisette spécifique à l'objet, on affichait « aucune noisette configurée » alors qu'il pouvait y en avoir pour la page/compo. Du coup ce bloc n'a plus trop sa place dans la boîte d'infos, on le déplace dans affiche_milieu, et on crée un squelette correspondant. Quand il y a 2 sources possibles, on se débrouille pour afficher la source utilisée pour de vrai.

Location:
_plugins_/noizetier/trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/lang/noizetier_fr.php

    r113141 r113372  
    2222        'bulle_modifier_composition' => 'Editer la composition',
    2323        'bulle_modifier_page' => 'Editer la page',
     24        'bouton_configurer_noisettes_objets' => 'Configurer pour les @objets@',
     25        'bouton_configurer_noisettes_composition' => 'Configurer pour cette composition',
     26        'bouton_configurer_noisettes_objet' => 'Configurer pour ce contenu',
    2427
    2528        // C
     
    180183        'label_noizetier_ajax' => 'Par défaut, inclure chaque noisette en AJAX',
    181184        'label_noizetier_balise' => 'Par défaut, inclure chaque noisette dans une capsule (markup HTML)',
     185        'label_noisettes_objet' => 'Pour ce contenu',
     186        'label_noisettes_objets' => 'Pour les @objets@',
     187        'label_noisettes_page' => 'Pour cette page',
     188        'label_noisettes_composition' => 'Pour cette composition',
    182189        'label_texte' => 'Texte :',
    183190        'label_texte_introductif' => 'Texte introductif (optionnel) :',
     
    196203        'liste_pages_objet_oui' => 'Pages liées à un type de contenu',
    197204        'liste_pages_toutes' => 'Toutes les pages',
     205        'label_source_noisettes' => 'Source des noisettes',
    198206
    199207        // M
     
    208216        'noisette_numero' => 'noisette numéro :',
    209217        'noisettes_composition' => 'Noisettes spécifiques à la composition <i>@composition@</i> :',
    210         'noisettes_configurees_aucune' => 'Aucune noisette configurée',
    211         'noisettes_configurees_nb' => '@nb@ noisettes configurées',
    212         'noisettes_configurees_une' => 'Une noisette configurée',
     218        'noisettes_configurees_aucune' => 'Aucune noisette',
     219        'noisettes_configurees_nb' => '@nb@ noisettes',
     220        'noisettes_configurees_une' => 'Une noisette',
    213221        'noisettes_disponibles' => 'Types de noisette disponibles',
    214222        'noisettes_page' => 'Types de noisette spécifiques à la page <i>@type@</i> :',
     
    251259        'suggestions' => 'Suggestions',
    252260
     261        // T
     262        'texte_noisette' => 'Noisette',
     263        'texte_noisettes' => 'Noisettes',
     264
    253265        // W
    254266        'warning_noisette_plus_disponible' => 'ATTENTION : cette noisette n’est plus disponible.',
  • _plugins_/noizetier/trunk/noizetier_pipelines.php

    r113203 r113372  
    146146
    147147/**
    148  * Insertion dans le pipeline boite_infos : ajouter un lien pour configurer les noisettes de ce contenu précisément.
    149  *
    150  * @param array $flux
    151  *              Le contexte du pipeline
    152  * @return array $flux
    153  *              Le contexte modifié
    154  */
    155 function noizetier_boite_infos($flux){
    156 
    157         include_spip('inc/autoriser');
    158         $opt = array('objet' => $flux['args']['type'], 'id_objet' => intval($flux['args']['id']));
    159         if (autoriser('configurerpage', 'noizetier', 0, '', $opt)) {
    160                 // On cherche le nombre de noisettes déjà configurées pour ce contenu.
    161                 $where = array(
    162                         'plugin=' . sql_quote('noizetier'),
    163                         'objet = ' . sql_quote($flux['args']['type']),
    164                         'id_objet = ' . intval($flux['args']['id']));
    165                 $nbr_noisettes = sql_countsel('spip_noisettes', $where);
    166                 if (!$nbr_noisettes) {
    167                         $texte = _T('noizetier:noisettes_configurees_aucune');
    168                 }
    169                 elseif ($nbr_noisettes == 1) {
    170                         $texte = _T('noizetier:noisettes_configurees_une');
    171                 }
    172                 else {
    173                         $texte = _T('noizetier:noisettes_configurees_nb', array('nb'=>$nbr_noisettes));
    174                 }
    175 
    176                 // On construit le bouton avec l'url adéquate.
    177                 include_spip('inc/presentation');
    178                 $url = generer_url_ecrire('noizetier_page');
    179                 $url = parametre_url($url, 'objet', $flux['args']['type']);
    180                 $url = parametre_url($url, 'id_objet', $flux['args']['id']);
    181                 $flux['data'] .= icone_horizontale($texte, $url, 'noisette', $fonction='', $dummy='', $javascript='');
    182         }
    183        
    184         return $flux;
    185 }
    186 
    187 
    188 /**
    189148 * Pipeline compositions_lister_disponibles pour ajouter les compositions du noizetier.
    190149 *
     
    334293}
    335294
    336 // Lorsque l'on affiche la page admin_plugin, on supprime le cache des noisettes.
    337 // C'est un peu grossier mais pas trouvé de pipeline pour agir à la mise à jour d'un plugin.
    338 // Au moins, le cache est supprimé à chaque changement, mise à jour des plugins.
    339 
    340 /**
    341  * @param $flux
    342  *
     295
     296/**
     297 * Ajouter du contenu au centre de la page sur les pages privées
     298 *
     299 * Page d'adminisration des plugin : on supprime le cache des noisettes.
     300 * C'est un peu grossier mais pas trouvé de pipeline pour agir à la mise à jour d'un plugin.
     301 * Au moins, le cache est supprimé à chaque changement, mise à jour des plugins.
     302 *
     303 * Page d'un objet : inclure le squelette qui affiche un lien pour configurer les noisettes.
     304 *
     305 * @param $flux
    343306 * @return mixed
    344307 */
    345308function noizetier_affiche_milieu($flux) {
     309
    346310        $exec = $flux['args']['exec'];
    347 
     311        $objet_exec = trouver_objet_exec($exec);
     312
     313        // Administration des plugins
    348314        if ($exec == 'admin_plugin') {
    349315                // On recharge les pages du noiZetier dont la liste ou l'activité a pu changer. Inutile de forcer un
     
    361327                cache_supprimer('noizetier', _NCORE_NOMCACHE_TYPE_NOISETTE_AJAX);
    362328                cache_supprimer('noizetier', _NCORE_NOMCACHE_TYPE_NOISETTE_INCLUSION);
     329        }
     330
     331        // Page d'un objet
     332        if (
     333                $objet_exec
     334                and !$objet_exec['edition']
     335                and include_spip('inc/autoriser')
     336                and autoriser('configurerpage', 'noizetier', 0, '', array('page' => $objet_exec['type']))
     337        ) {
     338
     339                $table_objet = $objet_exec['table_objet_sql'];
     340                $cle_objet   = $objet_exec['id_table_objet'];
     341                $objet       = $objet_exec['type'];
     342                $id_objet    = $flux['args'][$cle_objet];
     343
     344                // Identifier la page et la composition
     345                // Attention, la composition est présente dans args, mais toujours vide
     346                $composition = sql_getfetsel('composition', $table_objet, $cle_objet.'='.intval($id_objet));
     347                $page        = $composition ? "$objet-$composition" : $objet;
     348
     349                $contexte = array(
     350                        'objet'       => $objet,
     351                        'id_objet'    => $id_objet,
     352                        'page'        => $page,
     353                        'composition' => $composition,
     354                );
     355                if ($texte = recuperer_fond('prive/squelettes/inclure/inc-noisettes_objet', $contexte)) {
     356                        if ($pos = strpos($flux['data'],'<!--affiche_milieu-->')) {
     357                                $flux['data'] = substr_replace($flux['data'], $texte, $pos, 0);
     358                        } else {
     359                                $flux['data'] .= $texte;
     360                        }
     361                }
     362
    363363        }
    364364
  • _plugins_/noizetier/trunk/paquet.xml

    r113368 r113372  
    3131        <pipeline nom="formulaire_admin" inclure="noizetier_pipelines.php" />
    3232        <pipeline nom="affiche_milieu" inclure="noizetier_pipelines.php" />
    33         <pipeline nom="boite_infos" inclure="noizetier_pipelines.php" />
    3433        <pipeline nom="compagnon_messages" inclure="noizetier_pipelines.php" />
    3534        <pipeline nom="pre_boucle" inclure="noizetier_pipelines.php" />
  • _plugins_/noizetier/trunk/prive/style_prive_plugin_noizetier.html

    r113217 r113372  
    190190.formulaire_editer_noisette li.editer_description_code, .formulaire_editer_noisette li.editer_code {padding-left:10px;}
    191191.formulaire_editer_noisette li.editer_description_code label, .formulaire_editer_noisette li.editer_code label {width:100%; margin-left:0; float:none;}
     192
     193/* Bloc noisettes affiche_milieu */
     194.noisettes_milieu {
     195        box-sizing: border-box; /* pffff */
     196}
     197.box.noisettes_milieu .top,
     198.box.noisettes_milieu .bottom {
     199        display: none;
     200}
     201.noisettes_milieu .inner {
     202        display: flex;
     203        align-items: center;
     204        width: 100%;
     205        /* background-color: #f0f0f0; */
     206}
     207.noisettes_milieu .inner .hd {
     208        background: transparent;
     209        padding-top: 0;
     210        padding-bottom: 0;
     211}
     212.noisettes_milieu h3 {
     213        font-size: 1.09625em; /* idem h4 */
     214}
     215.noisettes_milieu img {
     216        vertical-align: middle;
     217}
     218.noisettes_milieu .inner .bd {
     219        flex: 1 1 auto;
     220        padding: 0;
     221}
     222.noisettes_milieu .liste-items {
     223        border: 0;
     224}
     225.noisettes_milieu .liste-items .item {
     226        padding-left: 1em;
     227        font-weight: bold;
     228        font-size: 0.9em;
     229        color: #666;
     230}
     231.noisettes_milieu .item a {
     232        color: inherit;
     233}
     234.noisettes_milieu .icone-actif {
     235        float: #ENV{right};
     236        margin: 0 1em;
     237}
     238.noisettes_milieu .item.disabled a {
     239        pointer-events: none;
     240        opacity: 0.33;
     241}
     242.noisettes_milieu .item:last-child {
     243        border-bottom: 0;
     244}
Note: See TracChangeset for help on using the changeset viewer.