128 lines
3.8 KiB
PHP
128 lines
3.8 KiB
PHP
<?php
|
|
|
|
class ButtonBrokenImageBox extends BrokenImgBox {
|
|
var $_field_name;
|
|
var $_field_value;
|
|
var $_action_url;
|
|
|
|
function ButtonBrokenImageBox($width, $height, $alt, $field, $value, $action_url) {
|
|
$this->BrokenImgBox($width, $height, $alt);
|
|
|
|
$this->_field_name = $field;
|
|
$this->_field_value = $value;
|
|
$this->set_action_url($action_url);
|
|
}
|
|
|
|
function readCSS(&$state) {
|
|
parent::readCSS($state);
|
|
|
|
$this->_readCSS($state,
|
|
array(CSS_HTML2PS_FORM_ACTION));
|
|
}
|
|
|
|
function set_action_url($action_url) {
|
|
$this->_action_url = $action_url;
|
|
}
|
|
|
|
function show(&$driver) {
|
|
$status = parent::show($driver);
|
|
|
|
global $g_config;
|
|
if ($g_config['renderforms']) {
|
|
$driver->field_pushbuttonimage($this->get_left_padding(),
|
|
$this->get_top_padding(),
|
|
$this->get_width() + $this->get_padding_left() + $this->get_padding_right(),
|
|
$this->get_height() + $this->get_padding_top() + $this->get_padding_bottom(),
|
|
$this->_field_name,
|
|
$this->_field_value,
|
|
$this->_action_url);
|
|
};
|
|
|
|
return $status;
|
|
}
|
|
}
|
|
|
|
class ButtonImageBox extends ImgBox {
|
|
var $_field_name;
|
|
var $_field_value;
|
|
var $_action_url;
|
|
|
|
function ButtonImageBox($img, $field, $value, $action_url) {
|
|
$this->ImgBox($img);
|
|
|
|
$this->_field_name = $field;
|
|
$this->_field_value = $value;
|
|
$this->set_action_url($action_url);
|
|
}
|
|
|
|
function readCSS(&$state) {
|
|
parent::readCSS($state);
|
|
|
|
$this->_readCSS($state,
|
|
array(CSS_HTML2PS_FORM_ACTION));
|
|
}
|
|
|
|
function set_action_url($action_url) {
|
|
$this->_action_url = $action_url;
|
|
}
|
|
|
|
function show(&$driver) {
|
|
$status = parent::show($driver);
|
|
|
|
global $g_config;
|
|
if ($g_config['renderforms']) {
|
|
$driver->field_pushbuttonimage($this->get_left_padding(),
|
|
$this->get_top_padding(),
|
|
$this->get_width() + $this->get_padding_left() + $this->get_padding_right(),
|
|
$this->get_height() + $this->get_padding_top() + $this->get_padding_bottom(),
|
|
$this->_field_name,
|
|
$this->_field_value,
|
|
$this->_action_url);
|
|
};
|
|
|
|
return $status;
|
|
}
|
|
|
|
function &create(&$root, &$pipeline) {
|
|
$name = $root->get_attribute('name');
|
|
$value = $root->get_attribute('value');
|
|
|
|
$url_autofix = new AutofixUrl();
|
|
$src = $url_autofix->apply(trim($root->get_attribute("src")));
|
|
|
|
$src_img = Image::get($pipeline->guess_url($src), $pipeline);
|
|
if (is_null($src_img)) {
|
|
error_log(sprintf("Cannot open image at '%s'", $src));
|
|
|
|
if ($root->has_attribute('width')) {
|
|
$width = px2pt($root->get_attribute('width'));
|
|
} else {
|
|
$width = px2pt(BROKEN_IMAGE_DEFAULT_SIZE_PX);
|
|
};
|
|
|
|
if ($root->has_attribute('height')) {
|
|
$height = px2pt($root->get_attribute('height'));
|
|
} else {
|
|
$height = px2pt(BROKEN_IMAGE_DEFAULT_SIZE_PX);
|
|
};
|
|
|
|
$alt = $root->get_attribute('alt');
|
|
|
|
$css_state =& $pipeline->getCurrentCSSState();
|
|
$box =& new ButtonBrokenImagebox($width, $height, $alt, $name, $value,
|
|
$css_state->getProperty(CSS_HTML2PS_FORM_ACTION));
|
|
$box->readCSS($css_state);
|
|
return $box;
|
|
};
|
|
|
|
$css_state =& $pipeline->getCurrentCSSState();
|
|
$box =& new ButtonImageBox($src_img, $name, $value,
|
|
$css_state->getProperty(CSS_HTML2PS_FORM_ACTION));
|
|
$box->readCSS($css_state);
|
|
$box->_setupSize();
|
|
|
|
return $box;
|
|
}
|
|
}
|
|
|
|
?>
|