Skip to content
Extraits de code Groupes Projets
Valider ffb4fa0f rédigé par esj's avatar esj
Parcourir les fichiers

introduction de #DOSSIER_SQUELETTE avec ménage

parent 8e77a6a6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -1086,16 +1086,15 @@ function find_in_path ($filename, $path='AUTO') {
// Parcourir le chemin
foreach (split(':', $path) as $dir) {
if (substr($dir, 0,1)<>'/')
$f = "$racine$dir$filename";
else
$f = "$dir$filename";
if (substr($dir, 0,1)<>'/') $dir = "$racine$dir";
if (substr($dir, -1,1)<>'/') $dir .= "/";
$f = "$dir$filename";
# spip_log("find_in_path: essai $f");
if (@is_readable($f)) {
return $f;
}
}
# spip_log("find_in_path: pas de fichier '$filename' sur le chemin '$path'");
}
......
......@@ -63,7 +63,7 @@ function champs_traitements ($p) {
);
$ps = $traitements[$p->nom_champ];
if (!$ps) return $p->code;
if ($p->documents) {
if ($p->descr['documents']) {
$ps = str_replace('traiter_raccourcis(',
'traiter_raccourcis_doublon($doublons,',
str_replace('typo(', 'typo_doublon($doublons,', $ps));
......@@ -180,6 +180,12 @@ function balise_DATE_NOUVEAUTES_dist($p) {
return $p;
}
function balise_DOSSIER_SQUELETTE_dist($p) {
$p->code = "'" . addslashes(dirname($p->descr['sourcefile'])) . "'" ;
$p->statut = 'php';
return $p;
}
function balise_URL_SITE_SPIP_dist($p) {
$p->code = "lire_meta('adresse_site')";
$p->statut = 'php';
......@@ -287,7 +293,7 @@ function balise_RECHERCHE_dist($p) {
}
function balise_COMPTEUR_BOUCLE_dist($p) {
$b = $p->nom_boucle ? $p->nom_boucle : $p->id_mere;
$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
if ($b === '') {
erreur_squelette(
_T('zbug_champ_hors_boucle',
......@@ -302,7 +308,7 @@ function balise_COMPTEUR_BOUCLE_dist($p) {
}
function balise_TOTAL_BOUCLE_dist($p) {
$b = $p->nom_boucle ? $p->nom_boucle : $p->id_mere;
$b = $p->nom_boucle ? $p->nom_boucle : $p->descr['id_mere'];
if ($b === '') {
erreur_squelette(
_T('zbug_champ_hors_boucle',
......@@ -385,7 +391,7 @@ function balise_EMBED_DOCUMENT_dist($p) {
$_id_document = champ_sql('id_document',$p);
$p->code = "calcule_embed_document(intval($_id_document), '" .
texte_script($p->fonctions ? join($p->fonctions, "|") : "") .
"', \$doublons, '" . $p->documents . "')";
"', \$doublons, '" . $p->descr['documents'] . "')";
unset ($p->fonctions);
$p->statut = 'html';
return $p;
......@@ -577,7 +583,7 @@ function calculer_balise_logo ($p) {
$c->nom_champ = $match[2];
$c->id_boucle = $p->id_boucle;
$c->boucles = &$p->boucles;
$c->id_mere = $p->id_mere;
$c->descr = $p->descr;
$c = calculer_champ($c);
$code_lien = str_replace('#'.$match[2], "'.".$c.".'", $code_lien);
}
......@@ -596,7 +602,7 @@ function calculer_balise_logo ($p) {
// cas des documents
if ($type_objet == 'DOCUMENT') {
$code_logo = "calcule_document($_id_objet, '" .
$p->documents .
$p->descr['documents'] .
'\', $doublons)';
if ($flag_fichier)
$p->code = "calcule_fichier_logo($code_logo)";
......
......@@ -83,8 +83,10 @@ class Champ {
var $statut; // 'numerique, 'h'=texte (html) ou 'p'=script (php) ?
// -> definira les pre et post-traitements obligatoires
// champs pour la production de code dependant du contexte
var $id_mere; // pour TOTAL_BOUCLE hors du corps
var $document; // pour embed et img dans les textes
// $id_mere; pour TOTAL_BOUCLE hors du corps
// $document; pour embed et img dans les textes
// sourcefile; pour DOSSIER_SQUELETTE
var $descr = array();
}
......
......@@ -301,7 +301,7 @@ function filtres_arglist($args, $p, $sep) {
if ($arg[0] =='$')
$arg = '$Pile[0][\'' . substr($arg,1) . "']";
elseif ($arg[0] =='<')
$arg = calculer_texte($arg, $p->id_boucle, $p->boucles, $p->id_mere);
$arg = calculer_texte($arg, $p->id_boucle, $p->boucles);
elseif (ereg("^" . NOM_DE_CHAMP ."(.*)$", $arg, $r2)) {
$p->nom_boucle = $r2[2];
$p->nom_champ = $r2[3];
......
......@@ -96,7 +96,7 @@ function calculer_inclure($fichier, $params, $id_boucle, &$boucles) {
// partie droite d'une affectation). Ici sont analyses les elements
// multilingues des squelettes : <:xxx:> et <multi>[fr]coucou</multi>
//
function calculer_texte($texte, $id_boucle, &$boucles, $id_mere) {
function calculer_texte($texte, $id_boucle, &$boucles) {
//
// Les elements multilingues
//
......@@ -435,7 +435,7 @@ function calculer_liste($tableau, $descr, &$boucles, $id_boucle='', $niv=1) {
switch($p->type) {
// texte seul
case 'texte':
$code = calculer_texte($p->texte, $id_boucle, $boucles, $descr['id_mere']);
$code = calculer_texte($p->texte, $id_boucle, $boucles);
$commentaire='';
$avant='';
$apres='';
......@@ -477,8 +477,7 @@ function calculer_liste($tableau, $descr, &$boucles, $id_boucle='', $niv=1) {
// cette structure pourrait etre completee des le phrase' (a faire)
$p->id_boucle = $id_boucle;
$p->boucles = &$boucles;
$p->id_mere = $descr['id_mere'];
$p->documents = $descr['documents'];
$p->descr = $descr;
$p->statut = 'html';
$p->type_requete = $boucles[$id_boucle]->type_requete;
......@@ -538,7 +537,7 @@ function calculer_squelette($squelette, $nom, $gram, $sourcefile) {
$racine = parser($squelette, '',$boucles, $nom);
// tableau des informations sur le squelette
$descr = array('nom' => $nom, 'documents' => false);
$descr = array('nom' => $nom, 'documents' => false, 'sourcefile' => $sourcefile);
if ($boucles) {
// une boucle documents est conditionnee par tout le reste!
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter