/** * Smarty block plugin, for generating page menu item * This block must always be called in pageMenu block context * * @param array $params * @param Smarty $smarty * @param $repeat * * <code> * {pageMenu id="menu"} * {menuItem} * {menuCaption}Click Me{/menuCaption} * {menuAction}http://click.me.com{/menuAction} * {/menuItem} * {menuItem} * {menuCaption}Another menu item{/menuCaption} * {pageAction}alert('Somebody clicked on me too!'){/menuAction} * {/menuItem} * {/pageMenu} * </code> * * @package application.helper.smarty * @author Integry Systems */ function smarty_block_menuItem($params, $content, LiveCartSmarty $smarty, &$repeat) { if ($repeat) { $smarty->clear_assign('menuCaption'); $smarty->clear_assign('menuAction'); $smarty->clear_assign('menuPageAction'); } else { $item = new HtmlElement('a'); if ($smarty->get_template_vars('menuAction')) { $href = $smarty->get_template_vars('menuAction'); } else { if ($smarty->get_template_vars('menuPageAction')) { $onClick = $smarty->get_template_vars('menuPageAction'); $href = '#'; $item->setAttribute('onClick', $onClick . '; return false;'); } } $item->setAttribute('href', $href); // EXPERIMENTAL - set access key for menu item $caption = $smarty->get_template_vars('menuCaption'); if (FALSE != strpos($caption, '&&')) { $p = strpos($caption, '&&'); $accessKey = substr($caption, $p + 2, 1); $item->setAttribute('accessKey', $accessKey); $caption = substr($caption, 0, $p + 3) . '</span>' . substr($caption, $p + 3); $caption = substr($caption, 0, $p) . '<span class="accessKey">' . substr($caption, $p + 2); } $item->setContent($caption); $smarty->append('pageMenuItems', $item->render()); } }
/** * Smarty block plugin, for generating page menus * * @param array $params * @param Smarty $smarty * @param $repeat * * <code> * {pageMenu id="menu"} * {menuItem} * {menuCaption}Click Me{/menuCaption} * {menuAction}http://click.me.com{/menuAction} * {/menuItem} * {menuItem} * {menuCaption}Another menu item{/menuCaption} * {pageAction}alert('Somebody clicked on me too!'){/menuAction} * {/menuItem} * {/pageMenu} * </code> * * @return string Menu HTML code * @package application.helper.smarty * @author Integry Systems */ function smarty_block_pageMenu($params, $content, LiveCartSmarty $smarty, &$repeat) { if ($repeat) { $smarty->clear_assign('pageMenuItems'); } else { $items = $smarty->get_template_vars('pageMenuItems'); $menuDiv = new HtmlElement('div'); $menuDiv->setAttribute('id', $params['id']); $menuDiv->setAttribute('tabIndex', 1); $menuDiv->setContent(implode(' | ', $items)); return $menuDiv->render(); } }
public function __construct($name, $options, $selectedValue = '', $type = self::TYPE_RADIO, $validator = null) { static::$instanceCount++; HtmlElement::__construct('div'); $this->validator = $validator; $this->type = $type; $this->setAttribute('name', $name); $selectedValues = array(); if ($type == self::TYPE_RADIO) { $selectedValues = array($selectedValue); } else { $selectedValues = explode(',', $selectedValue); } $i = 0; foreach ($options as $key => $value) { $optionId = 'data-element-group-' . static::$instanceCount . '-' . $i; $option = new HtmlElement('input'); $option->setAttribute('type', $this->type); $option->setAttribute('name', $name); $option->setAttribute('id', $optionId); $option->setAttribute('value', $value); if (in_array($key, $selectedValues)) { $option->setAttribute('checked'); } $label = new HtmlElement('label'); $label->setAttribute('for', $optionId); $label->addChild(new TextElement($value)); $this->addChild($option); $this->addChild($label); $i++; } }
function setLabel($label_text, $attributes = array()) { $label = new HtmlElement('label', null, true); $label->setAttribute('class', 'phaxsi_label'); $label->setAttributes($attributes); $label->innerHTML = $label_text; $this->label = $label; }
public function getData() { $listHtml = array('<ul>'); $li = new HtmlElement('li'); foreach ($this->content as $key => $value) { $li->setAttribute('id', $key); $li->setContent($value); $listHtml[] = $li->render(); } $listHtml[] = '</ul>'; return implode("\n", $listHtml); }
/** * Render form tags * @param boolean binary | if set - renders a multipart form - else a url encoded form. * @param string controller | if set - sets the controller of the target url for this form * @param string action | if set - sets the action of the target url for this form * @param string parms | if set - sets the parameters of the target url for this form * @param array|object|json data | A map of data for this form - will be propegated to fields within this form. * @param string method | sets the HTTP method to used (post or get) - defaults to post * @param string url | sets the url of the form - only used if controller is not set * @param string id | sets the id on the form element * @param string class | sets the css class for the form element */ protected function tagForm($attrs, $view) { if ($attrs->binary) { $attrs->enctype = 'multipart/form-data'; } else { $attrs->enctype = 'application/x-www-form-urlencoded '; } if (!$attrs->controller && !$attrs->action && !$attrs->parms) { if (!$attrs->controller) { $attrs->controller = Pimple::instance()->getController(); if (!$attrs->action) { $attrs->action = Pimple::instance()->getAction(); } } $attrs->url = Url::makeLink($attrs->controller, $attrs->action, $_SERVER['QUERY_STRING']); } else { if ($attrs->action && $attrs->controller) { $attrs->url = Url::makeLink($attrs->controller, $attrs->action, $attrs->parms); } } unset($attrs->binary); if ($attrs->data) { $this->formData = $this->toObject($attrs->data); } else { $this->formData = $view->data; } $attrs->method = strtolower($attrs->method ? $attrs->method : 'post'); $this->formMethod = $attrs->method; $elm = new HtmlElement('form'); $elm->setAttribute('method', $attrs->method); $elm->setAttribute('enctype', $attrs->enctype); $elm->setAttribute('action', $attrs->url); if ($attrs->id) { $elm->setAttribute('id', $attrs->id); } if ($attrs->class) { $elm->setAttribute('class', $attrs->class); } $elm->addChild(new HtmlText($this->body())); return $elm->toHtml(); }
public function render() { global $_CORELANG; // if no child with name input and type submit is present, add one $hasSubmit = false; foreach ($this->getChildren() as $child) { if ($child->getName() == 'input' && $child->getAttribute('type') == 'submit') { $hasSubmit = true; break; } } if (!$hasSubmit && $this->addButtons) { $submitDiv = new FieldsetElement(); $submitDiv->setAttribute('class', 'actions'); $submit = new HtmlElement('input'); $submit->setAttribute('type', 'submit'); $submit->setAttribute('value', $_CORELANG['TXT_SAVE']); $submitDiv->addChild($submit); if (!empty($this->cancelUrl)) { $cancel = new HtmlElement('input'); $cancel->setAttribute('type', 'button'); $cancel->setAttribute('value', $_CORELANG['TXT_CANCEL']); $cancel->setAttribute('onclick', 'location.href="' . $this->cancelUrl . '&csrf=' . \Cx\Core\Csrf\Controller\Csrf::code() . '"'); $submitDiv->addChild($cancel); } $this->addChild($submitDiv); } return parent::render(); }