5940b0f4bf6d58e66f0ffd0d16af25979a280f65
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2011 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined('_ECRIRE_INC_VERSION')) return;
16 // Fonction des balises #LOGO_XXXX
17 // (les balises portant ce type de nom sont traitees en bloc ici)
20 // http://doc.spip.org/@balise_LOGO__dist
21 function balise_LOGO__dist ($p) {
23 preg_match(",^LOGO_([A-Z_]+?)(|_NORMAL|_SURVOL|_RUBRIQUE)$,i", $p->nom_champ
, $regs);
24 $type = strtolower($regs[1]);
25 $suite_logo = $regs[2];
27 // cas de #LOGO_SITE_SPIP
28 if ($type == 'site_spip') {
30 $_id_objet = "\"'0'\"";
31 $id_objet = 'id_syndic'; # parait faux mais donne bien "siteNN"
33 $id_objet = "id_".$type;
34 if ($id_objet == 'id_site') $id_objet = "id_syndic"; # correction
35 $_id_objet = champ_sql($id_objet, $p);
38 $fichier = ($p->etoile
=== '**') ?
-1 : 0;
43 if ($p->param
AND !$p->param
[0][0]) {
44 $params = $p->param
[0];
46 foreach($params as $a) {
47 if ($a[0]->type
=== 'texte') {
51 elseif (in_array($n,array('top','left','right','center','bottom')))
53 elseif (in_array($n,array('auto','icone','apercu','vignette')))
56 else $lien = calculer_liste($a, $p->descr
, $p->boucles
, $p->id_boucle
);
61 $coord_x = !$coord ?
0 : intval(array_shift($coord));
62 $coord_y = !$coord ?
0 : intval(array_shift($coord));
64 if ($p->etoile
=== '*') {
65 include_spip('balise/url_');
66 $lien = generer_generer_url_arg($type, $p, $_id_objet);
69 $connect = $p->id_boucle ?
$p->boucles
[$p->id_boucle
]->sql_serveur
:'';
70 if ($type == 'document') {
71 $qconnect = _q($connect);
72 $doc = "quete_document($_id_objet, $qconnect)";
74 $code = "quete_logo_file($doc, $qconnect)";
75 else $code = "quete_logo_document($doc, " . ($lien ?
$lien : "''") . ", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
76 // (x=non-faux ? y : '') pour affecter x en retournant y
77 if ($p->descr
['documents'])
78 $code = '(($doublons["documents"] .= ",". '
84 spip_log("Les logos distants ne sont pas prevus");
86 $code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
89 // demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
90 if ($coord_x OR $coord_y) {
91 $code = "filtrer('image_graver',filtrer('image_reduire',".$code.", '$coord_x', '$coord_y'))";
95 $p->interdire_scripts
= false;
99 function logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite)
101 $code = "quete_logo('$id_objet', '" .
102 (($suite == '_SURVOL') ?
'off' :
103 (($suite == '_NORMAL') ?
'on' : 'ON')) .
105 (($suite == '_RUBRIQUE') ?
106 champ_sql("id_rubrique", $p) :
107 (($type == 'rubrique') ?
"quete_parent($_id_objet)" : "''")) .
108 ", " . intval($fichier) . ")";
110 if ($fichier) return $code;
112 $code = "\n((!is_array(\$l = $code)) ? '':\n (" .
113 '"<img class=\"spip_logos\" alt=\"\"' .
114 ($align ?
" align=\\\"$align\\\"" : '')
115 . ' src=\"$l[0]\"" . $l[2] . ($l[1] ? " onmouseover=\"this.src=\'$l[1]\'\" onmouseout=\"this.src=\'$l[0]\'\"" : "") . \' />\'))';
117 if (!$lien) return $code;
119 return ('(strlen($logo='.$code.')?\'<a href="\' .' . $lien . ' . \'">\' . $logo . \'</a>\':\'\')');