/** * Generate sitemap xml * * @return string */ public function generateXml() { $storeId = $this->getStoreId(); $date = date('Y-m-d'); $simplexml = new Varien_Simplexml_Element('<?xml version="1.0" encoding="UTF-8"?><urlset></urlset>'); $simplexml->addAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); /** * Generate categories sitemap */ $changefreq = (string) Mage::getStoreConfig('sitemap/category/changefreq'); $priority = (string) Mage::getStoreConfig('sitemap/category/priority'); $categories = Mage::getModel('catalog/category')->setStoreId($storeId)->getCollection()->addAttributeToSelect('*')->load(); foreach ($categories as $category) { $category = Mage::getModel('catalog/category')->load($category->getId()); if (!$category->getIsActive()) { continue; } $url = $simplexml->addChild('url'); $url->addChild('loc', $category->getCategoryUrl()); $url->addChild('lastmod', $date); $url->addChild('changefreq', $changefreq); $url->addChild('priority', $priority); } /** * Generate products sitemap */ $changefreq = (string) Mage::getStoreConfig('sitemap/product/changefreq'); $priority = (string) Mage::getStoreConfig('sitemap/product/priority'); $products = Mage::getModel('catalog/product')->setStoreId($storeId)->getCollection()->addAttributeToSelect('*'); Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products); Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products); $products->load(); foreach ($products as $product) { $product = Mage::getModel('catalog/product')->load($product->getId()); $url = $simplexml->addChild('url'); $url->addChild('loc', $product->getProductUrl()); $url->addChild('lastmod', $date); $url->addChild('changefreq', $changefreq); $url->addChild('priority', $priority); } /** * Generate CMS pages sitemap */ $changefreq = (string) Mage::getStoreConfig('sitemap/page/changefreq'); $priority = (string) Mage::getStoreConfig('sitemap/page/priority'); $pages = Mage::getModel('cms/page')->setStoreId($storeId)->getCollection(); foreach ($pages as $page) { $page = Mage::getModel('cms/page')->load($page->getId()); $url = $simplexml->addChild('url'); $url->addChild('loc', Mage::getBaseUrl() . $page->getIdentifier()); $url->addChild('lastmod', $date); $url->addChild('changefreq', $changefreq); $url->addChild('priority', $priority); } // record last generation time $this->setSitemapTime(now()); $this->save(); return $simplexml->asXml(); }
public function getData() { $xml = new \Varien_Simplexml_Element('<config></config>'); $defaultNode = $xml->addChild('global')->addChild('limesoda')->addChild('environments')->addChild('default'); foreach ($this->_collection as $item) { /** @var $item \Mage_Core_Model_Config_Data */ $defaultNode->addChild($this->_getNodeName($item), $this->_getNodeValue($item)); } return $xml->asXML(); }
public function updateMenu(Varien_Simplexml_Element $node) { $entityTypesCollection = $this->_getEntityTypesCollection(); if ($entityTypesCollection->getSize()) { $children = $node->addChild('children'); $index = 0; foreach ($entityTypesCollection as $entityType) { $index += 10; $menuItem = $children->addChild(sprintf('goodahead_etm_entity_type_%d', $entityType->getId())); $menuItem->addChild('title', strlen($entityType->getEntityTypeName()) ? $entityType->getEntityTypeName() : $entityType->getEntityTypeCode()); $menuItem->addChild('sort_order', $index); $menuItem->addChild('action', sprintf((string) $node->base_link, $entityType->getId())); } } else { $nodeName = $node->getName(); unset($node->getParent()->{$nodeName}); } }
public function saveSurchargeXmlToSession($address, $surcharge_config) { $_xml = null; //Do nothing if no cards are configured for surcharge if ($surcharge_config && count($surcharge_config)) { $xml = new Varien_Simplexml_Element('<surcharges />'); $quote = $address->getQuote(); $store = $quote->getStore(); $shipping = $address->getShippingAmount(); foreach ($surcharge_config as $rule) { if ((string) $quote->getPayment()->getConfigData('trncurrency') == 'store') { $chargeAmountNoTax = $address->getSubtotal(); } else { $chargeAmountNoTax = $address->getBaseSubtotal(); } //Apply TAX if applies $taxClassId = (int) Mage::getStoreConfig('payment/sagepaysuite/surcharge_taxclass', $store); $tax_percent = 0; if ($taxClassId !== 0) { $trequest = Mage::getSingleton('tax/calculation')->getRateRequest($quote->getBillingAddress(), $quote->getShippingAddress(), FALSE, $store); $tax_percent = Mage::getSingleton('tax/calculation')->getRate($trequest->setProductClassId($taxClassId)); } if ($rule['chargetype'] == 'fixed') { $amount = $rule['amount']; } else { //Percent $amount = $rule['amount'] * ($chargeAmountNoTax + $shipping + $address->getTaxAmount()) / 100; } //Adding TAX if ($tax_percent) { $chargeTaxAmount = $tax_percent * $amount / 100; $amount = $amount + $chargeTaxAmount; } $amount = number_format($amount, 2, '.', ''); //force all to fixed amount $rule['chargetype'] = "fixed"; $nodi = $xml->addChild('surcharge', ''); $nodi->addChild('paymentType', $rule['creditcard']); $nodi->addChild($rule['chargetype'], $amount); } $_xml = str_replace("\n", "", trim($xml->asXml())); } Mage::getSingleton('sagepaysuite/session')->setSurchargeXml($_xml); }
/** * Add frontend params to attribute node * * @param array $attribute * @param Varien_Simplexml_Element $itemXml */ public function addFrontendParams($attribute, $itemXml) { if (isset($attribute['frontend']) && is_array($attribute['frontend'])) { $paramXml = $itemXml->addChild('frontend'); foreach ($attribute['frontend'] as $param => $value) { $paramXml->addChild($param, $value); } } }
/** * Get child by handle * * @param Varien_Simplexml_Element $xmlObject * @param string $handle * @return Varien_Simplexml_Element */ protected function _getChildByHandle($xmlObject, $handle) { foreach ($xmlObject->children() as $child) { if ($child->getName() == $handle) { return $child; } } return $xmlObject->addChild($handle); }
/** * Changes extension suite internal tests status * * @param bool $status */ protected function _changeBuiltInTestStatus($status) { if (!file_exists($this->getArg('project') . '/app/etc/modules/EcomDev_PHPUnitTest.xml')) { die('Cannot find EcomDev_PHPUnitTest.xml file in app/etc/modules directory'); } $disableFile = $this->getArg('project') . '/app/etc/modules/ZDisable_EcomDev_PHPUnitTest.xml'; if ($status && file_exists($disableFile)) { unlink($disableFile); } elseif (!$status && !file_exists($disableFile)) { $fileContent = new Varien_Simplexml_Element('<config />'); $fileContent->addChild('modules')->addChild('EcomDev_PHPUnitTest')->addChild('active', 'false'); $fileContent->asNiceXml($disableFile); } }