Changeset 101505 in spip-zone for _plugins_/info_sites/branches/v1


Ignore:
Timestamp:
Jan 4, 2017, 7:52:51 AM (21 months ago)
Author:
teddy.spip@…
Message:

Merge de la branche avec le trunk. On passe en 1.16.1

Location:
_plugins_/info_sites/branches/v1
Files:
29 edited
5 copied

Legend:

Unmodified
Added
Removed
  • _plugins_/info_sites/branches/v1

  • _plugins_/info_sites/branches/v1/inc/info_sites_outiller.php

    r100287 r101505  
    1616
    1717function compiler_branches_logiciel($logiciel_nom = null) {
    18 
    1918        include_spip('base/abstract_sql');
    2019        $branches = array();
     
    3736        $branches = array_map('array_unique', $branches);
    3837
    39         if (is_null($logiciel_nom) or empty($logiciel_nom)) {
     38        $branches = pipeline('compiler_branches_logiciel', array('args' => array(), 'data' => $branches));
     39        $branches = array_map('array_values', $branches);
     40
     41        if (!is_null($logiciel_nom) and !empty($logiciel_nom)) {
    4042                return (isset($branches[$logiciel_nom]) ? $branches[$logiciel_nom] : null);
    4143        }
  • _plugins_/info_sites/branches/v1/info_sites_administrations.php

    r100289 r101505  
    4242        include_spip('base/info_sites_extras');
    4343        cextras_api_upgrade(info_sites_declarer_champs_extras(), $maj['1.1.0']);
     44        $maj['1.2.0'][] = array('info_sites_maj_120');
    4445
    4546        include_spip('base/upgrade');
     
    151152}
    152153
     154/**
     155 * MAJ 1.2.0 : transferer de spip_organisations_contacts dans spip_organisations_liens. Le plugin C&O v3.0 le fait normalement, mais il peut arriver que la mise à jour ne s'est pas très bien déroulée. Donc, on appelle la fonction conctacts_maj_1_13_0()
     156 *
     157 */
     158function info_sites_maj_120() {
     159        include_spip('base/abstract_sql');
     160        $count_organisations_contacts = sql_countsel('spip_organisations_contacts');
     161        include_spip('contacts/contacts_administrations');
     162
     163        if ($count_organisations_contacts > 0 and function_exists('conctacts_maj_1_13_0')) {
     164                conctacts_maj_1_13_0();
     165        }
     166}
     167
  • _plugins_/info_sites/branches/v1/info_sites_autorisations.php

    r98661 r101505  
    2929 * @param  string $faire Action demandée
    3030 * @param  string $type  Type d'objet sur lequel appliquer l'action
    31  * @param  int    $id    Identifiant de l'objet
    32  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    33  * @param  array  $opt   Options de cette autorisation
     31 * @param  int $id       Identifiant de l'objet
     32 * @param  array $qui    Description de l'auteur demandant l'autorisation
     33 * @param  array $opt    Options de cette autorisation
    3434 *
    3535 * @return bool          true s'il a le droit, false sinon
     
    4747 * @param  string $faire Action demandée
    4848 * @param  string $type  Type d'objet sur lequel appliquer l'action
    49  * @param  int    $id    Identifiant de l'objet
    50  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    51  * @param  array  $opt   Options de cette autorisation
     49 * @param  int $id       Identifiant de l'objet
     50 * @param  array $qui    Description de l'auteur demandant l'autorisation
     51 * @param  array $opt    Options de cette autorisation
    5252 *
    5353 * @return bool          true s'il a le droit, false sinon
     
    6868 *
    6969 * @param  string $faire Action demandée
    70  * @param  string $type Type d'objet sur lequel appliquer l'action
    71  * @param  int $id Identifiant de l'objet
    72  * @param  array $qui Description de l'auteur demandant l'autorisation
    73  * @param  array $opt Options de cette autorisation
     70 * @param  string $type  Type d'objet sur lequel appliquer l'action
     71 * @param  int $id       Identifiant de l'objet
     72 * @param  array $qui    Description de l'auteur demandant l'autorisation
     73 * @param  array $opt    Options de cette autorisation
     74 *
    7475 * @return bool          true s'il a le droit, false sinon
    7576 */
     
    104105 * @param  string $faire Action demandée
    105106 * @param  string $type  Type d'objet sur lequel appliquer l'action
    106  * @param  int    $id    Identifiant de l'objet
    107  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    108  * @param  array  $opt   Options de cette autorisation
     107 * @param  int $id       Identifiant de l'objet
     108 * @param  array $qui    Description de l'auteur demandant l'autorisation
     109 * @param  array $opt    Options de cette autorisation
    109110 *
    110111 * @return bool          true s'il a le droit, false sinon
     
    122123 * @param  string $faire Action demandée
    123124 * @param  string $type  Type d'objet sur lequel appliquer l'action
    124  * @param  int    $id    Identifiant de l'objet
    125  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    126  * @param  array  $opt   Options de cette autorisation
     125 * @param  int $id       Identifiant de l'objet
     126 * @param  array $qui    Description de l'auteur demandant l'autorisation
     127 * @param  array $opt    Options de cette autorisation
    127128 *
    128129 * @return bool          true s'il a le droit, false sinon
     
    140141 * @param  string $faire Action demandée
    141142 * @param  string $type  Type d'objet sur lequel appliquer l'action
    142  * @param  int    $id    Identifiant de l'objet
    143  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    144  * @param  array  $opt   Options de cette autorisation
     143 * @param  int $id       Identifiant de l'objet
     144 * @param  array $qui    Description de l'auteur demandant l'autorisation
     145 * @param  array $opt    Options de cette autorisation
    145146 *
    146147 * @return bool          true s'il a le droit, false sinon
     
    165166 * @param  string $faire Action demandée
    166167 * @param  string $type  Type d'objet sur lequel appliquer l'action
    167  * @param  int    $id    Identifiant de l'objet
    168  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    169  * @param  array  $opt   Options de cette autorisation
     168 * @param  int $id       Identifiant de l'objet
     169 * @param  array $qui    Description de l'auteur demandant l'autorisation
     170 * @param  array $opt    Options de cette autorisation
    170171 *
    171172 * @return bool          true s'il a le droit, false sinon
     
    180181 * @param  string $faire Action demandée
    181182 * @param  string $type  Type d'objet sur lequel appliquer l'action
    182  * @param  int    $id    Identifiant de l'objet
    183  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    184  * @param  array  $opt   Options de cette autorisation
     183 * @param  int $id       Identifiant de l'objet
     184 * @param  array $qui    Description de l'auteur demandant l'autorisation
     185 * @param  array $opt    Options de cette autorisation
    185186 *
    186187 * @return bool          true s'il a le droit, false sinon
     
    198199 * @param  string $faire Action demandée
    199200 * @param  string $type  Type d'objet sur lequel appliquer l'action
    200  * @param  int    $id    Identifiant de l'objet
    201  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    202  * @param  array  $opt   Options de cette autorisation
     201 * @param  int $id       Identifiant de l'objet
     202 * @param  array $qui    Description de l'auteur demandant l'autorisation
     203 * @param  array $opt    Options de cette autorisation
    203204 *
    204205 * @return bool          true s'il a le droit, false sinon
     
    216217 * @param  string $faire Action demandée
    217218 * @param  string $type  Type d'objet sur lequel appliquer l'action
    218  * @param  int    $id    Identifiant de l'objet
    219  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    220  * @param  array  $opt   Options de cette autorisation
     219 * @param  int $id       Identifiant de l'objet
     220 * @param  array $qui    Description de l'auteur demandant l'autorisation
     221 * @param  array $opt    Options de cette autorisation
    221222 *
    222223 * @return bool          true s'il a le droit, false sinon
     
    238239 * @param  string $faire Action demandée
    239240 * @param  string $type  Type d'objet sur lequel appliquer l'action
    240  * @param  int    $id    Identifiant de l'objet
    241  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    242  * @param  array  $opt   Options de cette autorisation
     241 * @param  int $id       Identifiant de l'objet
     242 * @param  array $qui    Description de l'auteur demandant l'autorisation
     243 * @param  array $opt    Options de cette autorisation
    243244 *
    244245 * @return bool          true s'il a le droit, false sinon
     
    266267 * @param  string $faire Action demandée
    267268 * @param  string $type  Type d'objet sur lequel appliquer l'action
    268  * @param  int    $id    Identifiant de l'objet
    269  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    270  * @param  array  $opt   Options de cette autorisation
     269 * @param  int $id       Identifiant de l'objet
     270 * @param  array $qui    Description de l'auteur demandant l'autorisation
     271 * @param  array $opt    Options de cette autorisation
    271272 *
    272273 * @return bool          true s'il a le droit, false sinon
     
    281282 * @param  string $faire Action demandée
    282283 * @param  string $type  Type d'objet sur lequel appliquer l'action
    283  * @param  int    $id    Identifiant de l'objet
    284  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    285  * @param  array  $opt   Options de cette autorisation
     284 * @param  int $id       Identifiant de l'objet
     285 * @param  array $qui    Description de l'auteur demandant l'autorisation
     286 * @param  array $opt    Options de cette autorisation
    286287 *
    287288 * @return bool          true s'il a le droit, false sinon
     
    306307 * @param  string $faire Action demandée
    307308 * @param  string $type  Type d'objet sur lequel appliquer l'action
    308  * @param  int    $id    Identifiant de l'objet
    309  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    310  * @param  array  $opt   Options de cette autorisation
     309 * @param  int $id       Identifiant de l'objet
     310 * @param  array $qui    Description de l'auteur demandant l'autorisation
     311 * @param  array $opt    Options de cette autorisation
    311312 *
    312313 * @return bool          true s'il a le droit, false sinon
     
    321322 * @param  string $faire Action demandée
    322323 * @param  string $type  Type d'objet sur lequel appliquer l'action
    323  * @param  int    $id    Identifiant de l'objet
    324  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    325  * @param  array  $opt   Options de cette autorisation
     324 * @param  int $id       Identifiant de l'objet
     325 * @param  array $qui    Description de l'auteur demandant l'autorisation
     326 * @param  array $opt    Options de cette autorisation
    326327 *
    327328 * @return bool          true s'il a le droit, false sinon
     
    336337 * @param  string $faire Action demandée
    337338 * @param  string $type  Type d'objet sur lequel appliquer l'action
    338  * @param  int    $id    Identifiant de l'objet
    339  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    340  * @param  array  $opt   Options de cette autorisation
     339 * @param  int $id       Identifiant de l'objet
     340 * @param  array $qui    Description de l'auteur demandant l'autorisation
     341 * @param  array $opt    Options de cette autorisation
    341342 *
    342343 * @return bool          true s'il a le droit, false sinon
     
    360361 * @param  string $faire Action demandée
    361362 * @param  string $type  Type d'objet sur lequel appliquer l'action
    362  * @param  int    $id    Identifiant de l'objet
    363  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    364  * @param  array  $opt   Options de cette autorisation
     363 * @param  int $id       Identifiant de l'objet
     364 * @param  array $qui    Description de l'auteur demandant l'autorisation
     365 * @param  array $opt    Options de cette autorisation
    365366 *
    366367 * @return bool          true s'il a le droit, false sinon
     
    381382 * @param  string $faire Action demandée
    382383 * @param  string $type  Type d'objet sur lequel appliquer l'action
    383  * @param  int    $id    Identifiant de l'objet
    384  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    385  * @param  array  $opt   Options de cette autorisation
     384 * @param  int $id       Identifiant de l'objet
     385 * @param  array $qui    Description de l'auteur demandant l'autorisation
     386 * @param  array $opt    Options de cette autorisation
    386387 *
    387388 * @return bool          true s'il a le droit, false sinon
     
    405406 * @param  string $faire Action demandée
    406407 * @param  string $type  Type d'objet sur lequel appliquer l'action
    407  * @param  int    $id    Identifiant de l'objet
    408  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    409  * @param  array  $opt   Options de cette autorisation
     408 * @param  int $id       Identifiant de l'objet
     409 * @param  array $qui    Description de l'auteur demandant l'autorisation
     410 * @param  array $opt    Options de cette autorisation
    410411 *
    411412 * @return bool          true s'il a le droit, false sinon
     
    420421 * @param  string $faire Action demandée
    421422 * @param  string $type  Type d'objet sur lequel appliquer l'action
    422  * @param  int    $id    Identifiant de l'objet
    423  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    424  * @param  array  $opt   Options de cette autorisation
     423 * @param  int $id       Identifiant de l'objet
     424 * @param  array $qui    Description de l'auteur demandant l'autorisation
     425 * @param  array $opt    Options de cette autorisation
    425426 *
    426427 * @return bool          true s'il a le droit, false sinon
     
    444445 * @param  string $faire Action demandée
    445446 * @param  string $type  Type d'objet sur lequel appliquer l'action
    446  * @param  int    $id    Identifiant de l'objet
    447  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    448  * @param  array  $opt   Options de cette autorisation
     447 * @param  int $id       Identifiant de l'objet
     448 * @param  array $qui    Description de l'auteur demandant l'autorisation
     449 * @param  array $opt    Options de cette autorisation
    449450 *
    450451 * @return bool          true s'il a le droit, false sinon
     
    452453function autoriser_projetssitesecurite_voir($faire, $type, $id, $qui, $opt) {
    453454        include_spip('base/abstract_sql');
    454         $auteurs = sql_fetsel("role", "spip_auteurs_liens", "objet='projet' AND id_objet IN (SELECT id_objet FROM spip_projets_sites_liens WHERE objet='projet' AND id_projets_site=" . $id . ") AND id_auteur=" . $qui['id_auteur']);
     455        $auteurs = sql_fetsel("role", "spip_auteurs_liens",
     456                "objet='projet' AND id_objet IN (SELECT id_objet FROM spip_projets_sites_liens WHERE objet='projet' AND id_projets_site=" . $id . ") AND id_auteur=" . $qui['id_auteur']);
    455457
    456458        if (isset($auteurs['role'])) {
     
    473475 * @param  string $faire Action demandée
    474476 * @param  string $type  Type d'objet sur lequel appliquer l'action
    475  * @param  int    $id    Identifiant de l'objet
    476  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    477  * @param  array  $opt   Options de cette autorisation
     477 * @param  int $id       Identifiant de l'objet
     478 * @param  array $qui    Description de l'auteur demandant l'autorisation
     479 * @param  array $opt    Options de cette autorisation
    478480 *
    479481 * @return bool          true s'il a le droit, false sinon
     
    488490 * @param  string $faire Action demandée
    489491 * @param  string $type  Type d'objet sur lequel appliquer l'action
    490  * @param  int    $id    Identifiant de l'objet
    491  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    492  * @param  array  $opt   Options de cette autorisation
     492 * @param  int $id       Identifiant de l'objet
     493 * @param  array $qui    Description de l'auteur demandant l'autorisation
     494 * @param  array $opt    Options de cette autorisation
    493495 *
    494496 * @return bool          true s'il a le droit, false sinon
     
    506508 * @param  string $faire Action demandée
    507509 * @param  string $type  Type d'objet sur lequel appliquer l'action
    508  * @param  int    $id    Identifiant de l'objet
    509  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    510  * @param  array  $opt   Options de cette autorisation
     510 * @param  int $id       Identifiant de l'objet
     511 * @param  array $qui    Description de l'auteur demandant l'autorisation
     512 * @param  array $opt    Options de cette autorisation
    511513 *
    512514 * @return bool          true s'il a le droit, false sinon
     
    521523 * @param  string $faire Action demandée
    522524 * @param  string $type  Type d'objet sur lequel appliquer l'action
    523  * @param  int    $id    Identifiant de l'objet
    524  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    525  * @param  array  $opt   Options de cette autorisation
     525 * @param  int $id       Identifiant de l'objet
     526 * @param  array $qui    Description de l'auteur demandant l'autorisation
     527 * @param  array $opt    Options de cette autorisation
    526528 *
    527529 * @return bool          true s'il a le droit, false sinon
     
    539541 * @param  string $faire Action demandée
    540542 * @param  string $type  Type d'objet sur lequel appliquer l'action
    541  * @param  int    $id    Identifiant de l'objet
    542  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    543  * @param  array  $opt   Options de cette autorisation
     543 * @param  int $id       Identifiant de l'objet
     544 * @param  array $qui    Description de l'auteur demandant l'autorisation
     545 * @param  array $opt    Options de cette autorisation
    544546 *
    545547 * @return bool          true s'il a le droit, false sinon
     
    554556 * @param  string $faire Action demandée
    555557 * @param  string $type  Type d'objet sur lequel appliquer l'action
    556  * @param  int    $id    Identifiant de l'objet
    557  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    558  * @param  array  $opt   Options de cette autorisation
     558 * @param  int $id       Identifiant de l'objet
     559 * @param  array $qui    Description de l'auteur demandant l'autorisation
     560 * @param  array $opt    Options de cette autorisation
    559561 *
    560562 * @return bool          true s'il a le droit, false sinon
     
    572574 * @param  string $faire Action demandée
    573575 * @param  string $type  Type d'objet sur lequel appliquer l'action
    574  * @param  int    $id    Identifiant de l'objet
    575  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    576  * @param  array  $opt   Options de cette autorisation
     576 * @param  int $id       Identifiant de l'objet
     577 * @param  array $qui    Description de l'auteur demandant l'autorisation
     578 * @param  array $opt    Options de cette autorisation
    577579 *
    578580 * @return bool          true s'il a le droit, false sinon
     
    587589 * @param  string $faire Action demandée
    588590 * @param  string $type  Type d'objet sur lequel appliquer l'action
    589  * @param  int    $id    Identifiant de l'objet
    590  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    591  * @param  array  $opt   Options de cette autorisation
     591 * @param  int $id       Identifiant de l'objet
     592 * @param  array $qui    Description de l'auteur demandant l'autorisation
     593 * @param  array $opt    Options de cette autorisation
    592594 *
    593595 * @return bool          true s'il a le droit, false sinon
     
    609611 * @param  string $faire Action demandée
    610612 * @param  string $type  Type d'objet sur lequel appliquer l'action
    611  * @param  int    $id    Identifiant de l'objet
    612  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    613  * @param  array  $opt   Options de cette autorisation
     613 * @param  int $id       Identifiant de l'objet
     614 * @param  array $qui    Description de l'auteur demandant l'autorisation
     615 * @param  array $opt    Options de cette autorisation
    614616 *
    615617 * @return bool          true s'il a le droit, false sinon
     
    624626 * @param  string $faire Action demandée
    625627 * @param  string $type  Type d'objet sur lequel appliquer l'action
    626  * @param  int    $id    Identifiant de l'objet
    627  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    628  * @param  array  $opt   Options de cette autorisation
     628 * @param  int $id       Identifiant de l'objet
     629 * @param  array $qui    Description de l'auteur demandant l'autorisation
     630 * @param  array $opt    Options de cette autorisation
    629631 *
    630632 * @return bool          true s'il a le droit, false sinon
     
    639641 * @param  string $faire Action demandée
    640642 * @param  string $type  Type d'objet sur lequel appliquer l'action
    641  * @param  int    $id    Identifiant de l'objet
    642  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    643  * @param  array  $opt   Options de cette autorisation
     643 * @param  int $id       Identifiant de l'objet
     644 * @param  array $qui    Description de l'auteur demandant l'autorisation
     645 * @param  array $opt    Options de cette autorisation
    644646 *
    645647 * @return bool          true s'il a le droit, false sinon
     
    654656 * @param  string $faire Action demandée
    655657 * @param  string $type  Type d'objet sur lequel appliquer l'action
    656  * @param  int    $id    Identifiant de l'objet
    657  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    658  * @param  array  $opt   Options de cette autorisation
     658 * @param  int $id       Identifiant de l'objet
     659 * @param  array $qui    Description de l'auteur demandant l'autorisation
     660 * @param  array $opt    Options de cette autorisation
    659661 *
    660662 * @return bool          true s'il a le droit, false sinon
     
    669671 * @param  string $faire Action demandée
    670672 * @param  string $type  Type d'objet sur lequel appliquer l'action
    671  * @param  int    $id    Identifiant de l'objet
    672  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    673  * @param  array  $opt   Options de cette autorisation
     673 * @param  int $id       Identifiant de l'objet
     674 * @param  array $qui    Description de l'auteur demandant l'autorisation
     675 * @param  array $opt    Options de cette autorisation
    674676 *
    675677 * @return bool          true s'il a le droit, false sinon
     
    688690 * @param  string $faire Action demandée
    689691 * @param  string $type  Type d'objet sur lequel appliquer l'action
    690  * @param  int    $id    Identifiant de l'objet
    691  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    692  * @param  array  $opt   Options de cette autorisation
     692 * @param  int $id       Identifiant de l'objet
     693 * @param  array $qui    Description de l'auteur demandant l'autorisation
     694 * @param  array $opt    Options de cette autorisation
    693695 *
    694696 * @return bool          true s'il a le droit, false sinon
     
    703705 * @param  string $faire Action demandée
    704706 * @param  string $type  Type d'objet sur lequel appliquer l'action
    705  * @param  int    $id    Identifiant de l'objet
    706  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    707  * @param  array  $opt   Options de cette autorisation
     707 * @param  int $id       Identifiant de l'objet
     708 * @param  array $qui    Description de l'auteur demandant l'autorisation
     709 * @param  array $opt    Options de cette autorisation
    708710 *
    709711 * @return bool          true s'il a le droit, false sinon
     
    718720 * @param  string $faire Action demandée
    719721 * @param  string $type  Type d'objet sur lequel appliquer l'action
    720  * @param  int    $id    Identifiant de l'objet
    721  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    722  * @param  array  $opt   Options de cette autorisation
     722 * @param  int $id       Identifiant de l'objet
     723 * @param  array $qui    Description de l'auteur demandant l'autorisation
     724 * @param  array $opt    Options de cette autorisation
    723725 *
    724726 * @return bool          true s'il a le droit, false sinon
     
    733735 * @param  string $faire Action demandée
    734736 * @param  string $type  Type d'objet sur lequel appliquer l'action
    735  * @param  int    $id    Identifiant de l'objet
    736  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    737  * @param  array  $opt   Options de cette autorisation
     737 * @param  int $id       Identifiant de l'objet
     738 * @param  array $qui    Description de l'auteur demandant l'autorisation
     739 * @param  array $opt    Options de cette autorisation
    738740 *
    739741 * @return bool          true s'il a le droit, false sinon
     
    748750 * @param  string $faire Action demandée
    749751 * @param  string $type  Type d'objet sur lequel appliquer l'action
    750  * @param  int    $id    Identifiant de l'objet
    751  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    752  * @param  array  $opt   Options de cette autorisation
     752 * @param  int $id       Identifiant de l'objet
     753 * @param  array $qui    Description de l'auteur demandant l'autorisation
     754 * @param  array $opt    Options de cette autorisation
    753755 *
    754756 * @return bool          true s'il a le droit, false sinon
     
    763765 * @param  string $faire Action demandée
    764766 * @param  string $type  Type d'objet sur lequel appliquer l'action
    765  * @param  int    $id    Identifiant de l'objet
    766  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    767  * @param  array  $opt   Options de cette autorisation
     767 * @param  int $id       Identifiant de l'objet
     768 * @param  array $qui    Description de l'auteur demandant l'autorisation
     769 * @param  array $opt    Options de cette autorisation
    768770 *
    769771 * @return bool          true s'il a le droit, false sinon
     
    782784 * @param  string $faire Action demandée
    783785 * @param  string $type  Type d'objet sur lequel appliquer l'action
    784  * @param  int    $id    Identifiant de l'objet
    785  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    786  * @param  array  $opt   Options de cette autorisation
     786 * @param  int $id       Identifiant de l'objet
     787 * @param  array $qui    Description de l'auteur demandant l'autorisation
     788 * @param  array $opt    Options de cette autorisation
    787789 *
    788790 * @return bool          true s'il a le droit, false sinon
     
    797799 * @param  string $faire Action demandée
    798800 * @param  string $type  Type d'objet sur lequel appliquer l'action
    799  * @param  int    $id    Identifiant de l'objet
    800  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    801  * @param  array  $opt   Options de cette autorisation
     801 * @param  int $id       Identifiant de l'objet
     802 * @param  array $qui    Description de l'auteur demandant l'autorisation
     803 * @param  array $opt    Options de cette autorisation
    802804 *
    803805 * @return bool          true s'il a le droit, false sinon
     
    812814 * @param  string $faire Action demandée
    813815 * @param  string $type  Type d'objet sur lequel appliquer l'action
    814  * @param  int    $id    Identifiant de l'objet
    815  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    816  * @param  array  $opt   Options de cette autorisation
     816 * @param  int $id       Identifiant de l'objet
     817 * @param  array $qui    Description de l'auteur demandant l'autorisation
     818 * @param  array $opt    Options de cette autorisation
    817819 *
    818820 * @return bool          true s'il a le droit, false sinon
     
    827829 * @param  string $faire Action demandée
    828830 * @param  string $type  Type d'objet sur lequel appliquer l'action
    829  * @param  int    $id    Identifiant de l'objet
    830  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    831  * @param  array  $opt   Options de cette autorisation
     831 * @param  int $id       Identifiant de l'objet
     832 * @param  array $qui    Description de l'auteur demandant l'autorisation
     833 * @param  array $opt    Options de cette autorisation
    832834 *
    833835 * @return bool          true s'il a le droit, false sinon
     
    838840
    839841/**
     842 * Autorisation de modifier une contact (infositesmodifier)
     843 *
     844 * @param  string $faire Action demandée
     845 * @param  string $type  Type d'objet sur lequel appliquer l'action
     846 * @param  int $id       Identifiant de l'objet
     847 * @param  array $qui    Description de l'auteur demandant l'autorisation
     848 * @param  array $opt    Options de cette autorisation
     849 *
     850 * @return bool          true s'il a le droit, false sinon
     851 **/
     852function autoriser_contact_infositesmodifier_dist($faire, $type, $id, $qui, $opt) {
     853        return in_array($qui['statut'], array(
     854                        '0minirezo',
     855                        '1comite',
     856                )) or (
     857                        $id_auteur = sql_getfetsel('id_auteur', 'spip_contacts', 'id_contact = ' . intval($id))
     858                        and $id_auteur > 0
     859                        and $id_auteur == $qui['id_auteur']
     860                );
     861}
     862
     863/**
     864 * Autorisation de suppression d'une contact (infositessupprimer)
     865 *
     866 * @param  string $faire Action demandée
     867 * @param  string $type  Type d'objet sur lequel appliquer l'action
     868 * @param  int $id       Identifiant de l'objet
     869 * @param  array $qui    Description de l'auteur demandant l'autorisation
     870 * @param  array $opt    Options de cette autorisation
     871 *
     872 * @return bool          true s'il a le droit, false sinon
     873 **/
     874function autoriser_contact_infositessupprimer_dist($faire, $type, $id, $qui, $opt) {
     875        // On prend les statuts par défaut
     876        return in_array($qui['statut'], array(
     877                        '0minirezo',
     878                        '1comite',
     879                )) or (
     880                        $id_auteur = sql_getfetsel('id_auteur', 'spip_contacts', 'id_contact = ' . intval($id))
     881                        and $id_auteur > 0
     882                        and $id_auteur == $qui['id_auteur']
     883                );
     884}
     885
     886/**
    840887 * Autorisation de voir (contact)
    841888 *
    842889 * @param  string $faire Action demandée
    843890 * @param  string $type  Type d'objet sur lequel appliquer l'action
    844  * @param  int    $id    Identifiant de l'objet
    845  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    846  * @param  array  $opt   Options de cette autorisation
     891 * @param  int $id       Identifiant de l'objet
     892 * @param  array $qui    Description de l'auteur demandant l'autorisation
     893 * @param  array $opt    Options de cette autorisation
    847894 *
    848895 * @return bool          true s'il a le droit, false sinon
     
    852899}
    853900
     901// *****************************
     902// Les coordonnées
     903// *****************************
     904
     905
     906// --------------
     907// Objet Adresses
     908
     909/**
     910 * Autorisation de creer (adresse)
     911 *
     912 * @param  string $faire Action demandée
     913 * @param  string $type  Type d'objet sur lequel appliquer l'action
     914 * @param  int $id       Identifiant de l'objet
     915 * @param  array $qui    Description de l'auteur demandant l'autorisation
     916 * @param  array $opt    Options de cette autorisation
     917 *
     918 * @return bool          true s'il a le droit, false sinon
     919 **/
     920function autoriser_adresse_creer($faire, $type, $id, $qui, $opt) {
     921        return autoriser('infositescreer', 'adresse', $id, $qui, $opt);
     922}
     923
     924/**
     925 * Autorisation de voir (adresse)
     926 *
     927 * @param  string $faire Action demandée
     928 * @param  string $type  Type d'objet sur lequel appliquer l'action
     929 * @param  int $id       Identifiant de l'objet
     930 * @param  array $qui    Description de l'auteur demandant l'autorisation
     931 * @param  array $opt    Options de cette autorisation
     932 *
     933 * @return bool          true s'il a le droit, false sinon
     934 **/
     935function autoriser_adresse_voir($faire, $type, $id, $qui, $opt) {
     936        return autoriser('infositesvoir', 'adresse', $id, $qui, $opt);
     937}
     938
     939/**
     940 * Autorisation de modifier (adresse)
     941 *
     942 * @param  string $faire Action demandée
     943 * @param  string $type  Type d'objet sur lequel appliquer l'action
     944 * @param  int $id       Identifiant de l'objet
     945 * @param  array $qui    Description de l'auteur demandant l'autorisation
     946 * @param  array $opt    Options de cette autorisation
     947 *
     948 * @return bool          true s'il a le droit, false sinon
     949 **/
     950function autoriser_adresse_modifier($faire, $type, $id, $qui, $opt) {
     951        return autoriser('infositesmodifier', 'adresse', $id, $qui, $opt);
     952}
     953
     954/**
     955 * Autorisation de supprimer (adresse)
     956 *
     957 * @param  string $faire Action demandée
     958 * @param  string $type  Type d'objet sur lequel appliquer l'action
     959 * @param  int $id       Identifiant de l'objet
     960 * @param  array $qui    Description de l'auteur demandant l'autorisation
     961 * @param  array $opt    Options de cette autorisation
     962 *
     963 * @return bool          true s'il a le droit, false sinon
     964 **/
     965function autoriser_adresse_supprimer($faire, $type, $id, $qui, $opt) {
     966        return autoriser('infositessupprimer', 'adresse', $id, $qui, $opt);
     967}
     968
     969/**
     970 * Autorisation d'associer (adresse)
     971 *
     972 * @param  string $faire Action demandée
     973 * @param  string $type  Type d'objet sur lequel appliquer l'action
     974 * @param  int $id       Identifiant de l'objet
     975 * @param  array $qui    Description de l'auteur demandant l'autorisation
     976 * @param  array $opt    Options de cette autorisation
     977 *
     978 * @return bool          true s'il a le droit, false sinon
     979 **/
     980function autoriser_associeradresses($faire, $type, $id, $qui, $opt) {
     981        return autoriser('infositesassocier', 'adresses', $id, $qui, $opt);
     982}
     983
     984// --------------
     985// Objet numeros
     986
     987/**
     988 * Autorisation de creer (numéro)
     989 *
     990 * @param  string $faire Action demandée
     991 * @param  string $type  Type d'objet sur lequel appliquer l'action
     992 * @param  int $id       Identifiant de l'objet
     993 * @param  array $qui    Description de l'auteur demandant l'autorisation
     994 * @param  array $opt    Options de cette autorisation
     995 *
     996 * @return bool          true s'il a le droit, false sinon
     997 **/
     998function autoriser_numero_creer($faire, $type, $id, $qui, $opt) {
     999        return autoriser('infositescreer', 'numero', $id, $qui, $opt);
     1000}
     1001
     1002/**
     1003 * Autorisation de voir (numéro)
     1004 *
     1005 * @param  string $faire Action demandée
     1006 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1007 * @param  int $id       Identifiant de l'objet
     1008 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1009 * @param  array $opt    Options de cette autorisation
     1010 *
     1011 * @return bool          true s'il a le droit, false sinon
     1012 **/
     1013function autoriser_numero_voir($faire, $type, $id, $qui, $opt) {
     1014        return autoriser('infositesvoir', 'numero', $id, $qui, $opt);
     1015}
     1016
     1017/**
     1018 * Autorisation de modifier (numéro)
     1019 *
     1020 * @param  string $faire Action demandée
     1021 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1022 * @param  int $id       Identifiant de l'objet
     1023 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1024 * @param  array $opt    Options de cette autorisation
     1025 *
     1026 * @return bool          true s'il a le droit, false sinon
     1027 **/
     1028function autoriser_numero_modifier($faire, $type, $id, $qui, $opt) {
     1029        return autoriser('infositesmodifier', 'numero', $id, $qui, $opt);
     1030}
     1031
     1032/**
     1033 * Autorisation de supprimer (numéro)
     1034 *
     1035 * @param  string $faire Action demandée
     1036 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1037 * @param  int $id       Identifiant de l'objet
     1038 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1039 * @param  array $opt    Options de cette autorisation
     1040 *
     1041 * @return bool          true s'il a le droit, false sinon
     1042 **/
     1043function autoriser_numero_supprimer($faire, $type, $id, $qui, $opt) {
     1044        return autoriser('infositessupprimer', 'numero', $id, $qui, $opt);
     1045}
     1046
     1047/**
     1048 * Autorisation d'associer (numéro)
     1049 *
     1050 * @param  string $faire Action demandée
     1051 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1052 * @param  int $id       Identifiant de l'objet
     1053 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1054 * @param  array $opt    Options de cette autorisation
     1055 *
     1056 * @return bool          true s'il a le droit, false sinon
     1057 **/
     1058function autoriser_associernumeros($faire, $type, $id, $qui, $opt) {
     1059        return autoriser('infositesassocier', 'numeros', $id, $qui, $opt);
     1060}
     1061
     1062
     1063// ------------
     1064// Objet emails
     1065
     1066/**
     1067 * Autorisation de creer (email)
     1068 *
     1069 * @param  string $faire Action demandée
     1070 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1071 * @param  int $id       Identifiant de l'objet
     1072 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1073 * @param  array $opt    Options de cette autorisation
     1074 *
     1075 * @return bool          true s'il a le droit, false sinon
     1076 **/
     1077function autoriser_email_creer($faire, $type, $id, $qui, $opt) {
     1078        return autoriser('infositescreer', 'email', $id, $qui, $opt);
     1079}
     1080
     1081/**
     1082 * Autorisation de voir (email)
     1083 *
     1084 * @param  string $faire Action demandée
     1085 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1086 * @param  int $id       Identifiant de l'objet
     1087 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1088 * @param  array $opt    Options de cette autorisation
     1089 *
     1090 * @return bool          true s'il a le droit, false sinon
     1091 **/
     1092function autoriser_email_voir($faire, $type, $id, $qui, $opt) {
     1093        return autoriser('infositesvoir', 'email', $id, $qui, $opt);
     1094}
     1095
     1096/**
     1097 * Autorisation de modifier (email)
     1098 *
     1099 * @param  string $faire Action demandée
     1100 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1101 * @param  int $id       Identifiant de l'objet
     1102 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1103 * @param  array $opt    Options de cette autorisation
     1104 *
     1105 * @return bool          true s'il a le droit, false sinon
     1106 **/
     1107function autoriser_email_modifier($faire, $type, $id, $qui, $opt) {
     1108        return autoriser('infositesmodifier', 'email', $id, $qui, $opt);
     1109}
     1110
     1111/**
     1112 * Autorisation de supprimer (email)
     1113 *
     1114 * @param  string $faire Action demandée
     1115 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1116 * @param  int $id       Identifiant de l'objet
     1117 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1118 * @param  array $opt    Options de cette autorisation
     1119 *
     1120 * @return bool          true s'il a le droit, false sinon
     1121 **/
     1122function autoriser_email_supprimer($faire, $type, $id, $qui, $opt) {
     1123        return autoriser('infositessupprimer', 'email', $id, $qui, $opt);
     1124}
     1125
     1126
     1127/**
     1128 * Autorisation d'associer (email)
     1129 *
     1130 * @param  string $faire Action demandée
     1131 * @param  string $type  Type d'objet sur lequel appliquer l'action
     1132 * @param  int $id       Identifiant de l'objet
     1133 * @param  array $qui    Description de l'auteur demandant l'autorisation
     1134 * @param  array $opt    Options de cette autorisation
     1135 *
     1136 * @return bool          true s'il a le droit, false sinon
     1137 **/
     1138function autoriser_associeremails($faire, $type, $id, $qui, $opt) {
     1139        return autoriser('infositesassocier', 'emails', $id, $qui, $opt);
     1140}
     1141
     1142
     1143/**
     1144 * Récupérer les rôles d'un auteur sur un projet et ainsi s'avoir s'il a droit à certaines actions.
     1145 *
     1146 * @param array $qui
     1147 * @param int $id_projet
     1148 * @param array $role_creation
     1149 *
     1150 * @return bool|array
     1151 */
    8541152function confirmer_roles_auteurs_projets($qui, $id_projet = 0, $role_creation = array()) {
    8551153        include_spip('base/abstract_sql');
    8561154        $roles = array();
    857         $auteur_roles = sql_allfetsel('role', 'spip_auteurs_liens', 'objet=' . sql_quote('projet') . ' AND id_auteur=' . $qui['id_auteur'] . ' AND id_objet=' . $id_projet);
     1155        $auteur_roles = sql_allfetsel('role', 'spip_auteurs_liens',
     1156                'objet=' . sql_quote('projet') . ' AND id_auteur=' . $qui['id_auteur'] . ' AND id_objet=' . $id_projet);
    8581157        if (is_array($auteur_roles) and count($auteur_roles) > 0) {
    8591158                foreach ($auteur_roles as $auteur_role) {
  • _plugins_/info_sites/branches/v1/info_sites_fonctions.php

    r100283 r101505  
    6060                        }
    6161                        natsort($liste_objets);
     62
    6263                        return $liste_objets;
    63         }
     64                }
    6465
    6566                return false;
     
    544545        var_dump($doublons);
    545546}
     547
     548
     549function filtre_compiler_branches_logiciel_dist($logiciel_nom = null) {
     550        include_spip('inc/info_sites_outiller');
     551        $f = compiler_branches_logiciel($logiciel_nom);
     552
     553        return $f;
     554}
  • _plugins_/info_sites/branches/v1/info_sites_pipelines.php

    r98661 r101505  
    6666        return $taches;
    6767}
     68
     69
     70function info_sites_compiler_branches_logiciel($flux) {
     71        if (is_array($flux['data']) and count($flux['data'])) {
     72                if (isset($flux['data']['drupal']) and count($flux['data']['drupal'])) {
     73                        foreach ($flux['data']['drupal'] as $index => $branche) {
     74                                $flux['data']['drupal'][$index] = strval(intval($branche));
     75                        }
     76                        $flux['data']['drupal'] = array_unique($flux['data']['drupal']);
     77                }
     78                if (isset($flux['data']['wordpress']) and count($flux['data']['wordpress'])) {
     79                        foreach ($flux['data']['wordpress'] as $index => $branche) {
     80                                $flux['data']['wordpress'][$index] = strval(intval($branche));
     81                        }
     82                        $flux['data']['wordpress'] = array_unique($flux['data']['wordpress']);
     83                }
     84        }
     85
     86        return $flux;
     87}
  • _plugins_/info_sites/branches/v1/lang/ecrire_fr.php

    r97877 r101505  
    88$GLOBALS[$GLOBALS['idx_lang']] = array(
    99
    10         'item_administrateur_2' => 'Niveau 1',
    11         'intem_redacteur' => 'Niveau 2',
    12         'item_visiteur' => 'Niveau 3',
    13 
    14         'info_auteurs' => 'Les utilisateurs',
    15         'info_modifier_auteur' => 'Modifier l\'utilisateur :',
    16         'entree_nom_site_2' => 'Nom du site de l\'utilisateur',
    17         'entree_infos_perso_2' => 'Qui est cet utilisateur ?',
    18         'info_nb_auteurs' => '@nb@ utilisateurs',
    19         'info_1_auteur' => '1 utilisateur',
    2010        'auteur' => 'Utilisateur :',
    2111        'creer_et_associer_un_auteur' => 'Créer et associer un utilisateur',
     12        'entree_infos_perso_2' => 'Qui est cet utilisateur ?',
     13        'entree_nom_site_2' => 'Nom du site de l\'utilisateur',
    2214        'icone_afficher_auteurs' => 'Afficher les niveaux 0 à 2',
    2315        'icone_afficher_visiteurs' => 'Afficher les niveaux 3',
    2416        'icone_creer_auteur' => 'Créer un nouvel utilisateur et l’associer à cet article',
     17        'info_1_auteur' => '1 utilisateur',
     18        'info_1_visiteur' => '1 utilisateur',
    2519        'info_articles_auteur' => 'Les articles de cet utilisateur',
    2620        'info_aucun_auteur' => 'Aucun utilisateur',
     
    2822        'info_auteur_gere_toutes_rubriques' => 'Cet utilisateur gère <b>toutes les rubriques</b>',
    2923        'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>',
     24        'info_auteurs' => 'Les utilisateurs',
    3025        'info_auteurs_par_tri' => 'Utilisateurs@partri@',
    3126        'info_auteurs_trouves' => 'Utilisateurs trouvés',
    32         'info_gauche_auteurs' => 'Vous trouverez ici tous les utilisateurs du site. Leur statut est indiqué par la couleur de leur icone (niveau 1 = vert ; niveau 2 = jaune).',
    33         'info_gauche_auteurs_exterieurs' => 'Les utilisateurs extérieurs, sans accès au site, sont indiqués par une icone bleue ;
    34                 les utilisateurs effacés par une icone grise.',
     27        'info_gauche_auteurs' => 'Vous trouverez ici tous les utilisateurs du site. Leur statut est indiqué par la couleur de leur icone (niveau 1 = vert ; niveau 2 = bleu).',
     28        'info_gauche_auteurs_exterieurs' => 'Les utilisateurs de niveau 3, sans accès à l\'espace privé du site, sont indiqués par une icone grise et les utilisateurs effacés par une poubelle grise.',
     29        'info_modifier_auteur' => 'Modifier l\'utilisateur :',
     30        'info_nb_auteurs' => '@nb@ utilisateurs',
     31        'info_nb_visiteurs' => '@nb@ utilisateurs',
    3532        'info_preview_texte' => 'Il est possible de prévisualiser les différents éléments éditoriaux du site ayant au moins le statut « proposé », ainsi que les éléments en cours de rédaction dont on est l’auteur. Cette fonctionnalité doit-elle être disponible pour les utilisateurs de niveau 1, de niveau 2, ou personne ?',
    3633        'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes',
     
    4138        'info_statut_auteur_autre' => 'Autre statut :',
    4239        'info_statut_utilisateurs_2' => 'Choisissez le statut qui est attribué aux personnes présentes dans l’annuaire LDAP lorsqu’elles se connectent pour la première fois. Vous pourrez par la suite modifier cette valeur pour chaque utilisateur au cas par cas.',
     40        'info_visiteurs' => 'Utilisateurs de niveau 3',
     41        'intem_redacteur' => 'Niveau 2',
     42        'item_administrateur_2' => 'Niveau 1',
    4343        'item_nouvel_auteur' => 'Nouvel utilisateur',
     44        'item_visiteur' => 'Niveau 3',
    4445        'lien_ajouter_auteur' => 'Ajouter cet utilisateur',
    4546        'lien_retirer_auteur' => 'Retirer l’utilisateur',
     
    5051        'texte_auteur_messagerie' => 'Ce site peut vous indiquer en permanence la liste des utilisateurs connectés, ce qui vous permet d’échanger des messages en direct. Vous pouvez décider de ne pas apparaître dans cette liste (vous êtes « invisible » pour les autres utilisateurs).',
    5152        'texte_auteurs' => 'LES UTILISATEURS',
    52         'texte_fichier_authent' => '<b>SPIP doit-il créer les fichiers spéciaux
    53 <tt>.htpasswd</tt> et <tt>.htpasswd-admin</tt> dans le répertoire @dossier@ ?</b>
    54 <p>Ces fichiers peuvent vous servir à restreindre l’accès aux auteurs et administrateurs en d’autres endroits de votre site (programme externe de statistiques, par exemple).</p>
    55 <p>Si vous n’en avez pas l’utilité, vous pouvez laisser cette option à sa valeur par défaut (pas de création des fichiers).</p>',
     53        'texte_fichier_authent' => '<b>SPIP doit-il créer les fichiers spéciaux <tt>.htpasswd</tt> et <tt>.htpasswd-admin</tt> dans le répertoire @dossier@ ?</b> <p>Ces fichiers peuvent vous servir à restreindre l’accès aux auteurs et administrateurs en d’autres endroits de votre site (programme externe de statistiques, par exemple).</p> <p>Si vous n’en avez pas l’utilité, vous pouvez laisser cette option à sa valeur par défaut (pas de création des fichiers).</p>',
    5654        'texte_plusieurs_articles' => 'Plusieurs utilisateurs trouvés pour "@cherche_auteur@" :',
    5755        'texte_travail_article' => '@nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes',
     
    5957        'titre_cadre_ajouter_auteur' => 'AJOUTER UN UTILISATEUR :',
    6058        'titre_cadre_numero_auteur' => 'UTILISATEUR NUMÉRO',
    61 
    6259);
  • _plugins_/info_sites/branches/v1/lang/info_sites_fr.php

    r100287 r101505  
    5151        'commercial_label' => 'Commercial',
    5252        'confirmer_cloner_projets_site' => 'Êtes-vous sûr de vouloir cloner ce site ?',
     53        'contact_existant' => 'Ce contact existe déjà.',
    5354        'controle_auteurs_menu' => 'Les utilisateurs',
    5455        'controle_auteurs_projets_orphelins' => 'Utilisateurs sans projets',
     
    121122
    122123        // F
     124        'fieldset_legend_adresse' => 'Adresse',
     125        'fieldset_legend_contact' => 'Contact',
     126        'fieldset_legend_email' => 'Courriel',
     127        'fieldset_legend_numero' => 'Numéro de téléphone',
    123128        'filtres_label' => 'Filtres',
    124129
  • _plugins_/info_sites/branches/v1/paquet.xml

    r100287 r101505  
    22        prefix="info_sites"
    33        categorie="outil"
    4         version="1.14.1"
     4        version="1.16.1"
    55        etat="test"
    66        compatibilite="[3.0.8;3.1.*]"
    77        logo="prive/themes/spip/images/info_sites-64.png"
    88        documentation="http://info-sites.readthedocs.io/"
    9         schema="1.1.0"
     9        schema="1.2.0"
    1010>
    1111        <nom>Info Sites</nom>
     
    2323        <necessite nom="medias" compatibilite="[2.7.0;]"/>
    2424
    25         <necessite nom="saisies" compatibilite="[1.24.0;]"/>
     25        <necessite nom="saisies" compatibilite="[2.2.3;]"/>
    2626        <necessite nom="Zcore" compatibilite="[2.4.0;]"/>
    27         <necessite nom="contacts" compatibilite="[2.10.0;]"/>
     27        <necessite nom="contacts" compatibilite="[3.0.0;]"/>
    2828        <necessite nom="coordonnees" compatibilite="[2.2.4;]"/>
    2929        <necessite nom="projets" compatibilite="[1.0.9;]"/>
     
    4444        <lib nom="respond-1.4.2" lien="https://github.com/scottjehl/Respond/archive/1.4.2.zip" />
    4545
     46        <pipeline nom="compiler_branches_logiciel" action=''/>
     47
    4648        <pipeline nom="declarer_tables_objets_sql" inclure="base/info_sites.php" />
    4749        <pipeline nom="declarer_champs_extras" inclure="base/info_sites_extras.php" />
     
    5052        <pipeline nom="header_prive" inclure="info_sites_pipelines.php"/>
    5153        <pipeline nom="taches_generales_cron" inclure="info_sites_pipelines.php" />
     54        <pipeline nom="compiler_branches_logiciel" inclure="info_sites_pipelines.php" />
    5255
    5356        <pipeline nom="autoriser" inclure="info_sites_autorisations.php"/>
  • _plugins_/info_sites/branches/v1/prive/objets/liste/adresses_lies.html

    r97844 r101505  
    55                <table class='spip liste table table-striped table-bordered'>
    66                        <tbody>
    7                         <BOUCLE_liste_adresses(adresses_liens){id_adresse != #GET{id_adresse_exclus}}{objet}{id_objet}{pagination #ENV{nb,10}}>
     7                        <BOUCLE_liste_adresses(adresses_liens){id_adresse != #GET{id_adresse_exclue}}{objet}{id_objet}{pagination #ENV{nb,10}}>
    88                        <tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
    99                                [(#COMPTEUR_BOUCLE|=={1}|oui)<td class='picto' rowspan='#TOTAL_BOUCLE'></td>]
     
    3131                                                [(#CHEMIN_IMAGE{edit-16.png}|balise_img)]
    3232                                        </a>
    33                                         [(#AUTORISER{associeradresse,#ID_ADRESSE}|oui)
     33                                        [(#AUTORISER{associeradresses,#ID_ADRESSE}|oui)
    3434                                        [(#BOUTON_ACTION{
    3535                                        [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img)],
  • _plugins_/info_sites/branches/v1/prive/objets/liste/emails_lies.html

    r97844 r101505  
    2626                                                [(#CHEMIN_IMAGE{edit-16.png}|balise_img)]
    2727                                        </a>
    28                                         [(#AUTORISER{associeremail,#ID_EMAIL}|oui)
     28                                        [(#AUTORISER{associeremails,#ID_EMAIL}|oui)
    2929                                        [(#BOUTON_ACTION{
    3030                                        [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'email:icone_supprimer_email'})],
  • _plugins_/info_sites/branches/v1/prive/objets/liste/numeros_lies.html

    r97844 r101505  
    3030                                                [(#CHEMIN_IMAGE{edit-16.png}|balise_img)]
    3131                                        </a>
    32                                         [(#AUTORISER{associernumero,#ID_NUMERO}|oui)
     32                                        [(#AUTORISER{associernumeros,#ID_NUMERO}|oui)
    3333                                        [(#BOUTON_ACTION{
    3434                                        [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img)],
  • _plugins_/info_sites/branches/v1/squelettes/aside/contact.html

    r97899 r101505  
    33        <div class="list-group menu" role="menu">
    44        [(#AUTORISER{infositesmodifier,contact,#ID_CONTACT}|oui)
    5                 <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{contact_edit,id_contact=#ID_CONTACT}|parametre_url{redirect,#URL_SITE_SPIP/#SELF})]" class="list-group-item bouton modifier" rel="nofollow"><span class="fa-stack text-primary"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-pencil-square-o fa-stack-1x fa-inverse"></i></span> <:info_sites:icone_modifier_contact:></a>][
    6                 (#AUTORISER{infositessupprimer, contact, #ID_CONTACT}|oui)
     5                <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{contact_edit,id_contact=#ID_CONTACT}|parametre_url{redirect,#URL_SITE_SPIP/#SELF})]" class="list-group-item bouton modifier" rel="nofollow"><span class="fa-stack text-primary"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-pencil-square-o fa-stack-1x fa-inverse"></i></span> <:info_sites:icone_modifier_contact:></a>][(#AUTORISER{infositesassocier,organisation}|oui)
     6                <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{editer_liens}|parametre_url{table_source,organisations}|parametre_url{objet,contact}|parametre_url{id_objet,#ID_CONTACT})]" class="list-group-item bouton editer_liens" rel="nofollow"><span class="fa-stack text-muted"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-link fa-stack-1x fa-inverse"></i></span> <:info_sites:editer_liens_organisation:></a>
     7                ][(#AUTORISER{infositessupprimer, contact, #ID_CONTACT}|oui)
    78                <a role="menuitem" tabindex="-1" href="[(#URL_ACTION_AUTEUR{supprimer_contact,contact/#ID_CONTACT,#URL_PAGE{contacts}})]" class="list-group-item bouton website" onclick='return confirm("<:contacts:confirmer_supprimer_contact|texte_script:>\n\n<:contacts:explication_supprimer_contact|texte_script:>")'><span class="fa-stack text-danger"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-trash fa-stack-1x fa-inverse"></i></span>
    89                        <:contacts:supprimer_contact:>
  • _plugins_/info_sites/branches/v1/squelettes/aside/organisation.html

    r98661 r101505  
    55                                <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{organisation_edit,id_organisation=#ID_ORGANISATION}|parametre_url{redirect,#URL_SITE_SPIP/#SELF})]" class="list-group-item bouton modifier" rel="nofollow"><span class="fa-stack text-primary"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-pencil-square-o fa-stack-1x fa-inverse"></i></span>
    66                                        <:info_sites:icone_modifier_organisation:>
    7                                 </a>[
    8                                 (#AUTORISER{infositescreer,contact})
     7                                </a>[(#AUTORISER{infositescreer,contact})
    98                                <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{contact_edit,new=oui}|parametre_url{associer_objet,organisation|#ID_ORGANISATION}|parametre_url{redirect,#URL_SITE_SPIP/#SELF})]" class="list-group-item bouton creer" rel="nofollow"><span class="fa-stack text-success"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-plus-circle fa-stack-1x fa-inverse"></i></span>
    109                                        <:contacts:contact_creer:>
    11                                 </a>]
     10                                </a>][(#AUTORISER{infositesassocier,projet}|oui)
    1211                                <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{editer_liens}|parametre_url{table_source,projets}|parametre_url{objet,organisation}|parametre_url{id_objet,#ID_ORGANISATION}|parametre_url{redirect,#URL_SITE_SPIP/#SELF})]" class="list-group-item bouton editer_liens" rel="nofollow" title="<:info_sites:editer_liens_projet|attribut_html:>"><span class="fa-stack text-muted"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-link fa-stack-1x fa-inverse"></i></span>
    1312                                        <:info_sites:editer_liens_projet:>
    14                                 </a>[
     13                                </a>][
    1514                                (#AUTORISER{infositessupprimer, organisation, #ID_ORGANISATION}|oui)
    1615                                <a role="menuitem" tabindex="-1" href="[(#URL_ACTION_AUTEUR{supprimer_contact,organisation/#ID_ORGANISATION,#URL_PAGE{organisations}})]" class="list-group-item bouton website" onclick='return confirm("<:contacts:confirmer_supprimer_organisation:>\n\n<:contacts:explication_supprimer_organisation:>")'><span class="fa-stack text-danger"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-trash fa-stack-1x fa-inverse"></i></span>
  • _plugins_/info_sites/branches/v1/squelettes/aside/projet.html

    r96690 r101505  
    1010                ][(#AUTORISER{infositesassocier,projetssites,'',[(#SESSION|unserialize)],#ARRAY{projet,#ID_PROJET}}|oui)
    1111                <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{editer_liens}|parametre_url{table_source,projets_sites}|parametre_url{objet,projet}|parametre_url{id_objet,#ID_PROJET})]" class="list-group-item bouton editer_liens" rel="nofollow"><span class="fa-stack text-muted"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-link fa-stack-1x fa-inverse"></i></span> <:info_sites:editer_liens_projets_site:></a>
     12                ][(#AUTORISER{infositesassocier,contacts,'',[(#SESSION|unserialize)],#ARRAY{projet,#ID_PROJET}}|oui)
     13                <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{editer_liens}|parametre_url{table_source,contacts}|parametre_url{objet,projet}|parametre_url{id_objet,#ID_PROJET})]" class="list-group-item bouton editer_liens" rel="nofollow"><span class="fa-stack text-muted"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-link fa-stack-1x fa-inverse"></i></span> <:info_sites:editer_liens_contact:></a>
    1214                ][(#AUTORISER{infositesassocier,auteurs,'',[(#SESSION|unserialize)],#ARRAY{projet,#ID_PROJET}}|oui)
    1315                <a role="menuitem" tabindex="-1" href="[(#URL_PAGE{editer_liens}|parametre_url{table_source,auteurs}|parametre_url{objet,projet}|parametre_url{id_objet,#ID_PROJET})]" class="list-group-item bouton editer_liens" rel="nofollow"><span class="fa-stack text-muted"><i class="fa fa-square fa-stack-2x"></i><i class="fa fa-link fa-stack-1x fa-inverse"></i></span> <:info_sites:editer_liens_auteur:></a>
  • _plugins_/info_sites/branches/v1/squelettes/content/contact_edit.html

    r96584 r101505  
    11[(#AUTORISER{infositesmodifier,contact,#ID_CONTACT}|sinon_interdire_acces{'',401,<:info_sites:zone_restreinte:>})]
    2 [(#INCLURE{fond=prive/squelettes/contenu/#ENV{page},env})]
     2[(#ID_CONTACT|intval|oui)
     3        [(#AUTORISER{modifier,contact,#ID_CONTACT}|sinon_interdire_acces)]
     4][(#ID_CONTACT|intval|non)
     5        [(#AUTORISER{creer,contact}|sinon_interdire_acces)]
     6]
     7#SET{retour,#ENV{redirect}|sinon{#ID_CONTACT|intval|?{#URL_ECRIRE{contact,id_contact=#ID_CONTACT},#URL_ECRIRE{contacts}}}}
     8
     9<div class='cadre-formulaire-editer'>
     10        <div class="entete-formulaire">
     11                [(#ID_CONTACT|oui)
     12                [(#GET{retour}|icone_verticale{<:icone_retour:>,contact,'',left retour[(#ENV{retourajax,''}|oui)ajax preload]})]
     13                ]
     14                [[(#ID_CONTACT|?{<:contacts:contact_editer:>,#ENV{associer_objet}|?{<:contacts:contact_ajouter_associe_a:>,<:contacts:contact_ajouter:>}})]
     15                [(#ENV{associer_objet}|oui) [(#SET{associer_objet,[(#ENV{associer_objet}|explode{"|"})]})]
     16                 <a href="[(#GET{associer_objet/1}|generer_url_entite{#GET{associer_objet/0}})]">[(#INFO_TITRE{#GET{associer_objet/0},#GET{associer_objet/1}})]</a>
     17                ]
     18                <h1>(#ENV{titre,#INFO_PRENOM{contact,#ID_CONTACT}|concat{' ',#INFO_NOM{contact,#ID_CONTACT}}|trim|sinon{<:info_sans_titre:>}})</h1>]
     19        </div>
     20
     21        #SET{redirect,#ENV{redirect,#ID_CONTACT|generer_url_entite{contact}}}
     22        [(#ENV{retourajax,''}|oui)
     23                #SET{redirect,'javascript:if (window.jQuery) jQuery(".entete-formulaire .retour a").followLink();'}
     24                <div class="ajax">
     25        ]
     26                [(#ENV{new}|=={oui}|oui)
     27                        [(#FORMULAIRE_EDITER_CONTACT_RAPIDE{#ENV{id_contact,oui},#ENV{id_organisation},#GET{redirect},#ENV{associer_objet}})]
     28                ][(#ENV{new}|=={oui}|non)
     29                        [(#FORMULAIRE_EDITER_CONTACT{#ENV{id_contact,oui},#ENV{id_organisation},#GET{redirect},#ENV{associer_objet}})]
     30                ]
     31        [(#ENV{retourajax,''}|oui)
     32                </div>
     33                <script type="text/javascript">/*<!\[CDATA\[*/reloadExecPage('#ENV{exec}','#navigation,#extra');/*\]\]>*/</script>
     34        ]
     35
     36</div>
  • _plugins_/info_sites/branches/v1/squelettes/content/editer_liens.html

    r100283 r101505  
     1[(#CACHE{0})]
    12[(#ENV{table_source}|oui|et{[(#ENV{objet}|oui)]}|et{[(#ENV{id_objet}|oui)]}|sinon_interdire_acces{'',401,<:info_sites:zone_restreinte:>})]
    23
  • _plugins_/info_sites/branches/v1/squelettes/content/editer_liens_fonctions.php

    r98661 r101505  
    11<?php
    22include_spip('inc/utils');
    3 charger_fonction('cache_objet', 'inc');
     3$cache_objet = charger_fonction('cache_objet', 'inc');
     4
     5$cache_objet();
  • _plugins_/info_sites/branches/v1/squelettes/content/projets_site.html

    r97844 r101505  
    2525[(#ENV**{type-page}|=={projets_site_edit}|?{#INCLURE{fond=prive/squelettes/contenu/projets_site_edit,redirect='',env,retourajax=oui},#REM|sinon_interdire_acces})]
    2626<//B_projets_site>
     27
  • _plugins_/info_sites/branches/v1/squelettes/extra/contact.html

    r96584 r101505  
    1212                        </div>]
    1313
     14                        [(#AUTORISER{infositesvoir, projets}|oui)
     15                        <div class="block">
     16                                [(#INCLURE{fond=objets/liste/projets, id_contact=#ID_CONTACT, ajax=wysiwyg})]
     17                        </div>]
     18
    1419                </div>
    1520        </BOUCLE_extra>
  • _plugins_/info_sites/branches/v1/squelettes/extra/organisation.html

    r96584 r101505  
    2525
    2626                <B_autresobjets>
    27                                 <BOUCLE_autresobjets (spip_organisations_liens) {id_organisation} {fusion objet}{par objet}>
     27                                <BOUCLE_autresobjets (spip_organisations_liens) {id_organisation} {fusion objet}{par objet} {objet !IN contact,projet}>
    2828                                        [(#AUTORISER{infositesvoir, #OBJET}|oui)
    2929                                        <div class="block">
  • _plugins_/info_sites/branches/v1/squelettes/formulaires/fiche_site.html

    r96690 r101505  
    5454                                <hr/>
    5555                                <fieldset>
    56                                         <ul>
     56                                        <[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
    5757
    5858                                        [(#SAISIE{input, titre, obligatoire=oui,
     
    7070                                                explication=<:projets_site:webservice_explication:>})]
    7171
    72                                         </ul>
     72                                        </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
    7373                                </fieldset>
    7474                                <hr/>
    7575                                <fieldset>
    76                                         <ul>
     76                                        <[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
    7777
    7878                                                [(#SAISIE{input, logiciel_nom,
     
    8888                                                        maxlength=25})]
    8989
    90                                         </ul>
     90                                        </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
    9191                                </fieldset>
    9292                                <hr/>
     
    9595[(#PLUGIN{RSS_COMMITS}|oui)
    9696                                <fieldset>
    97                                         <ul>
     97                                        <[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
    9898
    9999                                                [(#SAISIE{input, versioning_path,
     
    110110                                                        label=<:commit:champ_versioning_rss_label:>})]
    111111
    112                                         </ul>
     112                                        </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
    113113                                </fieldset>
    114114                                <hr/>]
    115115                                <fieldset>
    116                                         <ul>
     116                                        <[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
    117117
    118118                                                [(#SAISIE{input, fo_url,
     
    133133                                                        maxlength=25})]
    134134
    135                                         </ul>
     135                                        </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
    136136                                </fieldset>
    137137                                <hr/>
    138138                                <fieldset>
    139                                         <ul>
     139                                        <[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
    140140
    141141                                                [(#SAISIE{input, bo_url,
     
    156156                                                        maxlength=25})]
    157157
    158                                         </ul>
     158                                        </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
    159159                                </fieldset>
    160160                                <p class="boutons"><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
  • _plugins_/info_sites/branches/v1/squelettes/formulaires/fiche_site.php

    r96690 r101505  
    22
    33if (!defined('_ECRIRE_INC_VERSION')) {
    4     return;
     4        return;
    55}
    66
     
    99include_spip('inc/autoriser');
    1010
    11 function formulaires_fiche_site_charger_dist()
    12 {
    13     // Valeurs du formulaire.
    14     $valeurs = array(
    15         'organisation'     => _request('organisation'),
    16         'projet'           => _request('projet'),
    17         'projet_parent'    => _request('projet_parent'),
    18         'webservice'       => _request('webservice'),
    19         'titre'            => _request('titre'),
    20         'versioning_trac'  => _request('versioning_trac'),
    21         'versioning_type'  => _request('versioning_type'),
    22         'versioning_path'  => _request('versioning_path'),
    23         'versioning_rss'   => _request('versioning_rss'),
    24         'logiciel_nom'     => _request('logiciel_nom'),
    25         'logiciel_version' => _request('logiciel_version'),
    26         'fo_url'           => _request('fo_url'),
    27         'fo_login'         => _request('fo_login'),
    28         'fo_password'      => _request('fo_password'),
    29         'bo_url'           => _request('bo_url'),
    30         'bo_login'         => _request('bo_login'),
    31         'bo_password'      => _request('bo_password'),
    32     );
    33     $valeurs['type_site'] = (_request('type_site')) ? _request('type_site') : 'prod';
    34 
    35     return $valeurs;
     11function formulaires_fiche_site_charger_dist() {
     12        // Valeurs du formulaire.
     13        $valeurs = array(
     14                'organisation' => _request('organisation'),
     15                'projet' => _request('projet'),
     16                'projet_parent' => _request('projet_parent'),
     17                'webservice' => _request('webservice'),
     18                'titre' => _request('titre'),
     19                'versioning_trac' => _request('versioning_trac'),
     20                'versioning_type' => _request('versioning_type'),
     21                'versioning_path' => _request('versioning_path'),
     22                'versioning_rss' => _request('versioning_rss'),
     23                'logiciel_nom' => _request('logiciel_nom'),
     24                'logiciel_version' => _request('logiciel_version'),
     25                'fo_url' => _request('fo_url'),
     26                'fo_login' => _request('fo_login'),
     27                'fo_password' => _request('fo_password'),
     28                'bo_url' => _request('bo_url'),
     29                'bo_login' => _request('bo_login'),
     30                'bo_password' => _request('bo_password'),
     31        );
     32        $valeurs['type_site'] = (_request('type_site')) ? _request('type_site') : 'prod';
     33
     34        return $valeurs;
    3635}
    3736
     
    4544*   Pensez à utiliser _T('info_obligatoire'); pour les éléments obligatoires.
    4645*/
    47 function formulaires_fiche_site_verifier_dist()
    48 {
    49     $erreurs = array();
    50 
    51     // On s'occupe des champs obligatoires
    52     $obligatoires = array('logiciel_nom', 'logiciel_version', 'titre', 'type_site', 'fo_url', 'bo_url');
    53     foreach ($obligatoires as $obligatoire) {
    54         if (!_request($obligatoire)) {
    55             $erreurs[$obligatoire] = _T('info_obligatoire');
    56         }
    57     }
    58 
    59     return $erreurs;
    60 }
    61 
    62 function formulaires_fiche_site_traiter_dist()
    63 {
    64     $res                 = array();
    65 
    66     // On vérifie si l'auteur a le droit de créer des sites de projet
    67     // S'il n'a pas les droits, pas la peine d'aller plus loin
    68     if (!autoriser('creer','projetssite')) {
    69         return $res['message_erreur'] = _T('projets_site:info_creer_projetssite_non_autorise');
    70     }
    71 
    72     $liste_plugins       = isset($GLOBALS['meta']['plugin']) ? array_keys(unserialize($GLOBALS['meta']['plugin'])) : array();
    73     $id_ateur            = session_get('id_auteur');
    74     $rss_commits         = false;
    75 
    76     // --------------------
    77     // On récupère les valeurs transmises par le formulaire
    78     // On enlève sur chaque valeur les espaces inutiles avant et après
    79     // C'est juste pour éviter des erreurs d'étourderies quand on frappe au clavier
    80     $organisation        = trim(_request('organisation'));
    81     $projet              = trim(_request('projet'));
    82     $projet_parent       = trim(_request('projet_parent'));
    83     $webservice          = trim(_request('webservice'));
    84 
    85     // On retrouve la clé (cf. 'uniqid') à partir du webservice
    86     if ($webservice) {
    87         $parse_url       = parse_url($webservice);
    88         parse_str($parse_url['query'], $query);
    89         if (isset($query['cle'])) {
    90             $uniqid      = $query['cle'];
    91         }
    92     }
    93 
    94     $titre               = trim(_request('titre'));
    95     $type_site           = trim(_request('type_site'));
    96     if (in_array('RSS_COMMITS', $liste_plugins)) {
    97         $rss_commits     = true;
    98         $versioning_trac = trim(_request('versioning_trac'));
    99         $versioning_type = trim(_request('versioning_type'));
    100         $versioning_path = trim(_request('versioning_path'));
    101         $versioning_rss  = trim(_request('versioning_rss'));
    102     }
    103     $logiciel_nom        = trim(_request('logiciel_nom'));
    104     $logiciel_version    = trim(_request('logiciel_version'));
    105     $fo_url              = trim(_request('fo_url'));
    106     $fo_login            = trim(_request('fo_login'));
    107     $fo_password         = trim(_request('fo_password'));
    108     $bo_url              = trim(_request('bo_url'));
    109     $bo_login            = trim(_request('bo_login'));
    110     $bo_password         = trim(_request('bo_password')); // Est-ce vraiement utile de faire un trim() sur un password ?
    111     $date                = date_format(date_create(), 'Y-m-d H:i:s');
    112 
    113     // --------------------
    114     // On s'occupe du projet parent
    115     if ($projet_parent) {
    116         $_id_projet_parent = intval($projet_parent);
    117         // ne pas oublier que intval() retournera '0' si on lui passe une chaine.
    118         // Exemple : intval('Tartanpion') == 0
    119         // intval('1Live') == 1
    120         // Pour ce dernier exemple, on met une sécu...
    121         if (strlen($_id_projet_parent) != strlen($projet_parent)) {
    122             $_id_projet_parent = $projet_parent;
    123         }
    124 
    125         if (!is_int($_id_projet_parent) or $_id_projet_parent == 0) {
    126             // On va vérifier que le nom renseigné n'est pas déjà dans la bdd.
    127             // Si oui, on prend son id comme référent
    128             if ($projet_parent_existant = sql_fetsel('id_projet', 'spip_projets', 'nom=' . sql_quote($projet_parent))) {
    129                 $id_projet_parent = $projet_parent_existant['id_projet'];
    130             } else {
    131                 // Pas de projet existant, on l'insère en BDD
    132                 $id_projet_parent = sql_insertq('spip_projets', array('nom' => $projet_parent));
    133                 sql_insertq('spip_auteurs_liens', array('id_auteur' => $id_auteur, 'id_objet' => $id_projet_parent, 'objet' => 'projet'));
    134             }
    135         } elseif (is_int($_id_projet_parent)) {
    136             $id_projet_parent = $_id_projet_parent;
    137         }
    138     }
    139 
    140     // --------------------
    141     // On s'occupe du projet
    142     if ($projet) {
    143         $champs = array();
    144         $_id_projet = intval($projet);
    145 
    146         if (strlen($_id_projet) != strlen($projet)) {
    147             $_id_projet = $projet;
    148         }
    149 
    150         // On n'est pas sur un integer mais un string
    151         if ($projet and (!is_int($_id_projet) or $_id_projet == 0)) {
    152             // On va vérifier que le nom renseigné n'est pas déjà dans la bdd.
    153             // Si oui, on prend son id comme référent
    154             if ($projet_existant = sql_fetsel('id_projet', 'spip_projets', 'nom=' . sql_quote($projet))) {
    155                 $id_projet = $projet_existant['id_projet'];
    156             } else {
    157                 // pas de projet existant, donc on peut l'ajouter en BDD
    158                 $champs['nom']                    = $projet;
    159                 $champs['url_site']               = $fo_url;
    160                 $champs['date_publication']       = $date;
    161                 if ($rss_commits) {
    162                     $champs['versioning_trac']    = $versioning_trac;
    163                     $champs['versioning_type']    = $versioning_type;
    164                     $champs['versioning_path']    = $versioning_path;
    165                     $champs['versioning_rss']     = $versioning_rss;
    166                 }
    167                 if ($id_projet_parent and $id_projet_parent != $projet) {
    168                     $champs['id_projet_parent']   = $id_projet_parent;
    169                 }
    170                 if ($type_site == 'prod') {
    171                     $champs['statut']  = 'production';
    172                 }
    173                 if ($type_site == 'rec') {
    174                     $champs['statut']  = 'test';
    175                 }
    176                 if ($type_site == 'prep') {
    177                     $champs['statut']  = 'recette';
    178                 }
    179                 if ($type_site == 'dev') {
    180                     $champs['statut']  = 'fabrication';
    181                 }
    182                 $id_projet = sql_insertq('spip_projets', $champs);
    183                 if ($id_projet and $id_auteur) {
    184                     // On reprend le comportement du plugin PROJETS quand on crée un nouveau projet,
    185                     // on lie l'auteur au projet qu'il a créé
    186                     sql_insertq('spip_auteurs_liens', array('id_auteur' => $id_auteur, 'id_objet' => $id_projet, 'objet' => 'projet'));
    187                 }
    188             }
    189         } elseif (is_int($_id_projet)) {
    190             $id_projet = $_id_projet;
    191         }
    192     }
    193 
    194     // --------------------
    195     // On s'occupe de l'organisation
    196     if ($organisation) {
    197         $_id_organisation = intval($organisation);
    198 
    199         if (strlen($_id_organisation) != strlen($organisation)) {
    200             $_id_organisation = $organisation;
    201         }
    202 
    203         // on n'est pas sur un integer ou mais un string
    204         if (!is_int($_id_organisation) or $_id_organisation == 0) {
    205             // On vérifie que le nom renseigné n'est pas déjà dans la bdd.
    206             // Si oui, on prend son id comme référent
    207             if ($organisation_existante = sql_fetsel('id_organisation', 'spip_organisations', 'nom=' . sql_quote($organisation))) {
    208                 $id_organisation = $organisation_existante['id_organisation'];
    209                 spip_log('Organisation #' . $id_organisation . ' existante', 'info_sites');
    210             } else {
    211                 // Pas d'organisation existante, on la crée en BDD
    212                 $id_organisation = sql_insertq('spip_organisations', array('nom' => $organisation));
    213                 spip_log('Organisation #' . $id_organisation . ' a été créé', 'info_sites');
    214             }
    215             // Si la liaison entre le projet parent et l'organisation n'existe pas,
    216             // on crée la liaison
    217             if ($id_projet_parent and $id_organisation) {
    218                 sql_insertq('spip_projets_liens', array('id_projet' => $id_projet_parent, 'id_objet' => $id_organisation, 'objet' => 'organisation'));
    219             }
    220             // Si la liaison entre le projet et l'organisation n'existe pas,
    221             // on crée la liaison
    222             if ($id_projet and $id_organisation) {
    223                 sql_insertq('spip_projets_liens', array('id_projet' => $id_projet, 'id_objet' => $id_organisation, 'objet' => 'organisation'));
    224             }
    225         } elseif (is_int($_id_organisation)) {
    226             sql_insertq('spip_projets_liens', array('id_projet' => $id_projet, 'id_objet' => $_id_organisation, 'objet' => 'organisation'));
    227         }
    228     }
    229 
    230     // --------------------
    231     // Et enfin, on traite le site du projet
    232     if ($titre) {
    233         $champs                     = array();
    234         $champs['titre']            = $titre;
    235         $champs['type_site']        = ($type_site) ? $type_site : 'prod';
    236         $champs['webservice']       = $webservice;
    237         $champs['uniqid']           = ($uniqid) ? $uniqid : '';
    238         $champs['logiciel_nom']     = $logiciel_nom;
    239         $champs['logiciel_version'] = $logiciel_version;
    240         $champs['fo_url']           = $fo_url;
    241         $champs['fo_login']         = $fo_login;
    242         $champs['fo_password']      = $fo_password;
    243         $champs['bo_url']           = $bo_url;
    244         $champs['bo_login']         = $bo_login;
    245         $champs['bo_password']      = $bo_password;
    246         $champs['date_creation']    = $date;
    247 
    248         $id_projets_site            = sql_insertq('spip_projets_sites', $champs);
    249         if (is_int($id_projets_site) and is_int($id_projet) and $id_projet != 0) {
    250             sql_insertq('spip_projets_sites_liens', array('id_projets_site' => $id_projets_site, 'id_objet' => $id_projet, 'objet' => 'projet'));
    251         }
    252     }
    253 
    254     // Et hop! On regarde si on n'a pas un id_projet_site
    255     // Dans ce cas, erreur...
    256     if (!$id_projets_site) {
    257         $res['message_erreur']      = _T('enregistrement_ko');
    258     } else {
    259         // Le must est que tout se passe bien :-)
    260         $res['message_ok']          = _T('enregistrement_ok');
    261         $res['redirect']            = generer_url_entite($id_projets_site, 'projets_site');
    262     }
    263 
    264     return $res;
    265 }
     46function formulaires_fiche_site_verifier_dist() {
     47        $erreurs = array();
     48
     49        // On s'occupe des champs obligatoires
     50        $obligatoires = array('logiciel_nom', 'logiciel_version', 'titre', 'type_site', 'fo_url', 'bo_url');
     51        foreach ($obligatoires as $obligatoire) {
     52                if (!_request($obligatoire)) {
     53                        $erreurs[$obligatoire] = _T('info_obligatoire');
     54                }
     55        }
     56
     57        return $erreurs;
     58}
     59
     60function formulaires_fiche_site_traiter_dist() {
     61        $res = array();
     62
     63        // On vérifie si l'auteur a le droit de créer des sites de projet
     64        // S'il n'a pas les droits, pas la peine d'aller plus loin
     65        if (!autoriser('creer', 'projetssite')) {
     66                return $res['message_erreur'] = _T('projets_site:info_creer_projetssite_non_autorise');
     67        }
     68
     69        $liste_plugins = isset($GLOBALS['meta']['plugin']) ? array_keys(unserialize($GLOBALS['meta']['plugin'])) : array();
     70        $id_ateur = session_get('id_auteur');
     71        $rss_commits = false;
     72
     73        // --------------------
     74        // On récupère les valeurs transmises par le formulaire
     75        // On enlève sur chaque valeur les espaces inutiles avant et après
     76        // C'est juste pour éviter des erreurs d'étourderies quand on frappe au clavier
     77        $organisation = trim(_request('organisation'));
     78        $projet = trim(_request('projet'));
     79        $projet_parent = trim(_request('projet_parent'));
     80        $webservice = trim(_request('webservice'));
     81
     82        // On retrouve la clé (cf. 'uniqid') à partir du webservice
     83        if ($webservice) {
     84                $parse_url = parse_url($webservice);
     85                parse_str($parse_url['query'], $query);
     86                if (isset($query['cle'])) {
     87                        $uniqid = $query['cle'];
     88                }
     89        }
     90
     91        $titre = trim(_request('titre'));
     92        $type_site = trim(_request('type_site'));
     93        if (in_array('RSS_COMMITS', $liste_plugins)) {
     94                $rss_commits = true;
     95                $versioning_trac = trim(_request('versioning_trac'));
     96                $versioning_type = trim(_request('versioning_type'));
     97                $versioning_path = trim(_request('versioning_path'));
     98                $versioning_rss = trim(_request('versioning_rss'));
     99        }
     100        $logiciel_nom = trim(_request('logiciel_nom'));
     101        $logiciel_version = trim(_request('logiciel_version'));
     102        $fo_url = trim(_request('fo_url'));
     103        $fo_login = trim(_request('fo_login'));
     104        $fo_password = trim(_request('fo_password'));
     105        $bo_url = trim(_request('bo_url'));
     106        $bo_login = trim(_request('bo_login'));
     107        $bo_password = trim(_request('bo_password')); // Est-ce vraiement utile de faire un trim() sur un password ?
     108        $date = date_format(date_create(), 'Y-m-d H:i:s');
     109
     110        // --------------------
     111        // On s'occupe du projet parent
     112        if ($projet_parent) {
     113                $_id_projet_parent = intval($projet_parent);
     114                // ne pas oublier que intval() retournera '0' si on lui passe une chaine.
     115                // Exemple : intval('Tartanpion') == 0
     116                // intval('1Live') == 1
     117                // Pour ce dernier exemple, on met une sécu...
     118                if (strlen($_id_projet_parent) != strlen($projet_parent)) {
     119                        $_id_projet_parent = $projet_parent;
     120                }
     121
     122                if (!is_int($_id_projet_parent) or $_id_projet_parent == 0) {
     123                        // On va vérifier que le nom renseigné n'est pas déjà dans la bdd.
     124                        // Si oui, on prend son id comme référent
     125                        if ($projet_parent_existant = sql_fetsel('id_projet', 'spip_projets', 'nom=' . sql_quote($projet_parent))) {
     126                                $id_projet_parent = $projet_parent_existant['id_projet'];
     127                        } else {
     128                                // Pas de projet existant, on l'insère en BDD
     129                                $id_projet_parent = sql_insertq('spip_projets', array('nom' => $projet_parent));
     130                                sql_insertq('spip_auteurs_liens',
     131                                        array('id_auteur' => $id_auteur, 'id_objet' => $id_projet_parent, 'objet' => 'projet'));
     132                        }
     133                } elseif (is_int($_id_projet_parent)) {
     134                        $id_projet_parent = $_id_projet_parent;
     135                }
     136        }
     137
     138        // --------------------
     139        // On s'occupe du projet
     140        if ($projet) {
     141                $champs = array();
     142                $_id_projet = intval($projet);
     143
     144                if (strlen($_id_projet) != strlen($projet)) {
     145                        $_id_projet = $projet;
     146                }
     147
     148                // On n'est pas sur un integer mais un string
     149                if ($projet and (!is_int($_id_projet) or $_id_projet == 0)) {
     150                        // On va vérifier que le nom renseigné n'est pas déjà dans la bdd.
     151                        // Si oui, on prend son id comme référent
     152                        if ($projet_existant = sql_fetsel('id_projet', 'spip_projets', 'nom=' . sql_quote($projet))) {
     153                                $id_projet = $projet_existant['id_projet'];
     154                        } else {
     155                                // pas de projet existant, donc on peut l'ajouter en BDD
     156                                $champs['nom'] = $projet;
     157                                $champs['url_site'] = $fo_url;
     158                                $champs['date_publication'] = $date;
     159                                if ($rss_commits) {
     160                                        $champs['versioning_trac'] = $versioning_trac;
     161                                        $champs['versioning_type'] = $versioning_type;
     162                                        $champs['versioning_path'] = $versioning_path;
     163                                        $champs['versioning_rss'] = $versioning_rss;
     164                                }
     165                                if ($id_projet_parent and $id_projet_parent != $projet) {
     166                                        $champs['id_projet_parent'] = $id_projet_parent;
     167                                }
     168                                if ($type_site == 'prod') {
     169                                        $champs['statut'] = 'production';
     170                                }
     171                                if ($type_site == 'rec') {
     172                                        $champs['statut'] = 'test';
     173                                }
     174                                if ($type_site == 'prep') {
     175                                        $champs['statut'] = 'recette';
     176                                }
     177                                if ($type_site == 'dev') {
     178                                        $champs['statut'] = 'fabrication';
     179                                }
     180                                $id_projet = sql_insertq('spip_projets', $champs);
     181                                if ($id_projet and $id_auteur) {
     182                                        // On reprend le comportement du plugin PROJETS quand on crée un nouveau projet,
     183                                        // on lie l'auteur au projet qu'il a créé
     184                                        sql_insertq('spip_auteurs_liens',
     185                                                array('id_auteur' => $id_auteur, 'id_objet' => $id_projet, 'objet' => 'projet'));
     186                                }
     187                        }
     188                } elseif (is_int($_id_projet)) {
     189                        $id_projet = $_id_projet;
     190                }
     191        }
     192
     193        // --------------------
     194        // On s'occupe de l'organisation
     195        if ($organisation) {
     196                $_id_organisation = intval($organisation);
     197
     198                if (strlen($_id_organisation) != strlen($organisation)) {
     199                        $_id_organisation = $organisation;
     200                }
     201
     202                // on n'est pas sur un integer ou mais un string
     203                if (!is_int($_id_organisation) or $_id_organisation == 0) {
     204                        // On vérifie que le nom renseigné n'est pas déjà dans la bdd.
     205                        // Si oui, on prend son id comme référent
     206                        if ($organisation_existante = sql_fetsel('id_organisation', 'spip_organisations',
     207                                'nom=' . sql_quote($organisation))
     208                        ) {
     209                                $id_organisation = $organisation_existante['id_organisation'];
     210                                spip_log('Organisation #' . $id_organisation . ' existante', 'info_sites');
     211                        } else {
     212                                // Pas d'organisation existante, on la crée en BDD
     213                                $id_organisation = sql_insertq('spip_organisations', array('nom' => $organisation));
     214                                spip_log('Organisation #' . $id_organisation . ' a été créé', 'info_sites');
     215                        }
     216                        // Si la liaison entre le projet parent et l'organisation n'existe pas,
     217                        // on crée la liaison
     218                        if ($id_projet_parent and $id_organisation) {
     219                                sql_insertq('spip_projets_liens',
     220                                        array('id_projet' => $id_projet_parent, 'id_objet' => $id_organisation, 'objet' => 'organisation'));
     221                        }
     222                        // Si la liaison entre le projet et l'organisation n'existe pas,
     223                        // on crée la liaison
     224                        if ($id_projet and $id_organisation) {
     225                                sql_insertq('spip_projets_liens',
     226                                        array('id_projet' => $id_projet, 'id_objet' => $id_organisation, 'objet' => 'organisation'));
     227                        }
     228                } elseif (is_int($_id_organisation)) {
     229                        sql_insertq('spip_projets_liens',
     230                                array('id_projet' => $id_projet, 'id_objet' => $_id_organisation, 'objet' => 'organisation'));
     231                }
     232        }
     233
     234        // --------------------
     235        // Et enfin, on traite le site du projet
     236        if ($titre) {
     237                $champs = array();
     238                $champs['titre'] = $titre;
     239                $champs['type_site'] = ($type_site) ? $type_site : 'prod';
     240                $champs['webservice'] = $webservice;
     241                $champs['uniqid'] = ($uniqid) ? $uniqid : '';
     242                $champs['logiciel_nom'] = $logiciel_nom;
     243                $champs['logiciel_version'] = $logiciel_version;
     244                $champs['fo_url'] = $fo_url;
     245                $champs['fo_login'] = $fo_login;
     246                $champs['fo_password'] = $fo_password;
     247                $champs['bo_url'] = $bo_url;
     248                $champs['bo_login'] = $bo_login;
     249                $champs['bo_password'] = $bo_password;
     250                $champs['date_creation'] = $date;
     251
     252                $id_projets_site = sql_insertq('spip_projets_sites', $champs);
     253                if (is_int($id_projets_site) and is_int($id_projet) and $id_projet != 0) {
     254                        sql_insertq('spip_projets_sites_liens',
     255                                array('id_projets_site' => $id_projets_site, 'id_objet' => $id_projet, 'objet' => 'projet'));
     256                }
     257        }
     258
     259        // Et hop! On regarde si on n'a pas un id_projet_site
     260        // Dans ce cas, erreur...
     261        if (!$id_projets_site) {
     262                $res['message_erreur'] = _T('enregistrement_ko');
     263        } else {
     264                // Le must est que tout se passe bien :-)
     265                $res['message_ok'] = _T('enregistrement_ok');
     266                $res['redirect'] = generer_url_entite($id_projets_site, 'projets_site');
     267        }
     268
     269        return $res;
     270}
  • _plugins_/info_sites/branches/v1/squelettes/formulaires/projets_rapide.html

    r96690 r101505  
    1414                #ACTION_FORMULAIRE{#ENV{action}}
    1515                <fieldset>
    16                         <ul>
     16                        <[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
    1717
    1818                        [(#SAISIE{textarea, projets, obligatoire=oui,
     
    2121                                rows=10})]
    2222
    23                         </ul>
     23                        </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
    2424                </fieldset>
    2525                <p class="boutons"><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
  • _plugins_/info_sites/branches/v1/squelettes/javascript/infosites.js

    r97844 r101505  
    11// on ajoute les titres de section au sommaire du aside pour faire des liens vers les sections
    22
    3 $(document).ready(function () {
    4         function infosites_sommaire(target) {
    5                 if ($('#aside').length > 0 && $('#aside .block.sommaire').length == 0) {
     3$(document).ready(function (){
     4        infosites_formatage();
     5        function infosites_sommaire(target){
     6                if ($('#aside').length>0 && $('#aside .block.sommaire').length==0){
    67                        $('#aside').append('<div class="block sommaire hidden-sm hidden-xs"><div class="list-group"></div></div>');
    78                }
    8                 if (target.length > 0) {
    9                         target.each(function () {
    10                                 if ($("#aside .sommaire div.list-group a[href='#" + $(this).attr('id') + "']").length == 0) {
     9                if (target.length>0){
     10                        target.each(function (){
     11                                if ($("#aside .sommaire div.list-group a[href='#"+$(this).attr('id')+"']").length==0){
    1112                                        $('#aside .sommaire div.list-group').append(
    1213                                                '<a class="list-group-item" href="#'
    13                                                 + $(this).attr('id') + '">'
    14                                                 + $(this).text()
    15                                                 + '</a>');
     14                                                +$(this).attr('id')+'">'
     15                                                +$(this).text()
     16                                                +'</a>');
    1617                                }
    1718                        });
     
    1920                }
    2021        }
     22         function infosites_formatage(){
     23                 // On active les tooltips pour la sidebar.
     24                 $('#aside a').tooltip({
     25                         placement: 'top',
     26                         trigger: 'hover'
     27                 });
    2128
    22         $(document).ajaxComplete(function () {
     29                 $('[type=submit]').each(function (event){
     30                         if (!$(this).hasClass('btn')){
     31                                 $(this).addClass('btn btn-default');
     32                         }
     33                 });
     34
     35                 $('.actions .editbox').each(function (event){
     36                         if (!$(this).hasClass('btn')){
     37                                 $(this).addClass('btn btn-default');
     38                         }
     39                 });
     40
     41                 $('#content .icone.s24 a').each(function (event){
     42                         $(this).addClass('btn btn-default');
     43                 });
     44
     45                 $('.liste-objets.coordonnees .action a').each(function (event){
     46                         if (!$(this).hasClass('btn')){
     47                                 $(this).addClass('btn btn-default');
     48                         }
     49                 });
     50
     51                 $('table.spip.liste').each(function (event){
     52                         $(this).addClass('table table-striped table-bordered');
     53                 });
     54
     55                 var rows = $(".page_diagnostic_iso #content table tr.data");
     56                 rows.each(function (){
     57                         var cells = $(this).find('td');
     58
     59                         for (var i = 1; i<cells.length; i++){
     60                                 if (cells.eq(1).html()!=cells.eq(i).html()){
     61                                         cells.eq(1).addClass('bg-warning');
     62                                         cells.eq(i).addClass('bg-warning');
     63                                 }
     64                         }
     65                         $(this).find("table tr td").each(function (){
     66                                 $(this).removeClass('bg-warning');
     67                         });
     68                 });
     69
     70                 $('.liste-objets.commits .commit span.titre').click(function (event){
     71                         event.preventDefault();
     72                         var target = $(this);
     73                         var fiche = target.closest('tr').next('.fiche_commit');
     74                         if (fiche.hasClass('hidden')){
     75                                 fiche.addClass('visible').removeClass('hidden');
     76                                 target.addClass('ouvert').removeClass('ferme');
     77                                 target.find('i').addClass('fa-angle-double-down').removeClass('fa-angle-double-right');
     78                         } else if (fiche.hasClass('visible')){
     79                                 fiche.addClass('hidden').removeClass('visible');
     80                                 target.addClass('ferme').removeClass('ouvert');
     81                                 target.find('i').addClass('fa-angle-double-right').removeClass('fa-angle-double-down');
     82                         }
     83                 });
     84         }
     85
     86        $(document).ajaxComplete(function (){
    2387                infosites_sommaire($('.contenu .legend'));
    2488                infosites_sommaire($('#extra .legend'));
    25                 // On active les tooltips pour la sidebar.
    26                 $('#aside a').tooltip({
    27                         placement: 'top',
    28                         trigger: 'hover'
    29                 });
    30 
    31                 $('[type=submit]').each(function (event) {
    32                         if (!$(this).hasClass('btn')) {
    33                                 $(this).addClass('btn btn-default');
    34                         }
    35                 });
    36 
    37                 $('.actions .editbox').each(function (event) {
    38                         if (!$(this).hasClass('btn')) {
    39                                 $(this).addClass('btn btn-default');
    40                         }
    41                 });
    42 
    43                 $('#content .icone.s24 a').each(function (event) {
    44                         $(this).addClass('btn btn-default');
    45                 });
    46 
    47                 $('.liste-objets.coordonnees .action a').each(function (event) {
    48                         if (!$(this).hasClass('btn')) {
    49                                 $(this).addClass('btn btn-default');
    50                         }
    51                 });
    52 
    53                 $('table.spip.liste').each(function (event) {
    54                         $(this).addClass('table table-striped table-bordered');
    55                 });
    56 
    57                 var rows = $(".page_diagnostic_iso #content table tr.data");
    58                 rows.each(function () {
    59                         var cells = $(this).find('td');
    60 
    61                         for (var i = 1; i < cells.length; i++) {
    62                                 if (cells.eq(1).html() != cells.eq(i).html()) {
    63                                         cells.eq(1).addClass('bg-warning');
    64                                         cells.eq(i).addClass('bg-warning');
    65                                 }
    66                         }
    67                         $(this).find("table tr td").each(function () {
    68                                 $(this).removeClass('bg-warning');
    69                         });
    70                 });
    71 
    72                 $('.liste-objets.commits .commit span.titre').click(function (event) {
    73                         event.preventDefault();
    74                         var target = $(this);
    75                         var fiche = target.closest('tr').next('.fiche_commit');
    76                         if (fiche.hasClass('hidden')) {
    77                                 fiche.addClass('visible').removeClass('hidden');
    78                                 target.addClass('ouvert').removeClass('ferme');
    79                                 target.find('i').addClass('fa-angle-double-down').removeClass('fa-angle-double-right');
    80                         } else if (fiche.hasClass('visible')) {
    81                                 fiche.addClass('hidden').removeClass('visible');
    82                                 target.addClass('ferme').removeClass('ouvert');
    83                                 target.find('i').addClass('fa-angle-double-right').removeClass('fa-angle-double-down');
    84                         }
    85                 });
    86 
     89                infosites_formatage();
    8790        });
    8891});
  • _plugins_/info_sites/branches/v1/squelettes/objets/infos/projet.html

    r100283 r101505  
    1010                                </BOUCLE_autresobjets>
    1111                        </B_autresobjets>
     12                        <B_contacts>
     13                                <div class="list-group-item">
     14                                        <div class="list-group-item-heading"><strong>[(#VAL{contact}|objet_info{texte_objet}|_T)]</strong></div>
     15                                        <div class="list-group-item-text" dir="#LANG_DIR"><BOUCLE_contacts (CONTACTS) {id_projet} {par nom} {', '}><a href="[(#URL_CONTACT)]">[(#NOM)][, (#PRENOM)]</a></BOUCLE_contacts></div>
     16                                </div>
     17                        </B_contacts>
    1218                        [(#ENV{titre_projet,non}|=={oui}|oui)
    1319                        <div class="list-group-item">
  • _plugins_/info_sites/branches/v1/squelettes/objets/liste/contacts.html

    r100283 r101505  
    1717                <BOUCLE_filtre_annuaires (ANNUAIRES){par titre}>
    1818                <li>
    19                         <BOUCLE_comptage_contacts_annuaire(CONTACTS){id_annuaire}/>#SET{nb_contacts,#TOTAL_BOUCLE}<//B_comptage_contacts_annuaire>
     19                        <BOUCLE_comptage_contacts_annuaire (CONTACTS) {id_annuaire}/>#SET{nb_contacts,#TOTAL_BOUCLE}<//B_comptage_contacts_annuaire>
    2020                        [(#ENV{id_annuaire}|=={#ID_ANNUAIRE}|?{<strong>, <a class="ajax" href="[(#SELF|parametre_url{id_annuaire,#ID_ANNUAIRE})]">})]
    2121                        #TITRE (#GET{nb_contacts})
     
    2424                </BOUCLE_filtre_annuaires>
    2525                <li>
    26                         <BOUCLE_comptage_contacts_aucun (ORGANISATIONS){id_annuaire=0}/> #SET{nb_contacts,#TOTAL_BOUCLE}<//B_comptage_contacts_aucun>
     26                        <BOUCLE_comptage_contacts_aucun (ORGANISATIONS) {id_annuaire=0}/> #SET{nb_contacts,#TOTAL_BOUCLE}<//B_comptage_contacts_aucun>
    2727                        [(#ENV{id_annuaire}|=={0}|?{<strong>, <a class="ajax" href="[(#SELF|parametre_url{id_annuaire,0})]">})]
    2828                        <:contacts:annuaire_aucun:> (#GET{nb_contacts})
  • _plugins_/info_sites/branches/v1/squelettes/objets/liste/projets_cadres.html

    r98661 r101505  
    1515        </thead>
    1616        <tbody>
    17         <BOUCLE_liste_projets_cadres (PROJETS_CADRES) {id_mot?}{id_auteur?} {where?} {recherche?} {tri #ENV{par,num titre},#GET{defaut_tri}} {pagination #ENV{nb,10} #ENV{pagination_id,'_liste_projets_cadres'}}>
     17        <BOUCLE_liste_projets_cadres (PROJETS_CADRES) {id_mot?} {id_auteur?} {where?} {recherche?} {tri #ENV{par,num titre},#GET{defaut_tri}} {pagination #ENV{nb,10} #ENV{pagination_id,'_liste_projets_cadres'}}>
    1818                <tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
    1919                        <td class='titre principale'>[(#LOGO_PROJETS_CADRE|image_reduire{20,26})]<a href="[(#ID_PROJETS_CADRE|generer_url_entite{projets_cadre})]" title="<:info_numero_abbreviation|attribut_html:> #ID_PROJETS_CADRE">[(#RANG). ]#TITRE</a></td>
  • _plugins_/info_sites/branches/v1/squelettes/objets/liste/projets_sites.html

    r98661 r101505  
    2323        </thead>
    2424        <tbody>
    25         <BOUCLE_liste_projets_sites(PROJETS_SITES) {id_projets_site?} {id_projet?} {type_site ?} {logiciel_nom ?} {logiciel_version ?} {fo_url ?} {id_mot?} {where?} {statut?} {recherche?} {tri #ENV{par,titre},#GET{defaut_tri}} {pagination #ENV{nb,10} #ENV{pagination_id,'_liste_projets_sites'}}>
     25        <BOUCLE_liste_projets_sites(PROJETS_SITES) {id_projet?} {type_site ?} {logiciel_nom ?} {logiciel_version ?} {fo_url ?} {id_mot?} {where?} {statut?} {recherche?} {tri #ENV{par,titre},#GET{defaut_tri}} {pagination #ENV{nb,10} #ENV{pagination_id,'_liste_projets_sites'}}>
    2626                <tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
    2727                        <td class='titre principale'><a href="[(#ID_PROJETS_SITE|generer_url_entite{projets_site})]" title="<:info_numero_abbreviation|attribut_html:> #ID_PROJETS_SITE">[(#RANG). ]#TITRE</a></td>
Note: See TracChangeset for help on using the changeset viewer.