X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Fbalise%2Flogo_.php;fp=www%2Fecrire%2Fbalise%2Flogo_.php;h=5940b0f4bf6d58e66f0ffd0d16af25979a280f65;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c
diff --git a/www/ecrire/balise/logo_.php b/www/ecrire/balise/logo_.php
new file mode 100644
index 0000000..5940b0f
--- /dev/null
+++ b/www/ecrire/balise/logo_.php
@@ -0,0 +1,125 @@
+nom_champ, $regs);
+ $type = strtolower($regs[1]);
+ $suite_logo = $regs[2];
+
+ // cas de #LOGO_SITE_SPIP
+ if ($type == 'site_spip') {
+ $type = 'site';
+ $_id_objet = "\"'0'\"";
+ $id_objet = 'id_syndic'; # parait faux mais donne bien "siteNN"
+ } else {
+ $id_objet = "id_".$type;
+ if ($id_objet == 'id_site') $id_objet = "id_syndic"; # correction
+ $_id_objet = champ_sql($id_objet, $p);
+ }
+
+ $fichier = ($p->etoile === '**') ? -1 : 0;
+ $coord = array();
+ $align = $lien = '';
+ $mode_logo = '';
+
+ if ($p->param AND !$p->param[0][0]) {
+ $params = $p->param[0];
+ array_shift($params);
+ foreach($params as $a) {
+ 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')))
+ $align = $n;
+ elseif (in_array($n,array('auto','icone','apercu','vignette')))
+ $mode_logo = $n;
+ }
+ else $lien = calculer_liste($a, $p->descr, $p->boucles, $p->id_boucle);
+
+ }
+ }
+
+ $coord_x = !$coord ? 0 : intval(array_shift($coord));
+ $coord_y = !$coord ? 0 : intval(array_shift($coord));
+
+ if ($p->etoile === '*') {
+ include_spip('balise/url_');
+ $lien = generer_generer_url_arg($type, $p, $_id_objet);
+ }
+
+ $connect = $p->id_boucle ?$p->boucles[$p->id_boucle]->sql_serveur :'';
+ if ($type == 'document') {
+ $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)";
+ // (x=non-faux ? y : '') pour affecter x en retournant y
+ if ($p->descr['documents'])
+ $code = '(($doublons["documents"] .= ",". '
+ . $_id_objet
+ . ") ? $code : '')";
+ }
+ elseif ($connect) {
+ $code = "''";
+ spip_log("Les logos distants ne sont pas prevus");
+ } else {
+ $code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
+ }
+
+ // 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'))";
+ }
+
+ $p->code = $code;
+ $p->interdire_scripts = false;
+ return $p;
+}
+
+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')) .
+ "', $_id_objet," .
+ (($suite == '_RUBRIQUE') ?
+ champ_sql("id_rubrique", $p) :
+ (($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")) .
+ ", " . intval($fichier) . ")";
+
+ if ($fichier) return $code;
+
+ $code = "\n((!is_array(\$l = $code)) ? '':\n (" .
+ '"\'))';
+
+ if (!$lien) return $code;
+
+ return ('(strlen($logo='.$code.')?\'\' . $logo . \'\':\'\')');
+
+}
+
+
+
+?>