Changeset 108122 in spip-zone


Ignore:
Timestamp:
Dec 20, 2017, 1:39:12 PM (15 months ago)
Author:
teddy.spip@…
Message:
  • Ne pas supprimer la config déjà présente pour le menu ;
  • Les liaisons contacts et organisations ont changé. Il faut prendre en compte cet aspect ;
  • Compatibilité SPIP 3.2 ;
  • Nouvelle fonction : avoir des références de projets.

Cela permet de vérifier rapidement si tous nos projets gérés par le service (ou l'entreprise) ont bien une fiche de projet. Si ce n'est pas le cas, on peut créer la fiche rapidement avec les informations réduites au minimum : Nom du projet, l'url du projet et l'organisation associée. Si aucun projet n'est référencé avec l'url_site, alors on insère une entrée dans spip_projets, on lie ce nouveau projet à l'organisation (créée si besoin) et l'auteur lançant l'action est ajouté en tant que chef de projets.

  • Nouvelle fonction : lister tous les projets dans un tableau et afficher si un site de projet lui est associé pour chaque environnement attendu (et référencé dans la base).
  • Up de y.
Location:
_plugins_/info_sites/trunk
Files:
49 added
13 edited
1 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/info_sites/trunk/base/info_sites.php

    r96128 r108122  
    1212if (!defined("_ECRIRE_INC_VERSION")) {
    1313        return;
     14}
     15
     16/**
     17 * Déclaration des alias de tables et filtres automatiques de champs
     18 *
     19 * @pipeline declarer_tables_interfaces
     20 * @param array $interfaces
     21 *     Déclarations d'interface pour le compilateur
     22 * @return array
     23 *     Déclarations d'interface pour le compilateur
     24 */
     25function info_sites_declarer_tables_interfaces($interfaces) {
     26
     27        $interfaces['table_des_tables']['projets_references'] = 'projets_references';
     28
     29        return $interfaces;
    1430}
    1531
     
    4965                'defaut' => 'chef_projets',
    5066        );
     67        $tables['spip_projets_references'] = array(
     68                'type' => 'projets_reference',
     69                'principale' => 'oui',
     70                'page' => 'projets_reference',
     71                'table_objet_surnoms' => array('projetsreference'), // table_objet('projets_reference') => 'projets_references'
     72                'field'=> array(
     73                        'id_projets_reference' => 'bigint(21) NOT NULL',
     74                        'nom'                => 'text NOT NULL DEFAULT ""',
     75                        'url_site'           => 'varchar(255) NOT NULL DEFAULT ""',
     76                        'organisation'       => 'text NOT NULL DEFAULT ""',
     77                        'maj'                => 'TIMESTAMP'
     78                ),
     79                'key' => array(
     80                        'PRIMARY KEY'        => 'id_projets_reference',
     81                ),
     82                'titre' => 'nom AS titre, "" AS lang',
     83                #'date' => '',
     84                'champs_editables'  => array('nom', 'url_site', 'organisation'),
     85                'champs_versionnes' => array('nom', 'url_site', 'organisation'),
     86                'rechercher_champs' => array(),
     87                'tables_jointures'  => array('spip_projets_references_liens'),
     88        );
    5189
    5290        return $tables;
    5391}
    5492
     93/**
     94 * Déclaration des tables secondaires (liaisons)
     95 *
     96 * @pipeline declarer_tables_auxiliaires
     97 * @param array $tables
     98 *     Description des tables
     99 * @return array
     100 *     Description complétée des tables
     101 */
     102function info_sites_declarer_tables_auxiliaires($tables) {
     103
     104        $tables['spip_projets_references_liens'] = array(
     105                'field' => array(
     106                        'id_projets_reference' => 'bigint(21) DEFAULT "0" NOT NULL',
     107                        'id_objet'           => 'bigint(21) DEFAULT "0" NOT NULL',
     108                        'objet'              => 'VARCHAR(25) DEFAULT "" NOT NULL',
     109                        'vu'                 => 'VARCHAR(6) DEFAULT "non" NOT NULL',
     110                ),
     111                'key' => array(
     112                        'PRIMARY KEY'        => 'id_projets_reference,id_objet,objet',
     113                        'KEY id_projets_reference' => 'id_projets_reference',
     114                )
     115        );
     116
     117        return $tables;
     118}
  • _plugins_/info_sites/trunk/info_sites_administrations.php

    r101131 r108122  
    4343        cextras_api_upgrade(info_sites_declarer_champs_extras(), $maj['1.1.0']);
    4444        $maj['1.2.0'][] = array('info_sites_maj_120');
     45        $maj['1.3.0'][] = array('maj_tables', array('spip_projets_references', 'spip_projets_references_liens'));
     46        $maj['1.3.1'][] = array('info_sites_menu_pages');
    4547
    4648        include_spip('base/upgrade');
     
    5860function info_sites_vider_tables($nom_meta_base_version) {
    5961        include_spip('inc/meta');
     62        include_spip('base/abstract_sql');
    6063        include_spip('inc/cextras');
    6164        include_spip('base/info_sites_extras');
    6265        cextras_api_vider_tables(info_sites_declarer_champs_extras());
     66
     67        sql_drop_table('spip_projets_references');
     68        sql_drop_table('spip_projets_references_liens');
     69
     70        # Nettoyer les liens courants (le génie optimiser_base_disparus se chargera de nettoyer toutes les tables de liens)
     71        sql_delete('spip_documents_liens', sql_in('objet', array('projets_reference')));
     72        sql_delete('spip_mots_liens', sql_in('objet', array('projets_reference')));
     73        sql_delete('spip_auteurs_liens', sql_in('objet', array('projets_reference')));
     74        # Nettoyer les versionnages et forums
     75        sql_delete('spip_versions', sql_in('objet', array('projets_reference')));
     76        sql_delete('spip_versions_fragments', sql_in('objet', array('projets_reference')));
     77        sql_delete('spip_forum', sql_in('objet', array('projets_reference')));
     78
    6379        // On efface la meta de menu du plugin
    6480        effacer_meta('info_sites_menu');
     
    104120                        'icone' => 'fa fa-bar-chart-o fa-lg',
    105121                ),
     122                'projets_dashboard' => array(
     123                        'nom' => 'info_sites:titre_page_projets_dashboard',
     124                        'icone' => 'fa fa-dashboard fa-lg',
     125                ),
    106126        );
    107         $meta = lire_meta('info_sites_menu');
     127        $meta = lire_config('info_sites_menu');
    108128        if ($meta and $meta = @serialize($meta) and is_array($meta)) {
    109 
    110                 if (!array_key_exists(array_keys($liste_pages), $meta)) {
    111                         // ici il faudrait vérifier que `organisations`,
    112                         // `projets` et `sites` soient bien dans la meta
    113                         // pour permettre son utilisation standard à l'installation
    114                         foreach ($liste_pages as $key => $value) {
    115                                 $meta[$key] = $liste_pages[$key];
    116                         }
    117                 } else {
    118                         foreach ($meta as $key => $value) {
    119                                 if ($meta[$key] != $liste_pages[$key]) {
    120                                         $meta[$key] = $liste_pages[$key];
    121                                 }
    122                         }
    123                 }
    124                 // maintenant qu'on a vérifié les valeurs de la meta selon nos besoins de base,
     129                $meta = array_merge($liste_pages, $meta);
    125130                // on stocke sa nouvelle valeur dans `spip_meta`
    126                 ecrire_meta('info_sites_menu', @serialize($meta));
     131                ecrire_config('info_sites_menu', @serialize($meta));
    127132        } else {
    128                 ecrire_meta('info_sites_menu', @serialize($liste_pages));
     133                ecrire_config('info_sites_menu', @serialize($liste_pages));
    129134        }
    130135}
  • _plugins_/info_sites/trunk/info_sites_autorisations.php

    r106340 r108122  
    12151215        return false;
    12161216}
     1217
     1218
     1219// -----------------
     1220// Objet projets_references
     1221
     1222/**
     1223 * Autorisation de créer (projetsreference)
     1224 *
     1225 * @param  string $faire Action demandée
     1226 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1227 * @param  int    $id    Identifiant de l'objet
     1228 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     1229 * @param  array  $opt   Options de cette autorisation
     1230 * @return bool          true s'il a le droit, false sinon
     1231 **/
     1232function autoriser_projetsreference_creer_dist($faire, $type, $id, $qui, $opt) {
     1233        return autoriser('infositescreer', 'projetsreference', $id, $qui, $opt);
     1234}
     1235
     1236/**
     1237 * Autorisation de voir (projetsreference)
     1238 *
     1239 * @param  string $faire Action demandée
     1240 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1241 * @param  int    $id    Identifiant de l'objet
     1242 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     1243 * @param  array  $opt   Options de cette autorisation
     1244 * @return bool          true s'il a le droit, false sinon
     1245 **/
     1246function autoriser_projetsreference_voir_dist($faire, $type, $id, $qui, $opt) {
     1247        return autoriser('infositesvoir', 'projetsreference', $id, $qui, $opt);
     1248}
     1249
     1250/**
     1251 * Autorisation de modifier (projetsreference)
     1252 *
     1253 * @param  string $faire Action demandée
     1254 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1255 * @param  int    $id    Identifiant de l'objet
     1256 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     1257 * @param  array  $opt   Options de cette autorisation
     1258 * @return bool          true s'il a le droit, false sinon
     1259 **/
     1260function autoriser_projetsreference_modifier_dist($faire, $type, $id, $qui, $opt) {
     1261        return autoriser('infositesmodifier', 'projetsreference', $id, $qui, $opt);
     1262}
     1263
     1264/**
     1265 * Autorisation de supprimer (projetsreference)
     1266 *
     1267 * @param  string $faire Action demandée
     1268 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1269 * @param  int    $id    Identifiant de l'objet
     1270 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     1271 * @param  array  $opt   Options de cette autorisation
     1272 * @return bool          true s'il a le droit, false sinon
     1273 **/
     1274function autoriser_projetsreference_supprimer_dist($faire, $type, $id, $qui, $opt) {
     1275        return autoriser('infositessupprimer', 'projetsreference', $id, $qui, $opt);
     1276}
     1277
     1278
     1279
     1280/**
     1281 * Autorisation de lier/délier l'élément (projetsreferences)
     1282 *
     1283 * @param  string $faire Action demandée
     1284 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1285 * @param  int    $id    Identifiant de l'objet
     1286 * @param  array  $qui   Description de l'auteur demandant l'autorisation
     1287 * @param  array  $opt   Options de cette autorisation
     1288 * @return bool          true s'il a le droit, false sinon
     1289 **/
     1290function autoriser_associerprojetsreferences_dist($faire, $type, $id, $qui, $opt) {
     1291        return autoriser('infositesassocier', 'projetsreferences', $id, $qui, $opt);
     1292
     1293}
     1294
     1295
     1296/**
     1297 * Autorisation d'iconifier un auteur (mettre un logo)
     1298 *
     1299 * Il faut un administrateur ou que l'auteur soit celui qui demande l'autorisation
     1300 *
     1301 * @param  string $faire Action demandée
     1302 * @param  string $type Type d'objet sur lequel appliquer l'action
     1303 * @param  int $id Identifiant de l'objet
     1304 * @param  array $qui Description de l'auteur demandant l'autorisation
     1305 * @param  array $opt Options de cette autorisation
     1306 * @return bool          true s'il a le droit, false sinon
     1307 **/
     1308function autoriser_projetsreference_iconifier_dist($faire, $type, $id, $qui, $opt) {
     1309        return false;
     1310}
  • _plugins_/info_sites/trunk/info_sites_fonctions.php

    r103273 r108122  
    4949         */
    5050        function lister_tables_objets() {
    51                 include_spip('bas/objets');
     51                include_spip('base/objets');
    5252                /* récupérer les tables principales */
    5353                $tables_principales = lister_tables_principales();
     
    616616                                $branches = preg_grep(",^" . version2branche($version) . ",", $releases);
    617617                                $branches = array_values($branches);
     618
    618619                                return end($branches);
    619620                        }
     621
    620622                        return false;
    621623                }
     
    652654
    653655}
     656
     657function info_sites_lister_projets($champ = 'nom') {
     658        if (empty($champ) or strlen($champ) == 0) {
     659                $champ = 'nom';
     660        }
     661        $results = array();
     662        include_spip('base/objets');
     663        /* récupérer les tables principales */
     664        $tables_principales = lister_tables_principales();
     665        $projets_tables = $tables_principales['spip_projets'];
     666        $projets_champs = array_keys($projets_tables['field']);
     667
     668        if (!in_array($champ, $projets_champs)) {
     669                return $results;
     670        }
     671
     672        include_spip('base/abstract_sql');
     673
     674        $all_projects = sql_allfetsel('DISTINCT(' . $champ . ')', 'spip_projets');
     675        if (is_array($all_projects) and count($all_projects) > 0) {
     676                foreach ($all_projects as $projet) {
     677                        $results[] = trim($projet[$champ]);
     678                }
     679        }
     680        $results = array_unique($results);
     681        $results = array_filter($results);
     682        natsort($results);
     683
     684        return $results;
     685
     686}
     687
     688
     689function info_sites_lister_organisations($champ = 'nom') {
     690        if (empty($champ) or strlen($champ) == 0) {
     691                $champ = 'nom';
     692        }
     693        $results = array();
     694        include_spip('base/objets');
     695        /* récupérer les tables principales */
     696        $tables_principales = lister_tables_principales();
     697        $organisations_tables = $tables_principales['spip_organisations'];
     698        $organisations_champs = array_keys($organisations_tables['field']);
     699
     700        if (!in_array($champ, $organisations_champs)) {
     701                return $results;
     702        }
     703
     704        include_spip('base/abstract_sql');
     705
     706        $all_organisations = sql_allfetsel('DISTINCT(' . $champ . ')', 'spip_organisations');
     707        if (is_array($all_organisations) and count($all_organisations) > 0) {
     708                foreach ($all_organisations as $organisation) {
     709                        $results[] = trim($organisation[$champ]);
     710                }
     711        }
     712        $results = array_unique($results);
     713        $results = array_filter($results);
     714        natsort($results);
     715
     716        return $results;
     717
     718}
  • _plugins_/info_sites/trunk/info_sites_pipelines.php

    r100434 r108122  
    1616function info_sites_affiche_milieu($flux) {
    1717        include_spip('inc/utils');
     18        $texte = '';
     19        $e = trouver_objet_exec($flux['args']['exec']);
    1820        $liste_objets = array(
    1921                'organisations',
     
    2224                'projets_sites',
    2325        );
     26        // projets_references sur les projets
     27        if (!$e['edition'] and in_array($e['type'], array('projet'))) {
     28                $texte .= recuperer_fond('prive/objets/editer/liens', array(
     29                        'table_source' => 'projets_references',
     30                        'objet' => $e['type'],
     31                        'id_objet' => $flux['args'][$e['id_table_objet']]
     32                ));
     33        }
     34
    2435
    2536        $liste_plugins = isset($GLOBALS['meta']['plugin']) ? unserialize($GLOBALS['meta']['plugin']) : array();
     
    2940                $liste_objets[] = 'commits';
    3041        }
    31         if ($flux["args"]["exec"] == "accueil") {
     42        if ($e == "accueil") {
    3243                foreach ($liste_objets as $objet) {
    33                         $flux["data"] .= recuperer_fond('prive/objets/liste/' . $objet);
     44                        $texte .= recuperer_fond('prive/objets/liste/' . $objet);
     45                }
     46        }
     47
     48        if ($texte) {
     49                if ($p = strpos($flux['data'], '<!--affiche_milieu-->')) {
     50                        $flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
     51                } else {
     52                        $flux['data'] .= $texte;
    3453                }
    3554        }
     
    86105        return $flux;
    87106}
     107
     108
     109/**
     110 * Optimiser la base de données
     111 *
     112 * Supprime les liens orphelins de l'objet vers quelqu'un et de quelqu'un vers l'objet.
     113 *
     114 * @pipeline optimiser_base_disparus
     115 * @param  array $flux Données du pipeline
     116 * @return array       Données du pipeline
     117 */
     118function info_sites_optimiser_base_disparus($flux) {
     119
     120        include_spip('action/editer_liens');
     121        $flux['data'] += objet_optimiser_liens(array('projets_reference'=>'*'), '*');
     122
     123        return $flux;
     124}
  • _plugins_/info_sites/trunk/lang/info_sites_fr.php

    r101231 r108122  
    8181        'controle_projets_auteurs_orphelins' => 'Projets sans utilisateurs',
    8282        'controle_projets_auteurs_orphelins_explication' => 'Les projets qui seraient listés ci-dessous sont sans utilisateurs associés.',
     83        'controle_projets_references_menu' => 'Références de projets',
    8384        'controle_projets_date_debut_vide' => 'Date de démarrage non-saisie',
    8485        'controle_projets_date_livraison_prevue_vide' => 'Date de livraison prévue, non-saisie',
     
    9091        'controle_projets_orphelins' => 'Projets sans organisation',
    9192        'controle_projets_orphelins_sites' => 'Projets sans sites liés',
     93        'controle_projets_projets_sites_menu' => 'Les projets et leurs sites',
    9294        'controle_projets_sites_logiciel_nom_vide' => 'Nom du logiciel non-renseigné',
    9395        'controle_projets_sites_logiciel_version_vide' => 'Version du logiciel non-renseigné',
     
    214216        'titre_page_controle_info_sites' => 'Contrôler le contenu d’Info Sites',
    215217        'titre_page_lister_projets_sites' => 'Lister les sites de projets',
     218        'titre_page_projets_dashboard' => 'Tableau de bord des projets',
    216219
    217220        // V
  • _plugins_/info_sites/trunk/paquet.xml

    r106340 r108122  
    22        prefix="info_sites"
    33        categorie="outil"
    4         version="1.17.1"
     4        version="1.18.0"
    55        etat="test"
    6         compatibilite="[3.0.8;3.1.*]"
     6        compatibilite="[3.0.8;3.2.*]"
    77        logo="prive/themes/spip/images/info_sites-64.png"
    88        documentation="http://info-sites.readthedocs.io/"
    9         schema="1.2.0"
     9        schema="1.3.1"
    1010>
    1111        <nom>Info Sites</nom>
     
    1717
    1818        <!-- On indique les plugins minimum du core en cas de distribution dédiée d'InfoSites -->
    19         <necessite nom="svp" compatibilite="[0.80.0;]"/>
    20         <necessite nom="revisions" compatibilite="[1.7.0;]"/>
    21         <necessite nom="vertebres" compatibilite="[1.2.0;]"/>
    2219        <necessite nom="jqueryui" compatibilite="[1.8.0;]"/>
    2320        <necessite nom="medias" compatibilite="[2.7.0;]"/>
     21        <necessite nom="revisions" compatibilite="[1.7.0;]"/>
     22        <necessite nom="svp" compatibilite="[0.80.0;]"/>
     23        <necessite nom="vertebres" compatibilite="[1.2.0;]"/>
    2424
    25         <necessite nom="saisies" compatibilite="[2.2.3;]"/>
    26         <necessite nom="Zcore" compatibilite="[2.4.0;]"/>
     25        <necessite nom="cextras" compatibilite="[3.0.5;[" />
    2726        <necessite nom="contacts" compatibilite="[3.0.0;]"/>
    2827        <necessite nom="coordonnees" compatibilite="[2.2.4;]"/>
     28        <necessite nom="lesscss" compatibilite="[0.7.11;]"/>
    2929        <necessite nom="projets" compatibilite="[1.0.9;]"/>
    30         <necessite nom="lesscss" compatibilite="[0.7.11;]"/>
    3130        <necessite nom="projets_sites" compatibilite="[1.7.8;]"/>
    3231        <necessite nom="roles_auteurs" compatibilite="[1.0.0;]"/>
    3332        <necessite nom="rss_commits" compatibilite="[0.6.0;]"/>
     33        <necessite nom="saisies" compatibilite="[2.2.3;]"/>
    3434        <necessite nom="selecteurgenerique" compatibilite="[1.0.0;]"/>
    35         <necessite nom="cextras" compatibilite="[3.0.5;[" />
     35        <necessite nom="Zcore" compatibilite="[2.4.0;]"/>
    3636
    3737        <utilise nom="info_spip" compatibilite="[0.8.0;]"/>
    3838
    3939        <menu nom="controle_info_sites" parent="menu_publication" icone="images/info_sites-16.png" action="controle_info_sites" titre="info_sites:titre_controle_info_sites" />
     40        <menu nom="projets_references" titre="projets_reference:titre_projets_references" parent="menu_edition" icone="images/projets_reference-16.png" action="projets_references"/>
    4041
    4142        <lib nom="bootstrap-3.3.7" lien="https://github.com/twbs/bootstrap/releases/download/v3.3.7/bootstrap-3.3.7-dist.zip" />
     
    4647        <pipeline nom="compiler_branches_logiciel" action=''/>
    4748
     49        <pipeline nom="affiche_milieu" inclure="info_sites_pipelines.php"/>
     50        <pipeline nom="autoriser" inclure="info_sites_autorisations.php"/>
     51        <pipeline nom="compiler_branches_logiciel" inclure="info_sites_pipelines.php" />
     52        <pipeline nom="declarer_champs_extras" inclure="base/info_sites_extras.php" />
     53        <pipeline nom="declarer_tables_auxiliaires" inclure="base/info_sites.php" />
     54        <pipeline nom="declarer_tables_interfaces" inclure="base/info_sites.php" />
    4855        <pipeline nom="declarer_tables_objets_sql" inclure="base/info_sites.php" />
    49         <pipeline nom="declarer_champs_extras" inclure="base/info_sites_extras.php" />
    50 
    51         <pipeline nom="affiche_milieu" inclure="info_sites_pipelines.php"/>
    5256        <pipeline nom="header_prive" inclure="info_sites_pipelines.php"/>
     57        <pipeline nom="optimiser_base_disparus" inclure="info_sites_pipelines.php" />
    5358        <pipeline nom="taches_generales_cron" inclure="info_sites_pipelines.php" />
    54         <pipeline nom="compiler_branches_logiciel" inclure="info_sites_pipelines.php" />
    55 
    56         <pipeline nom="autoriser" inclure="info_sites_autorisations.php"/>
    5759
    5860        <chemin path="./" />
  • _plugins_/info_sites/trunk/prive/squelettes/inclure/controle/contacts.html

    r97978 r108122  
    33[(#BOITE_OUVRIR{<h3 class="legend" id="contacts_orphelins_organisations_bloc"><:info_sites:controle_contacts_orphelins_organisations:></h3>, 'info'})]
    44<div class="contacts_orphelins_organisations">
    5         [(#SET{where,"contacts.id_contact NOT IN (SELECT id_contact FROM spip_organisations_contacts)"})]
     5        [(#SET{where,"contacts.id_contact NOT IN (SELECT id_objet FROM spip_organisations_liens WHERE objet='contact')"})]
    66        <INCLURE{fond=objets/liste/contacts,where=#GET{where},pagination_id=_contacts_orphelins_organisations,sinon=<:info_sites:controle_ok:>,env}/>
    77        <div class="nettoyeur"></div>
  • _plugins_/info_sites/trunk/prive/squelettes/inclure/controle/organisations.html

    r97978 r108122  
    33[(#BOITE_OUVRIR{<h3 class="legend" id="organisations_orphelins_contacts_bloc"><:info_sites:controle_organisations_orphelins_contacts:></h3>, 'info'})]
    44<div class="organisations_orphelins_contacts">
    5         [(#SET{where,"organisations.id_organisation NOT IN (SELECT id_organisation FROM spip_organisations_contacts)"})]
     5        [(#SET{where,"organisations.id_organisation NOT IN (SELECT id_organisation FROM spip_organisations_liens WHERE objet='contact')"})]
    66        <INCLURE{fond=objets/liste/organisations,where=#GET{where},pagination_id=_organisations_orphelins_contacts,sinon=<:info_sites:controle_ok:>,env}/>
    77        <div class="nettoyeur"></div>
  • _plugins_/info_sites/trunk/prive/style_prive_plugin_info_sites.html

    r97978 r108122  
    8383        text-align: left;
    8484}
     85
     86.projets_reference #wysiwyg .champ {
     87    margin-bottom: 1em;
     88    overflow: hidden;
     89    padding-top: 0.5em;
     90    border-top: 1px solid #GET{claire};
     91}
     92.projets_reference #wysiwyg .champ.fieldset {
     93    margin: 2em -15px 0;
     94    padding-top: 0;
     95    border-top: 1px solid #cccccc;
     96    background-color: #GET{background-color};
     97}
     98
     99.projets_reference #wysiwyg .champ.fieldset h2,
     100.projets_reference #wysiwyg .champ.fieldset h3 {
     101    padding: 0.5em 15px;
     102    margin-bottom: 0;
     103    font-weight: normal;
     104}
     105.projets_reference #wysiwyg .champ .label.visible {
     106    display: block;
     107    width: 30%;
     108    margin-top:0;
     109    float: left;
     110    font-weight: bold;
     111    color: #GET{color};
     112    white-space: normal;
     113}
     114.projets_reference #wysiwyg .champ .span {
     115    display:block;
     116    width: 69%;
     117    float: right;
     118}
     119.projets_reference #wysiwyg .fieldset + .liste-objets {
     120    margin-top: 1em;
     121}
     122.projets_reference #wysiwyg .fieldset .titrem {
     123    display: block;
     124    font-weight: bold;
     125    padding: 7px 5px 7px 10px;
     126    border-top: 1px solid #GET{claire};
     127        background-color: #GET{background-color};
     128    color: #GET{foncee};
     129}
  • _plugins_/info_sites/trunk/squelettes/aside/controle_info_sites.html

    r97989 r108122  
    22        <div class="list-group menu">
    33                <BOUCLE_controle_fichiers (DATA) {source tableau, (#VAL{prive/squelettes/inclure/controle/}|find_all_in_path{'.html$'})}>[(#SET{controle,[(#CLE|replace{.html,''})]})]
    4                 <a href="[(#SELF|parametre_url{controle,#GET{controle}})]" class="list-group-item bouton voir bando2_[(#GET{controle})][(#ENV{controle}|=={#GET{controle}}|oui)active]">[(#VAL{info_sites:}|concat{'controle_',#GET{controle},'_menu'}|_T)]</a>
     4                <a href="[(#SELF|parametre_url{controle,#GET{controle}})]" class="list-group-item bouton voir bando2_[(#GET{controle})][(#GET{controle}|=={#ENV{controle,projets_projets_sites}|trim}|oui)active]">[(#VAL{info_sites:}|concat{'controle_',#GET{controle},'_menu'}|_T)]</a>
    55                </BOUCLE_controle_fichiers>
    66        </div>
  • _plugins_/info_sites/trunk/squelettes/content/controle.html

    r96106 r108122  
    11<h1>Contrôle</h1>
    22[(#SET{contacts_liens,#ARRAY})]
    3 <BOUCLE_contacts_liens (spip_organisations_contacts) {tout} {fusion id_contact}>[(#SET{contacts_liens,[(#GET{contacts_liens}|push{#ID_CONTACT})]})] </BOUCLE_contacts_liens>
     3<BOUCLE_contacts_liens (spip_organisations_liens) {objet="contact"} {fusion id_objet}>[(#SET{contacts_liens,[(#GET{contacts_liens}|push{#ID_OBJET})]})] </BOUCLE_contacts_liens>
    44<B_contacts>
    55        <div class="liste-objets contacts">
  • _plugins_/info_sites/trunk/squelettes/content/projets_reference.html

    r107695 r108122  
    1 <BOUCLE_projets_site (PROJETS_SITES) {id_projets_site} {tout}>
    2 [(#AUTORISER{infositesvoir,projetssite,#ID_PROJETS_SITE}|sinon_interdire_acces{'',401,<:info_sites:zone_restreinte:>})]
     1<BOUCLE_projets_reference (PROJETS_REFERENCES) {id_projets_reference} {tout}>
     2[(#AUTORISER{infositesvoir,projetssite,#ID_PROJETS_REFERENCE}|sinon_interdire_acces{'',401,<:info_sites:zone_restreinte:>})]
    33[(#BOITE_OUVRIR{[
    4         <h1 class="titre">[(#RANG). ](#TITRE|sinon{<:info_sans_titre:>})</h1>
     4        <h1 class="titre">[(#RANG). ](#NOM|sinon{<:info_sans_titre:>})</h1>
    55],simple fiche_objet})]
    66
    7 [(#LOGO_PROJETS_SITE|image_reduire{150,0}|vider_attribut{style}|vider_attribut{width}|vider_attribut{height}|inserer_attribut{'class','img-responsive'})
     7[(#LOGO_PROJETS_REFERENCE|image_reduire{150,0}|vider_attribut{style}|vider_attribut{width}|vider_attribut{height}|inserer_attribut{'class','img-responsive'})
    88<div class="clearfix"></div>]
    99
    1010<div id="wysiwyg">
    11 <INCLURE{fond=prive/objets/contenu/projets_site,id=#ID_PROJETS_SITE,id_projets_site=#ID_PROJETS_SITE,ajax=wysiwyg} />
     11<INCLURE{fond=prive/objets/contenu/projets_reference,id=#ID_PROJETS_REFERENCE,id_projets_reference=#ID_PROJETS_REFERENCE,ajax=wysiwyg} />
    1212</div>
    1313<div class="clearfix"></div>
    1414
    15         #PIPELINE{afficher_complement_objet,#ARRAY{args,#ARRAY{type,projets_site,id,#ID_PROJETS_SITE},data,'<div class="nettoyeur"></div>'}}
    16         [(#SET{exec,#ARRAY{exec,projets_site}})]
     15        #PIPELINE{afficher_complement_objet,#ARRAY{args,#ARRAY{type,projets_reference,id,#ID_PROJETS_REFERENCE},data,'<div class="nettoyeur"></div>'}}
     16        [(#SET{exec,#ARRAY{exec,projets_reference}})]
    1717        [(#SET{contexte,#GET{exec}|array_merge{#ENV**|unserialize}})]
    18         #PIPELINE{afficher_fiche_objet,#ARRAY{args,#ARRAY{type,projets_site,id,#ID_PROJETS_SITE,contexte,#GET{contexte}},data,'<div class="nettoyeur"></div>'}}
     18        #PIPELINE{afficher_fiche_objet,#ARRAY{args,#ARRAY{type,projets_reference,id,#ID_PROJETS_REFERENCE,contexte,#GET{contexte}},data,'<div class="nettoyeur"></div>'}}
    1919
    2020        #BOITE_FERMER
     
    2222        <script type="text/javascript">/*<!\[CDATA\[*/reloadExecPage('#ENV{type-page}','#navigation,#chemin');/*\]\]>*/</script>
    2323]
    24 </BOUCLE_projets_site>
    25 [(#ENV**{type-page}|=={projets_site_edit}|?{#INCLURE{fond=prive/squelettes/contenu/projets_site_edit,redirect='',env,retourajax=oui},#REM|sinon_interdire_acces})]
    26 <//B_projets_site>
     24</BOUCLE_projets_reference>
     25[(#ENV**{type-page}|=={projets_reference_edit}|?{#INCLURE{fond=prive/squelettes/contenu/projets_reference_edit,redirect='',env,retourajax=oui},#REM|sinon_interdire_acces})]
     26<//B_projets_reference>
    2727
  • _plugins_/info_sites/trunk/squelettes/css/variables.less

    r96402 r108122  
    77//
    88//## Gray and brand colors for use across Bootstrap.
    9 
    10 @gray-darker:           lighten(#000, 13.5%); // #222
    11 @gray-dark:             lighten(#000, 20%);   // #333
    12 @gray:                  lighten(#000, 33.5%); // #555
    13 @gray-light:            lighten(#000, 46.7%); // #777
    14 @gray-lighter:          lighten(#000, 93.5%); // #eee
     9@gray-base:                                             #000;
     10@gray-darker:           lighten(@gray-base, 13.5%); // #222
     11@gray-dark:             lighten(@gray-base, 20%);   // #333
     12@gray:                  lighten(@gray-base, 33.5%); // #555
     13@gray-light:            lighten(@gray-base, 46.7%); // #777
     14@gray-lighter:          lighten(@gray-base, 93.5%); // #eee
    1515
    1616@gray-second:           #a8a8a8;
     
    3030@brand-danger:          #d9534f;
    3131
    32 @bg-primary:            #906021;
    33 @bg-primary-light:      #449dd5;
    34 @bg-success:            #49A8DD;
    35 @bg-info:               #2ec1cc;
    36 @bg-warning:            #ffb61c;
    37 @bg-danger:             #e94b3b;
     32@bg-primary:            @brand-primary;
     33@bg-primary-light:      lighten(@bg-primary, 13.5%);
     34@bg-success:            @brand-success;
     35@bg-info:               @brand-info;
     36@bg-warning:            @brand-warning;
     37@bg-danger:             @brand-danger;
    3838@bg-orange:             #f98e33;
    3939@bg-violet:             #4A5171;
    4040@bg-dark:               #666666;
    4141@bg-bright:             #fafafa;
    42 @bg-reverse:            white;
     42@bg-reverse:            @white;
    4343@bg-site:               #F0F0F0;
    4444
Note: See TracChangeset for help on using the changeset viewer.