/**
* The required files
*/
require_once(HTML_BASE_COMMON_PATH.'/Html.php');
require_once(HTML_BASE_UTIL_PATH.'/Raw.php');
require_once(HTML_UTIL_COMPONENT_PATH.'/Request.php');
require_once(HTML_FORM_COMPONENT_PATH.'/ResetButton.php');
require_once(HTML_FORM_COMPONENT_PATH.'/CancelButton.php');
require_once(HTML_FORM_COMPONENT_PATH.'/SubmitButton.php');
if (defined('HTML_BASE_UTIL_PATH')) {
require_once(HTML_BASE_UTIL_PATH.'/Div.php');
}
/**
* Generates a line of predefined buttons, with i.e. cancel, reset and submit
* <code>
* Usage:
* $buttons = new Buttons($view,$buttons,$layout);
* print $buttons->getHtml();
* Or
* Buttons::display($view,$submit,$buttons,$layout);
* </code>
* @package form
*/
class Buttons extends Html {
/**
* @var String $view The View to use
*/
var $view = '';
/**
* @var String $buttons The buttons to use
*/
var $buttons = '';
/**
* @var String $layout The Layout to use [left | right]
*/
var $layout = '';
/**
* Constructor
* @param String $view The View to use for the buttons
* @param String $buttons The buttons to use
* @param String $layout The Layout to use for the buttons [left | right]
*/
function Buttons($view='',$buttons='',$layout='') {
$this->Html();
$this->view = $view!=''?$view:'';
$this->buttons = $buttons!=''?$buttons:FORM_BUTTON_SHOW;
$this->layout = $layout!=''?$layout:'right';
}
/**
* Return the Reset Button as html
* @return Object The html as an Object
*/
function newResetButton() {
$object = new Raw();
if ($this->buttons & FORM_BUTTON_SHOW_RESET) {
$object = new ResetButton();
}
return $object;
}
/**
* Return the Cancel Button as html
* @return Object The html as an Object
*/
function newCancelButton() {
$object = new Raw();
if ($this->buttons & FORM_BUTTON_SHOW_CANCEL) {
$object = new CancelButton();
}
return $object;
}
/**
* Get the debug tekst for the button
* @param String $command The command
* @param String $show The flag to show the button or not
* @return String The debug tekst
*/
function getDebug($command, $show) {
$debug = '';
switch ($command) {
case VIEW_BASKET_ADD:
$debug = 'VIEW_BASKET_ADD';
break;
case VIEW_BASKET_UPDATE:
$debug = 'VIEW_BASKET_UPDATE';
break;
case VIEW_UPDATE_FORM:
$debug = 'VIEW_UPDATE_FORM';
break;
case VIEW_DELETE_FORM:
$debug = 'VIEW_DELETE_FORM';
break;
case VIEW_INSERT_FORM:
$debug = 'VIEW_INSERT_FORM';
break;
case VIEW_LOGIN_FORM:
$debug = 'VIEW_LOGIN_FORM';
break;
case VIEW_EMAIL_FORM:
$debug = 'VIEW_EMAIL_FORM';
break;
case VIEW_SEARCH_FORM:
$debug = 'VIEW_SEARCH_FORM';
break;
default:
break;
}
if ($debug == '') {
switch ($show) {
case FORM_BUTTON_SHOW_SUBMIT:
$debug = 'BUTTON_SUBMIT_TEXT';
break;
case FORM_BUTTON_SHOW_LOGIN:
$debug = 'BUTTON_LOGIN_TEXT';
break;
case FORM_BUTTON_SHOW_EMAIL:
$debug = 'BUTTON_EMAIL_TEXT';
break;
case FORM_BUTTON_SHOW_SEARCH:
$debug = 'BUTTON_SEARCH_TEXT';
break;
default:
$debug = "Unknown button OR command $command";
break;
}
}
return $debug;
}
/**
* Get the tekst for the button
* @param String $command The command
* @param String $show The flag to show the button or not
* @return String The tekst
*/
function getText($command, $show) {
$text = '';
switch ($command) {
case VIEW_BASKET_ADD:
$text = BUTTON_INSERT_TEXT;
break;
case VIEW_BASKET_UPDATE:
$text = BUTTON_UPDATE_TEXT;
break;
case VIEW_UPDATE_FORM:
$text = BUTTON_UPDATE_TEXT;
break;
case VIEW_DELETE_FORM:
$text = BUTTON_DELETE_TEXT;
break;
case VIEW_INSERT_FORM:
$text = BUTTON_INSERT_TEXT;
break;
case VIEW_LOGIN_FORM:
$text = BUTTON_LOGIN_TEXT;
break;
case VIEW_EMAIL_FORM:
$text = BUTTON_EMAIL_TEXT;
break;
case VIEW_SEARCH_FORM:
$text = BUTTON_SEARCH_TEXT;
break;
default:
break;
}
if ($text == '') {
switch ($show) {
case FORM_BUTTON_SHOW_SUBMIT:
$text = BUTTON_SUBMIT_TEXT;
break;
case FORM_BUTTON_SHOW_LOGIN:
$text = BUTTON_LOGIN_TEXT;
break;
case FORM_BUTTON_SHOW_EMAIL:
$text = BUTTON_EMAIL_TEXT;
break;
case FORM_BUTTON_SHOW_SEARCH:
$text = BUTTON_SEARCH_TEXT;
break;
default:
break;
}
}
return $text;
}
/**
* Return the Submit Button as html
* @param String $show The flag to show the button or not
* @return Object The html as an Object
*/
function newSubmitButton($show) {
$object = new Raw();
if ($this->buttons & $show) {
$command = Request::get(REQUEST_COMMAND,$this->view);
$text = '???? WHAT ????';
$debug = 'UNKNOWN BUTTOMS='.$this->buttons;
$text = $this->getText($command, $show);;
$debug = $this->getDebug($command, $show);;
$object->add(new Raw("<!-- $debug -->\r\n"));
$object->add(new SubmitButton('',$text));
}
return $object;
}
/**
* Return the Buttons as html
* @return Object The html as an Object
*/
function newButtons() {
$object = new Raw();
if (defined('HTML_PAGE_UTIL_PATH')) {
$object = new Div('','',$this->layout); // Override
} else {
//
}
/**
* Create the buttons
*/
$object->add($this->newCancelButton());
$object->add($this->newResetButton());
$object->add($this->newSubmitButton(FORM_BUTTON_SHOW_SUBMIT));
$object->add($this->newSubmitButton(FORM_BUTTON_SHOW_LOGIN));
$object->add($this->newSubmitButton(FORM_BUTTON_SHOW_EMAIL));
$object->add($this->newSubmitButton(FORM_BUTTON_SHOW_SEARCH));
return $object;
}
/**
* Returns the html for the line of buttons
* @return String the complete html
*/
function getHtml() {
$html = $this->html;
$this->add($this->newButtons());
$html .= $this->getElements();
return $html;
}
/**
* Display html
* <code>
* Usage:
* Buttons::display($view,$submit,$layout);
* </code>
* @static
* @param String $view The View to use for the buttons
* @param String $submit The submit button to use
* @param String $layout The Layout to use for the buttons [left | right]
*/
function display($view='',$submit='',$layout='') {
$html = new Buttons($view,$submit,$layout);
$html->addHtml();
}
}
?>