Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
class ButtonBrokenImageBox extends BrokenImgBox {
4
  var $_field_name;
5
  var $_field_value;
6
  var $_action_url;
7
 
8
  function ButtonBrokenImageBox($width, $height, $alt, $field, $value, $action_url) {
9
    $this->BrokenImgBox($width, $height, $alt);
10
 
11
    $this->_field_name  = $field;
12
    $this->_field_value = $value;
13
    $this->set_action_url($action_url);
14
  }
15
 
16
  function readCSS(&$state) {
17
    parent::readCSS($state);
18
 
19
    $this->_readCSS($state,
20
                    array(CSS_HTML2PS_FORM_ACTION));
21
  }
22
 
23
  function set_action_url($action_url) {
24
    $this->_action_url = $action_url;
25
  }
26
 
27
  function show(&$driver) {
28
    $status = parent::show($driver);
29
 
30
    global $g_config;
31
    if ($g_config['renderforms']) {
32
      $driver->field_pushbuttonimage($this->get_left_padding(),
33
                                     $this->get_top_padding(),
34
                                     $this->get_width()  + $this->get_padding_left() + $this->get_padding_right(),
35
                                     $this->get_height() + $this->get_padding_top()  + $this->get_padding_bottom(),
36
                                     $this->_field_name,
37
                                     $this->_field_value,
38
                                     $this->_action_url);
39
    };
40
 
41
    return $status;
42
  }
43
}
44
 
45
class ButtonImageBox extends ImgBox {
46
  var $_field_name;
47
  var $_field_value;
48
  var $_action_url;
49
 
50
  function ButtonImageBox($img, $field, $value, $action_url) {
51
    $this->ImgBox($img);
52
 
53
    $this->_field_name  = $field;
54
    $this->_field_value = $value;
55
    $this->set_action_url($action_url);
56
  }
57
 
58
  function readCSS(&$state) {
59
    parent::readCSS($state);
60
 
61
    $this->_readCSS($state,
62
                    array(CSS_HTML2PS_FORM_ACTION));
63
  }
64
 
65
  function set_action_url($action_url) {
66
    $this->_action_url = $action_url;
67
  }
68
 
69
  function show(&$driver) {
70
    $status = parent::show($driver);
71
 
72
    global $g_config;
73
    if ($g_config['renderforms']) {
74
      $driver->field_pushbuttonimage($this->get_left_padding(),
75
                                     $this->get_top_padding(),
76
                                     $this->get_width()  + $this->get_padding_left() + $this->get_padding_right(),
77
                                     $this->get_height() + $this->get_padding_top()  + $this->get_padding_bottom(),
78
                                     $this->_field_name,
79
                                     $this->_field_value,
80
                                     $this->_action_url);
81
    };
82
 
83
    return $status;
84
  }
85
 
86
  function &create(&$root, &$pipeline) {
87
    $name  = $root->get_attribute('name');
88
    $value = $root->get_attribute('value');
89
 
90
    $url_autofix = new AutofixUrl();
91
    $src = $url_autofix->apply(trim($root->get_attribute("src")));
92
 
93
    $src_img = ImageFactory::get($pipeline->guess_url($src), $pipeline);
94
    if (is_null($src_img)) {
95
      error_log(sprintf("Cannot open image at '%s'", $src));
96
 
97
      if ($root->has_attribute('width')) {
98
        $width = px2pt($root->get_attribute('width'));
99
      } else {
100
        $width = px2pt(BROKEN_IMAGE_DEFAULT_SIZE_PX);
101
      };
102
 
103
      if ($root->has_attribute('height')) {
104
        $height = px2pt($root->get_attribute('height'));
105
      } else {
106
        $height = px2pt(BROKEN_IMAGE_DEFAULT_SIZE_PX);
107
      };
108
 
109
      $alt = $root->get_attribute('alt');
110
 
111
      $css_state =& $pipeline->get_current_css_state();
112
      $box =& new ButtonBrokenImagebox($width, $height, $alt, $name, $value,
113
                                       $css_state->get_property(CSS_HTML2PS_FORM_ACTION));
114
      $box->readCSS($css_state);
115
      return $box;
116
    };
117
 
118
    $css_state =& $pipeline->get_current_css_state();
119
    $box =& new ButtonImageBox($src_img, $name, $value,
120
                               $css_state->get_property(CSS_HTML2PS_FORM_ACTION));
121
    $box->readCSS($css_state);
122
    $box->_setupSize();
123
 
124
    return $box;
125
  }
126
}
127
 
128
?>