Files
luos/thirdparty/html2ps_pdf/box.button.submit.php
Paula Quispe 9eb7d6cac2 HOR-2689
2017-08-03 17:00:30 -04:00

91 lines
2.9 KiB
PHP

<?php
/**
* Handles INPUT type="submit" boxes generation.
*/
class ButtonSubmitBox extends ButtonBox {
/**
* @var String URL to post the form to; may be null if this is not a 'submit' button
* @access private
*/
var $_action_url;
/**
* Note: required for interative forms only
*
* @var String textual name of the input field
* @access private
*/
var $_field_name;
/**
* Note: required for interactive forms only
*
* @var String button name to display
* @access private
*/
var $_value;
/**
* Constructs new (possibly interactive) button box
*
* @param String $text text to display
* @param String $field field name (interactive forms)
* @param String $value field value (interactive forms)
*/
function ButtonSubmitBox($field, $value, $action) {
$this->ButtonBox();
$this->_action_url = $action;
$this->_field_name = $field;
$this->_value = $value;
}
/**
* Create input box using DOM tree data
*
* @param Object $root DOM tree node corresponding to the box being created
* @param Pipeline $pipeline reference to current pipeline object (unused)
*
* @return input box
*/
function &create(&$root, &$pipeline) {
/**
* If no "value" attribute is specified, display the default button text.
* Note the difference between displayed text and actual field value!
*/
if ($root->has_attribute("value")) {
$text = $root->get_attribute("value");
} else {
$text = DEFAULT_SUBMIT_TEXT;
};
$field = $root->get_attribute('name');
$value = $root->get_attribute('value');
$css_state =& $pipeline->getCurrentCSSState();
$box =& new ButtonSubmitBox($field, $value, $css_state->getProperty(CSS_HTML2PS_FORM_ACTION));
$box->readCSS($css_state);
$box->_setup($text, $pipeline);
return $box;
}
/**
* Render interactive field using the driver-specific capabilities;
* button is rendered as a rectangle defined by margin and padding areas (note that unlike most other boxes,
* borders are _outside_ the box, so we may treat
*
* @param OutputDriver $driver reference to current output driver object
*/
function _render_field(&$driver) {
$driver->field_pushbuttonsubmit($this->get_left_padding() - $this->get_margin_left(),
$this->get_top_padding() + $this->get_margin_top(),
$this->get_width() + $this->get_padding_left() + $this->get_padding_right() + $this->get_margin_left() + $this->get_margin_right(),
$this->get_height() + $this->get_padding_top() + $this->get_padding_bottom() + $this->get_margin_top() + $this->get_margin_bottom(),
$this->_field_name,
$this->_value,
$this->_action_url);
}
}
?>