Changeset 103549 in spip-zone


Ignore:
Timestamp:
Mar 26, 2017, 11:15:53 AM (3 years ago)
Author:
bystrano@…
Message:

On permet de définir une image par défaut pour chaque type de logo

On en profite pour passer en test, la structure générale du plugin ne devrait
plus trop bouger.

Location:
_plugins_/logos_roles/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/logos_roles/trunk/README.md

    r103433 r103549  
    4545                        'label' => 'Extraits pour les listes',
    4646                        'objets' => array('articles', 'rubriques'),
     47                        'defaut' => 'img/logo-extrait.png',
    4748                        'dimensions' => array(
    4849                                'largeur' => 800,
     
    7374- __objets :__ Une liste des types d'objets pour lesquels ce type de logo doit être actif.
    7475
    75 On peut aussi utiliser un paramètre __dimensions__ qui doit être un tableau avec les clés `largeur` et `hauteur`.
    76 Ce paramètre permet de forcer les dimensions d'un logo, la balise `#LOGO_` correspondante recadre alors automatiquement le logo.
    77 Cette fonction est particulièrement utile quand on utilise le plugin massicot, qui propose alors directement le bon format pour chaque type de logo.
    78 
     76D'autres paramètres sont optionnels :
     77- __dimensions :__ Ce paramètre permet de forcer les dimensions d'un logo, la balise `#LOGO_` correspondante recadre alors automatiquement le logo. Doit être un tableau avec les clés `largeur` et `hauteur`. Cette fonction est particulièrement utile quand on utilise le plugin massicot, qui propose alors directement le bon format pour chaque type de logo.
     78- __defaut :__ Permet de spécifier un logo qui sera affiché par défaut, qu'on ira alors chercher dans le chemin de SPIP.
    7979
    8080### Modification des boucles `DOCUMENTS` ###
  • _plugins_/logos_roles/trunk/inc/chercher_logo.php

    r103548 r103549  
    5959        if ($logo) {
    6060                return $logo;
     61        }
     62
     63        /* On se rabat sur le logo par défaut */
     64        $def_logo = lister_roles_logos(table_objet($_id_objet), $mode);
     65        if (isset($def_logo['defaut'])
     66                and $logo = find_in_path($def_logo['defaut'])) {
     67
     68                $extension = strtolower(
     69                        preg_replace('/^.*\.([a-z]+)$/', '$1', $logo)
     70                );
     71
     72                return array(
     73                        $logo,
     74                        dirname($logo) . '/',
     75                        basename($logo, '.' . $extension),
     76                        $extension,
     77                        @filemtime($fichier),
     78                );
    6179        }
    6280
  • _plugins_/logos_roles/trunk/logos_roles_fonctions.php

    r103407 r103549  
    2929 *        ne retourne alors que les rôles de logos que l'on peut attribuer à cet
    3030 *        objet.
     31 * @param string|null $role : Un rôle auquel se restreindre. On accepte `on` ou
     32 * `off` pour la rétro-compatibilité
    3133 *
    32  * @return array : Retourne le tableau décrivant les rôles de logos
     34 * @return array : Retourne le tableau décrivant les rôles de logos. Si on a
     35 * passé un paramètre rôle, on retourne directement la définition plutôt qu'une
     36 * liste avec un seul rôle.
    3337 */
    34 function lister_roles_logos($objet = null) {
     38function lister_roles_logos($objet = null, $role = null) {
     39
     40        if ($role === 'on') {
     41                $role = 'logo';
     42        } elseif ($role === 'off') {
     43                $role = 'logo_survol';
     44        }
    3545
    3646        // Logos par défaut
     
    5161        include_spip('base/objets');
    5262
     63        /* Filtrer par objet */
    5364        if ($objet = table_objet($objet)) {
    5465                $roles_logos_objet = array();
    55                 foreach ($roles_logos as $role => $options) {
     66                foreach ($roles_logos as $cle_role => $options) {
    5667                        if ((! is_array($options['objets']))
    5768                                        or in_array($objet, array_map('table_objet', $options['objets']))) {
    58                                 $roles_logos_objet[$role] = $options;
     69                                $roles_logos_objet[$cle_role] = $options;
    5970                        }
    6071                }
    6172
    6273                $roles_logos = $roles_logos_objet;
     74        }
     75
     76        /* Filtrer par rôle */
     77        if (! is_null($role)) {
     78                return $roles_logos[$role];
    6379        }
    6480
  • _plugins_/logos_roles/trunk/paquet.xml

    r103547 r103549  
    22        prefix="logos_roles"
    33        categorie="multimedia"
    4         version="0.5.6"
    5         etat="dev"
     4        version="0.6.0"
     5        etat="test"
    66        compatibilite="[3.1.1;3.2.*]"
    77        logo=""
Note: See TracChangeset for help on using the changeset viewer.