Changeset 43387 in spip-zone


Ignore:
Timestamp:
Jan 7, 2011, 10:55:27 PM (10 years ago)
Author:
cedric@…
Message:

la constante _Z_PREPEND_PATH permet de forcer la prise en compte d'un sous dossier dans la recherche des squelettes (ie switcher sur les squelettes des sous-dossiers xxx/ du path)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/z-core/public/styliser_par_z.php

    r42988 r43387  
    2828        static $disponible = array();
    2929        static $echaffauder;
     30        static $prepend = "";
    3031
    3132        if (!isset($prefix_path)) {
     
    4748                  define('_ZCORE_EXCLURE_PATH','squelettes-dist|prive');
    4849                }
     50          $prepend = (defined('_Z_PREPEND_PATH')?_Z_PREPEND_PATH:"");
    4951        }
    5052        $z_contenu = reset($z_blocs); // contenu par defaut
    5153
    5254        $fond = $flux['args']['fond'];
    53         if (strncmp($fond,$prefix_path,$prefix_length)==0) {
     55        if ($prepend OR strncmp($fond,$prefix_path,$prefix_length)==0) {
    5456                $fond = substr($fond, $prefix_length);
    5557                $squelette = $flux['data'];
     
    6365                        AND in_array($dir,$z_blocs) // verifier deja qu'on est dans un bloc Z
    6466                        AND in_array($dir,explode(',',constant($apl_constant))) // et dans un demande en APL
    65                         AND $pipe = zcore_trouver_bloc($prefix_path,$dir,'z_apl',$ext) // et qui contient le squelette APL
     67                        AND $pipe = zcore_trouver_bloc($prefix_path.$prepend,$dir,'z_apl',$ext) // et qui contient le squelette APL
    6668                        ){
    6769                        $flux['data'] = $pipe;
     
    7476                  $echaffauder = "";
    7577                }
    76        
     78          if ($prepend){
     79                  $squelette = substr(find_in_path($prefix_path.$prepend."$fond.$ext"), 0, - strlen(".$ext"));
     80            if ($squelette)
     81                    $flux['data'] = $squelette;
     82          }
     83
    7784                // gerer les squelettes non trouves
    7885                // -> router vers les /dist.html
     
    8996                                // ou si c'est un objet spip, associe a une table, utiliser le fond homonyme
    9097                                if (!isset($disponible[$fond]))
    91                                         $disponible[$fond] = zcore_contenu_disponible($prefix_path,$z_contenu,$fond,$ext,$echaffauder);
     98                                        $disponible[$fond] = zcore_contenu_disponible($prefix_path.$prepend,$z_contenu,$fond,$ext,$echaffauder);
    9299
    93100                                if ($disponible[$fond])
     
    104111                                $type = substr($fond,strlen($z_contenu)+1);
    105112                                if (!isset($disponible[$type]))
    106                                         $disponible[$type] = zcore_contenu_disponible($prefix_path,$z_contenu,$type,$ext,$echaffauder);
    107                                 if ($echaffauder
     113                                        $disponible[$type] = zcore_contenu_disponible($prefix_path.$prepend,$z_contenu,$type,$ext,$echaffauder);
     114                                if (is_string($disponible[$type]))
     115                                        $flux['data'] = $disponible[$type];
     116                                elseif ($echaffauder
    108117                                        AND $is = $disponible[$type]
    109118                                        AND is_array($is))
     
    121130                                        $type = substr($fond,strlen("$dir/"));
    122131                                        if ($type!=='page' AND !isset($disponible[$type]))
    123                                                 $disponible[$type] = zcore_contenu_disponible($prefix_path,$z_contenu,$type,$ext,$echaffauder);
     132                                                $disponible[$type] = zcore_contenu_disponible($prefix_path.$prepend,$z_contenu,$type,$ext,$echaffauder);
    124133                                        if ($type=='page' OR $disponible[$type])
    125                                                 $flux['data'] = zcore_trouver_bloc($prefix_path,$dir,'dist',$ext);
     134                                                $flux['data'] = zcore_trouver_bloc($prefix_path.$prepend,$dir,'dist',$ext);
    126135                                }
    127136                        }
     
    145154                elseif ($fond=='structure'
    146155                        AND _request('var_zajax')
    147                         AND $f = find_in_path($prefix_path.'ajax'.".$ext")) {
     156                        AND $f = find_in_path($prefix_path.$prepend.'ajax'.".$ext")) {
    148157                        $flux['data'] = substr($f,0,-strlen(".$ext"));
    149158                }
     
    155164                        AND $dir = reset($dir)
    156165                        AND in_array($dir,$z_blocs)
    157                         AND $f=find_in_path($prefix_path.$fond."-".$flux['args']['contexte']['composition'].".$ext")){
     166                        AND $f=find_in_path($prefix_path.$prepend.$fond."-".$flux['args']['contexte']['composition'].".$ext")){
    158167                        $flux['data'] = substr($f,0,-strlen(".$ext"));
    159168                }
     
    187196        if ($d = zcore_trouver_bloc($prefix_path,$z_contenu,$type,$ext))
    188197                return $d;
    189         return $echaffauder AND zcore_echaffaudable($type);
     198        return $echaffauder?zcore_echaffaudable($type):false;
    190199}
    191200
Note: See TracChangeset for help on using the changeset viewer.