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 . \'\':\'\')'); + +} + + + +?>