PageRenderTime 34ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/spip/ecrire/balise/logo_.php

https://github.com/eyeswebcrea/espace-couture-sittler.fr
PHP | 125 lines | 85 code | 23 blank | 17 comment | 22 complexity | fe8ac8636df3f1d4d305bfce00ba00f6 MD5 | raw file
Possible License(s): LGPL-2.1, GPL-3.0
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2011 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined('_ECRIRE_INC_VERSION')) return;
  12. //
  13. // Fonction des balises #LOGO_XXXX
  14. // (les balises portant ce type de nom sont traitees en bloc ici)
  15. //
  16. // http://doc.spip.org/@balise_LOGO__dist
  17. function balise_LOGO__dist ($p) {
  18. preg_match(",^LOGO_([A-Z_]+?)(|_NORMAL|_SURVOL|_RUBRIQUE)$,i", $p->nom_champ, $regs);
  19. $type = strtolower($regs[1]);
  20. $suite_logo = $regs[2];
  21. // cas de #LOGO_SITE_SPIP
  22. if ($type == 'site_spip') {
  23. $type = 'site';
  24. $_id_objet = "\"'0'\"";
  25. $id_objet = 'id_syndic'; # parait faux mais donne bien "siteNN"
  26. } else {
  27. $id_objet = "id_".$type;
  28. if ($id_objet == 'id_site') $id_objet = "id_syndic"; # correction
  29. $_id_objet = champ_sql($id_objet, $p);
  30. }
  31. $fichier = ($p->etoile === '**') ? -1 : 0;
  32. $coord = array();
  33. $align = $lien = '';
  34. $mode_logo = '';
  35. if ($p->param AND !$p->param[0][0]) {
  36. $params = $p->param[0];
  37. array_shift($params);
  38. foreach($params as $a) {
  39. if ($a[0]->type === 'texte') {
  40. $n = $a[0]->texte;
  41. if (is_numeric($n))
  42. $coord[]= $n;
  43. elseif (in_array($n,array('top','left','right','center','bottom')))
  44. $align = $n;
  45. elseif (in_array($n,array('auto','icone','apercu','vignette')))
  46. $mode_logo = $n;
  47. }
  48. else $lien = calculer_liste($a, $p->descr, $p->boucles, $p->id_boucle);
  49. }
  50. }
  51. $coord_x = !$coord ? 0 : intval(array_shift($coord));
  52. $coord_y = !$coord ? 0 : intval(array_shift($coord));
  53. if ($p->etoile === '*') {
  54. include_spip('balise/url_');
  55. $lien = generer_generer_url_arg($type, $p, $_id_objet);
  56. }
  57. $connect = $p->id_boucle ?$p->boucles[$p->id_boucle]->sql_serveur :'';
  58. if ($type == 'document') {
  59. $qconnect = _q($connect);
  60. $doc = "quete_document($_id_objet, $qconnect)";
  61. if ($fichier)
  62. $code = "quete_logo_file($doc, $qconnect)";
  63. else $code = "quete_logo_document($doc, " . ($lien ? $lien : "''") . ", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
  64. // (x=non-faux ? y : '') pour affecter x en retournant y
  65. if ($p->descr['documents'])
  66. $code = '(($doublons["documents"] .= ",". '
  67. . $_id_objet
  68. . ") ? $code : '')";
  69. }
  70. elseif ($connect) {
  71. $code = "''";
  72. spip_log("Les logos distants ne sont pas prevus");
  73. } else {
  74. $code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
  75. }
  76. // demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
  77. if ($coord_x OR $coord_y) {
  78. $code = "filtrer('image_graver',filtrer('image_reduire',".$code.", '$coord_x', '$coord_y'))";
  79. }
  80. $p->code = $code;
  81. $p->interdire_scripts = false;
  82. return $p;
  83. }
  84. function logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite)
  85. {
  86. $code = "quete_logo('$id_objet', '" .
  87. (($suite == '_SURVOL') ? 'off' :
  88. (($suite == '_NORMAL') ? 'on' : 'ON')) .
  89. "', $_id_objet," .
  90. (($suite == '_RUBRIQUE') ?
  91. champ_sql("id_rubrique", $p) :
  92. (($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")) .
  93. ", " . intval($fichier) . ")";
  94. if ($fichier) return $code;
  95. $code = "\n((!is_array(\$l = $code)) ? '':\n (" .
  96. '"<img class=\"spip_logos\" alt=\"\"' .
  97. ($align ? " align=\\\"$align\\\"" : '')
  98. . ' src=\"$l[0]\"" . $l[2] . ($l[1] ? " onmouseover=\"this.src=\'$l[1]\'\" onmouseout=\"this.src=\'$l[0]\'\"" : "") . \' />\'))';
  99. if (!$lien) return $code;
  100. return ('(strlen($logo='.$code.')?\'<a href="\' .' . $lien . ' . \'">\' . $logo . \'</a>\':\'\')');
  101. }
  102. ?>