*/ class Mage_Bundle_Model_Option extends Mage_Core_Model_Abstract { /** * Default selection object * * @var Mage_Bundle_Model_Selection */ protected $_defaultSelection = null; /** * Initialize resource model * */ protected function _construct() { $this->_init('bundle/option'); parent::_construct(); } /** * Add selection to option * * @param Mage_Bundle_Model_Selection $selection * @return Mage_Bundle_Model_Option */ public function addSelection($selection) { if (!$selection) { return false; } if (!$selections = $this->getData('selections')) { $selections = array(); } array_push($selections, $selection); $this->setSelections($selections); return $this; } /** * Check Is Saleable Option * * @return bool */ public function isSaleable() { $saleable = 0; if ($this->getSelections()) { foreach ($this->getSelections() as $selection) { if ($selection->isSaleable()) { $saleable++; } } return (bool)$saleable; } else { return false; } } /** * Retrieve default Selection object * * @return Mage_Bundle_Model_Selection */ public function getDefaultSelection() { if (!$this->_defaultSelection && $this->getSelections()) { foreach ($this->getSelections() as $selection) { if ($selection->getIsDefault()) { $this->_defaultSelection = $selection; break; } } } return $this->_defaultSelection; /** * if (!$this->_defaultSelection && $this->getSelections()) { $_selections = array(); foreach ($this->getSelections() as $selection) { if ($selection->getIsDefault()) { $_selections[] = $selection; } } if (!empty($_selections)) { $this->_defaultSelection = $_selections; } else { return null; } } return $this->_defaultSelection; */ } /** * Check is multi Option selection * * @return bool */ public function isMultiSelection() { if ($this->getType() == 'checkbox' || $this->getType() == 'multi') { return true; } else { return false; } } /** * Retrieve options searchable data * * @param int $productId * @param int $storeId * @return array */ public function getSearchableData($productId, $storeId) { return $this->_getResource() ->getSearchableData($productId, $storeId); } /** * Return selection by it's id * * @param int $selectionId * @return Mage_Bundle_Model_Selection */ public function getSelectionById($selectionId) { $selections = $this->getSelections(); $i = count($selections); while ($i-- && $selections[$i]->getSelectionId() != $selectionId); return $i == -1 ? false : $selections[$i]; } }