/** * @covers Mage_Core_Block_Abstract::insert * @see testGetSortedChildren() */ public function testInsert() { // invalid block from layout $blockZero = new Mage_Core_Block_Template(); $blockZero->setLayout(Mage::app()->getLayout()); $this->assertInstanceOf('Mage_Core_Block_Abstract', $blockZero->insert(uniqid('block.'))); // anonymous block $blockOne = new Mage_Core_Block_Template(); $blockOne->setIsAnonymous(true); $this->_block->insert($blockOne); $this->assertContains('.child0', $this->_block->getSortedChildren()); // block with alias, to the last position $blockTwo = new Mage_Core_Block_Template(); $blockTwo->setNameInLayout('block.two'); $this->_block->insert($blockTwo, '', true, 'block_two'); $this->assertContains('block.two', $this->_block->getSortedChildren()); $this->assertSame($blockTwo, $this->_block->getChild('block_two')); // unknown sibling, to the 1st position $blockThree = new Mage_Core_Block_Template(); $blockThree->setNameInLayout('block.three'); $this->_block->insert($blockThree, 'wrong_sibling', false, 'block_three'); $this->assertContains('block.three', $this->_block->getSortedChildren()); $this->assertSame(0, array_search('block.three', $this->_block->getSortedChildren())); $blockFour = new Mage_Core_Block_Template(); $blockFour->setNameInLayout('block.four'); $this->_block->insert($blockFour, 'wrong_sibling', true, 'block_four'); $this->assertContains('block.four', $this->_block->getSortedChildren()); $this->assertSame(3, array_search('block.four', $this->_block->getSortedChildren())); }
/** * @param Mana_Admin_Block_Data[] $result * @param Mage_Core_Block_Abstract $block */ protected function _getChildDataSourcesRecursively(&$result, $block) { foreach ($block->getChild() as $child) { if ($child != $this) { if ($child instanceof Mana_Admin_Block_Data) { $result[] = $child; } else { $this->_getChildDataSourcesRecursively($result, $child); } } } }
/** * Return first found child block of specified type, return false if not found * @param Mage_Core_Block_Abstract $oParentBlock * @param object $vType * @return bool */ public function getChildByType(Mage_Core_Block_Abstract $oParentBlock, $vType) { $aChildrenBlocks = $oParentBlock->getChild(); if (count($aChildrenBlocks)) { foreach ($aChildrenBlocks as $oBlock) { if ($oBlock instanceof $vType) { return $oBlock; } elseif ($oGrandChild = $this->getChildByType($oBlock, $vType)) { return $oGrandChild; } } } return false; }
/** * @see parent */ public function setParentBlock(Mage_Core_Block_Abstract $block) { $block->getChild('save_button')->setLabel(Mage::helper('adminhtml')->__('Refresh'))->setOnClick("configForm.submit('{$this->getSubmitUrl()}');"); return parent::setParentBlock($block); }
/** * @param Mage_Core_Block_Abstract $block * @return Mana_Admin_Block_Data|null */ public function getDataSource($block) { foreach ($block->getChild() as $child) { if ($child instanceof Mana_Admin_Block_Data) { return $child; } } return null; }
/** * @see parent */ public function setParentBlock(Mage_Core_Block_Abstract $block) { $block->getChild('save_button')->setOnClick("confirmAndSubmit();"); return parent::setParentBlock($block); }