• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List

E:/E/GEAMP/www/openbiz/openbiz/others/ZendX/JQuery/Form/Decorator/UiWidgetElement.php

00001 <?php
00026 require_once "Zend/Form/Decorator/ViewHelper.php";
00027 
00031 require_once "ZendX/JQuery/Form/Decorator/UiWidgetElementMarker.php";
00032 
00041 class ZendX_JQuery_Form_Decorator_UiWidgetElement
00042     extends Zend_Form_Decorator_ViewHelper
00043     implements ZendX_JQuery_Form_Decorator_UiWidgetElementMarker
00044 {
00050     protected $_attribs;
00051 
00057     public $helper;
00058 
00064     protected $_jQueryParams = array();
00065 
00071     public function getElementAttribs()
00072     {
00073         if (null === $this->_attribs) {
00074             if($this->_attribs = parent::getElementAttribs()) {
00075                 if (array_key_exists('jQueryParams', $this->_attribs)) {
00076                     $this->setJQueryParams($this->_attribs['jQueryParams']);
00077                     unset($this->_attribs['jQueryParams']);
00078                 }
00079             }
00080         }
00081 
00082         return $this->_attribs;
00083     }
00084 
00092     public function setJQueryParam($key, $value)
00093     {
00094         $this->_jQueryParams[(string) $key] = $value;
00095         return $this;
00096     }
00097 
00104     public function setJQueryParams(array $params)
00105     {
00106         $this->_jQueryParams = array_merge($this->_jQueryParams, $params);
00107         return $this;
00108     }
00109 
00116     public function getJQueryParam($key)
00117     {
00118         $this->getElementAttribs();
00119         $key = (string) $key;
00120         if (array_key_exists($key, $this->_jQueryParams)) {
00121             return $this->_jQueryParams[$key];
00122         }
00123 
00124         return null;
00125     }
00126 
00132     public function getJQueryParams()
00133     {
00134         $this->getElementAttribs();
00135         return $this->_jQueryParams;
00136     }
00137 
00145     public function render($content)
00146     {
00147         $element = $this->getElement();
00148         $view = $element->getView();
00149         if (null === $view) {
00150             require_once 'Zend/Form/Decorator/Exception.php';
00151             throw new Zend_Form_Decorator_Exception('UiWidgetElement decorator cannot render without a registered view object');
00152         }
00153 
00154         if(method_exists($element, 'getJQueryParams')) {
00155             $this->setJQueryParams($element->getJQueryParams());
00156         }
00157         $jQueryParams = $this->getJQueryParams();
00158 
00159         $helper    = $this->getHelper();
00160         $separator = $this->getSeparator();
00161         $value     = $this->getValue($element);
00162         $attribs   = $this->getElementAttribs();
00163         $name      = $element->getFullyQualifiedName();
00164 
00165         $id = $element->getId();
00166         $attribs['id'] = $id;
00167 
00168         $elementContent = $view->$helper($name, $value, $jQueryParams, $attribs);
00169         switch ($this->getPlacement()) {
00170             case self::APPEND:
00171                 return $content . $separator . $elementContent;
00172             case self::PREPEND:
00173                 return $elementContent . $separator . $content;
00174             default:
00175                 return $elementContent;
00176         }
00177     }
00178 }

Generated on Thu Apr 19 2012 17:01:19 for openbiz by  doxygen 1.7.2