示例#1
0
 /**
  * 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();
 }
示例#2
0
 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();
 }
示例#3
0
 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});
     }
 }
示例#4
0
 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);
         }
     }
 }
示例#6
0
 /**
  * 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);
     }
 }