コード例 #1
0
ファイル: block.menuItem.php プロジェクト: saiber/www
/**
 * 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());
    }
}
コード例 #2
0
ファイル: block.pageMenu.php プロジェクト: saiber/www
/**
 * 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();
    }
}
コード例 #3
0
 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++;
     }
 }
コード例 #4
0
 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;
 }
コード例 #5
0
ファイル: AutoCompleteResponse.php プロジェクト: saiber/www
 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);
 }
コード例 #6
0
ファイル: FormTagLib.php プロジェクト: hofmeister/Pimple
 /**
  * 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();
 }
コード例 #7
0
ファイル: FormElement.class.php プロジェクト: Niggu/cloudrexx
 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();
 }