You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

178 lines
5.5 KiB

<?php
/***************************************************************************\
* SPIP, Système de publication pour l'internet *
* *
* Copyright © avec tendresse depuis 2001 *
* Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribué sous licence GNU/GPL. *
* Pour plus de détails voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Fonctions génériques pour les balises `#LOGO_XXXX`
*
* @package SPIP\Core\Compilateur\Balises
**/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Compile la balise dynamique `#LOGO_xx` qui retourne le code HTML
* pour afficher l'image de logo d'un objet éditorial de SPIP.
*
* Le type d'objet est récupéré dans le nom de la balise, tel que
* `LOGO_ARTICLE` ou `LOGO_SITE`.
*
* Ces balises ont quelques options :
*
* - La balise peut aussi demander explicitement le logo normal ou de survol,
* avec `LOGO_ARTICLE_NORMAL` ou `LOGO_ARTICLE_SURVOL`.
* - On peut demander un logo de rubrique en absence de logo sur l'objet éditorial
* demandé avec `LOGO_ARTICLE_RUBRIQUE`
* - `LOGO_ARTICLE*` ajoute un lien sur l'image du logo vers l'objet éditorial
* - `LOGO_ARTICLE**` retourne le nom du fichier de logo.
* - `LOGO_ARTICLE{right}`. Valeurs possibles : top left right center bottom
* - `LOGO_DOCUMENT{icone}`. Valeurs possibles : auto icone apercu vignette
* - `LOGO_ARTICLE{200, 0}`. Redimensionnement indiqué
*
* @balise
* @uses logo_survol()
* @example
* ```
* #LOGO_ARTICLE
* ```
*
* @param Champ $p
* Pile au niveau de la balise
* @return Champ
* Pile complétée par le code à générer
*/
function balise_LOGO__dist($p) {
7 years ago
preg_match(',^LOGO_([A-Z_]+?)(|_NORMAL|_SURVOL|_RUBRIQUE)$,i', $p->nom_champ, $regs);
14 years ago
$type = strtolower($regs[1]);
$suite_logo = $regs[2];
// cas de #LOGO_SITE_SPIP
if ($type == 'site_spip') {
14 years ago
$type = 'site';
$_id_objet = "\"'0'\"";
}
$id_objet = id_table_objet($type);
if (!isset($_id_objet)) {
$_id_objet = champ_sql($id_objet, $p);
}
La balise {{{#LOGO_ARTICLE}}} et consorts rentrent dans le moule commnun. Les faux filtres {{{|fichier}}} et {{{|lien}}} sont remplacés respectivement par l'écriture {{{#LOGO_ARTICLE**}}} et {{{#LOGO_ARTICLE*}}}. Les faux filtres de positionnement ({{{top,left,right,center,bottom}}}) et les balises {{{#URL_}}}xxx en position de filtres sont à présent à écrire comme argument de la balise, l'écriture {{{#LOGO_ARTICLE|left}}} est donc remplacée par {{{#LOGO_ARTICLE{left} }}} et l'écriture {{{#LOGO_ARTICLE|#URL_AUTEUR}}} est donc remplacée par {{{#LOGO_ARTICLE{#URL_AUTEUR} }}}. Ces deux écritures peuvent se combiner entre elles et avec les deux nombres donnant les dimensions, comme dans {{{LOGO_DOCUMENT{#URL_ARTICLE,bottom,60,80} }}}, l'ordre des 4 paramètres étant libre. Avec tout ça, il n'est plus nécessaire d'écrire {{{ || }}} pour stipuler que les filtres normaux commencent. Les anciennes écritures restent comprises mais doivent être considérées comme obsolètes. Une écriture théoriquement possible mais vraisemblablement pas utilisée est néanmoins totalement exclue à présent (savoir {{{#LOGO_ARTICLE|f}}} où {{{f}}} ne contiendrait pas le caractère # mais donnerait on ne sais comment une URL). Test (en plus de squelette-dist, remis d'équerre): <BOUCLE_doc(DOCUMENTS){id_article}> [(#LOGO_DOCUMENT{43,left,66})] LOGO_DOCUMENT{# URL_ARTICLE,77,bottom,67} [(#LOGO_DOCUMENT{#URL_ARTICLE,,bottom,77,67})] <br> LOGO_DOCUMENT** [(#LOGO_DOCUMENT**)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT* [(#LOGO_DOCUMENT*)] <br> LOGO_DOCUMENT{12,13}||trim{f}} [(#LOGO_DOCUMENT{12,13}||trim{f})] <br> LOGO_DOCUMENT{left,bottom,right} [(#LOGO_DOCUMENT{left,bottom,right})] </BOUCLE_doc>
14 years ago
$fichier = ($p->etoile === '**') ? -1 : 0;
$coord = array();
Retour sur [13550] qui introduisait une syntaxe non dérogatoire pour les balises LOGO_* mais continuait à traiter l'ancienne syntaxe. Comme ce traitement fonctionnait par modification de l'arbre de syntaxe abstraite, il est finalement effectué dès l'analyse syntaxique, ce qui permet de ne plus avoir à modifier l'arbre, et débarasse le code du compilateur de cas qui à terme ne se présenteront plus jamais. Par ailleurs certains cas ne passaient plus. Je continue à améliorer le jeu de tests ([13550] puis [14074]) en remplaçant image_sepia (indispo sur la dev) et je retire des cas idiots qui font croire à tort à une erreur): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{icone} [(#LOGO_DOCUMENT{icone})] <br> LOGO_DOCUMENT{vignette} [(#LOGO_DOCUMENT{vignette}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu} [(#LOGO_DOCUMENT{apercu})] <br> LOGO_DOCUMENT{auto} [(#LOGO_DOCUMENT{auto})] <br> LOGO_DOCUMENT|image_reduire [(#LOGO_DOCUMENT|image_reduire)] <br><br><br><br> LOGO_DOCUMENT{16,50}|URL_ARTICLE [(#LOGO_DOCUMENT{16,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{16,50}|right [(#LOGO_DOCUMENT{16,50}|right)] <br> LOGO_DOCUMENT{16,50}|lien [(#LOGO_DOCUMENT{16,50}|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{16,50}|image_reduire [(#LOGO_DOCUMENT{16,50}|image_reduire)] <br> LOGO_DOCUMENT{icone,16,50} [(#LOGO_DOCUMENT{icone,16,50})] <br> LOGO_DOCUMENT{vignette,16,50} [(#LOGO_DOCUMENT{vignette,16,50}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu,16,50} [(#LOGO_DOCUMENT{apercu,16,50})] <br> LOGO_DOCUMENT{auto,16,50} [(#LOGO_DOCUMENT{auto,16,50})] <br> LOGO_DOCUMENT{apercu,16,50,right} [(#LOGO_DOCUMENT{apercu,16,50,right})] <br> </BOUCLE_doc> }}}
14 years ago
$align = $lien = '';
remise en marche des #LOGO_DOCUMENT qui produisent bien le meme resultat que sur une branche 2.0 On ajoute un parametre optionnel a la balise qui peut avoir 4 valeurs possibles : #LOGO_DOCUMENT{icone} renverra toujours l'icone du type de document #LOGO_DOCUMENT{apercu} renverra l'apercu d'une image ou l'icone (mais pas la vignette telechargee si il y en a une) #LOGO_DOCUMENT{vignette} renverra la vignette telechargee si il y en a une, ou rien #LOGO_DOCUMENT{auto} correspond au fonctionnement par defaut, sans l'argument. Cet argument peut avoir n'importe quelle place dans la liste des arguments Jeu de test : <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{icone} [(#LOGO_DOCUMENT{icone})] <br> LOGO_DOCUMENT{vignette} [(#LOGO_DOCUMENT{vignette}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu} [(#LOGO_DOCUMENT{apercu})] <br> LOGO_DOCUMENT{auto} [(#LOGO_DOCUMENT{auto})] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{16,50}|URL_ARTICLE [(#LOGO_DOCUMENT{16,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{16,50}|right [(#LOGO_DOCUMENT{16,50}|right)] <br> LOGO_DOCUMENT{16,50}|fichier [(#LOGO_DOCUMENT{16,50}|fichier)] <br> LOGO_DOCUMENT{16,50}|lien [(#LOGO_DOCUMENT{16,50}|lien)] <br> LOGO_DOCUMENT{16,50}|fichier|strtoupper [(#LOGO_DOCUMENT{16,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{16,50}||image_sepia [(#LOGO_DOCUMENT{16,50}||image_sepia)] <br> LOGO_DOCUMENT{icone,16,50} [(#LOGO_DOCUMENT{icone,16,50})] <br> LOGO_DOCUMENT{vignette,16,50} [(#LOGO_DOCUMENT{vignette,16,50}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu,16,50} [(#LOGO_DOCUMENT{apercu,16,50})] <br> LOGO_DOCUMENT{auto,16,50} [(#LOGO_DOCUMENT{auto,16,50})] <br> LOGO_DOCUMENT{apercu,16,50,right} [(#LOGO_DOCUMENT{apercu,16,50,right})] <br> </BOUCLE_doc>
14 years ago
$mode_logo = '';
La balise {{{#LOGO_ARTICLE}}} et consorts rentrent dans le moule commnun. Les faux filtres {{{|fichier}}} et {{{|lien}}} sont remplacés respectivement par l'écriture {{{#LOGO_ARTICLE**}}} et {{{#LOGO_ARTICLE*}}}. Les faux filtres de positionnement ({{{top,left,right,center,bottom}}}) et les balises {{{#URL_}}}xxx en position de filtres sont à présent à écrire comme argument de la balise, l'écriture {{{#LOGO_ARTICLE|left}}} est donc remplacée par {{{#LOGO_ARTICLE{left} }}} et l'écriture {{{#LOGO_ARTICLE|#URL_AUTEUR}}} est donc remplacée par {{{#LOGO_ARTICLE{#URL_AUTEUR} }}}. Ces deux écritures peuvent se combiner entre elles et avec les deux nombres donnant les dimensions, comme dans {{{LOGO_DOCUMENT{#URL_ARTICLE,bottom,60,80} }}}, l'ordre des 4 paramètres étant libre. Avec tout ça, il n'est plus nécessaire d'écrire {{{ || }}} pour stipuler que les filtres normaux commencent. Les anciennes écritures restent comprises mais doivent être considérées comme obsolètes. Une écriture théoriquement possible mais vraisemblablement pas utilisée est néanmoins totalement exclue à présent (savoir {{{#LOGO_ARTICLE|f}}} où {{{f}}} ne contiendrait pas le caractère # mais donnerait on ne sais comment une URL). Test (en plus de squelette-dist, remis d'équerre): <BOUCLE_doc(DOCUMENTS){id_article}> [(#LOGO_DOCUMENT{43,left,66})] LOGO_DOCUMENT{# URL_ARTICLE,77,bottom,67} [(#LOGO_DOCUMENT{#URL_ARTICLE,,bottom,77,67})] <br> LOGO_DOCUMENT** [(#LOGO_DOCUMENT**)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT* [(#LOGO_DOCUMENT*)] <br> LOGO_DOCUMENT{12,13}||trim{f}} [(#LOGO_DOCUMENT{12,13}||trim{f})] <br> LOGO_DOCUMENT{left,bottom,right} [(#LOGO_DOCUMENT{left,bottom,right})] </BOUCLE_doc>
14 years ago
if ($p->param and !$p->param[0][0]) {
Retour sur [13550] qui introduisait une syntaxe non dérogatoire pour les balises LOGO_* mais continuait à traiter l'ancienne syntaxe. Comme ce traitement fonctionnait par modification de l'arbre de syntaxe abstraite, il est finalement effectué dès l'analyse syntaxique, ce qui permet de ne plus avoir à modifier l'arbre, et débarasse le code du compilateur de cas qui à terme ne se présenteront plus jamais. Par ailleurs certains cas ne passaient plus. Je continue à améliorer le jeu de tests ([13550] puis [14074]) en remplaçant image_sepia (indispo sur la dev) et je retire des cas idiots qui font croire à tort à une erreur): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{icone} [(#LOGO_DOCUMENT{icone})] <br> LOGO_DOCUMENT{vignette} [(#LOGO_DOCUMENT{vignette}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu} [(#LOGO_DOCUMENT{apercu})] <br> LOGO_DOCUMENT{auto} [(#LOGO_DOCUMENT{auto})] <br> LOGO_DOCUMENT|image_reduire [(#LOGO_DOCUMENT|image_reduire)] <br><br><br><br> LOGO_DOCUMENT{16,50}|URL_ARTICLE [(#LOGO_DOCUMENT{16,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{16,50}|right [(#LOGO_DOCUMENT{16,50}|right)] <br> LOGO_DOCUMENT{16,50}|lien [(#LOGO_DOCUMENT{16,50}|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{16,50}|image_reduire [(#LOGO_DOCUMENT{16,50}|image_reduire)] <br> LOGO_DOCUMENT{icone,16,50} [(#LOGO_DOCUMENT{icone,16,50})] <br> LOGO_DOCUMENT{vignette,16,50} [(#LOGO_DOCUMENT{vignette,16,50}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu,16,50} [(#LOGO_DOCUMENT{apercu,16,50})] <br> LOGO_DOCUMENT{auto,16,50} [(#LOGO_DOCUMENT{auto,16,50})] <br> LOGO_DOCUMENT{apercu,16,50,right} [(#LOGO_DOCUMENT{apercu,16,50,right})] <br> </BOUCLE_doc> }}}
14 years ago
$params = $p->param[0];
La balise {{{#LOGO_ARTICLE}}} et consorts rentrent dans le moule commnun. Les faux filtres {{{|fichier}}} et {{{|lien}}} sont remplacés respectivement par l'écriture {{{#LOGO_ARTICLE**}}} et {{{#LOGO_ARTICLE*}}}. Les faux filtres de positionnement ({{{top,left,right,center,bottom}}}) et les balises {{{#URL_}}}xxx en position de filtres sont à présent à écrire comme argument de la balise, l'écriture {{{#LOGO_ARTICLE|left}}} est donc remplacée par {{{#LOGO_ARTICLE{left} }}} et l'écriture {{{#LOGO_ARTICLE|#URL_AUTEUR}}} est donc remplacée par {{{#LOGO_ARTICLE{#URL_AUTEUR} }}}. Ces deux écritures peuvent se combiner entre elles et avec les deux nombres donnant les dimensions, comme dans {{{LOGO_DOCUMENT{#URL_ARTICLE,bottom,60,80} }}}, l'ordre des 4 paramètres étant libre. Avec tout ça, il n'est plus nécessaire d'écrire {{{ || }}} pour stipuler que les filtres normaux commencent. Les anciennes écritures restent comprises mais doivent être considérées comme obsolètes. Une écriture théoriquement possible mais vraisemblablement pas utilisée est néanmoins totalement exclue à présent (savoir {{{#LOGO_ARTICLE|f}}} où {{{f}}} ne contiendrait pas le caractère # mais donnerait on ne sais comment une URL). Test (en plus de squelette-dist, remis d'équerre): <BOUCLE_doc(DOCUMENTS){id_article}> [(#LOGO_DOCUMENT{43,left,66})] LOGO_DOCUMENT{# URL_ARTICLE,77,bottom,67} [(#LOGO_DOCUMENT{#URL_ARTICLE,,bottom,77,67})] <br> LOGO_DOCUMENT** [(#LOGO_DOCUMENT**)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT* [(#LOGO_DOCUMENT*)] <br> LOGO_DOCUMENT{12,13}||trim{f}} [(#LOGO_DOCUMENT{12,13}||trim{f})] <br> LOGO_DOCUMENT{left,bottom,right} [(#LOGO_DOCUMENT{left,bottom,right})] </BOUCLE_doc>
14 years ago
array_shift($params);
foreach ($params as $a) {
La balise {{{#LOGO_ARTICLE}}} et consorts rentrent dans le moule commnun. Les faux filtres {{{|fichier}}} et {{{|lien}}} sont remplacés respectivement par l'écriture {{{#LOGO_ARTICLE**}}} et {{{#LOGO_ARTICLE*}}}. Les faux filtres de positionnement ({{{top,left,right,center,bottom}}}) et les balises {{{#URL_}}}xxx en position de filtres sont à présent à écrire comme argument de la balise, l'écriture {{{#LOGO_ARTICLE|left}}} est donc remplacée par {{{#LOGO_ARTICLE{left} }}} et l'écriture {{{#LOGO_ARTICLE|#URL_AUTEUR}}} est donc remplacée par {{{#LOGO_ARTICLE{#URL_AUTEUR} }}}. Ces deux écritures peuvent se combiner entre elles et avec les deux nombres donnant les dimensions, comme dans {{{LOGO_DOCUMENT{#URL_ARTICLE,bottom,60,80} }}}, l'ordre des 4 paramètres étant libre. Avec tout ça, il n'est plus nécessaire d'écrire {{{ || }}} pour stipuler que les filtres normaux commencent. Les anciennes écritures restent comprises mais doivent être considérées comme obsolètes. Une écriture théoriquement possible mais vraisemblablement pas utilisée est néanmoins totalement exclue à présent (savoir {{{#LOGO_ARTICLE|f}}} où {{{f}}} ne contiendrait pas le caractère # mais donnerait on ne sais comment une URL). Test (en plus de squelette-dist, remis d'équerre): <BOUCLE_doc(DOCUMENTS){id_article}> [(#LOGO_DOCUMENT{43,left,66})] LOGO_DOCUMENT{# URL_ARTICLE,77,bottom,67} [(#LOGO_DOCUMENT{#URL_ARTICLE,,bottom,77,67})] <br> LOGO_DOCUMENT** [(#LOGO_DOCUMENT**)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT* [(#LOGO_DOCUMENT*)] <br> LOGO_DOCUMENT{12,13}||trim{f}} [(#LOGO_DOCUMENT{12,13}||trim{f})] <br> LOGO_DOCUMENT{left,bottom,right} [(#LOGO_DOCUMENT{left,bottom,right})] </BOUCLE_doc>
14 years ago
if ($a[0]->type === 'texte') {
$n = $a[0]->texte;
if (is_numeric($n)) {
$coord[] = $n;
} elseif (in_array($n, array('top', 'left', 'right', 'center', 'bottom'))) {
remise en marche des #LOGO_DOCUMENT qui produisent bien le meme resultat que sur une branche 2.0 On ajoute un parametre optionnel a la balise qui peut avoir 4 valeurs possibles : #LOGO_DOCUMENT{icone} renverra toujours l'icone du type de document #LOGO_DOCUMENT{apercu} renverra l'apercu d'une image ou l'icone (mais pas la vignette telechargee si il y en a une) #LOGO_DOCUMENT{vignette} renverra la vignette telechargee si il y en a une, ou rien #LOGO_DOCUMENT{auto} correspond au fonctionnement par defaut, sans l'argument. Cet argument peut avoir n'importe quelle place dans la liste des arguments Jeu de test : <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{icone} [(#LOGO_DOCUMENT{icone})] <br> LOGO_DOCUMENT{vignette} [(#LOGO_DOCUMENT{vignette}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu} [(#LOGO_DOCUMENT{apercu})] <br> LOGO_DOCUMENT{auto} [(#LOGO_DOCUMENT{auto})] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{16,50}|URL_ARTICLE [(#LOGO_DOCUMENT{16,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{16,50}|right [(#LOGO_DOCUMENT{16,50}|right)] <br> LOGO_DOCUMENT{16,50}|fichier [(#LOGO_DOCUMENT{16,50}|fichier)] <br> LOGO_DOCUMENT{16,50}|lien [(#LOGO_DOCUMENT{16,50}|lien)] <br> LOGO_DOCUMENT{16,50}|fichier|strtoupper [(#LOGO_DOCUMENT{16,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{16,50}||image_sepia [(#LOGO_DOCUMENT{16,50}||image_sepia)] <br> LOGO_DOCUMENT{icone,16,50} [(#LOGO_DOCUMENT{icone,16,50})] <br> LOGO_DOCUMENT{vignette,16,50} [(#LOGO_DOCUMENT{vignette,16,50}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu,16,50} [(#LOGO_DOCUMENT{apercu,16,50})] <br> LOGO_DOCUMENT{auto,16,50} [(#LOGO_DOCUMENT{auto,16,50})] <br> LOGO_DOCUMENT{apercu,16,50,right} [(#LOGO_DOCUMENT{apercu,16,50,right})] <br> </BOUCLE_doc>
14 years ago
$align = $n;
} elseif (in_array($n, array('auto', 'icone', 'apercu', 'vignette'))) {
remise en marche des #LOGO_DOCUMENT qui produisent bien le meme resultat que sur une branche 2.0 On ajoute un parametre optionnel a la balise qui peut avoir 4 valeurs possibles : #LOGO_DOCUMENT{icone} renverra toujours l'icone du type de document #LOGO_DOCUMENT{apercu} renverra l'apercu d'une image ou l'icone (mais pas la vignette telechargee si il y en a une) #LOGO_DOCUMENT{vignette} renverra la vignette telechargee si il y en a une, ou rien #LOGO_DOCUMENT{auto} correspond au fonctionnement par defaut, sans l'argument. Cet argument peut avoir n'importe quelle place dans la liste des arguments Jeu de test : <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{icone} [(#LOGO_DOCUMENT{icone})] <br> LOGO_DOCUMENT{vignette} [(#LOGO_DOCUMENT{vignette}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu} [(#LOGO_DOCUMENT{apercu})] <br> LOGO_DOCUMENT{auto} [(#LOGO_DOCUMENT{auto})] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{16,50}|URL_ARTICLE [(#LOGO_DOCUMENT{16,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{16,50}|right [(#LOGO_DOCUMENT{16,50}|right)] <br> LOGO_DOCUMENT{16,50}|fichier [(#LOGO_DOCUMENT{16,50}|fichier)] <br> LOGO_DOCUMENT{16,50}|lien [(#LOGO_DOCUMENT{16,50}|lien)] <br> LOGO_DOCUMENT{16,50}|fichier|strtoupper [(#LOGO_DOCUMENT{16,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{16,50}||image_sepia [(#LOGO_DOCUMENT{16,50}||image_sepia)] <br> LOGO_DOCUMENT{icone,16,50} [(#LOGO_DOCUMENT{icone,16,50})] <br> LOGO_DOCUMENT{vignette,16,50} [(#LOGO_DOCUMENT{vignette,16,50}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu,16,50} [(#LOGO_DOCUMENT{apercu,16,50})] <br> LOGO_DOCUMENT{auto,16,50} [(#LOGO_DOCUMENT{auto,16,50})] <br> LOGO_DOCUMENT{apercu,16,50,right} [(#LOGO_DOCUMENT{apercu,16,50,right})] <br> </BOUCLE_doc>
14 years ago
$mode_logo = $n;
}
} else {
$lien = calculer_liste($a, $p->descr, $p->boucles, $p->id_boucle);
remise en marche des #LOGO_DOCUMENT qui produisent bien le meme resultat que sur une branche 2.0 On ajoute un parametre optionnel a la balise qui peut avoir 4 valeurs possibles : #LOGO_DOCUMENT{icone} renverra toujours l'icone du type de document #LOGO_DOCUMENT{apercu} renverra l'apercu d'une image ou l'icone (mais pas la vignette telechargee si il y en a une) #LOGO_DOCUMENT{vignette} renverra la vignette telechargee si il y en a une, ou rien #LOGO_DOCUMENT{auto} correspond au fonctionnement par defaut, sans l'argument. Cet argument peut avoir n'importe quelle place dans la liste des arguments Jeu de test : <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{icone} [(#LOGO_DOCUMENT{icone})] <br> LOGO_DOCUMENT{vignette} [(#LOGO_DOCUMENT{vignette}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu} [(#LOGO_DOCUMENT{apercu})] <br> LOGO_DOCUMENT{auto} [(#LOGO_DOCUMENT{auto})] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{16,50}|URL_ARTICLE [(#LOGO_DOCUMENT{16,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{16,50}|right [(#LOGO_DOCUMENT{16,50}|right)] <br> LOGO_DOCUMENT{16,50}|fichier [(#LOGO_DOCUMENT{16,50}|fichier)] <br> LOGO_DOCUMENT{16,50}|lien [(#LOGO_DOCUMENT{16,50}|lien)] <br> LOGO_DOCUMENT{16,50}|fichier|strtoupper [(#LOGO_DOCUMENT{16,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{16,50}||image_sepia [(#LOGO_DOCUMENT{16,50}||image_sepia)] <br> LOGO_DOCUMENT{icone,16,50} [(#LOGO_DOCUMENT{icone,16,50})] <br> LOGO_DOCUMENT{vignette,16,50} [(#LOGO_DOCUMENT{vignette,16,50}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu,16,50} [(#LOGO_DOCUMENT{apercu,16,50})] <br> LOGO_DOCUMENT{auto,16,50} [(#LOGO_DOCUMENT{auto,16,50})] <br> LOGO_DOCUMENT{apercu,16,50,right} [(#LOGO_DOCUMENT{apercu,16,50,right})] <br> </BOUCLE_doc>
14 years ago
}
La balise {{{#LOGO_ARTICLE}}} et consorts rentrent dans le moule commnun. Les faux filtres {{{|fichier}}} et {{{|lien}}} sont remplacés respectivement par l'écriture {{{#LOGO_ARTICLE**}}} et {{{#LOGO_ARTICLE*}}}. Les faux filtres de positionnement ({{{top,left,right,center,bottom}}}) et les balises {{{#URL_}}}xxx en position de filtres sont à présent à écrire comme argument de la balise, l'écriture {{{#LOGO_ARTICLE|left}}} est donc remplacée par {{{#LOGO_ARTICLE{left} }}} et l'écriture {{{#LOGO_ARTICLE|#URL_AUTEUR}}} est donc remplacée par {{{#LOGO_ARTICLE{#URL_AUTEUR} }}}. Ces deux écritures peuvent se combiner entre elles et avec les deux nombres donnant les dimensions, comme dans {{{LOGO_DOCUMENT{#URL_ARTICLE,bottom,60,80} }}}, l'ordre des 4 paramètres étant libre. Avec tout ça, il n'est plus nécessaire d'écrire {{{ || }}} pour stipuler que les filtres normaux commencent. Les anciennes écritures restent comprises mais doivent être considérées comme obsolètes. Une écriture théoriquement possible mais vraisemblablement pas utilisée est néanmoins totalement exclue à présent (savoir {{{#LOGO_ARTICLE|f}}} où {{{f}}} ne contiendrait pas le caractère # mais donnerait on ne sais comment une URL). Test (en plus de squelette-dist, remis d'équerre): <BOUCLE_doc(DOCUMENTS){id_article}> [(#LOGO_DOCUMENT{43,left,66})] LOGO_DOCUMENT{# URL_ARTICLE,77,bottom,67} [(#LOGO_DOCUMENT{#URL_ARTICLE,,bottom,77,67})] <br> LOGO_DOCUMENT** [(#LOGO_DOCUMENT**)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT* [(#LOGO_DOCUMENT*)] <br> LOGO_DOCUMENT{12,13}||trim{f}} [(#LOGO_DOCUMENT{12,13}||trim{f})] <br> LOGO_DOCUMENT{left,bottom,right} [(#LOGO_DOCUMENT{left,bottom,right})] </BOUCLE_doc>
14 years ago
}
}
$coord_x = !$coord ? 0 : intval(array_shift($coord));
$coord_y = !$coord ? 0 : intval(array_shift($coord));
Retour sur [13550] qui introduisait une syntaxe non dérogatoire pour les balises LOGO_* mais continuait à traiter l'ancienne syntaxe. Comme ce traitement fonctionnait par modification de l'arbre de syntaxe abstraite, il est finalement effectué dès l'analyse syntaxique, ce qui permet de ne plus avoir à modifier l'arbre, et débarasse le code du compilateur de cas qui à terme ne se présenteront plus jamais. Par ailleurs certains cas ne passaient plus. Je continue à améliorer le jeu de tests ([13550] puis [14074]) en remplaçant image_sepia (indispo sur la dev) et je retire des cas idiots qui font croire à tort à une erreur): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{icone} [(#LOGO_DOCUMENT{icone})] <br> LOGO_DOCUMENT{vignette} [(#LOGO_DOCUMENT{vignette}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu} [(#LOGO_DOCUMENT{apercu})] <br> LOGO_DOCUMENT{auto} [(#LOGO_DOCUMENT{auto})] <br> LOGO_DOCUMENT|image_reduire [(#LOGO_DOCUMENT|image_reduire)] <br><br><br><br> LOGO_DOCUMENT{16,50}|URL_ARTICLE [(#LOGO_DOCUMENT{16,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{16,50}|right [(#LOGO_DOCUMENT{16,50}|right)] <br> LOGO_DOCUMENT{16,50}|lien [(#LOGO_DOCUMENT{16,50}|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT{16,50}|image_reduire [(#LOGO_DOCUMENT{16,50}|image_reduire)] <br> LOGO_DOCUMENT{icone,16,50} [(#LOGO_DOCUMENT{icone,16,50})] <br> LOGO_DOCUMENT{vignette,16,50} [(#LOGO_DOCUMENT{vignette,16,50}|sinon{'pas de vignette'})] <br> LOGO_DOCUMENT{apercu,16,50} [(#LOGO_DOCUMENT{apercu,16,50})] <br> LOGO_DOCUMENT{auto,16,50} [(#LOGO_DOCUMENT{auto,16,50})] <br> LOGO_DOCUMENT{apercu,16,50,right} [(#LOGO_DOCUMENT{apercu,16,50,right})] <br> </BOUCLE_doc> }}}
14 years ago
if ($p->etoile === '*') {
include_spip('balise/url_');
$lien = generer_generer_url_arg($type, $p, $_id_objet);
}
14 years ago
$connect = $p->id_boucle ? $p->boucles[$p->id_boucle]->sql_serveur : '';
14 years ago
if ($type == 'document') {
Début de mise à plat de la balise générique #LOGO_. Tout ce qui est calculable à la compilation l'est effectivement, ce qui allège le code produit. Conséquence, les fonctions {{{affiche_logos, calcule_logo_document, calcule_logo}}} n'ont plus les mêmes signatures, on en profite pour les nommer plus rationnellement, voire les faire disparaître. La production du code HTML est enfin rejetée en dehors du compilateur proprement dit, la fonction {{{balise_LOGO__dist}}} d'une part, et dans {{{inc/documents}}}. Ce n'est pas encore facilement surchargeable, mais on s'en approche. Test (sur un article avec logo): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{200,50}|URL_ARTICLE [(#LOGO_DOCUMENT{200,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{200,50}|right [(#LOGO_DOCUMENT{200,50}|right)] <br> LOGO_DOCUMENT{200,50}|fichier [(#LOGO_DOCUMENT{200,50}|fichier)] <br> LOGO_DOCUMENT{200,50}|lien [(#LOGO_DOCUMENT{200,50}|lien)] <br> LOGO_DOCUMENT{200,50}|fichier|strtoupper [(#LOGO_DOCUMENT{200,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{200,50}||image_sepia [(#LOGO_DOCUMENT{200,50}||image_sepia)] </BOUCLE_doc> }}}
14 years ago
$qconnect = _q($connect);
$doc = "quete_document($_id_objet, $qconnect)";
if ($fichier) {
$code = "quete_logo_file($doc, $qconnect)";
} else {
$code = "quete_logo_document($doc, " . ($lien ? $lien : "''") . ", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
}
Début de mise à plat de la balise générique #LOGO_. Tout ce qui est calculable à la compilation l'est effectivement, ce qui allège le code produit. Conséquence, les fonctions {{{affiche_logos, calcule_logo_document, calcule_logo}}} n'ont plus les mêmes signatures, on en profite pour les nommer plus rationnellement, voire les faire disparaître. La production du code HTML est enfin rejetée en dehors du compilateur proprement dit, la fonction {{{balise_LOGO__dist}}} d'une part, et dans {{{inc/documents}}}. Ce n'est pas encore facilement surchargeable, mais on s'en approche. Test (sur un article avec logo): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{200,50}|URL_ARTICLE [(#LOGO_DOCUMENT{200,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{200,50}|right [(#LOGO_DOCUMENT{200,50}|right)] <br> LOGO_DOCUMENT{200,50}|fichier [(#LOGO_DOCUMENT{200,50}|fichier)] <br> LOGO_DOCUMENT{200,50}|lien [(#LOGO_DOCUMENT{200,50}|lien)] <br> LOGO_DOCUMENT{200,50}|fichier|strtoupper [(#LOGO_DOCUMENT{200,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{200,50}||image_sepia [(#LOGO_DOCUMENT{200,50}||image_sepia)] </BOUCLE_doc> }}}
14 years ago
// (x=non-faux ? y : '') pour affecter x en retournant y
if ($p->descr['documents']) {
$code = '(($doublons["documents"] .= ",". '
. $_id_objet
. ") ? $code : '')";
}
} elseif ($connect) {
Début de mise à plat de la balise générique #LOGO_. Tout ce qui est calculable à la compilation l'est effectivement, ce qui allège le code produit. Conséquence, les fonctions {{{affiche_logos, calcule_logo_document, calcule_logo}}} n'ont plus les mêmes signatures, on en profite pour les nommer plus rationnellement, voire les faire disparaître. La production du code HTML est enfin rejetée en dehors du compilateur proprement dit, la fonction {{{balise_LOGO__dist}}} d'une part, et dans {{{inc/documents}}}. Ce n'est pas encore facilement surchargeable, mais on s'en approche. Test (sur un article avec logo): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{200,50}|URL_ARTICLE [(#LOGO_DOCUMENT{200,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{200,50}|right [(#LOGO_DOCUMENT{200,50}|right)] <br> LOGO_DOCUMENT{200,50}|fichier [(#LOGO_DOCUMENT{200,50}|fichier)] <br> LOGO_DOCUMENT{200,50}|lien [(#LOGO_DOCUMENT{200,50}|lien)] <br> LOGO_DOCUMENT{200,50}|fichier|strtoupper [(#LOGO_DOCUMENT{200,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{200,50}||image_sepia [(#LOGO_DOCUMENT{200,50}||image_sepia)] </BOUCLE_doc> }}}
14 years ago
$code = "''";
7 years ago
spip_log('Les logos distants ne sont pas prevus');
Multi-base: les boucles référençant des connexions externes {{{<BOUCLE1(A:...}}} ou les pages appelées ainsi (paramètre d'URL {{{&connect=...}}} calculent à présent correctement les modèles contenus dans les champs SQL soumis aux filtre '''typo()''' et '''propre()'''. C'est un pas en avant dans la résolution complète de #716. Différences avec les versions précédentes: * (bug de PCRE) les notes nommées {{{ [[<*> ...}}} ne peuvent plus contenir d'espaces entre les deux crochets et le chevron; * les fonctions redéfinissables {{{avant_propre}}} et {{{apres_propre}}} sont évacuées, faisant double emploi avec les pipelines {{{pre_propre}}} et {{{post_propre}}}. * surtout: le pipeline {{{pre_propre}}} recevra un texte où les raccourcis de liens ({{{ [->art1] }}} etc) seront déjà expansés. Test: {{{ Doc 2239 centré <doc2239|center> Je mets 2 fois un raccourci de glossaire [?SPIP] [?SPIP] puis un [raccourci->art1] et un autre, automatique, [->art3634]. Suivre la note [[elle est terminée par un [raccourci->art1]]]. Un moment de poésie. <poesie> un haiku sur 2 lignes </poesie> Elle préfère parler d'un {accroissement de la dispersionsalariale} [[ [{Perspectives économiques}->http://www.oecd.org/document/4/0,3343,fr_2649_201185_20347588_1_1_1_1,00.html] - Vol. 2007-1, n¡~81, mai 2007, p. ~184. ]] Elle aussi préfère parler d'un {accroissement de la dispersion salariale} mais sur une seule ligne [[ [{Perspectives économiques}->http://www.oecd.org/document/4/0,3343,fr_2649_201185_20347588_1_1_1_1,00.html] - Vol. 2007-1, n¡~81, mai 2007, p. ~184. ]]. Une Juliette [[<*> sans numéro.]]. }}}
16 years ago
} else {
14 years ago
$code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
Début de mise à plat de la balise générique #LOGO_. Tout ce qui est calculable à la compilation l'est effectivement, ce qui allège le code produit. Conséquence, les fonctions {{{affiche_logos, calcule_logo_document, calcule_logo}}} n'ont plus les mêmes signatures, on en profite pour les nommer plus rationnellement, voire les faire disparaître. La production du code HTML est enfin rejetée en dehors du compilateur proprement dit, la fonction {{{balise_LOGO__dist}}} d'une part, et dans {{{inc/documents}}}. Ce n'est pas encore facilement surchargeable, mais on s'en approche. Test (sur un article avec logo): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{200,50}|URL_ARTICLE [(#LOGO_DOCUMENT{200,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{200,50}|right [(#LOGO_DOCUMENT{200,50}|right)] <br> LOGO_DOCUMENT{200,50}|fichier [(#LOGO_DOCUMENT{200,50}|fichier)] <br> LOGO_DOCUMENT{200,50}|lien [(#LOGO_DOCUMENT{200,50}|lien)] <br> LOGO_DOCUMENT{200,50}|fichier|strtoupper [(#LOGO_DOCUMENT{200,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{200,50}||image_sepia [(#LOGO_DOCUMENT{200,50}||image_sepia)] </BOUCLE_doc> }}}
14 years ago
}
// demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
if ($coord_x or $coord_y) {
$code = "filtrer('image_graver',filtrer('image_reduire'," . $code . ", '$coord_x', '$coord_y'))";
}
Début de mise à plat de la balise générique #LOGO_. Tout ce qui est calculable à la compilation l'est effectivement, ce qui allège le code produit. Conséquence, les fonctions {{{affiche_logos, calcule_logo_document, calcule_logo}}} n'ont plus les mêmes signatures, on en profite pour les nommer plus rationnellement, voire les faire disparaître. La production du code HTML est enfin rejetée en dehors du compilateur proprement dit, la fonction {{{balise_LOGO__dist}}} d'une part, et dans {{{inc/documents}}}. Ce n'est pas encore facilement surchargeable, mais on s'en approche. Test (sur un article avec logo): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{200,50}|URL_ARTICLE [(#LOGO_DOCUMENT{200,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{200,50}|right [(#LOGO_DOCUMENT{200,50}|right)] <br> LOGO_DOCUMENT{200,50}|fichier [(#LOGO_DOCUMENT{200,50}|fichier)] <br> LOGO_DOCUMENT{200,50}|lien [(#LOGO_DOCUMENT{200,50}|lien)] <br> LOGO_DOCUMENT{200,50}|fichier|strtoupper [(#LOGO_DOCUMENT{200,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{200,50}||image_sepia [(#LOGO_DOCUMENT{200,50}||image_sepia)] </BOUCLE_doc> }}}
14 years ago
$p->code = $code;
$p->interdire_scripts = false;
return $p;
}
/**
* Calcule le code HTML pour l'image d'un logo
*
* @param string $id_objet
* Nom de la clé primaire de l'objet (id_article, ...)
* @param string $_id_objet
* Code pour la compilation permettant de récupérer la valeur de l'identifiant
* @param string $type
* Type d'objet
* @param string $align
* Alignement demandé du logo
* @param int $fichier
* - -1 pour retourner juste le chemin de l'image
* - 0 pour retourner le code HTML de l'image
* @param string $lien
* Lien pour encadrer l'image avec si présent
* @param Champ $p
* Pile au niveau de la balise
* @param string $suite
* Suite éventuelle de la balise logo, telle que `_SURVOL`, `_NORMAL` ou `_RUBRIQUE`.
* @return string
* Code compilé retournant le chemin du logo ou le code HTML du logo.
**/
function logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $_lien, $p, $suite) {
$code = "quete_logo('$id_objet', '" .
(($suite == '_SURVOL') ? 'off' :
(($suite == '_NORMAL') ? 'on' : 'ON')) .
14 years ago
"', $_id_objet," .
(($suite == '_RUBRIQUE') ?
7 years ago
champ_sql('id_rubrique', $p) :
(($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")) .
7 years ago
', ' . intval($fichier) . ')';
14 years ago
if ($fichier) {
return $code;
}
14 years ago
$align = preg_replace(",\W,", "", $align);
Début de mise à plat de la balise générique #LOGO_. Tout ce qui est calculable à la compilation l'est effectivement, ce qui allège le code produit. Conséquence, les fonctions {{{affiche_logos, calcule_logo_document, calcule_logo}}} n'ont plus les mêmes signatures, on en profite pour les nommer plus rationnellement, voire les faire disparaître. La production du code HTML est enfin rejetée en dehors du compilateur proprement dit, la fonction {{{balise_LOGO__dist}}} d'une part, et dans {{{inc/documents}}}. Ce n'est pas encore facilement surchargeable, mais on s'en approche. Test (sur un article avec logo): {{{ <BOUCLE_doc(DOCUMENTS){id_article}{doublons}> <h1>DOCUMENT #ID_DOCUMENT</h1> LOGO_DOCUMENT|URL_ARTICLE [(#LOGO_DOCUMENT|#URL_ARTICLE)] <br> LOGO_DOCUMENT|right [(#LOGO_DOCUMENT|right)] <br> LOGO_DOCUMENT|fichier [(#LOGO_DOCUMENT|fichier)] <br> LOGO_DOCUMENT|lien [(#LOGO_DOCUMENT|lien)] <br> LOGO_DOCUMENT|fichier|strtoupper [(#LOGO_DOCUMENT|fichier|strtoupper)] <br> LOGO_DOCUMENT||image_sepia [(#LOGO_DOCUMENT||image_sepia)] <br><br><br><br> LOGO_DOCUMENT{200,50}|URL_ARTICLE [(#LOGO_DOCUMENT{200,50}|#URL_ARTICLE)] <br> LOGO_DOCUMENT{200,50}|right [(#LOGO_DOCUMENT{200,50}|right)] <br> LOGO_DOCUMENT{200,50}|fichier [(#LOGO_DOCUMENT{200,50}|fichier)] <br> LOGO_DOCUMENT{200,50}|lien [(#LOGO_DOCUMENT{200,50}|lien)] <br> LOGO_DOCUMENT{200,50}|fichier|strtoupper [(#LOGO_DOCUMENT{200,50}|fichier|strtoupper)] <br> LOGO_DOCUMENT{200,50}||image_sepia [(#LOGO_DOCUMENT{200,50}||image_sepia)] </BOUCLE_doc> }}}
14 years ago
return "quete_html_logo($code, '$align', " .($_lien ? $_lien : "''") .")";
}