| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | 
							- <?php
 
- /**
 
-  *
 
-  * PHP Pro Bid $Id$ DsUHaDvgZpTaPSGk/UESoo/CopwNkhxDPw8bmHNxk6k=
 
-  *
 
-  * @link        http://www.phpprobid.com
 
-  * @copyright   Copyright (c) 2014 Online Ventures Software LTD & CodeCube SRL
 
-  * @license     http://www.phpprobid.com/license Commercial License
 
-  *
 
-  * @version     7.0
 
-  */
 
- /**
 
-  * multi select form element
 
-  *
 
-  * creates a select element that uses the jquery chosen plugin
 
-  */
 
- namespace Ppb\Form\Element;
 
- use Cube\Form\Element\Select,
 
-     Cube\Controller\Front;
 
- class ChznSelect extends Select
 
- {
 
-     const ELEMENT_CLASS = 'chzn-select';
 
-     const SELECT_MULTIPLE_SIZE = '5';
 
-     /**
 
-      *
 
-      * type of element - override the variable from the parent class
 
-      *
 
-      * @var string
 
-      */
 
-     protected $_element = 'ChznSelect';
 
-     /**
 
-      *
 
-      * base url of the application
 
-      *
 
-      * @var string
 
-      */
 
-     protected $_baseUrl;
 
-     /**
 
-      *
 
-      * class constructor
 
-      *
 
-      * @param string $name
 
-      * @param bool   $initialize
 
-      */
 
-     public function __construct($name, $initialize = true)
 
-     {
 
-         parent::__construct($name);
 
-         if ($initialize === true) {
 
-             $this->_baseUrl = Front::getInstance()->getRequest()->getBaseUrl();
 
-             $this->setHeaderCode('<link href="' . $this->_baseUrl . '/js/chosen/chosen.css" media="screen" rel="stylesheet" type="text/css">')
 
-                 ->setBodyCode('<script type="text/javascript" src="' . $this->_baseUrl . '/js/chosen/chosen.jquery.min.js"></script>')
 
-                 ->setBodyCode(
 
-                     "<script type=\"text/javascript\">" . "\n"
 
-                     . " $('." . self::ELEMENT_CLASS . "').chosen(); " . "\n"
 
-                     . "</script>");
 
-         }
 
-         $this->addAttribute('class', self::ELEMENT_CLASS);
 
-     }
 
-     public function render()
 
-     {
 
-         $output = null;
 
-         $value = $this->getValue();
 
-         if ($this->getMultiple() === true) {
 
-             $this->_attributes['multiple'] = 'multiple';
 
-             $brackets = '';
 
-             // used for when having a table with chznselect fields
 
-             if (isset($this->_customData['doubleBrackets'])) {
 
-                 if ($this->_customData['doubleBrackets'] == true) {
 
-                     $brackets = $this->getBrackets();
 
-                     $this->setBrackets($brackets . '[]');
 
-                 }
 
-             }
 
-             $output .= '<input type="hidden" name="' . $this->_name . $brackets . '" value=""'
 
-                        . $this->_endTag;
 
-         }
 
-         if (!isset($this->_attributes['size'])) {
 
-             $this->_attributes['size'] = self::SELECT_MULTIPLE_SIZE;
 
-         }
 
-         $output .= '<select name="' . $this->_name . $this->getBrackets() . '" '
 
-                    . $this->renderAttributes() . '>';
 
-         foreach ((array)$this->_multiOptions as $key => $option) {
 
-             $selected = (in_array($key, (array)$value)) ? ' selected' : '';
 
-             $output .= '<option value="' . $key . '"' . $selected . '>' . $option . '</option>';
 
-         }
 
-         $output .= '</select>';
 
-         return $output;
 
-     }
 
- }
 
 
  |