*/ class Mage_Core_Block_Html_Select extends Mage_Core_Block_Abstract { protected $_options = array(); /** * Get options of the element * * @return array */ public function getOptions() { return $this->_options; } /** * Set options for the HTML select * * @param array $options * @return Mage_Core_Block_Html_Select */ public function setOptions($options) { $this->_options = $options; return $this; } /** * Add an option to HTML select * * @param string $value HTML value * @param string $label HTML label * @param array $params HTML attributes * @return Mage_Core_Block_Html_Select */ public function addOption($value, $label, $params=array()) { $this->_options[] = array('value' => $value, 'label' => $label, 'params' => $params); return $this; } /** * Set element's HTML ID * * @param string $id ID * @return Mage_Core_Block_Html_Select */ public function setId($id) { $this->setData('id', $id); return $this; } /** * Set element's CSS class * * @param string $class Class * @return Mage_Core_Block_Html_Select */ public function setClass($class) { $this->setData('class', $class); return $this; } /** * Set element's HTML title * * @param string $title Title * @return Mage_Core_Block_Html_Select */ public function setTitle($title) { $this->setData('title', $title); return $this; } /** * HTML ID of the element * * @return string */ public function getId() { return $this->getData('id'); } /** * CSS class of the element * * @return string */ public function getClass() { return $this->getData('class'); } /** * Returns HTML title of the element * * @return string */ public function getTitle() { return $this->getData('title'); } /** * Render HTML * * @return string */ protected function _toHtml() { if (!$this->_beforeToHtml()) { return ''; } $html = ''; return $html; } /** * Return option HTML node * * @param array $option * @param boolean $selected * @return string */ protected function _optionToHtml($option, $selected = false) { $selectedHtml = $selected ? ' selected="selected"' : ''; if ($this->getIsRenderToJsTemplate() === true) { $selectedHtml .= ' #{option_extra_attr_' . self::calcOptionHash($option['value']) . '}'; } $params = ''; if (!empty($option['params']) && is_array($option['params'])) { foreach ($option['params'] as $key => $value) { if (is_array($value)) { foreach ($value as $keyMulti => $valueMulti) { $params .= sprintf(' %s="%s" ', $keyMulti, $valueMulti); } } else { $params .= sprintf(' %s="%s" ', $key, $value); } } } return sprintf('', $this->escapeHtml($option['value']), $selectedHtml, $params, $this->escapeHtml($option['label'])); } /** * Alias for toHtml() * * @return string */ public function getHtml() { return $this->toHtml(); } /** * Calculate CRC32 hash for option value * * @param string $optionValue Value of the option * @return string */ public function calcOptionHash($optionValue) { return sprintf('%u', crc32($this->getName() . $this->getId() . $optionValue)); } }