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