示例#1
0
 protected function _getHelperValue(Varien_Simplexml_Element $child)
 {
     $helperName = 'adminhtml';
     $titleNodeName = 'title';
     $childAttributes = $child->attributes();
     if (isset($childAttributes['module'])) {
         $helperName = (string) $childAttributes['module'];
     }
     //        if (isset($childAttributes['translate'])) {
     //            $titleNodeName  = (string)$childAttributes['translate'];
     //        }
     return Mage::helper($helperName)->__((string) $child->{$titleNodeName});
 }
示例#2
0
 /**
  * Return attributes of all namespaces
  *
  * array(
  *   namespace => array(
  *     attribute_key => attribute_value,
  *     ...
  *   )
  * )
  *
  * @param Varien_Simplexml_Element $source
  * @return array
  */
 public function getAttributes($source, $namespace = null)
 {
     $attributes = array();
     if (!is_null($namespace)) {
         $attributes[$namespace] = $source->attributes($namespace);
         return $attributes;
     }
     $namespaces = $source->getNamespaces(true);
     $attributes[''] = $source->attributes('');
     foreach ($namespaces as $key => $value) {
         if ($key == '' || $key == 'soap') {
             continue;
         }
         $attributes[$value] = $source->attributes($value);
     }
     return $attributes;
 }
示例#3
0
 public function importXml(Varien_Simplexml_Element $actionNode)
 {
     foreach ($actionNode->attributes() as $key => $value) {
         $this->setParam($key, (string) $value);
     }
     if ($actionNode['use']) {
         $container = $this->getProfile()->getContainer((string) $actionNode['use']);
     } else {
         $this->setParam('class', $this->getClassNameByType((string) $actionNode['type']));
         $container = $action->getContainer();
     }
     $this->setContainer($container);
     if ($this->getParam('name')) {
         $this->getProfile()->addContainer($this->getParam('name'), $container);
     }
     foreach ($actionNode->var as $varNode) {
         $container->setVar((string) $varNode['name'], (string) $varNode);
     }
     foreach ($actionNode->action as $actionSubnode) {
         $action = $this->addAction();
         $action->importXml($actionSubnode);
     }
     return $this;
 }
示例#4
0
 /**
  * Extends one node
  *
  * @param Varien_Simplexml_Element $source
  * @param boolean $overwrite
  * @return Varien_Simplexml_Element
  */
 public function extendChild($source, $overwrite = false)
 {
     // this will be our new target node
     $targetChild = null;
     // name of the source node
     $sourceName = $source->getName();
     // here we have children of our source node
     $sourceChildren = $source->children();
     if (!$source->hasChildren()) {
         // handle string node
         if (isset($this->{$sourceName})) {
             // if target already has children return without regard
             if ($this->{$sourceName}->hasChildren()) {
                 return $this;
             }
             if ($overwrite) {
                 unset($this->{$sourceName});
             } else {
                 return $this;
             }
         }
         $targetChild = $this->addChild($sourceName, $source->xmlentities());
         $targetChild->setParent($this);
         foreach ($source->attributes() as $key => $value) {
             $targetChild->addAttribute($key, $this->xmlentities($value));
         }
         return $this;
     }
     if (isset($this->{$sourceName})) {
         $targetChild = $this->{$sourceName};
     }
     if (is_null($targetChild)) {
         // if child target is not found create new and descend
         $targetChild = $this->addChild($sourceName);
         $targetChild->setParent($this);
         foreach ($source->attributes() as $key => $value) {
             $targetChild->addAttribute($key, $this->xmlentities($value));
         }
     }
     // finally add our source node children to resulting new target node
     foreach ($sourceChildren as $childKey => $childNode) {
         $targetChild->extendChild($childNode, $overwrite);
     }
     return $this;
 }
示例#5
0
 /**
  * Check is module output enabled
  *
  * @param Varien_Simplexml_Element $child
  * @return bool
  */
 protected function _isEnabledModuleOutput(Varien_Simplexml_Element $child)
 {
     $helperName = 'adminhtml';
     $childAttributes = $child->attributes();
     if (isset($childAttributes['module'])) {
         $helperName = (string) $childAttributes['module'];
     }
     return Mage::helper($helperName)->isModuleOutputEnabled();
 }
示例#6
0
 protected function _getHelperValue(Varien_Simplexml_Element $child)
 {
     $helperName = 'Mage_Adminhtml_Helper_Data';
     $titleNodeName = 'title';
     $childAttributes = $child->attributes();
     if (isset($childAttributes['module'])) {
         $helperName = (string) $childAttributes['module'];
     }
     $titleNodeName = 'title';
     return Mage::helper($helperName)->__((string) $child->{$titleNodeName});
 }
示例#7
0
 /**
  * Cleanup reference node according to the block it refers to
  *
  * Look for the block by reference name and if the block is "unsafe", cleanup the reference node from actions
  *
  * @param Varien_Simplexml_Element $node
  */
 protected static function _sanitizeReference(Varien_Simplexml_Element $node)
 {
     $attributes = $node->attributes();
     $name = $attributes['name'];
     $result = $node->xpath("//block[@name='{$name}']") ?: array();
     foreach ($result as $block) {
         $isTypeSafe = self::_isTypeSafe($block->getAttribute('type'));
         if (!$isTypeSafe || !self::_isParentSafe($block)) {
             self::_deleteNodes($node, 'action');
         }
         break;
     }
 }
示例#8
0
 /**
  * Get attributes from XML layout update
  *
  * @param Varien_Simplexml_Element $layoutUpdate
  * @return array
  */
 protected function _getAttributes(Varien_Simplexml_Element $layoutUpdate)
 {
     $attributes = array();
     $attributes['type'] = $layoutUpdate->getAttribute('type') ?: 'layout';
     $attributes['action_name'] = $layoutUpdate->getName();
     foreach ($layoutUpdate->attributes() as $attributeName => $attributeValue) {
         $attributes[$attributeName] = (string) $attributeValue;
     }
     return $attributes;
 }