setActions(array()); $this->setType('rule/action_collection'); } /** * Returns array containing actions in the collection * * Output example: * array( * {action::asArray}, * {action::asArray} * ) * * @return array */ public function asArray(array $arrAttributes = array()) { $out = parent::asArray(); foreach ($this->getActions() as $item) { $out['actions'][] = $item->asArray(); } return $out; } public function loadArray(array $arr) { if (!empty($arr['actions']) && is_array($arr['actions'])) { foreach ($arr['actions'] as $actArr) { if (empty($actArr['type'])) { continue; } $action = Mage::getModel($actArr['type']); $action->loadArray($actArr); $this->addAction($action); } } return $this; } public function addAction(Mage_Rule_Model_Action_Interface $action) { $actions = $this->getActions(); $action->setRule($this->getRule()); $actions[] = $action; if (!$action->getId()) { $action->setId($this->getId().'.'.sizeof($actions)); } $this->setActions($actions); return $this; } public function asHtml() { $html = $this->getTypeElement()->toHtml().'Perform following actions: '; if ($this->getId()!='1') { $html.= $this->getRemoveLinkHtml(); } return $html; } public function getNewChildElement() { return $this->getForm()->addField('action:'.$this->getId().':new_child', 'select', array( 'name'=>'rule[actions]['.$this->getId().'][new_child]', 'values'=>$this->getNewChildSelectOptions(), 'value_name'=>$this->getNewChildName(), ))->setRenderer(Mage::getBlockSingleton('rule/newchild')); } public function asHtmlRecursive() { $html = $this->asHtml().'