Beispiel #1
0
 /**
  * @param Mage_Catalog_Model_Category $category
  * @return mixed
  */
 public function getImageUrl($category)
 {
     $url = null;
     if ($image = $category->getThumbnail()) {
         $url = Mage::getBaseUrl('media') . 'catalog/category/' . $image;
     }
     if (!$url) {
         $url = $category->getImageUrl();
     }
     return $this->_getExportHelper()->parseUrl($url);
 }
Beispiel #2
0
 /**
  * Provides the URL to the image on the CDN or fails back to the parent method as appropriate
  *
  * @return string
  */
 public function getImageUrl()
 {
     $path = false;
     if ($image = $this->getImage()) {
         $path = Mage::getBaseDir('media') . '/catalog/category/' . $image;
     }
     $cds = Mage::Helper('imagecdn')->factory();
     if ($path && $cds->useCdn()) {
         $fileExists = $cds->fileExists($path);
         if (!$fileExists) {
             $cds->save($path, $path);
         }
         $url = $cds->getUrl($path);
         if ($url) {
             return $url;
         }
     }
     return parent::getImageUrl();
 }
 public function getObject(Mage_Catalog_Model_Category $category)
 {
     /** @var $productCollection Mage_Catalog_Model_Resource_Product_Collection */
     $productCollection = $category->getProductCollection();
     $category->setProductCount($productCollection->addMinimalPrice()->count());
     $transport = new Varien_Object();
     Mage::dispatchEvent('algolia_category_index_before', array('category' => $category, 'custom_data' => $transport));
     $customData = $transport->getData();
     $storeId = $category->getStoreId();
     $category->getUrlInstance()->setStore($storeId);
     $path = '';
     foreach ($category->getPathIds() as $categoryId) {
         if ($path != '') {
             $path .= ' / ';
         }
         $path .= $this->getCategoryName($categoryId, $storeId);
     }
     $image_url = NULL;
     try {
         $image_url = $category->getImageUrl();
     } catch (Exception $e) {
         /* no image, no default: not fatal */
     }
     $data = array('objectID' => $category->getId(), 'name' => $category->getName(), 'path' => $path, 'level' => $category->getLevel(), 'url' => $category->getUrl(), '_tags' => array('category'), 'popularity' => 1, 'product_count' => $category->getProductCount());
     if (!empty($image_url)) {
         $data['image_url'] = $image_url;
     }
     foreach ($this->config->getCategoryAdditionalAttributes($storeId) as $attribute) {
         $value = $category->getData($attribute['attribute']);
         $attribute_ressource = $category->getResource()->getAttribute($attribute['attribute']);
         if ($attribute_ressource) {
             $value = $attribute_ressource->getFrontend()->getValue($category);
         }
         if (isset($data[$attribute['attribute']])) {
             $value = $data[$attribute['attribute']];
         }
         if ($value) {
             $data[$attribute['attribute']] = $value;
         }
     }
     $data = array_merge($data, $customData);
     foreach ($data as &$data0) {
         $data0 = $this->try_cast($data0);
     }
     return $data;
 }
Beispiel #4
0
 public function testGetImageUrl()
 {
     $this->assertFalse($this->_model->getImageUrl());
     $this->_model->setImage('test.gif');
     $this->assertStringEndsWith('media/catalog/category/test.gif', $this->_model->getImageUrl());
 }
 /**
  * Prepare category JSON
  *
  * @param Mage_Catalog_Model_Category $category
  * @return array
  */
 public function getCategoryJSON(Mage_Catalog_Model_Category $category)
 {
     $transport = new Varien_Object();
     Mage::dispatchEvent('algolia_category_index_before', array('category' => $category, 'custom_data' => $transport));
     $customData = $transport->getData();
     $storeId = $category->getStoreId();
     $category->getUrlInstance()->setStore($storeId);
     $path = '';
     foreach ($category->getPathIds() as $categoryId) {
         if ($path != '') {
             $path .= ' / ';
         }
         $path .= $this->getCategoryName($categoryId, $storeId);
     }
     $imageUrl = NULL;
     try {
         $imageUrl = $category->getImageUrl();
     } catch (Exception $e) {
         /* no image, no default: not fatal */
     }
     $data = array('objectID' => $this->getCategoryObjectId($category), 'name' => $category->getName(), 'path' => $path, 'level' => $category->getLevel(), 'url' => $category->getUrl(), '_tags' => array('category'), 'popularity' => 1);
     if ($this->isIndexProductCount()) {
         $data['product_count'] = $data['popularity'] = $category->getProductCount();
     }
     if (!empty($imageUrl)) {
         $data['image_url'] = $imageUrl;
     }
     foreach ($this->getCategoryAdditionalAttributes($storeId) as $attributeCode) {
         $value = $category->hasData($this->_dataPrefix . $attributeCode) ? $category->getData($this->_dataPrefix . $attributeCode) : $category->getData($attributeCode);
         $value = Mage::getResourceSingleton('algoliasearch/fulltext')->getAttributeValue($attributeCode, $value, $storeId, Mage_Catalog_Model_Category::ENTITY);
         if ($value) {
             $data[$attributeCode] = $value;
         }
     }
     $data = array_merge($data, $customData);
     return $data;
 }