Changeset 97916 in spip-zone for _plugins_/compositions


Ignore:
Timestamp:
May 20, 2016, 2:31:19 PM (3 years ago)
Author:
bystrano@…
Message:

Revert "PSR SPIP"

This reverts commit 9143a323a2c85ce1bfec783f4a85fc911a29008d.

Ce commit provoque des erreurs dans l'espace privé, sur les pages de
rubrique, pour les rubriques de la racine.
J'ai cherché une solution pendant un bon moment sans trouver d'autre
solution que de revert.

PS: C'est bien joli les règles de codage, mais commit sur un plugin
aussi utilisé que « Compositions » sans tester au moins les pages de
l'espace privé qui sont modifiées par le plugin, c'est un peu cavalier,
non ?

Location:
_plugins_/compositions/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/compositions/trunk/compositions_administrations.php

    r97850 r97916  
    77 */
    88
    9 if (!defined('_ECRIRE_INC_VERSION')) {
    10         return;
    11 }
     9if (!defined("_ECRIRE_INC_VERSION")) return;
    1210
    1311
    1412/**
    1513 * Upgrade des tables
    16  *
     14 * 
    1715 * @param string $nom_meta_base_version
    1816 * @param string $version_cible
    1917 */
    20 function compositions_upgrade($nom_meta_base_version, $version_cible) {
     18function compositions_upgrade($nom_meta_base_version,$version_cible){
    2119        include_spip('base/objets');
    2220        $tables_objets = array_keys(lister_tables_objets_sql());
    2321        $maj = array();
    2422        $maj['create'] = array();
    25         foreach ($tables_objets as $table) {
    26                 $maj['create'][] = array('sql_alter', "TABLE $table ADD composition varchar(255) DEFAULT '' NOT NULL");
    27                 $maj['create'][] = array('sql_alter', "TABLE $table ADD composition_lock tinyint(1) DEFAULT 0 NOT NULL");
     23        foreach($tables_objets as $table){
     24                $maj['create'][] = array('sql_alter',"TABLE $table ADD composition varchar(255) DEFAULT '' NOT NULL");
     25                $maj['create'][] = array('sql_alter',"TABLE $table ADD composition_lock tinyint(1) DEFAULT 0 NOT NULL");
    2826        }
    29         $maj['create'][] = array('sql_alter', 'TABLE spip_rubriques ADD composition_branche_lock tinyint(1) DEFAULT 0 NOT NULL');
     27        $maj['create'][] = array('sql_alter',"TABLE spip_rubriques ADD composition_branche_lock tinyint(1) DEFAULT 0 NOT NULL");
    3028
    3129        $maj['0.5.0'] = array();
    32         foreach ($tables_objets as $table) {
    33                 $maj['0.5.0'][] = array('sql_alter', "TABLE $table ADD composition varchar(255) DEFAULT '' NOT NULL");
    34                 $maj['0.5.0'][] = array('sql_alter', "TABLE $table ADD composition_lock tinyint(1) DEFAULT 0 NOT NULL");
     30        foreach($tables_objets as $table){
     31                $maj['0.5.0'][] = array('sql_alter',"TABLE $table ADD composition varchar(255) DEFAULT '' NOT NULL");
     32                $maj['0.5.0'][] = array('sql_alter',"TABLE $table ADD composition_lock tinyint(1) DEFAULT 0 NOT NULL");
    3533        }
    36         $maj['0.5.0'][] = array('sql_alter', 'TABLE spip_rubriques ADD composition_branche_lock tinyint(1) DEFAULT 0 NOT NULL');
     34        $maj['0.5.0'][] = array('sql_alter',"TABLE spip_rubriques ADD composition_branche_lock tinyint(1) DEFAULT 0 NOT NULL");
    3735
    3836        include_spip('base/upgrade');
     
    4442 * appelee lors de la configuration
    4543 * (cas d'un nouvel objet ajoute apres l'install du plugin)
    46  *
     44 * 
    4745 * @return void
    4846 */
    49 function compositions_check_upgrade() {
     47function compositions_check_upgrade(){
    5048        include_spip('base/objets');
    5149        $tables_objets = array_keys(lister_tables_objets_sql());
    52         $trouver_table = charger_fonction('trouver_table', 'base');
    53         foreach ($tables_objets as $table) {
     50        $trouver_table = charger_fonction('trouver_table','base');
     51        foreach($tables_objets as $table){
    5452                $desc = $trouver_table($table);
    55                 if (!isset($desc['field']['composition'])) {
     53                if (!isset($desc['field']['composition']))
    5654                        sql_alter("TABLE $table ADD composition varchar(255) DEFAULT '' NOT NULL");
    57                 }
    58                 if (!isset($desc['field']['composition_lock'])) {
     55                if (!isset($desc['field']['composition_lock']))
    5956                        sql_alter("TABLE $table ADD composition_lock tinyint(1) DEFAULT 0 NOT NULL");
    60                 }
    6157        }
    6258}
     
    7369        include_spip('base/objets');
    7470        $tables_objets = array_keys(lister_tables_objets_sql());
    75         foreach ($tables_objets as $table) {
     71        foreach($tables_objets as $table){
    7672                sql_alter("TABLE $table DROP composition");
    7773                sql_alter("TABLE $table DROP composition_lock");
    7874        }
    79         sql_alter('TABLE spip_rubriques DROP composition_branche_lock');
     75        sql_alter("TABLE spip_rubriques DROP composition_branche_lock");
    8076
    8177        effacer_meta('compositions');
    8278        effacer_meta($nom_meta_base_version);
    8379}
     80?>
  • _plugins_/compositions/trunk/compositions_fonctions.php

    r97850 r97916  
    88 */
    99
    10 if (!defined('_ECRIRE_INC_VERSION')) {
    11         return;
    12 }
    13 
    14 define('_COMPOSITIONS_MATCH', '-([^0-9][^.]*)');
     10if (!defined("_ECRIRE_INC_VERSION")) return;
     11
     12define('_COMPOSITIONS_MATCH','-([^0-9][^.]*)');
    1513
    1614/**
     
    1917 * @return array
    2018 */
    21 function compositions_objets_actives() {
     19function compositions_objets_actives(){
    2220        static $config=null;
    23         if (is_null($config)) {
     21        if (is_null($config)){
    2422                // lister les objets dont on a active la composition dans la configuration
    2523                $config = isset($GLOBALS['meta']['compositions']) ? unserialize($GLOBALS['meta']['compositions']) : array();
    2624                $config = (isset($config['objets'])?$config['objets']:array('spip_articles','spip_rubriques'));
    27                 $config = array_map('objet_type', $config);
     25                $config = array_map('objet_type',$config);
    2826        }
    2927        return $config;
     
    3634 * @return string
    3735 */
    38 function compositions_chemin() {
     36function compositions_chemin(){
    3937        $config_chemin = 'compositions/';
    40         if (defined('_DIR_PLUGIN_Z') or defined('_DIR_PLUGIN_ZCORE')) {
     38        if (defined('_DIR_PLUGIN_Z') OR defined('_DIR_PLUGIN_ZCORE'))
    4139                $config_chemin = (isset($GLOBALS['z_blocs'])?reset($GLOBALS['z_blocs']):'contenu').'/';
    42         } elseif (isset($GLOBALS['meta']['compositions'])) {
     40
     41        elseif (isset($GLOBALS['meta']['compositions'])){
    4342                $config = unserialize($GLOBALS['meta']['compositions']);
    44                 if (isset($config['chemin_compositions'])) {
    45                         $config_chemin = rtrim($config['chemin_compositions'], '/').'/';
     43                if (isset ($config['chemin_compositions'])){
     44                        $config_chemin = rtrim($config['chemin_compositions'],'/').'/';
    4645                }
    4746        }
     
    5453 * @return string
    5554 */
    56 function compositions_styliser_auto() {
     55function compositions_styliser_auto(){
    5756        $config_styliser = true;
    58         if (defined('_DIR_PLUGIN_Z') or defined('_DIR_PLUGIN_ZCORE')) {
     57        if (defined('_DIR_PLUGIN_Z') OR defined('_DIR_PLUGIN_ZCORE')){
    5958                $config_styliser = false; // Z s'occupe de styliser les compositions
    60         } elseif (isset($GLOBALS['meta']['compositions'])) {
     59        }
     60        elseif (isset($GLOBALS['meta']['compositions'])){
    6161                $config = unserialize($GLOBALS['meta']['compositions']);
    62                 $config_styliser = (!isset($config['styliser_auto']) or ($config['styliser_auto'] != 'non'));
     62                $config_styliser = (!isset($config['styliser_auto']) OR ($config['styliser_auto'] != 'non'));
    6363        }
    6464        return $config_styliser?' ':'';
     
    7373 * @return array
    7474 */
    75 function compositions_lister_disponibles($type, $informer = true) {
     75function compositions_lister_disponibles($type, $informer=true){
    7676        include_spip('inc/compositions');
    77         $type_match = '';
    78         if (strlen($type)) {
     77        $type_match = "";
     78        if (strlen($type)){
    7979                $type = objet_type($type); // securite
    8080                $type_match = $type;
    81         } else {
     81        }
     82        else {
    8283                // _ pour le cas des groupe_mots
    83                 $type_match = '[a-z0-9_]+';
     84                $type_match = "[a-z0-9_]+";
    8485        }
    8586
    8687        // rechercher les skel du type article-truc.html
    8788        // truc ne doit pas commencer par un chiffre pour eviter de confondre avec article-12.html
    88         $match = "($type_match)("._COMPOSITIONS_MATCH.')?[.]html$';
     89        $match = "($type_match)("._COMPOSITIONS_MATCH.")?[.]html$";
    8990
    9091        // lister les compositions disponibles
    91         $liste = find_all_in_path(compositions_chemin(), $match);
     92        $liste = find_all_in_path(compositions_chemin(),$match);
    9293        $res = array();
    93         if (count($liste)) {
    94                 foreach ($liste as $s) {
    95                         $base = preg_replace(',[.]html$,i', '', $s);
    96                         if (preg_match(",$match,ims", basename($s), $regs)
    97                                 and ($composition = !$informer
    98                                         or $composition = compositions_charger_infos($base))) {
     94        if (count($liste)){
     95                foreach($liste as $s) {
     96                        $base = preg_replace(',[.]html$,i','',$s);
     97                        if (preg_match(",$match,ims",basename($s),$regs)
     98                                AND ($composition = !$informer
     99                                        OR $composition = compositions_charger_infos($base)))
     100                        {
    99101                                $regs = array_pad($regs, 4, null);
    100102                                $res[$regs[1]][$regs[3]] = $composition;
     
    104106        }
    105107        // Pipeline compositions_lister_disponibles
    106         $res = pipeline('compositions_lister_disponibles', array(
     108        $res = pipeline('compositions_lister_disponibles',array(
    107109                'args'=>array('type' => $type,'informer' => $informer),
    108110                'data'=> $res
    109                 ));
     111                )
     112        );
    110113        return $res;
    111114}
     
    118121 * @return array
    119122 */
    120 function compositions_lister_utilisations($type, $composition) {
     123function compositions_lister_utilisations($type,$composition){
    121124        $table_sql = table_objet_sql($type);
    122125        if (!in_array($table_sql, sql_alltable())) {
     
    127130        $_id_table_objet = id_table_objet($type);
    128131        $titre = isset($desc['titre']) ? $desc['titre'] : "'' AS titre";
    129         return sql_allfetsel("$_id_table_objet as id, $titre", $table_sql, 'composition='.sql_quote($composition));
     132        return sql_allfetsel("$_id_table_objet as id, $titre", $table_sql, "composition=".sql_quote($composition));
    130133}
    131134
     
    143146 * @return string
    144147 */
    145 function compositions_selectionner($composition, $type, $defaut = '', $ext = 'html', $fullpath = false, $vide = 'composition-vide') {
    146         if ($type=='syndic') {
    147                 $type='site'; //grml
    148         }
     148function compositions_selectionner($composition,$type,$defaut="",$ext="html",$fullpath = false, $vide="composition-vide"){
     149        if ($type=='syndic') $type='site'; //grml
    149150        $fond = compositions_chemin() . $type;
    150151
    151152        // regarder si compositions/article-xxx est disponible
    152153        if (strlen($composition)
    153                 and $f = find_in_path("$fond-$composition.$ext")) {
     154                AND $f = find_in_path("$fond-$composition.$ext"))
    154155                return $fullpath ? $f : $fond . "-$composition";
    155         } elseif (strlen($defaut)
    156                 and $f = find_in_path("$fond-$defaut.$ext")) {
     156        else
    157157                // sinon regarder si compositions/article-defaut est disponible
    158                 return $fullpath ? $f : $fond . "-$defaut";
    159         }
     158                if (strlen($defaut)
     159                        AND $f = find_in_path("$fond-$defaut.$ext"))
     160                        return $fullpath ? $f : $fond . "-$defaut";
    160161
    161162        // se rabattre sur compositions/article si disponible
    162         if ($f = find_in_path("$fond.$ext")) {
     163        if ($f = find_in_path("$fond.$ext"))
    163164                return $fullpath ? $f : $fond;
    164         }
    165165
    166166        // sinon une composition vide pour ne pas generer d'erreur
    167         if ($vide and $f = find_in_path("$vide.$ext")) {
     167        if ($vide AND $f = find_in_path("$vide.$ext"))
    168168                return $fullpath ? $f : $vide;
    169         }
    170169
    171170        // rien mais ca fera une erreur dans le squelette si appele en filtre
     
    179178 * @return array|bool|string
    180179 */
    181 function compositions_decrire($type, $composition) {
     180function compositions_decrire($type, $composition){
    182181        static $compositions = array();
    183         if (!function_exists('compositions_charger_infos')) {
     182        if (!function_exists('compositions_charger_infos'))
    184183                include_spip('inc/compositions');
    185         }
    186         if ($type=='syndic') {
    187                 $type='site'; //grml
    188         }
    189         if (isset($compositions[$type][$composition])) {
     184        if ($type=='syndic') $type='site'; //grml
     185        if (isset($compositions[$type][$composition]))
    190186                return $compositions[$type][$composition];
    191         }
    192         $ext = 'html';
     187        $ext = "html";
    193188        $fond = compositions_chemin() . $type;
    194189        if (strlen($composition)
    195                 and $f = find_in_path("$fond-$composition.$ext")
    196                 and $desc = compositions_charger_infos($f)) {
     190                AND $f = find_in_path("$fond-$composition.$ext")
     191                AND $desc = compositions_charger_infos($f))
    197192                return $compositions[$type][$composition] = $desc;
    198         }
    199193        return $compositions[$type][$composition] = false;
    200194}
     
    210204 * @return string
    211205 */
    212 function composition_class($composition, $type) {
     206function composition_class($composition,$type){
    213207        if ($desc = compositions_decrire($type, $composition)
    214                 and isset($desc['class'])
    215                 and strlen($desc['class'])) {
     208                AND isset($desc['class'])
     209                AND strlen($desc['class']))
    216210                return $desc['class'];
    217         }
    218211        return $composition;
    219212}
     
    227220 * @return array
    228221 */
    229 function compositions_types() {
     222function compositions_types(){
    230223        static $liste = null;
    231224        if (is_null($liste)) {
    232                 if (_VAR_MODE or !isset($GLOBALS['meta']['compositions_types'])) {
     225                if (_VAR_MODE OR !isset($GLOBALS['meta']['compositions_types'])){
    233226                        include_spip('inc/compositions');
    234227                        compositions_cacher();
    235228                }
    236                 $liste = explode(',', $GLOBALS['meta']['compositions_types']);
     229                $liste = explode(',',$GLOBALS['meta']['compositions_types']);
    237230        }
    238231        return $liste;
     
    248241 * @return array
    249242 */
    250 function compositions_recuperer_heritage($type = null) {
    251         static $heritages = null;
    252         if (is_null($heritages)) {
    253                 // recuperer les heritages declares via le pipeline compositions_declarer_heritage
     243function compositions_recuperer_heritage($type=NULL){
     244        static $heritages = NULL;
     245        if (is_null($heritages)) // recuperer les heritages declares via le pipeline compositions_declarer_heritage
    254246                $heritages = pipeline('compositions_declarer_heritage', array());
    255         }
    256 
    257         if (is_null($type)) {
     247
     248        if (is_null($type))
    258249                return $heritages;
    259         }
    260250
    261251        if (array_key_exists($type, $heritages)) {
     
    268258                $trouver_table = charger_fonction('trouver_table', 'base');
    269259                if (!$type_parent
    270                         or !$desc = $trouver_table($table_parent)
    271                         or !isset($desc['field']['composition'])
    272                         or !isset($desc['field'][$nom_id_parent])) {
     260                        OR !$desc = $trouver_table($table_parent)
     261                        OR !isset($desc['field']['composition'])
     262                        OR !isset($desc['field'][$nom_id_parent]))
    273263                        return '';
    274                 }
    275264
    276265                return array(
     
    295284 * @return string
    296285 */
    297 function compositions_determiner($type, $id, $serveur = '', $etoile = false) {
     286function compositions_determiner($type, $id, $serveur='', $etoile = false){
    298287        static $composition = array();
    299288        $id = intval($id);
    300289
    301         if (isset($composition[$etoile][$serveur][$type][$id])) {
     290        if (isset($composition[$etoile][$serveur][$type][$id]))
    302291                return $composition[$etoile][$serveur][$type][$id];
    303         }
    304292
    305293        include_spip('base/abstract_sql');
     
    312300        $trouver_table = charger_fonction('trouver_table', 'base');
    313301        $desc = $trouver_table($table,$serveur);
    314         if (isset($desc['field']['composition']) and $id) {
    315                 $select = 'composition';
    316         }
     302        if (isset($desc['field']['composition']) AND $id){
     303                $select = "composition";
    317304
    318305        $heritage = compositions_recuperer_heritage($type);
    319         if (isset($desc['field'][$heritage['nom_id_parent']])) {
     306        if (isset($desc['field'][$heritage['nom_id_parent']]))
    320307                $select .= ', '.$heritage['nom_id_parent'].' as id_parent';
    321         }
    322308
    323309        $row = sql_fetsel($select, $table_sql, "$_id_table=".intval($id), '', '', '', '', $serveur);
    324         if ($row['composition'] != '') {
     310        if ($row['composition'] != '')
    325311                $retour = $row['composition'];
    326         } elseif (!$etoile
    327                 and isset($row['id_parent'])
    328                 and $row['id_parent']) {
     312        elseif (!$etoile
     313          AND isset($row['id_parent'])
     314          AND $row['id_parent'])
    329315                $retour = compositions_heriter($type, $id, $row['id_parent'], $serveur);
    330316        }
     
    342328 * @return string
    343329 */
    344 function compositions_heriter($type, $id, $id_parent = null, $serveur = '') {
    345         if ($type=='syndic') {
    346                 $type='site'; //grml
    347         }
    348         if (intval($id) < 1) {
    349                 return '';
    350         }
     330function compositions_heriter($type, $id, $id_parent=NULL, $serveur=''){
     331        if ($type=='syndic') $type='site'; //grml
     332        if (intval($id) < 1) return '';
    351333        static $infos = null;
    352334        $compo_parent = '';
     
    356338        /* Si aucun héritage n'a été défini pour le type d'objet, ce
    357339        * n'est pas la peine d'aller plus loin. */
    358         if (count($heritage) == 0) {
     340        if(count($heritage) == 0)
    359341                return '';
    360         }
    361342
    362343        $type_parent = $heritage['type_parent'];
     
    365346        $nom_id_table_parent = $heritage['nom_id_table_parent'];
    366347
    367         if (is_null($id_parent)) {
     348        if (is_null($id_parent))
    368349                $id_parent = sql_getfetsel($nom_id_parent, table_objet_sql($type), id_table_objet($type).'='.intval($id));
    369         }
    370350
    371351        $heritages = compositions_recuperer_heritage();
     
    373353        do {
    374354                $select = 'composition';
    375                 if ($heritages[$type_parent]==$type_parent) {
    376                         // S'il y a recursivite sur le parent
     355                if ($heritages[$type_parent]==$type_parent) // S'il y a recursivite sur le parent
    377356                        $select .= ', id_parent';
    378                 }
    379                 $row = sql_fetsel($select, $table_parent, $nom_id_table_parent.'='.intval($id_parent), '', '', '', '', $serveur);
    380                 if (strlen($row['composition']) and $row['composition']!='-') {
     357                $row = sql_fetsel($select, $table_parent, $nom_id_table_parent.'='.intval($id_parent),'','','','',$serveur);
     358                if (strlen($row['composition']) AND $row['composition']!='-')
    381359                        $compo_parent = $row['composition'];
    382                 } elseif (strlen($row['composition'])==0 and isset($heritages[$type_parent])) {
    383                         // Si le parent peut heriter, il faut verifier s'il y a heritage
    384                         $compo_parent = compositions_determiner($type_parent, $id_parent, $serveur = '');
    385                 }
    386 
    387                 if (strlen($compo_parent) and is_null($infos)) {
     360                elseif (strlen($row['composition'])==0 AND isset($heritages[$type_parent])) // Si le parent peut heriter, il faut verifier s'il y a heritage
     361                        $compo_parent = compositions_determiner($type_parent, $id_parent, $serveur='');
     362
     363                if (strlen($compo_parent) AND is_null($infos))
    388364                        $infos = compositions_lister_disponibles('');
    389                 }
    390         } while ($id_parent = $row['id_parent']
    391                 and
    392                 (!strlen($compo_parent) or !isset($infos[$type_parent][$compo_parent]['branche'][$type])));
    393 
    394         if (strlen($compo_parent) and isset($infos[$type_parent][$compo_parent]['branche'][$type])) {
     365
     366        }
     367        while ($id_parent = $row['id_parent']
     368                AND
     369                (!strlen($compo_parent) OR !isset($infos[$type_parent][$compo_parent]['branche'][$type])));
     370
     371        if (strlen($compo_parent) AND isset($infos[$type_parent][$compo_parent]['branche'][$type]))
    395372                return $infos[$type_parent][$compo_parent]['branche'][$type];
    396         }
    397373
    398374        return '';
     
    415391 */
    416392function balise_COMPOSITION_dist($p) {
    417         $_composition = '';
     393        $_composition = "";
    418394        if ($_objet = interprete_argument_balise(1, $p)) {
    419395                $_id_objet = interprete_argument_balise(2, $p);
    420396        } else {
    421                 $_composition = champ_sql('composition', $p);
     397                $_composition = champ_sql('composition',$p);
    422398                $_id_objet = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
    423399                $_objet = "objet_type('" . $p->boucles[$p->id_boucle]->id_table . "')";
    424400        }
    425401        // si on veut le champ brut, et qu'on l'a sous la main, inutile d'invoquer toute la machinerie
    426         if ($_composition and $p->etoile) {
     402        if ($_composition AND $p->etoile)
    427403                $p->code = $_composition;
    428         } else {
     404        else {
    429405                $connect = $p->boucles[$p->id_boucle]->sql_serveur;
    430406                $p->code = "compositions_determiner($_objet, $_id_objet, '$connect', ".($p->etoile?'true':'false').")";
    431407                // ne declencher l'usine a gaz que si composition est vide ...
    432                 if ($_composition) {
     408                if ($_composition)
    433409                        $p->code = "((\$zc=$_composition)?(\$zc=='-'?'':\$zc):".$p->code.")";
    434                 }
    435410        }
    436411        return $p;
     
    446421 * @return string
    447422 */
    448 function compositions_verrouiller($type, $id, $serveur = '') {
     423function compositions_verrouiller($type, $id, $serveur=''){
    449424        $config = (isset($GLOBALS['meta']['compositions']) ? unserialize($GLOBALS['meta']['compositions']) : array());
    450         if (isset($config['tout_verrouiller']) and $config['tout_verrouiller'] == 'oui') {
     425        if (isset($config['tout_verrouiller']) AND $config['tout_verrouiller'] == 'oui')
    451426                return true;
    452         }
    453427
    454428        include_spip('base/abstract_sql');
     
    459433        $trouver_table = charger_fonction('trouver_table', 'base');
    460434        $desc = $trouver_table($table,$serveur);
    461         if (isset($desc['field']['composition_lock']) and $id) {
     435        if (isset($desc['field']['composition_lock']) AND $id){
    462436                $lock = sql_getfetsel('composition_lock', $table_sql, "$_id_table=".intval($id), '', '', '', '', $serveur);
    463                 if ($lock) {
     437                if ($lock)
    464438                        return true;
    465                 } elseif (isset($desc['field']['id_rubrique'])) {
     439                elseif (isset($desc['field']['id_rubrique'])) {
    466440                        $id_rubrique = sql_getfetsel('id_rubrique', $table_sql, "$_id_table=".intval($id), '', '', '', '', $serveur);
    467441                        return compositions_verrou_branche($id_rubrique, $serveur);
    468                 } else {
     442                }
     443                else
    469444                        return false;
    470                 }
    471         } else {
    472                 return false;
    473         }
     445        }
     446        else return false;
    474447}
    475448
     
    480453 * @return string
    481454 */
    482 function compositions_verrou_branche($id_rubrique, $serveur = '') {
    483 
    484         if (intval($id_rubrique) < 1) {
    485                 return false;
    486         }
    487         if ($infos_rubrique = sql_fetsel(array('id_parent', 'composition_branche_lock'), 'spip_rubriques', 'id_rubrique='.intval($id_rubrique), '', '', '', '', $serveur)) {
    488                 if ($infos_rubrique['composition_branche_lock']) {
     455function compositions_verrou_branche($id_rubrique, $serveur=''){
     456
     457        if (intval($id_rubrique) < 1) return false;
     458        if($infos_rubrique = sql_fetsel(array('id_parent','composition_branche_lock'),'spip_rubriques','id_rubrique='.intval($id_rubrique),'','','','',$serveur)) {
     459                if ($infos_rubrique['composition_branche_lock'])
    489460                        return true;
    490                 } else {
    491                         return compositions_verrou_branche($infos_rubrique['id_parent'], $serveur);
    492                 }
     461                else
     462                        return compositions_verrou_branche($infos_rubrique['id_parent'],$serveur);
    493463        }
    494464        return '';
    495465}
     466?>
  • _plugins_/compositions/trunk/compositions_ieconfig.php

    r97850 r97916  
    11<?php
    22
    3 if (!defined('_ECRIRE_INC_VERSION')) {
    4         return;
    5 }
     3if (!defined("_ECRIRE_INC_VERSION")) return;
    64
    75// On déclare ici la config du core
    8 function compositions_ieconfig_metas($table) {
     6function compositions_ieconfig_metas($table){
    97        $table['compositions']['titre'] = _T('compositions:compositions');
    108        $table['compositions']['icone'] = 'composition-16.png';
    119        $table['compositions']['metas_serialize'] = 'compositions';
    12 
     10       
    1311        return $table;
    1412}
     13
     14?>
  • _plugins_/compositions/trunk/compositions_options.php

    r97850 r97916  
    88 */
    99
    10 if (!defined('_ECRIRE_INC_VERSION')) {
    11         return;
    12 }
     10if (!defined("_ECRIRE_INC_VERSION")) return;
    1311
    1412$GLOBALS['marqueur_skel'] = (isset($GLOBALS['marqueur_skel'])?$GLOBALS['marqueur_skel']:'').':composition';
  • _plugins_/compositions/trunk/compositions_pipeline.php

    r97850 r97916  
    77 */
    88
    9 if (!defined('_ECRIRE_INC_VERSION')) {
    10         return;
    11 }
     9if (!defined("_ECRIRE_INC_VERSION")) return;
    1210
    1311/**
     
    1715 * @return array
    1816 */
    19 function compositions_declarer_tables_objets_sql($tables) {
     17function compositions_declarer_tables_objets_sql($tables){
    2018
    2119        // champs composition et composition_lock sur tous les objets
    2220        // c'est easy
    2321        $tables[]['field']['composition'] = "varchar(255) DEFAULT '' NOT NULL";
    24         $tables[]['field']['composition_lock'] = 'tinyint(1) DEFAULT 0 NOT NULL';
    25         $tables['spip_rubriques']['field']['composition_branche_lock'] = 'tinyint(1) DEFAULT 0 NOT NULL';
     22        $tables[]['field']['composition_lock'] = "tinyint(1) DEFAULT 0 NOT NULL";
     23        $tables['spip_rubriques']['field']['composition_branche_lock'] = "tinyint(1) DEFAULT 0 NOT NULL";
    2624
    2725        return $tables;
     
    3230 * Fonction vide pour le pipeline homonyme
    3331 */
    34 function compositions_autoriser() {
    35 }
     32function compositions_autoriser(){}
    3633
    3734/**
     
    4542 * @return bool
    4643 */
    47 function autoriser_styliser_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
     44function autoriser_styliser_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
    4845        include_spip('compositions_fonctions');
    49         if (!autoriser('modifier', $type, $id, $qui, $opt)) {
     46        if (!autoriser('modifier',$type,$id,$qui,$opt))
    5047                return false;
    51         }
    52         if (compositions_verrouiller($type, $id) and !autoriser('webmestre')) {
     48        if (compositions_verrouiller($type, $id) AND !autoriser('webmestre'))
    5349                return false;
    54         }
    5550        return true;
    5651}
     
    6358 * @return array
    6459 */
    65 function compositions_styliser($flux) {
     60function compositions_styliser($flux){
    6661        // en contexte Z, c'est Z ou Z-core qui stylise (on ne n'en occupe donc pas ici)
    67         if (!defined('_DIR_PLUGIN_Z') and !defined('_DIR_PLUGIN_ZCORE')) {
     62        if(!defined('_DIR_PLUGIN_Z') AND !defined('_DIR_PLUGIN_ZCORE')){
    6863                include_spip('compositions_fonctions');
    69                 if (compositions_styliser_auto()) {
     64                if (compositions_styliser_auto()){
    7065                        $type = $flux['args']['fond']; // on fait l'approximation fond=type
    7166                        // si le type n'est pas l'objet d'une composition, ne rien faire
    72                         if (in_array($type, compositions_types())) {
     67                        if (in_array($type,compositions_types())){
    7368                                $contexte = isset($flux['args']['contexte'])?$flux['args']['contexte']:$GLOBALS['contexte'];
    7469                                $serveur = $flux['args']['connect'];
     
    7772                                $_id_table = id_table_objet($type);
    7873
    79                                 if ($id = $contexte[$_id_table] and $composition = compositions_determiner($type, $id, $serveur)) {
    80                                         if ($fond = compositions_selectionner($composition, $type, '', $ext, true, '')) {
     74                                if ($id = $contexte[$_id_table] AND $composition = compositions_determiner($type,$id,$serveur)){
     75                                        if ($fond = compositions_selectionner($composition, $type, '', $ext, true, "")){
    8176                                                $flux['data'] = substr($fond, 0, - strlen(".$ext"));
    8277                                        }
     
    9489 * @return array
    9590 */
    96 function compositions_affiche_milieu($flux) {
     91function compositions_affiche_milieu($flux){
    9792        $e = trouver_objet_exec($flux['args']['exec']);
    9893        $objets = compositions_objets_actives();
    99         if (in_array($e['type'], $objets)
    100                 and $e['edition'] === false) {
     94        if (in_array($e['type'],$objets)
     95          AND $e['edition']===false){
    10196                $type = $e['type'];
    10297                if ($id = $flux['args'][$e['id_table_objet']]) {
    10398                        $config = (isset($GLOBALS['meta']['compositions']) ? unserialize($GLOBALS['meta']['compositions']) : array());
    104                         $aut = autoriser('styliser', $type, $id);
    105                         if ((!isset($config['masquer_formulaire']) or $config['masquer_formulaire'] != 'oui' or $aut)
    106                                 and (
    107                                         ($c=compositions_lister_disponibles($type) and is_array(reset($c)))
    108                                         or ($type == 'rubrique' and (!isset($config['tout_verrouiller']) or $config['tout_verrouiller'] != 'oui'))
    109                                 )) {
     99                        $aut = autoriser('styliser',$type,$id);
     100                        if ((!isset($config['masquer_formulaire']) OR $config['masquer_formulaire'] != 'oui' OR $aut)
     101                                AND (
     102                                        ($c=compositions_lister_disponibles($type) AND is_array(reset($c)))
     103                                        OR ($type == 'rubrique' AND (!isset($config['tout_verrouiller']) OR $config['tout_verrouiller'] != 'oui'))
     104                                  )
     105                                ) {
    110106                                $ids = 'formulaire_editer_composition_objet-' . "$type-$id";
    111107                                $texte = recuperer_fond(
     
    117113                                );
    118114
    119                                 if (($p = strpos($flux['data'], '<!--affiche_milieu-->')) !== false) {
    120                                         $flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
    121                                 } else {
     115                                if (($p = strpos($flux['data'],'<!--affiche_milieu-->'))!==false)
     116                                        $flux['data'] = substr_replace($flux['data'],$texte,$p,0);
     117                                else
    122118                                        $flux['data'] .= $texte;
    123                                 }
    124119                        }
    125120                }
     
    135130 * ce qui permet ensuite de faire dans le fichier parent-ma_compo.xml
    136131 * <branche type="objet" composition="une_compo" />
    137  *
     132 * 
    138133 * A partir de compositions 3.3.0 cette declaration est obligatoire.
    139134 * Les objets "standards" de SPIP sont declares ici. (a deplacer dans leurs plugins respectifs ?)
    140135 */
    141 function compositions_compositions_declarer_heritage($heritages) {
     136function compositions_compositions_declarer_heritage($heritages){
    142137        $heritages['mot'] = 'groupe_mots';
    143138        $heritages['rubrique'] = 'rubrique';
     
    147142        return $heritages;
    148143}
     144
     145
     146?>
  • _plugins_/compositions/trunk/formulaires/configurer_compositions_fonctions.php

    r97850 r97916  
    77 */
    88
    9 if (!defined('_ECRIRE_INC_VERSION')) {
    10         return;
    11 }
     9if (!defined("_ECRIRE_INC_VERSION")) return;
    1210
    1311include_spip('compositions_administrations');
  • _plugins_/compositions/trunk/formulaires/editer_composition_objet.php

    r97850 r97916  
    77 */
    88
    9 if (!defined('_ECRIRE_INC_VERSION')) {
    10         return;
    11 }
     9if (!defined("_ECRIRE_INC_VERSION")) return;
    1210
    1311include_spip('inc/compositions');
     
    1917 * @return array
    2018 */
    21 function formulaires_editer_composition_objet_charger($type, $id) {
     19function formulaires_editer_composition_objet_charger($type,$id){
    2220        $valeurs = array();
    2321        $table_objet_sql = table_objet_sql($type);
     
    3028        $valeurs['objet'] = $type;
    3129
    32         $row = sql_fetsel('composition,composition_lock', $table_objet_sql, "$id_table_objet = " . intval($id));
     30        $row = sql_fetsel('composition,composition_lock',$table_objet_sql,"$id_table_objet=".intval($id));
    3331        $valeurs['composition'] = $row['composition'];
    3432        $valeurs['composition_lock'] = $row['composition_lock'];
    35 
    36         if ($type=='rubrique') {
    37                 $valeurs['composition_branche_lock'] = sql_getfetsel('composition_branche_lock', $table_objet_sql, "$id_table_objet = " . intval($id));
    38         }
    39 
     33       
     34        if ($type=='rubrique')
     35                $valeurs['composition_branche_lock'] = sql_getfetsel('composition_branche_lock',$table_objet_sql,"$id_table_objet=".intval($id));
     36       
    4037        $valeurs['composition_heritee'] = compositions_heriter($type, $id);
    4138        $valeurs['verrou_branche'] = compositions_verrou_branche($type, $id);
     
    4542        $valeurs['compositions'] = compositions_lister_disponibles($type);
    4643        $valeurs['_compositions'] = reset($valeurs['compositions']); // on ne regarde qu'un seul type
    47         if (is_array($valeurs['_compositions']) and !isset($valeurs['_compositions'][''])) {
     44        if (is_array($valeurs['_compositions']) AND !isset($valeurs['_compositions'][''])){
    4845                $valeurs['_compositions'] = array_merge(
    4946                        array(''=>array('nom'=>_T('compositions:composition_defaut'),'description'=>'','icon'=>'','configuration'=>'')),
     
    5148                );
    5249        }
    53 
     50       
    5451        // Si on herite d'une composition
    5552        // On modifie le tableau des compositions
    56         if ($valeurs['composition_heritee'] and $valeurs['composition_heritee'] != '-') {
     53        if ($valeurs['composition_heritee'] AND $valeurs['composition_heritee'] != '-') {
    5754                $compo_defaut = $valeurs['_compositions'][$valeurs['composition_heritee']];
    5855                $compo_vide = $valeurs['_compositions'][''];
     
    6461                );
    6562        }
    66 
     63       
    6764        $valeurs['_hidden'] = "<input type='hidden' name='$id_table_objet' value='$id' />";
    6865
    69         if (!autoriser('styliser', $type, $id)) {
     66        if (!autoriser('styliser',$type,$id))
    7067                $valeurs['editable'] = false;
    71         }
    7268
    7369        return $valeurs;
     
    8177 * @return array
    8278 */
    83 function formulaires_editer_composition_objet_traiter($type, $id) {
     79function formulaires_editer_composition_objet_traiter($type,$id){
    8480        $valeurs = array();
    8581        $table_objet_sql = table_objet_sql($type);
     
    8783        $update = array();
    8884
    89         if (!is_null($p = _request('composition'))) {
     85        if (!is_null($p = _request('composition')))
    9086                $update['composition'] = $p;
    91         }
    9287
    93         if (autoriser('webmestre')) {
     88        if (autoriser('webmestre'))
    9489                $update['composition_lock'] = _request('composition_lock')?1:0;
    95         }
     90               
     91        if (autoriser('webmestre') AND $type == 'rubrique')
     92                $update['composition_branche_lock'] = _request('composition_branche_lock')?1:0;
    9693
    97         if (autoriser('webmestre') and $type == 'rubrique') {
    98                 $update['composition_branche_lock'] = _request('composition_branche_lock')?1:0;
    99         }
    100 
    101         sql_updateq($table_objet_sql, $update, "$id_table_objet = " . intval($id));
     94        sql_updateq($table_objet_sql,$update,"$id_table_objet=".intval($id));
    10295
    10396        // mettre a jour la liste des types de compo en cache
    10497        compositions_cacher();
    105         return array('message_ok' => '', 'editable'=>true);
     98        return array('message_ok'=>'','editable'=>true);
    10699}
  • _plugins_/compositions/trunk/inc/compositions.php

    r97850 r97916  
    77 */
    88
    9 if (!defined('_ECRIRE_INC_VERSION')) {
    10         return;
    11 }
     9if (!defined("_ECRIRE_INC_VERSION")) return;
    1210
    1311include_spip('compositions_fonctions');
     
    1917 * @return array
    2018 */
    21 function compositions_decomposer_nom($nom) {
    22         $reg = ',^([a-z][^-.]*)('._COMPOSITIONS_MATCH.')?$,i';
    23         if (// recuperer le type et la composition
    24                 preg_match($reg, $nom, $matches)
    25                 // il y a bien un type
    26                 and $type=$matches[1]
    27         ) {
     19function compositions_decomposer_nom($nom){
     20        $reg = ",^([a-z][^-.]*)("._COMPOSITIONS_MATCH.")?$,i";
     21        if (
     22                // recuperer le type et la composition
     23          preg_match($reg,$nom,$matches)
     24          // il y a bien un type
     25          AND $type=$matches[1]
     26        ){
    2827                $composition = isset($matches[3])?$matches[3]:'';
    2928                return array($type,$composition);
    3029        }
    31         return array($nom, '');
     30        return array($nom,"");
    3231}
    3332
     
    3938 * @return array|string
    4039 */
    41 function compositions_charger_infos($nom, $info = '') {
     40function compositions_charger_infos($nom,$info=""){
    4241                // on peut appeller avec le nom du squelette
    43                 $nom = preg_replace(',[.]html$,i', '', $nom).'.xml';
     42                $nom = preg_replace(',[.]html$,i','',$nom).".xml";
    4443                include_spip('inc/xml');
    4544                $composition = array();
    46                 if ($xml = spip_xml_load($nom, false)) {
    47                         if (count($xml['composition'])) {
     45                if ($xml = spip_xml_load($nom,false)){
     46                        if (count($xml['composition'])){
    4847                                $xml = reset($xml['composition']);
    4948                                $composition['nom'] = _T_ou_typo(spip_xml_aplatit($xml['nom']));
     
    6261                                $composition['configuration'] = isset($xml['configuration']) ? spip_xml_aplatit($xml['configuration']) : '';
    6362                                $composition['branche'] = array();
    64                                 if (spip_xml_match_nodes(',^branche,', $xml, $branches)) {
    65                                         foreach (array_keys($branches) as $branche) {
     63                                if (spip_xml_match_nodes(',^branche,', $xml, $branches)){
     64                                        foreach (array_keys($branches) as $branche){
    6665                                                list($balise, $attributs) = spip_xml_decompose_tag($branche);
    6766                                                $composition['branche'][$attributs['type']] = $attributs['composition'];
     
    7069                        }
    7170                }
    72                 if (!$info) {
     71                if (!$info)
    7372                        return $composition;
    74                 } else {
    75                         return isset($composition[$info])?$composition[$info]:'';
    76                 }
     73                else
     74                        return isset($composition[$info])?$composition[$info]:"";
    7775}
    7876
     
    9189 * @param array $liste
    9290 */
    93 function compositions_cacher($liste = null) {
     91function compositions_cacher($liste=null){
    9492        // lister les compositions vraiment utilisees
    95         if (!is_array($liste)) {
     93        if (!is_array($liste)){
    9694                include_spip('compositions_fonctions');
    97                 $liste = compositions_lister_disponibles('', false);
     95                $liste = compositions_lister_disponibles('',false);
    9896        }
    9997        // lister les objets dont on a active la composition dans la configuration
    10098        $config = compositions_objets_actives();
    10199
    102         $liste = array_intersect($config, array_keys($liste));
    103         ecrire_meta('compositions_types', implode(',', $liste));
     100        $liste = array_intersect($config,array_keys($liste));
     101        ecrire_meta('compositions_types',implode(',',$liste));
    104102        spip_log('compositions: maj des compositions_types ['.$GLOBALS['meta']['compositions_types'].']');
    105103}
     104
     105?>
  • _plugins_/compositions/trunk/paquet.xml

    r95573 r97916  
    22        prefix="compositions"
    33        categorie="outil"
    4         version="3.5.3"
     4        version="3.5.4"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
  • _plugins_/compositions/trunk/saisies/composition_fonctions.php

    r97850 r97916  
    11<?php
    2 
    3 if (!defined('_ECRIRE_INC_VERSION')) {
    4         return;
    5 }
     2if (!defined("_ECRIRE_INC_VERSION")) return;
    63
    74include_spip('inc/compositions');
     5?>
Note: See TracChangeset for help on using the changeset viewer.