Пример #1
0
 /**
  * @param Varien_Simplexml_Element $xmlData
  * @param boolean $isSingleStoreMode
  * @param Varien_Simplexml_Element $node
  * @param string $website
  * @param string $store
  * @param mixed $expectedResult
  * @param string $message
  * @dataProvider addItemFilterDataProvider
  */
 public function testHasChildren($xmlData, $isSingleStoreMode, $node, $website, $store, $expectedResult, $message)
 {
     $app = $this->getMock('Mage_Core_Model_App', array('isSingleStoreMode'), array(), '', true);
     $app->expects($this->any())->method('isSingleStoreMode')->will($this->returnValue($isSingleStoreMode));
     $config = new Mage_Adminhtml_Model_Config(array('data' => $xmlData, 'app' => $app));
     $result = $config->hasChildren($node, $website, $store);
     $this->assertEquals($expectedResult, $result, $message);
 }
Пример #2
0
 /**
  * Enter description here...
  *
  * @return Mage_Adminhtml_Block_System_Config_Form
  */
 public function initForm()
 {
     $this->_initObjects();
     $form = new Varien_Data_Form();
     $sections = $this->_configFields->getSection($this->getSectionCode(), $this->getWebsiteCode(), $this->getStoreCode());
     if (empty($sections)) {
         $sections = array();
     }
     foreach ($sections as $section) {
         /* @var $section Varien_Simplexml_Element */
         if (!$this->_canShowField($section)) {
             continue;
         }
         foreach ($section->groups as $groups) {
             $groups = (array) $groups;
             usort($groups, array($this, '_sortForm'));
             foreach ($groups as $group) {
                 /* @var $group Varien_Simplexml_Element */
                 if (!$this->_canShowField($group)) {
                     continue;
                 }
                 if ($group->frontend_model) {
                     $fieldsetRenderer = Mage::getBlockSingleton((string) $group->frontend_model);
                 } else {
                     $fieldsetRenderer = $this->_defaultFieldsetRenderer;
                 }
                 $fieldsetRenderer->setForm($this);
                 $fieldsetRenderer->setConfigData($this->_configData);
                 $fieldsetRenderer->setGroup($group);
                 if ($this->_configFields->hasChildren($group, $this->getWebsiteCode(), $this->getStoreCode())) {
                     $helperName = $this->_configFields->getAttributeModule($section, $group);
                     $fieldsetConfig = array('legend' => Mage::helper($helperName)->__((string) $group->label));
                     if (!empty($group->comment)) {
                         $fieldsetConfig['comment'] = (string) $group->comment;
                     }
                     $fieldset = $form->addFieldset($section->getName() . '_' . $group->getName(), $fieldsetConfig)->setRenderer($fieldsetRenderer);
                     $this->_addElementTypes($fieldset);
                     if ($group->clone_fields) {
                         if ($group->clone_model) {
                             $cloneModel = Mage::getModel((string) $group->clone_model);
                         } else {
                             Mage::throwException('Config form fieldset clone model required to be able to clone fields');
                         }
                         foreach ($cloneModel->getPrefixes() as $prefix) {
                             $this->initFields($fieldset, $group, $section, $prefix['field'], $prefix['label']);
                         }
                     } else {
                         $this->initFields($fieldset, $group, $section);
                     }
                     $this->_fieldsets[$group->getName()] = $fieldset;
                 }
             }
         }
     }
     $this->setForm($form);
     return $this;
 }
Пример #3
0
 /**
  * Init config group
  *
  * @param Varien_Data_Form $form
  * @param Varien_Simplexml_Element $group
  * @param Varien_Simplexml_Element $section
  * @param Varien_Data_Form_Element_Fieldset|null $parentElement
  */
 protected function _initGroup($form, $group, $section, $parentElement = null)
 {
     if ($group->frontend_model) {
         $fieldsetRenderer = Mage::getBlockSingleton((string) $group->frontend_model);
     } else {
         $fieldsetRenderer = $this->_defaultFieldsetRenderer;
     }
     $fieldsetRenderer->setForm($this)->setConfigData($this->_configData);
     if ($this->_configFields->hasChildren($group, $this->getWebsiteCode(), $this->getStoreCode())) {
         $helperName = $this->_configFields->getAttributeModule($section, $group);
         $fieldsetConfig = array('legend' => Mage::helper($helperName)->__((string) $group->label));
         if (!empty($group->comment)) {
             $fieldsetConfig['comment'] = Mage::helper($helperName)->__((string) $group->comment);
         }
         if (!empty($group->expanded)) {
             $fieldsetConfig['expanded'] = (bool) $group->expanded;
         }
         $fieldset = new Varien_Data_Form_Element_Fieldset($fieldsetConfig);
         $fieldset->setId($section->getName() . '_' . $group->getName())->setRenderer($fieldsetRenderer)->setGroup($group);
         if ($parentElement) {
             $fieldset->setIsNested(true);
             $parentElement->addElement($fieldset);
         } else {
             $form->addElement($fieldset);
         }
         $this->_prepareFieldOriginalData($fieldset, $group);
         $this->_addElementTypes($fieldset);
         $this->_fieldsets[$group->getName()] = $fieldset;
         if ($group->clone_fields) {
             if ($group->clone_model) {
                 $cloneModel = Mage::getModel((string) $group->clone_model);
             } else {
                 Mage::throwException($this->__('Config form fieldset clone model required to be able to clone fields'));
             }
             foreach ($cloneModel->getPrefixes() as $prefix) {
                 $this->initFields($fieldset, $group, $section, $prefix['field'], $prefix['label']);
             }
         } else {
             $this->initFields($fieldset, $group, $section);
         }
     }
 }