/** * Processes the opt:selectorelse element. * @internal * @param Opt_Xml_Element $node * @throws Opt_InstructionInvalidParent_Exception */ protected function _processSelectorelse(Opt_Xml_Element $node) { $parent = $node->getParent(); if ($parent instanceof Opt_Xml_Element && $parent->getXmlName() == 'opt:selector') { $parent->set('priv:alternative', true); $section = self::getSection($parent->get('priv:section')); $node->addBefore(Opt_Xml_Buffer::TAG_BEFORE, ' } ' . $section['format']->get('section:endLoop') . ' } else { '); $this->_sectionEnd($parent); $this->_process($node); } else { throw new Opt_InstructionInvalidParent_Exception($node->getXmlName(), 'opt:section'); } }
/** * Processes opt:treeelse node. * @internal * @param Opt_Xml_Element $node The instruction node found by the compiler. */ protected function _processTreeelse(Opt_Xml_Element $node) { $parent = $node->getParent(); if ($parent instanceof Opt_Xml_Element && $parent->getXmlName() == 'opt:tree') { $parent->set('sectionElse', true); $section = $this->getSection($parent->get('sectionName')); $node->addBefore(Opt_Xml_Buffer::TAG_BEFORE, ' } else { '); $this->_process($node); } }
public function testNodeSetParent() { $buffer = new Opt_Xml_Root(); $element = new Opt_Xml_Element('foo'); $element->setParent($buffer); if ($element->getParent() === $buffer) { return true; } $this->fail('The element parent has not been set properly.'); }
/** * Processes the opt:sectionelse element. * @internal * @param Opt_Xml_Element $node The recognized element. */ protected function _processSectionelse(Opt_Xml_Element $node) { $parent = $node->getParent(); if ($parent instanceof Opt_Xml_Element && $parent->getXmlName() == 'opt:section') { $parent->set('priv:alternative', true); $section = self::getSection($parent->get('priv:section')); if (!is_array($section)) { throw new Opt_APINoDataReturned_Exception('Opt_Instruction_BaseSection::getSection', 'processing opt:sectionelse'); } $node->addBefore(Opt_Xml_Buffer::TAG_BEFORE, $section['format']->get('section:endLoop') . ' } else { '); $this->_sectionEnd($parent); $this->_process($node); } else { throw new Opt_InstructionInvalidParent_Exception($node->getXmlName(), 'opt:section'); } }
/** * Processes the opt:gridelse tag. * @internal * @param Opt_Xml_Element $node The recognized node. */ protected function _processGridelse(Opt_Xml_Element $node) { $parent = $node->getParent(); if ($parent instanceof Opt_Xml_Element && $parent->getXmlName() == 'opt:grid') { $parent->set('priv:alternative', true); $section = $parent->get('priv:section'); $node->addBefore(Opt_Xml_Buffer::TAG_BEFORE, ' } else { '); // $this->_deactivateSection($parent->get('sectionName')); $this->_process($node); } }