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}); }
/** * 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; }
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; }
/** * 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; }
/** * 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(); }
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}); }
/** * 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; } }
/** * 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; }