示例#1
0
 /**
  * Export the products by the Google Product Atom Export
  * @author Shine Software
  * @return xml 
  */
 public function googleproductsAction()
 {
     // Calling Google Product Extension
     Zend_Feed_Writer::addPrefixPath('Shineisp_Feed_Writer_Extension_', 'Shineisp/Feed/Writer/Extension/');
     Zend_Feed_Writer::registerExtension('Google');
     $isp = Shineisp_Registry::get('ISP');
     $feed = new Zend_Feed_Writer_Feed();
     $feed->setTitle($isp->company);
     $feed->setLink($isp->website);
     $feed->setFeedLink($isp->website . '/atom/products', 'atom');
     $feed->addAuthor(array('name' => $isp->manager, 'email' => $isp->email, 'uri' => $isp->website));
     $feed->setDateModified(time());
     $feed->setGenerator("ShineISP Atom Extension");
     $products = Products::getAllRss();
     // 		print_r($products);
     // 		die;
     foreach ($products as $product) {
         // Get the google categories
         $categories = ProductsCategories::getGoogleCategories($product['categories']);
         $cattype = Products::get_text_categories($product['categories']);
         // Create the product entries
         $entry = $feed->createEntry();
         $entry->setTitle($product['ProductsData'][0]['name']);
         $entry->setProductType(Products::get_text_categories($product['categories']));
         $entry->setBrand($isp->company);
         $entry->setAvailability(true);
         $entry->setLink($isp->website . "/" . $product['uri'] . ".html");
         // Custom Attributes Google Product Extension
         if (!empty($product['ProductsMedia'][0]['path'])) {
             $entry->setImageLink($isp->website . str_replace(" ", "%20", $product['ProductsMedia'][0]['path']));
         }
         if (!empty($product['uri'])) {
             $entry->setProductId($product['uri']);
         }
         if (!empty($categories[0]['googlecategs'])) {
             $entry->setCategory($categories[0]['googlecategs']);
         }
         $price = Products::getPriceSuggested($product['product_id'], true);
         $entry->setPrice($price);
         $entry->setCondition('new');
         $entry->setDateModified(time());
         $entry->setDescription(strip_tags($product['ProductsData'][0]['shortdescription']));
         $feed->addEntry($entry);
     }
     $feed = $feed->export('atom');
     // Feed Fixing for google products
     $feed = $this->googlefixes($feed);
     Shineisp_Commons_Utilities::writefile($feed, "documents", "googleproducts.xml");
     die($feed);
 }
示例#2
0
 /**
  * Reset class state to defaults
  *
  * @return void
  */
 public static function reset()
 {
     self::$_pluginLoader = null;
     self::$_prefixPaths = array();
     self::$_extensions = array('entry' => array(), 'feed' => array(), 'entryRenderer' => array(), 'feedRenderer' => array());
 }
 /**
  * Load extensions from Zend_Feed_Writer
  *
  * @return void
  */
 protected function _loadExtensions()
 {
     $all = Zend_Feed_Writer::getExtensions();
     $exts = $all['feed'];
     foreach ($exts as $ext) {
         $className = Zend_Feed_Writer::getPluginLoader()->getClassName($ext);
         $this->_extensions[$ext] = new $className();
         $this->_extensions[$ext]->setEncoding($this->getEncoding());
     }
 }
示例#4
0
 /**
  * Overloading to itunes specific setters
  *
  * @param  string $method
  * @param  array $params
  * @return mixed
  */
 public function __call($method, array $params)
 {
     $point = Zend_Feed_Writer::lcfirst(substr($method, 9));
     if (!method_exists($this, 'setItunes' . ucfirst($point)) && !method_exists($this, 'addItunes' . ucfirst($point))) {
         #require_once 'Zend/Feed/Writer/Exception/InvalidMethodException.php';
         throw new Zend_Feed_Writer_Exception_InvalidMethodException('invalid method: ' . $method);
     }
     if (!array_key_exists($point, $this->_data) || empty($this->_data[$point])) {
         return null;
     }
     return $this->_data[$point];
 }
 /**
  * Load extensions from Zend_Feed_Writer
  *
  * @return void
  */
 protected function _loadExtensions()
 {
     Zend_Feed_Writer::registerCoreExtensions();
     $all = Zend_Feed_Writer::getExtensions();
     if (stripos(get_class($this), 'entry')) {
         $exts = $all['entryRenderer'];
     } else {
         $exts = $all['feedRenderer'];
     }
     foreach ($exts as $extension) {
         $className = Zend_Feed_Writer::getPluginLoader()->getClassName($extension);
         $this->_extensions[$extension] = new $className($this->getDataContainer());
         $this->_extensions[$extension]->setEncoding($this->getEncoding());
     }
 }
示例#6
0
 public function testAddsAndOrdersEntriesByDateIfRequested()
 {
     $writer = new Zend_Feed_Writer();
     $entry = $writer->createEntry();
     $entry->setDateCreated(1234567890);
     $entry2 = $writer->createEntry();
     $entry2->setDateCreated(1230000000);
     $writer->addEntry($entry);
     $writer->addEntry($entry2);
     $writer->orderByDate();
     $this->assertEquals(1230000000, $writer->getEntry(1)->getDateCreated()->get(Zend_Date::TIMESTAMP));
 }