2010-10-07 61 views
3

我正在使用Magento的catalogsearch模塊。我有2家商店。在第一次搜索「測試」時,我得到5個結果。在第二次搜索「測試」時,我得到3個結果。Magento:根據商店的程序搜索

我想在第一次搜索時添加第二家店的結果(只是結果的數量)。

我添加了一個塊和一個模板,我所需要的只是檢索第二個商店中結果數量的代碼,這就是我被卡住的地方。

我試圖讓控制器代碼,但它總是返回我的第一家店結果的數量:

私有函數 _getStoreQuery($ STOREID){

  $query = Mage::helper('catalogSearch')->getQuery(); 
    $query->setStoreId(7); 



      if ($query->getQueryText()) { 
     if (Mage::helper('catalogSearch')->isMinQueryLength()) 

{ $ query-> setId(0) - > setIsActive(1) - > setIsProcessed(1); ($ query-> getId()){ } else { if($ query-> getId()){ $ query-> setPopularity($ query-> getPopularity()+1); } else { $ query-> setPopularity(1); }

  $query->prepare(); 
     } 

     Mage::helper('catalogSearch')->checkNotes(); 

     if (!Mage::helper('catalogSearch')->isMinQueryLength()) 

{ $查詢 - >保存(); }}

var_dump($query); 
    return $query; 

     } 

我也嘗試過改變賣場方面,但沒有運氣: 法師::應用程序() - > setCurrentStore($ secondStoreId);

你有什麼想法嗎?謝謝

回答

1

可能是第二組嘗試返回第一組結果的原因是因爲您正在重新使用Mage_Catalogsearch_Model_Query對象。您需要創建一組新的結果。這裏的集合將創建這些,你只需要遍歷$collection來獲得它們。

$queryText = Mage::helper('catalogSearch')->getQueryText(); 
$collection = Mage::getResourceModel('catalogsearch/query_collection') 
    ->setStoreId($storeId) 
    ->setQueryFilter($queryText); 
+0

我認爲這的確是問題,但是您的提示並未解決問題。 – frinux 2010-10-11 07:17:06

+0

這裏是集合的內容:http://pastebin.com/BwiFEQbi 當我嘗試迭代它時,它崩潰Magento(頁面停止加載): foreach($ collection as $ col){var_dump($列); } 該數據庫還包含只有一個查詢(商店1上的一個) – frinux 2010-10-11 07:27:00

+0

當我嘗試同樣的事情時,我得到這個http://pastebin.com/nVKQPSky。如果我搜索不存在的東西,集合是空的,沒有崩潰。總之,我無法重現你所看到的。 – clockworkgeek 2010-10-11 11:54:31