From 08a0af34c3fb35a08585b5473c1fa6c3eb8bd7a1 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Sat, 21 Aug 2004 15:35:03 +0000 Subject: [PATCH] =?UTF-8?q?balises=20d=C3=A9finies=20de=20mani=C3=A8re=20n?= =?UTF-8?q?ew=20style=20(Pierre=20Andrews)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc-bcl-squel.php3 | 4 +- inc-index-squel.php3 | 3 +- inc-logo-squel.php3 | 97 ++++--- inc-vrac-squel.php3 | 642 ++++++++++++++++++++++++------------------- 4 files changed, 413 insertions(+), 333 deletions(-) diff --git a/inc-bcl-squel.php3 b/inc-bcl-squel.php3 index 451b3d5bd9..4ca69f3bb9 100644 --- a/inc-bcl-squel.php3 +++ b/inc-bcl-squel.php3 @@ -61,9 +61,11 @@ class ParamChamp { var $boucles; var $id_mere; var $code; + var $entete; function retour() { - return applique_filtres($this->fonctions, $this->code, $this->id_boucle, $this->boucles, $this->id_mere); + list($code_filtre,$entete_filtre) = applique_filtres($this->fonctions, $this->code, $this->id_boucle, $this->boucles, $this->id_mere); + return array($code_filtre,$this->entete.$entete_filtre); } } diff --git a/inc-index-squel.php3 b/inc-index-squel.php3 index f08b187e68..6573c45fd3 100644 --- a/inc-index-squel.php3 +++ b/inc-index-squel.php3 @@ -121,7 +121,8 @@ function calculer_champ($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) // si index_pile a ramene le choix par defaut, // ca doit plutot etre un champ SPIP non SQL, // ou ni l'un ni l'autre - return calculer_champ_divers($fonctions, $nom_champ, $id_boucle, $boucles, $id_mere); + $code = "'#$nom_champ'"; + return applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere); } diff --git a/inc-logo-squel.php3 b/inc-logo-squel.php3 index 8d4bbaa6eb..b783b9533c 100644 --- a/inc-logo-squel.php3 +++ b/inc-logo-squel.php3 @@ -98,15 +98,15 @@ function balise_DATE_dist ($p) { # Fonction commune aux logos (rubriques, articles...) -function calculer_champ_LOGO($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) +function calculer_champ_LOGO($params) { - ereg("^LOGO_(([a-zA-Z]+).*)$", $nom_champ, $regs); + ereg("^LOGO_(([a-zA-Z]+).*)$", $params->nom_champ, $regs); $type_logo = $regs[1]; $type_objet = strtolower($regs[2]); $flag_fichier = 0; // compatibilite ascendante $filtres = ''; - if ($fonctions) { - while (list(, $nom) = each($fonctions)) { + if (is_array($params->fonctions)) { + foreach($params->fonctions as $nom) { if (ereg('^(left|right|center|top|bottom)$', $nom)) $align = $nom; else if ($nom == 'lien') { @@ -129,137 +129,137 @@ function calculer_champ_LOGO($fonctions, $nom_champ, $id_boucle, &$boucles, $id_ } } // recuperer les filtres s'il y en a - $fonctions = $filtres; + $params->fonctions = $filtres; } if ($flag_lien_auto && !$lien) { - $milieu .= "\n\t\$lien = generer_url_$type_objet(" . - index_pile($id_boucle, 'id_$type_objet', $boucles) . + $params->entete .= "\n\t\$lien = generer_url_$type_objet(" . + champ_sql("id_$type_objet", $params) . ");\n"; } else { - $milieu .= "\n\t\$lien = "; + $params->entete .= "\n\t\$lien = "; $a = $lien; while (ereg("^([^#]*)#([A-Za-z_]+)(.*)$", $a, $match)) { - list($c,$m) = calculer_champ(array(), $match[2], $id_boucle, $boucles, $id_mere); + list($c,$m) = calculer_champ(array(), $match[2], $params->id_boucle, $params->boucles, $params->id_mere); // $m est nul dans les cas pre'vus - $milieu .= ((!$match[1]) ? "" :"'$match[1]' .") . " $c ."; + $params->entete .= ((!$match[1]) ? "" :"'$match[1]' .") . " $c ."; $a = $match[3]; } - if ($a) $milieu .= "'$lien';"; + if ($a) $params->entete .= "'$lien';"; else { - if ($lien) $milieu = substr($milieu,1,-1) .";"; - else $milieu .= "'';"; + if ($lien) $params->entete = substr($params->entete,1,-1) .";"; + else $params->entete .= "'';"; } } if ($type_logo == 'RUBRIQUE') { - $milieu .= ' + $params->entete .= ' list($logon, $logoff) = image_rubrique(' . - index_pile($id_boucle, "id_rubrique", $boucles) . ", $flag_fichier); + champ_sql('id_rubrique', $params) . ", $flag_fichier); "; } else if ($type_logo == 'RUBRIQUE_NORMAL') { - $milieu .= ' + $params->entete .= ' list($logon,) = image_rubrique(' . - index_pile($id_boucle, "id_rubrique", $boucles) . ", $flag_fichier); ". ' + champ_sql('id_rubrique', $params) . ", $flag_fichier); ". ' $logoff = ""; '; } else if ($type_logo == 'RUBRIQUE_SURVOL') { - $milieu .= ' + $params->entete .= ' list(,$logon) = image_rubrique(' . - index_pile($id_boucle, "id_rubrique", $boucles) . ", $flag_fichier); ". ' + champ_sql('id_rubrique', $params) . ", $flag_fichier); ". ' $logoff = ""; '; } else if ($type_logo == 'DOCUMENT'){ // Recours a une globale pour compatibilite avec l'ancien code. // Il faudra reprendre inc_documents entierement (tu parles !) - $milieu .= ' + $params->entete .= ' $logoff = ' . - index_pile($id_boucle, "id_document", $boucles) . + champ_sql('id_document', $params) . '; $logon = integre_image($logoff,"","fichier_vignette"); $logoff = ""; '; } else if ($type_logo == 'AUTEUR') { - $milieu .= ' + $params->entete .= ' list($logon, $logoff) = image_auteur(' . - index_pile($id_boucle, "id_auteur", $boucles) . ", $flag_fichier); + champ_sql('id_auteur', $params) . ", $flag_fichier); "; } else if ($type_logo == 'AUTEUR_NORMAL') { - $milieu .= ' + $params->entete .= ' list($logon,) = image_auteur(' . - index_pile($id_boucle, "id_auteur", $boucles) . ", $flag_fichier);".' + champ_sql('id_auteur', $params) . ", $flag_fichier);".' $logoff = ""; '; } else if ($type_logo == 'AUTEUR_SURVOL') { - $milieu .= ' + $params->entete .= ' list(,$logon) = image_auteur(' . - index_pile($id_boucle, "id_auteur", $boucles) . ", $flag_fichier);".' + champ_sql('id_auteur', $params) . ", $flag_fichier);".' $logoff = ""; '; } else if ($type_logo == 'BREVE') { - $milieu .= ' + $params->entete .= ' list($logon, $logoff) = image_breve(' . - index_pile($id_boucle, "id_breve", $boucles) . ", $flag_fichier); + champ_sql('id_breve', $params) . ", $flag_fichier); "; } else if ($type_logo == 'BREVE_RUBRIQUE') { - $milieu .= ' + $params->entete .= ' list($logon, $logoff) = image_breve(' . - index_pile($id_boucle, "id_breve", $boucles) . ", $flag_fichier);".' + champ_sql('id_breve', $params) . ", $flag_fichier);".' if (!$logon) list($logon, $logoff) = image_rubrique(' . - index_pile($id_boucle, "id_rubrique", $boucles) . ", $flag_fichier); + champ_sql('id_rubrique', $params) . ", $flag_fichier); "; } else if ($type_logo == 'SITE') { - $milieu .= ' + $params->entete .= ' list($logon, $logoff) = image_site(' . - index_pile($id_boucle, "id_syndic", $boucles) . ", $flag_fichier); + champ_sql('id_syndic', $params) . ", $flag_fichier); "; } else if ($type_logo == 'MOT') { - $milieu .= ' + $params->entete .= ' list($logon, $logoff) = image_mot(' . - index_pile($id_boucle, "id_mot", $boucles) . ", $flag_fichier); + champ_sql('id_mot', $params) . ", $flag_fichier); "; } else if ($type_logo == 'ARTICLE') { - $milieu .= ' + $params->entete .= ' list($logon, $logoff) = image_article(' . - index_pile($id_boucle, "id_article", $boucles) . ", $flag_fichier); + champ_sql('id_article', $params) . ", $flag_fichier); "; } else if ($type_logo == 'ARTICLE_NORMAL') { - $milieu .= ' + $params->entete .= ' list($logon,) = image_article(' . - index_pile($id_boucle, "id_article", $boucles) . ", $flag_fichier);".' + champ_sql('id_article', $params) . ", $flag_fichier);".' $logoff = ""; '; } else if ($type_logo == 'ARTICLE_SURVOL') { - $milieu .= ' + $params->entete .= ' list(,$logon) = image_article(' . - index_pile($id_boucle, "id_article", $boucles) . ", $flag_fichier);".' + champ_sql('id_article', $params) . ", $flag_fichier);".' $logoff = ""; '; } else if ($type_logo == 'ARTICLE_RUBRIQUE') { - $milieu .= ' + $params->entete .= ' list($logon, $logoff) = image_article(' . - index_pile($id_boucle, "id_article", $boucles) . ", $flag_fichier);".' + champ_sql('id_article', $params) . ", $flag_fichier);".' if (!$logon) list($logon, $logoff) = image_rubrique(' . - index_pile($id_boucle, "id_rubrique", $boucles) . ", $flag_fichier); + champ_sql('id_rubrique', $params) . ", $flag_fichier); "; } @@ -268,13 +268,12 @@ function calculer_champ_LOGO($fonctions, $nom_champ, $id_boucle, &$boucles, $id_ // remarquable, mais a conserver pour compatibilite ascendante. // -> http://www.spip.net/fr_article901.html if ($flag_fichier) - $code = 'ereg_replace("^IMG/","",$logon)'; + $params->code = 'ereg_replace("^IMG/","",$logon)'; else - $code = "affiche_logos(\$logon, \$logoff, \$lien, '". + $params->code = "affiche_logos(\$logon, \$logoff, \$lien, '". addslashes($align) . "')"; - list($c,$m) = applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere); - return array($c,$milieu . $m); + return $params; } ?> diff --git a/inc-vrac-squel.php3 b/inc-vrac-squel.php3 index 36f236d4dd..dfcbc347be 100644 --- a/inc-vrac-squel.php3 +++ b/inc-vrac-squel.php3 @@ -1,297 +1,375 @@ <?php // -// Fonction de traduction des champs Spip basiques -// A terme, elle devrait etre remplace'e par autant de fonctions que de 'case' +// Fonctions new style // -function calculer_champ_divers($fonctions, $nom_champ, $id_boucle, &$boucles, $id_mere) { - global $flag_pcre, $table_primary; - switch($nom_champ) { - - // Introduction (d'un article, d'une breve ou d'un message de forum) - - case 'NOM_SITE_SPIP': - $code = "lire_meta('nom_site')"; - break; - - case 'EMAIL_WEBMASTER': - $code = "lire_meta('email_webmaster')"; - break; - - case 'CHARSET': - $code = "lire_meta('charset')"; - break; - - - case 'LANG_LEFT': - $code = "lang_dir(\$GLOBALS['spip_lang'],'left','right')"; - break; - - case 'LANG_RIGHT': - $code = "lang_dir(\$GLOBALS['spip_lang'],'right','left')"; - break; - - case 'LANG_DIR': - $code = "lang_dir(\$GLOBALS['spip_lang'],'ltr','rtl')"; - break; - - case 'PUCE': - $code = "propre('- ')"; - break; - - - case 'DATE_NOUVEAUTES': - $code = "((lire_meta('quoi_de_neuf') == 'oui' AND lire_meta('majnouv')) ? normaliser_date(lire_meta('majnouv')) : \"'0000-00-00'\")"; - break; - - case 'URL_SITE_SPIP': - $code = "lire_meta('adresse_site')"; - break; - - case 'URL_ARTICLE': - $code = "generer_url_article(" . - index_pile($id_boucle, 'id_article', $boucles) . - ")" ; - if ($boucles[$id_boucle]->hash) - $code = "url_var_recherche(" . $code . ")"; - break; - - case 'URL_RUBRIQUE': - $code = "generer_url_rubrique(" . - index_pile($id_boucle, 'id_rubrique', $boucles) . - ")" ; - if ($boucles[$id_boucle]->hash) - $code = "url_var_recherche(" . $code . ")"; - break; - - case 'URL_BREVE': - $code = "generer_url_breve(" . - index_pile($id_boucle, 'id_breve', $boucles) . - ")"; - if ($boucles[$id_boucle]->hash) - $code = "url_var_recherche(" . $code . ")"; - break; - - case 'URL_MOT': - $code = "generer_url_mot(" . - index_pile($id_boucle, 'id_mot', $boucles) . - ")"; - $code = "url_var_recherche(" . $code . ")"; - break; - - case 'URL_FORUM': - $code = "generer_url_forum(" . - index_pile($id_boucle, 'id_forum', $boucles) .")"; - break; - - case 'URL_DOCUMENT': - $code = "generer_url_document(" . - index_pile($id_boucle, 'id_document', $boucles) . ")"; - break; - - case 'URL_AUTEUR': # 1.7.2 - $code = "generer_url_auteur(" . - index_pile($id_boucle, 'id_auteur', $boucles) .")"; - if ($boucles[$id_boucle]->hash) - $code = "url_var_recherche(" . $code . ")"; - break; - - case 'NOTES': - $milieu = '$lacible = $GLOBALS["les_notes"]; - $GLOBALS["les_notes"] = ""; - $GLOBALS["compt_note"] = 0; - $GLOBALS["marqueur_notes"] ++; - '; - $code = '$lacible'; - break; - - case 'RECHERCHE': - $code = 'htmlspecialchars($GLOBALS["recherche"])'; - break; - - case 'COMPTEUR_BOUCLE': - $code = '$compteur_boucle'; - break; - - case 'TOTAL_BOUCLE': - if ($id_mere === '') { - include_local("inc-debug-squel.php3"); - erreur_squelette(_L("Champ #TOTAL_BOUCLE hors boucle"), '', $id_boucle); - } - $code = "\$Numrows['$id_mere']"; - $boucles[$id_mere]->numrows = true; - break; - - case 'POINTS': - $n = 0; - $b = $id_boucle; - $code = ''; - while ($b != '') { - if ($s = $boucles[$b]->param) { - foreach($s as $v) { - if (strpos($v,'recherche') !== false) { - $code = '$Pile[$SP' . (($n==0) ? "" : "-$n") . - '][points]'; - $b = ''; - break; - } - } - } - $n++; - $b = $boucles[$b]->id_parent; - } - if (!$code) { - include_local("inc-debug-squel.php3"); - erreur_squelette(_L("Champ #POINTS hors d'une recherche"), '', $idb); - } - break; - - case 'POPULARITE_ABSOLUE': - $code = 'ceil(' . - index_pile($id_boucle, "popularite", $boucles) . - ')'; - break; - - case 'POPULARITE_SITE': - $code = 'ceil(lire_meta(\'popularite_total\'))'; - break; - - case 'POPULARITE_MAX': - $code = 'ceil(lire_meta(\'popularite_max\'))'; - break; - - case 'EXPOSER': - $on = 'on'; - $off= ''; - if ($fonctions) { - // Gerer la notation [(#EXPOSER|on,off)] - reset($fonctions); - list(, $onoff) = each($fonctions); - ereg("([^,]*)(,(.*))?", $onoff, $regs); - $on = addslashes($regs[1]); - $off = addslashes($regs[3]); - - // autres filtres - $filtres=Array(); - while (list(, $nom) = each($fonctions)) - $filtres[] = $nom; - $fonctions = $filtres; - } +function balise_NOM_SITE_SPIP_dist($params) { + $params->code = "lire_meta('nom_site')"; + return $params; +} + +function balise_EMAIL_WEBMASTER_dist($params) { + $params->code = "lire_meta('email_webmaster')"; + return $params; +} + +function balise_CHARSET_dist($params) { + $params->code = "lire_meta('charset')"; + return $params; +} + + +function balise_LANG_LEFT_dist($params) { + $params->code = "lang_dir(\$GLOBALS['spip_lang'],'left','right')"; + return $params; +} + +function balise_LANG_RIGHT_dist($params) { + $params->code = "lang_dir(\$GLOBALS['spip_lang'],'right','left')"; + return $params; +} + +function balise_LANG_DIR_dist($params) { + $params->code = "lang_dir(\$GLOBALS['spip_lang'],'ltr','rtl')"; + return $params; +} + +function balise_PUCE_dist($params) { + $params->code = "propre('- ')"; + return $params; +} + + +function balise_DATE_NOUVEAUTES_dist($params) { + $params->code = "((lire_meta('quoi_de_neuf') == 'oui' AND lire_meta('majnouv')) ? normaliser_date(lire_meta('majnouv')) : \"'0000-00-00'\")"; + return $params; +} + +function balise_URL_SITE_SPIP_dist($params) { + $params->code = "lire_meta('adresse_site')"; + return $params; +} + + +function balise_URL_ARTICLE_dist($params) { + $_type = $params->boucles[$params->id_boucle]->type_requete; + if ($_type == 'articles') { + $_id_article = champ_sql('id_article', $params); + $params->code = "generer_url_article($_id_article)"; + } else if ($_type == 'syndic_articles') { + $params->code = champ_sql('url', $params); + } + + if ($params->boucles[$params->id_boucle]->hash) + $params->code = "url_var_recherche(" . $params->code . ")"; - $type_boucle = $boucles[$id_boucle]->type_requete; - $primary_key = $table_primary[$type_boucle]; - - $code = '(calcul_exposer(' - .index_pile($id_boucle, $primary_key, $boucles) - .', "'.$primary_key.'", $Pile[0]) ?'." '$on': '$off')"; - break; - - - // - // Inserer directement un document dans le squelette - // - case 'EMBED_DOCUMENT': - $milieu = ' - $lacible = ' - . index_pile($id_boucle, 'id_document', $boucles) - . '; - $lacible = embed_document($lacible, \'' . - ($fonctions ? join($fonctions, "|") : "") . - '\', false);'; - $fonctions = ""; - $code = '$lacible'; - break; - - // Debut et fin de surlignage auto des mots de la recherche - // on insere une balise Span avec une classe sans spec: - // c'est transparent s'il n'y a pas de recherche, - // sinon elles seront remplacees par les fontions de inc_surligne - // flag_pcre est juste une flag signalant que preg_match est dispo. - - case 'DEBUT_SURLIGNE': - $code = ($flag_pcre ? ('\'<span class="spip_surligneconditionnel">\'') : ''); - break; - case 'FIN_SURLIGNE': - $code = ($flag_pcre ? ('\'</span class="spip_surligneconditionnel">\'') : ''); - break; - - // Formulaire de changement de langue - case 'MENU_LANG': - $code = '"<"."?php - include_ecrire(\"inc_lang.php3\"); - echo menu_langues(\"var_lang\", \$menu_lang); - ?".">"'; - break; - - // Formulaire de changement de langue / page de login - case 'MENU_LANG_ECRIRE': - $code = '"<"."?php - include_ecrire(\"inc_lang.php3\"); - echo menu_langues(\"var_lang_ecrire\", \$menu_lang); - ?".">"'; - break; - - // - // Formulaires de login - // - case 'LOGIN_PRIVE': - $code = '"<"."?php include(\'inc-login.php3\'); login(\'\', \'prive\'); ?".">"'; - break; - - case 'LOGIN_PUBLIC': - if ($nom = $fonctions[0]) - $lacible = "new Link('".$nom."')"; - else - $lacible = '\$GLOBALS[\'clean_link\']'; - $code = '"<"."?php include(\'inc-login.php3\'); login(' . $lacible . ', false); ?".">"'; - $fonctions = array(); - break; - - case 'URL_LOGOUT': - if ($fonctions) { - $url = "&url=".$fonctions[0]; - $fonctions = array(); - } else { - $url = '&url=\'.urlencode(\$clean_link->getUrl()).\''; + return $params; +} + +function balise_URL_RUBRIQUE_dist($params) { + $params->code = "generer_url_rubrique(" . + champ_sql('id_rubrique',$params) . + ")" ; + if ($params->boucles[$params->id_boucle]->hash) + $params->code = "url_var_recherche(" . $params->code . ")"; + return $params; +} + +function balise_URL_BREVE_dist($params) { + $params->code = "generer_url_breve(" . + champ_sql('id_breve',$params) . + ")"; + if ($params->boucles[$params->id_boucle]->hash) + $params->code = "url_var_recherche(" . $params->code . ")"; + return $params; +} + +function balise_URL_MOT_dist($params) { + $params->code = "generer_url_mot(" . + champ_sql('id_mot',$params) . + ")"; + $params->code = "url_var_recherche(" . $params->code . ")"; + return $params; +} + +function balise_URL_FORUM_dist($params) { + $params->code = "generer_url_forum(" . + champ_sql('id_forum',$params) .")"; + return $params; +} + +function balise_URL_DOCUMENT_dist($params) { + $params->code = "generer_url_document(" . + champ_sql('id_document',$params) . ")"; + return $params; +} + +function balise_URL_AUTEUR_dist($params) { + $params->code = "generer_url_auteur(" . + champ_sql('id_auteur',$params) .")"; + if ($params->boucles[$params->id_boucle]->hash) + $params->code = "url_var_recherche(" . $params->code . ")"; + return $params; +} + +function balise_NOTES_dist($params) { + $params->entete = '$lacible = $GLOBALS["les_notes"]; +$GLOBALS["les_notes"] = ""; +$GLOBALS["compt_note"] = 0; +$GLOBALS["marqueur_notes"] ++; +'; + $params->code = '$lacible'; + return $params; +} + +function balise_RECHERCHE_dist($params) { + $params->code = 'htmlspecialchars($GLOBALS["recherche"])'; + return $params; +} + +function balise_COMPTEUR_BOUCLE_dist($params) { + $params->code = '$compteur_boucle'; + return $params; +} + +function balise_TOTAL_BOUCLE_dist($params) { + if ($params->id_mere === '') { + include_local("inc-debug-squel.php3"); + erreur_squelette(_L("Champ #TOTAL_BOUCLE hors boucle"), '', $params->id_boucle); + } + $params->code = "\$Numrows['$params->id_mere']"; + $params->boucles[$params->id_mere]->numrows = true; + return $params; +} + +function balise_POINTS_dist($params) { + $n = 0; + $b = $params->id_boucle; + $params->code = ''; + while ($b != '') { + if ($s = $params->boucles[$b]->param) { + foreach($s as $v) { + if (strpos($v,'recherche') !== false) { + $params->code = '$Pile[$SP' . (($n==0) ? "" : "-$n") . + '][points]'; + $b = ''; + break; } - $code = '"<"."?php if (\$GLOBALS[\'auteur_session\'][\'login\']) - { echo \'spip_cookie.php3?logout_public=\'.\$GLOBALS[\'auteur_session\'][\'login\'].\'' . $url . '\'; } ?".">"'; - break; - - case 'LOGO_ARTICLE': - case 'LOGO_ARTICLE_NORMAL': - case 'LOGO_ARTICLE_RUBRIQUE': - case 'LOGO_ARTICLE_SURVOL': - case 'LOGO_AUTEUR': - case 'LOGO_AUTEUR_NORMAL': - case 'LOGO_AUTEUR_SURVOL': - case 'LOGO_SITE': - case 'LOGO_BREVE': - case 'LOGO_BREVE_RUBRIQUE': - case 'LOGO_MOT': - case 'LOGO_RUBRIQUE': - case 'LOGO_RUBRIQUE_NORMAL': - case 'LOGO_RUBRIQUE_SURVOL': - case 'LOGO_DOCUMENT' : - // retour immediat: filtres derogatoires traites dans la fonction - return calculer_champ_LOGO($fonctions, $nom_champ, $id_boucle, $boucles, $id_mere); - break; - - default: - // champ inconnu. Il s'autodenote. - $code = "'#$nom_champ'"; - break; - } // switch - - list($c,$m) = applique_filtres($fonctions, $code, $id_boucle, $boucles, $id_mere); - return array($c,$milieu . $m); + } + } + $n++; + $b = $params->boucles[$b]->id_parent; + } + if (!$params->code) { + include_local("inc-debug-squel.php3"); + erreur_squelette(_L("Champ #POINTS hors d'une recherche"), '', $params->id_boucle); + } + return $params; +} + +function balise_POPULARITE_ABSOLUE_dist($params) { + $params->code = 'ceil(' . + champ_sql('popularite', $params) . + ')'; + return $params; +} + +function balise_POPULARITE_SITE_dist($params) { + $params->code = 'ceil(lire_meta(\'popularite_total\'))'; + return $params; } +function balise_POPULARITE_MAX_dist($params) { + $params->code = 'ceil(lire_meta(\'popularite_max\'))'; + return $params; +} + +function balise_EXPOSER_dist($params) { + global $table_primary; + $on = 'on'; + $off= ''; + if ($params->fonctions) { + // Gerer la notation [(#EXPOSER|on,off)] + reset($params->fonctions); + list(, $onoff) = each($params->fonctions); + ereg("([^,]*)(,(.*))?", $onoff, $regs); + $on = addslashes($regs[1]); + $off = addslashes($regs[3]); + + // autres filtres + $filtres=Array(); + while (list(, $nom) = each($params->fonctions)) + $filtres[] = $nom; + $params->fonctions = $filtres; + } + + $type_boucle = $params->boucles[$params->id_boucle]->type_requete; + $primary_key = $table_primary[$type_boucle]; + + $params->code = '(calcul_exposer(' + .champ_sql($primary_key, $params) + .', "'.$primary_key.'", $Pile[0]) ?'." '$on': '$off')"; + return $params; +} + + +// +// Inserer directement un document dans le squelette +// +function balise_EMBED_DOCUMENT_dist($params) { + $params->entete = ' +$lacible = ' + . champ_sql('id_document',$params) + . '; +$lacible = embed_document($lacible, \'' . + ($fonctions ? join($fonctions, "|") : "") . + '\', false);'; + $fonctions = ""; + $params->code = '$lacible'; + return $params; +} + +// Debut et fin de surlignage auto des mots de la recherche +// on insere une balise Span avec une classe sans spec: +// c'est transparent s'il n'y a pas de recherche, +// sinon elles seront remplacees par les fontions de inc_surligne +// flag_pcre est juste une flag signalant que preg_match est dispo. + +function balise_DEBUT_SURLIGNE_dist($params) { + global $flag_pcre; + $params->code = ($flag_pcre ? ('\'<span class="spip_surligneconditionnel">\'') : "''"); + return $params; +} +function balise_FIN_SURLIGNE_dist($params) { + global $flag_pcre; + $params->code = ($flag_pcre ? ('\'</span class="spip_surligneconditionnel">\'') : "''"); + return $params; +} + +// Formulaire de changement de langue +function balise_MENU_LANG_dist($params) { + $params->code = '"<"."?php +include_ecrire(\"inc_lang.php3\"); +echo menu_langues(\"var_lang\", \$menu_lang); +?".">"'; + return $params; +} + +// Formulaire de changement de langue / page de login +function balise_MENU_LANG_ECRIRE_dist($params) { + $params->code = '"<"."?php +include_ecrire(\"inc_lang.php3\"); +echo menu_langues(\"var_lang_ecrire\", \$menu_lang); +?".">"'; + return $params; +} // -// Fonctions OK +// Formulaires de login // +function balise_LOGIN_PRIVE_dist($params) { + $params->code = '"<"."?php include(\'inc-login.php3\'); login(\'\', \'prive\'); ?".">"'; + return $params; +} + +function balise_LOGIN_PUBLIC_dist($params) { + if ($nom = $params->fonctions[0]) + $lacible = "new Link('".$nom."')"; + else + $lacible = '\$GLOBALS[\'clean_link\']'; + $params->code = '"<"."?php include(\'inc-login.php3\'); login(' . $lacible . ', false); ?".">"'; + $params->fonctions = array(); + return $params; +} + +function balise_URL_LOGOUT_dist($params) { + if ($params->fonctions) { + $url = "&url=".$params->fonctions[0]; + $params->fonctions = array(); + } else { + $url = '&url=\'.urlencode(\$clean_link->getUrl()).\''; + } + $params->code = '"<"."?php if (\$GLOBALS[\'auteur_session\'][\'login\']) +{ echo \'spip_cookie.php3?logout_public=\'.\$GLOBALS[\'auteur_session\'][\'login\'].\'' . $url . '\'; } ?".">"'; + return $params; +} + +function balise_LOGO_ARTICLE_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_ARTICLE_NORMAL_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_ARTICLE_RUBRIQUE_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_ARTICLE_SURVOL_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_AUTEUR_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_AUTEUR_NORMAL_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_AUTEUR_SURVOL_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_SITE_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_BREVE_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_BREVE_RUBRIQUE_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_MOT_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_RUBRIQUE_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_RUBRIQUE_NORMAL_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_RUBRIQUE_SURVOL_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + +function balise_LOGO_DOCUMENT_dist($params) { + // retour immediat: filtres derogatoires traites dans la fonction + return calculer_champ_LOGO($params); +} + function balise_INTRODUCTION_dist ($p) { $_type = $p->boucles[$p->id_boucle]->type_requete; -- GitLab