public function load($printQuery = false, $logQuery = false)
 {
     if ($this->isLoaded()) {
         return $this;
     }
     $this->_renderFilters()->_renderOrders()->_renderLimit();
     $data = $this->getData();
     $this->resetData();
     if (is_array($data)) {
         $setIds = array();
         foreach ($data as $row) {
             $item = $this->getNewEmptyItem();
             if ($this->getIdFieldName()) {
                 $item->setIdFieldName($this->getIdFieldName());
             }
             $typeConverter = new DMC_Solr_Model_SolrServer_Adapter_Cms_TypeConverter();
             foreach ($row as $key => $value) {
                 $productAttrName = $typeConverter->getProductAttributeName($key);
                 if (!is_null($productAttrName)) {
                     $row[$productAttrName] = $value;
                 }
             }
             $row['page_id'] = $row['id'];
             $row['request_path'] = isset($row['rewrite_path']) ? $row['rewrite_path'] : null;
             $item->addData($row);
             $this->addItem($item);
         }
     }
     $this->_setIsLoaded();
     $this->_afterLoad();
     return $this;
 }
Beispiel #2
0
 public function setObject($object)
 {
     try {
         if ($object->getSolrIgnore() == 1) {
             throw new DMC_Solr_Model_Catalog_Product_Exception('The cms page #' . $object->getId() . ' was ignored');
         }
         parent::setObject($object);
         Mage::helper('solr/log')->addDebugMessage('Add CMS Page #' . $object->getId() . ' to index of store ' . $this->getStoreId());
         $staticFields = DMC_Solr_Model_SolrServer_Adapter_Cms_TypeConverter::getStaticFields();
         foreach ($staticFields as $key => $defaultValue) {
             $methodName = '_get_value_' . $key;
             if (method_exists($this, $methodName)) {
                 $value = $this->{$methodName}($object);
             } elseif (is_null($defaultValue)) {
                 continue;
             } else {
                 $value = $defaultValue;
             }
             if (is_array($value)) {
                 foreach ($value as $datum) {
                     $this->setMultiValue($key, $datum);
                 }
             } else {
                 $this->_fields[$key] = $value;
             }
         }
     } catch (DMC_Solr_Model_Catalog_Product_Exception $e) {
         Mage::helper('solr/log')->addDebugMessage($e->getMessage());
         return false;
     }
     return true;
 }