Changeset 97919 in spip-zone


Ignore:
Timestamp:
May 20, 2016, 4:44:43 PM (3 years ago)
Author:
kent1@…
Message:

Version propre après PSR, désolé, la diff est ligne 314 / 329

File:
1 edited

Legend:

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

    r97916 r97919  
    88 */
    99
    10 if (!defined("_ECRIRE_INC_VERSION")) return;
    11 
    12 define('_COMPOSITIONS_MATCH','-([^0-9][^.]*)');
     10if (!defined('_ECRIRE_INC_VERSION')) {
     11        return;
     12}
     13
     14define('_COMPOSITIONS_MATCH', '-([^0-9][^.]*)');
    1315
    1416/**
     
    1719 * @return array
    1820 */
    19 function compositions_objets_actives(){
     21function compositions_objets_actives() {
    2022        static $config=null;
    21         if (is_null($config)){
     23        if (is_null($config)) {
    2224                // lister les objets dont on a active la composition dans la configuration
    2325                $config = isset($GLOBALS['meta']['compositions']) ? unserialize($GLOBALS['meta']['compositions']) : array();
    2426                $config = (isset($config['objets'])?$config['objets']:array('spip_articles','spip_rubriques'));
    25                 $config = array_map('objet_type',$config);
     27                $config = array_map('objet_type', $config);
    2628        }
    2729        return $config;
     
    3436 * @return string
    3537 */
    36 function compositions_chemin(){
     38function compositions_chemin() {
    3739        $config_chemin = 'compositions/';
    38         if (defined('_DIR_PLUGIN_Z') OR defined('_DIR_PLUGIN_ZCORE'))
     40        if (defined('_DIR_PLUGIN_Z') or defined('_DIR_PLUGIN_ZCORE')) {
    3941                $config_chemin = (isset($GLOBALS['z_blocs'])?reset($GLOBALS['z_blocs']):'contenu').'/';
    40 
    41         elseif (isset($GLOBALS['meta']['compositions'])){
     42        } elseif (isset($GLOBALS['meta']['compositions'])) {
    4243                $config = unserialize($GLOBALS['meta']['compositions']);
    43                 if (isset ($config['chemin_compositions'])){
    44                         $config_chemin = rtrim($config['chemin_compositions'],'/').'/';
     44                if (isset($config['chemin_compositions'])) {
     45                        $config_chemin = rtrim($config['chemin_compositions'], '/').'/';
    4546                }
    4647        }
     
    5354 * @return string
    5455 */
    55 function compositions_styliser_auto(){
     56function compositions_styliser_auto() {
    5657        $config_styliser = true;
    57         if (defined('_DIR_PLUGIN_Z') OR defined('_DIR_PLUGIN_ZCORE')){
     58        if (defined('_DIR_PLUGIN_Z') or defined('_DIR_PLUGIN_ZCORE')) {
    5859                $config_styliser = false; // Z s'occupe de styliser les compositions
    59         }
    60         elseif (isset($GLOBALS['meta']['compositions'])){
     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         }
    82         else {
     81        } else {
    8382                // _ pour le cas des groupe_mots
    84                 $type_match = "[a-z0-9_]+";
     83                $type_match = '[a-z0-9_]+';
    8584        }
    8685
    8786        // rechercher les skel du type article-truc.html
    8887        // truc ne doit pas commencer par un chiffre pour eviter de confondre avec article-12.html
    89         $match = "($type_match)("._COMPOSITIONS_MATCH.")?[.]html$";
     88        $match = "($type_match)("._COMPOSITIONS_MATCH.')?[.]html$';
    9089
    9190        // lister les compositions disponibles
    92         $liste = find_all_in_path(compositions_chemin(),$match);
     91        $liste = find_all_in_path(compositions_chemin(), $match);
    9392        $res = array();
    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                         {
     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))) {
    10199                                $regs = array_pad($regs, 4, null);
    102100                                $res[$regs[1]][$regs[3]] = $composition;
     
    106104        }
    107105        // Pipeline compositions_lister_disponibles
    108         $res = pipeline('compositions_lister_disponibles',array(
     106        $res = pipeline('compositions_lister_disponibles', array(
    109107                'args'=>array('type' => $type,'informer' => $informer),
    110108                'data'=> $res
    111                 )
    112         );
     109                ));
    113110        return $res;
    114111}
     
    121118 * @return array
    122119 */
    123 function compositions_lister_utilisations($type,$composition){
     120function compositions_lister_utilisations($type, $composition) {
    124121        $table_sql = table_objet_sql($type);
    125122        if (!in_array($table_sql, sql_alltable())) {
     
    130127        $_id_table_objet = id_table_objet($type);
    131128        $titre = isset($desc['titre']) ? $desc['titre'] : "'' AS titre";
    132         return sql_allfetsel("$_id_table_objet as id, $titre", $table_sql, "composition=".sql_quote($composition));
     129        return sql_allfetsel("$_id_table_objet as id, $titre", $table_sql, 'composition='.sql_quote($composition));
    133130}
    134131
     
    146143 * @return string
    147144 */
    148 function compositions_selectionner($composition,$type,$defaut="",$ext="html",$fullpath = false, $vide="composition-vide"){
    149         if ($type=='syndic') $type='site'; //grml
     145function compositions_selectionner($composition, $type, $defaut = '', $ext = 'html', $fullpath = false, $vide = 'composition-vide') {
     146        if ($type=='syndic') {
     147                $type='site'; //grml
     148        }
    150149        $fond = compositions_chemin() . $type;
    151150
    152151        // regarder si compositions/article-xxx est disponible
    153152        if (strlen($composition)
    154                 AND $f = find_in_path("$fond-$composition.$ext"))
     153                and $f = find_in_path("$fond-$composition.$ext")) {
    155154                return $fullpath ? $f : $fond . "-$composition";
    156         else
     155        } elseif (strlen($defaut)
     156                and $f = find_in_path("$fond-$defaut.$ext")) {
    157157                // sinon regarder si compositions/article-defaut est disponible
    158                 if (strlen($defaut)
    159                         AND $f = find_in_path("$fond-$defaut.$ext"))
    160                         return $fullpath ? $f : $fond . "-$defaut";
     158                return $fullpath ? $f : $fond . "-$defaut";
     159        }
    161160
    162161        // se rabattre sur compositions/article si disponible
    163         if ($f = find_in_path("$fond.$ext"))
     162        if ($f = find_in_path("$fond.$ext")) {
    164163                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        }
    169170
    170171        // rien mais ca fera une erreur dans le squelette si appele en filtre
     
    178179 * @return array|bool|string
    179180 */
    180 function compositions_decrire($type, $composition){
     181function compositions_decrire($type, $composition) {
    181182        static $compositions = array();
    182         if (!function_exists('compositions_charger_infos'))
     183        if (!function_exists('compositions_charger_infos')) {
    183184                include_spip('inc/compositions');
    184         if ($type=='syndic') $type='site'; //grml
    185         if (isset($compositions[$type][$composition]))
     185        }
     186        if ($type=='syndic') {
     187                $type='site'; //grml
     188        }
     189        if (isset($compositions[$type][$composition])) {
    186190                return $compositions[$type][$composition];
    187         $ext = "html";
     191        }
     192        $ext = 'html';
    188193        $fond = compositions_chemin() . $type;
    189194        if (strlen($composition)
    190                 AND $f = find_in_path("$fond-$composition.$ext")
    191                 AND $desc = compositions_charger_infos($f))
     195                and $f = find_in_path("$fond-$composition.$ext")
     196                and $desc = compositions_charger_infos($f)) {
    192197                return $compositions[$type][$composition] = $desc;
     198        }
    193199        return $compositions[$type][$composition] = false;
    194200}
     
    204210 * @return string
    205211 */
    206 function composition_class($composition,$type){
     212function composition_class($composition, $type) {
    207213        if ($desc = compositions_decrire($type, $composition)
    208                 AND isset($desc['class'])
    209                 AND strlen($desc['class']))
     214                and isset($desc['class'])
     215                and strlen($desc['class'])) {
    210216                return $desc['class'];
     217        }
    211218        return $composition;
    212219}
     
    220227 * @return array
    221228 */
    222 function compositions_types(){
     229function compositions_types() {
    223230        static $liste = null;
    224231        if (is_null($liste)) {
    225                 if (_VAR_MODE OR !isset($GLOBALS['meta']['compositions_types'])){
     232                if (_VAR_MODE or !isset($GLOBALS['meta']['compositions_types'])) {
    226233                        include_spip('inc/compositions');
    227234                        compositions_cacher();
    228235                }
    229                 $liste = explode(',',$GLOBALS['meta']['compositions_types']);
     236                $liste = explode(',', $GLOBALS['meta']['compositions_types']);
    230237        }
    231238        return $liste;
     
    241248 * @return array
    242249 */
    243 function compositions_recuperer_heritage($type=NULL){
    244         static $heritages = NULL;
    245         if (is_null($heritages)) // recuperer les heritages declares via le pipeline compositions_declarer_heritage
     250function 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
    246254                $heritages = pipeline('compositions_declarer_heritage', array());
    247 
    248         if (is_null($type))
     255        }
     256
     257        if (is_null($type)) {
    249258                return $heritages;
     259        }
    250260
    251261        if (array_key_exists($type, $heritages)) {
     
    258268                $trouver_table = charger_fonction('trouver_table', 'base');
    259269                if (!$type_parent
    260                         OR !$desc = $trouver_table($table_parent)
    261                         OR !isset($desc['field']['composition'])
    262                         OR !isset($desc['field'][$nom_id_parent]))
     270                        or !$desc = $trouver_table($table_parent)
     271                        or !isset($desc['field']['composition'])
     272                        or !isset($desc['field'][$nom_id_parent])) {
    263273                        return '';
     274                }
    264275
    265276                return array(
     
    284295 * @return string
    285296 */
    286 function compositions_determiner($type, $id, $serveur='', $etoile = false){
     297function compositions_determiner($type, $id, $serveur = '', $etoile = false) {
    287298        static $composition = array();
    288299        $id = intval($id);
    289300
    290         if (isset($composition[$etoile][$serveur][$type][$id]))
     301        if (isset($composition[$etoile][$serveur][$type][$id])) {
    291302                return $composition[$etoile][$serveur][$type][$id];
     303        }
    292304
    293305        include_spip('base/abstract_sql');
     
    300312        $trouver_table = charger_fonction('trouver_table', 'base');
    301313        $desc = $trouver_table($table,$serveur);
    302         if (isset($desc['field']['composition']) AND $id){
    303                 $select = "composition";
    304 
    305         $heritage = compositions_recuperer_heritage($type);
    306         if (isset($desc['field'][$heritage['nom_id_parent']]))
    307                 $select .= ', '.$heritage['nom_id_parent'].' as id_parent';
    308 
    309         $row = sql_fetsel($select, $table_sql, "$_id_table=".intval($id), '', '', '', '', $serveur);
    310         if ($row['composition'] != '')
    311                 $retour = $row['composition'];
    312         elseif (!$etoile
    313           AND isset($row['id_parent'])
    314           AND $row['id_parent'])
    315                 $retour = compositions_heriter($type, $id, $row['id_parent'], $serveur);
     314        if (isset($desc['field']['composition']) and $id) {
     315                $select = 'composition';
     316
     317                $heritage = compositions_recuperer_heritage($type);
     318                if (isset($desc['field'][$heritage['nom_id_parent']])) {
     319                        $select .= ', '.$heritage['nom_id_parent'].' as id_parent';
     320                }
     321
     322                $row = sql_fetsel($select, $table_sql, "$_id_table=".intval($id), '', '', '', '', $serveur);
     323                if ($row['composition'] != '') {
     324                        $retour = $row['composition'];
     325                } elseif (!$etoile
     326                        and isset($row['id_parent'])
     327                        and $row['id_parent']) {
     328                        $retour = compositions_heriter($type, $id, $row['id_parent'], $serveur);
     329                }
    316330        }
    317331        return $composition[$etoile][$serveur][$type][$id] = (($retour == '-') ? '' : $retour);
     
    328342 * @return string
    329343 */
    330 function compositions_heriter($type, $id, $id_parent=NULL, $serveur=''){
    331         if ($type=='syndic') $type='site'; //grml
    332         if (intval($id) < 1) return '';
     344function 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        }
    333351        static $infos = null;
    334352        $compo_parent = '';
     
    338356        /* Si aucun héritage n'a été défini pour le type d'objet, ce
    339357        * n'est pas la peine d'aller plus loin. */
    340         if(count($heritage) == 0)
     358        if (count($heritage) == 0) {
    341359                return '';
     360        }
    342361
    343362        $type_parent = $heritage['type_parent'];
     
    346365        $nom_id_table_parent = $heritage['nom_id_table_parent'];
    347366
    348         if (is_null($id_parent))
     367        if (is_null($id_parent)) {
    349368                $id_parent = sql_getfetsel($nom_id_parent, table_objet_sql($type), id_table_objet($type).'='.intval($id));
     369        }
    350370
    351371        $heritages = compositions_recuperer_heritage();
     
    353373        do {
    354374                $select = 'composition';
    355                 if ($heritages[$type_parent]==$type_parent) // S'il y a recursivite sur le parent
     375                if ($heritages[$type_parent]==$type_parent) {
     376                        // S'il y a recursivite sur le parent
    356377                        $select .= ', id_parent';
    357                 $row = sql_fetsel($select, $table_parent, $nom_id_table_parent.'='.intval($id_parent),'','','','',$serveur);
    358                 if (strlen($row['composition']) AND $row['composition']!='-')
     378                }
     379                $row = sql_fetsel($select, $table_parent, $nom_id_table_parent.'='.intval($id_parent), '', '', '', '', $serveur);
     380                if (strlen($row['composition']) and $row['composition']!='-') {
    359381                        $compo_parent = $row['composition'];
    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))
     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)) {
    364388                        $infos = compositions_lister_disponibles('');
    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]))
     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])) {
    372395                return $infos[$type_parent][$compo_parent]['branche'][$type];
     396        }
    373397
    374398        return '';
     
    391415 */
    392416function balise_COMPOSITION_dist($p) {
    393         $_composition = "";
     417        $_composition = '';
    394418        if ($_objet = interprete_argument_balise(1, $p)) {
    395419                $_id_objet = interprete_argument_balise(2, $p);
    396420        } else {
    397                 $_composition = champ_sql('composition',$p);
     421                $_composition = champ_sql('composition', $p);
    398422                $_id_objet = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
    399423                $_objet = "objet_type('" . $p->boucles[$p->id_boucle]->id_table . "')";
    400424        }
    401425        // si on veut le champ brut, et qu'on l'a sous la main, inutile d'invoquer toute la machinerie
    402         if ($_composition AND $p->etoile)
     426        if ($_composition and $p->etoile) {
    403427                $p->code = $_composition;
    404         else {
     428        } else {
    405429                $connect = $p->boucles[$p->id_boucle]->sql_serveur;
    406430                $p->code = "compositions_determiner($_objet, $_id_objet, '$connect', ".($p->etoile?'true':'false').")";
    407431                // ne declencher l'usine a gaz que si composition est vide ...
    408                 if ($_composition)
     432                if ($_composition) {
    409433                        $p->code = "((\$zc=$_composition)?(\$zc=='-'?'':\$zc):".$p->code.")";
     434                }
    410435        }
    411436        return $p;
     
    421446 * @return string
    422447 */
    423 function compositions_verrouiller($type, $id, $serveur=''){
     448function compositions_verrouiller($type, $id, $serveur = '') {
    424449        $config = (isset($GLOBALS['meta']['compositions']) ? unserialize($GLOBALS['meta']['compositions']) : array());
    425         if (isset($config['tout_verrouiller']) AND $config['tout_verrouiller'] == 'oui')
     450        if (isset($config['tout_verrouiller']) and $config['tout_verrouiller'] == 'oui') {
    426451                return true;
     452        }
    427453
    428454        include_spip('base/abstract_sql');
     
    433459        $trouver_table = charger_fonction('trouver_table', 'base');
    434460        $desc = $trouver_table($table,$serveur);
    435         if (isset($desc['field']['composition_lock']) AND $id){
     461        if (isset($desc['field']['composition_lock']) and $id) {
    436462                $lock = sql_getfetsel('composition_lock', $table_sql, "$_id_table=".intval($id), '', '', '', '', $serveur);
    437                 if ($lock)
     463                if ($lock) {
    438464                        return true;
    439                 elseif (isset($desc['field']['id_rubrique'])) {
     465                } elseif (isset($desc['field']['id_rubrique'])) {
    440466                        $id_rubrique = sql_getfetsel('id_rubrique', $table_sql, "$_id_table=".intval($id), '', '', '', '', $serveur);
    441467                        return compositions_verrou_branche($id_rubrique, $serveur);
    442                 }
    443                 else
     468                } else {
    444469                        return false;
    445         }
    446         else return false;
     470                }
     471        } else {
     472                return false;
     473        }
    447474}
    448475
     
    453480 * @return string
    454481 */
    455 function 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'])
     482function 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']) {
    460489                        return true;
    461                 else
    462                         return compositions_verrou_branche($infos_rubrique['id_parent'],$serveur);
     490                } else {
     491                        return compositions_verrou_branche($infos_rubrique['id_parent'], $serveur);
     492                }
    463493        }
    464494        return '';
    465495}
    466 ?>
Note: See TracChangeset for help on using the changeset viewer.