Blame view

libs/SMARTY/plugins/function.popup.php 3.2 KB
42868d70   andryeyev   Создал GIT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
  <?php
  /**
   * Smarty plugin
   * @package Smarty
   * @subpackage plugins
   */
  
  
  /**
   * Smarty {popup} function plugin
   *
   * Type:     function<br>
   * Name:     popup<br>
   * Purpose:  make text pop up in windows via overlib
   * @link http://smarty.php.net/manual/en/language.function.popup.php {popup}
   *          (Smarty online manual)
   * @author   Monte Ohrt <monte at ohrt dot com>
   * @param array
   * @param Smarty
   * @return string
   */
  function smarty_function_popup($params, &$smarty)
  {
      $append = '';
      foreach ($params as $_key=>$_value) {
          switch ($_key) {
              case 'text':
              case 'trigger':
              case 'function':
              case 'inarray':
                  $$_key = (string)$_value;
                  if ($_key == 'function' || $_key == 'inarray')
                      $append .= ',' . strtoupper($_key) . ",'$_value'";
                  break;
  
              case 'caption':
              case 'closetext':
              case 'status':
                  $append .= ',' . strtoupper($_key) . ",'" . str_replace("'","\'",$_value) . "'";
                  break;
  
              case 'fgcolor':
              case 'bgcolor':
              case 'textcolor':
              case 'capcolor':
              case 'closecolor':
              case 'textfont':
              case 'captionfont':
              case 'closefont':
              case 'fgbackground':
              case 'bgbackground':
              case 'caparray':
              case 'capicon':
              case 'background':
              case 'frame':
                  $append .= ',' . strtoupper($_key) . ",'$_value'";
                  break;
  
              case 'textsize':
              case 'captionsize':
              case 'closesize':
              case 'width':
              case 'height':
              case 'border':
              case 'offsetx':
              case 'offsety':
              case 'snapx':
              case 'snapy':
              case 'fixx':
              case 'fixy':
              case 'padx':
              case 'pady':
              case 'timeout':
              case 'delay':
                  $append .= ',' . strtoupper($_key) . ",$_value";
                  break;
  
              case 'sticky':
              case 'left':
              case 'right':
              case 'center':
              case 'above':
              case 'below':
              case 'noclose':
              case 'autostatus':
              case 'autostatuscap':
              case 'fullhtml':
              case 'hauto':
              case 'vauto':
              case 'mouseoff':
              case 'followmouse':
              case 'closeclick':
                  if ($_value) $append .= ',' . strtoupper($_key);
                  break;
  
              default:
                  $smarty->trigger_error("[popup] unknown parameter $_key", E_USER_WARNING);
          }
      }
  
      if (empty($text) && !isset($inarray) && empty($function)) {
          $smarty->trigger_error("overlib: attribute 'text' or 'inarray' or 'function' required");
          return false;
      }
  
      if (empty($trigger)) { $trigger = "onmouseover"; }
  
      $retval = $trigger . '="return overlib(\''.preg_replace(array("!'!","![\r\n]!"),array("\'",'\r'),$text).'\'';
      $retval .= $append . ');"';
      if ($trigger == 'onmouseover')
         $retval .= ' onmouseout="nd();"';
  
  
      return $retval;
  }
  
  /* vim: set expandtab: */
  
  ?>