あるサイト(www.theprinterdepo.com)で非常に奇妙な問題が発生しています。グーグルクロームでは、500の内部サーバーエラーが発生しています。ただし、IEではFirefoxで正常に動作します)。私が気付いたのは、Chromeに移動して履歴をクリックし、すべてのキャッシュやCookieなどを削除すると、再び正常に機能することです。
system.logを削除して再度確認したところ、ログに記録されるのはこれだけです。
最初の引数は、/ xxx / xxx / public_html / app / code / local / Mf / Searchterms / Model/Layer.phpの配列である必要があります
これは私が触れたことがない標準のMagentoファイルですが、ここにコードがあります。
<?php
class Mf_Searchterms_Model_Layer extends Mage_Catalog_Model_Layer
{
const XML_PATH_DISPLAY_LAYER_COUNT = 'catalog/search/use_layered_navigation_count';
/**
* Get current layer product collection
*
* @return Mage_Catalog_Model_Resource_Eav_Resource_Product_Collection
*/
public function getProductCollection()
{
if (isset($this->_productCollections[$this->getCurrentCategory()->getId()])) {
$collection = $this->_productCollections[$this->getCurrentCategory()->getId()];
} else {
$collection = Mage::getResourceModel('catalogsearch/fulltext_collection');
$this->prepareProductCollection($collection);
$this->_productCollections[$this->getCurrentCategory()->getId()] = $collection;
}
return $collection;
}
/**
* Prepare product collection
*
* @param Mage_Catalog_Model_Resource_Eav_Resource_Product_Collection $collection
* @return Mage_Catalog_Model_Layer
*/
public function prepareProductCollection($collection)
{
$params = Mage::app()->getRequest()->getParams();
$collection
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes());
$query = Mage::helper('catalogsearch')->getQuery();
$productIds = Mage::getModel('searchterms/searchterms')->getProducts($query->getId());
$productIds = array_filter($productIds);
//var_dump($productIds);
if(is_array($productIds) && sizeof($productIds) > 0){
//echo "asd";
$productIdArray = $productIds;
$collection->addFieldToFilter('entity_id', array('in'=>$productIdArray));
$collection->joinField('position',
'searchterms_product',
'position',
'product_id=entity_id',
'searchterms_id='.$query->getId(),
'left')
;
if(isset($params['order']) && $params['order'] != ""){
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection);
}else{
$collection->setOrder(`searchterms_product`.'position','ASC');
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
}
}
else
{
$collection->addSearchFilter(Mage::helper('catalogsearch')->getQuery()->getQueryText());
$collection->setStore(Mage::app()->getStore())
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents()
->addStoreFilter()
->addUrlRewrite();
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection);
}
return $this;
}
/**
* Get layer state key
*
* @return string
*/
public function getStateKey()
{
if ($this->_stateKey === null) {
$this->_stateKey = 'Q_' . Mage::helper('catalogsearch')->getQuery()->getId()
. '_'. parent::getStateKey();
}
return $this->_stateKey;
}
/**
* Get default tags for current layer state
*
* @param array $additionalTags
* @return array
*/
public function getStateTags(array $additionalTags = array())
{
$additionalTags = parent::getStateTags($additionalTags);
$additionalTags[] = Mage_CatalogSearch_Model_Query::CACHE_TAG;
return $additionalTags;
}
/**
* Add filters to attribute collection
*
* @param Mage_Catalog_Model_Resource_Eav_Resource_Product_Attribute_Collection $collection
* @return Mage_Catalog_Model_Resource_Eav_Resource_Product_Attribute_Collection
*/
protected function _prepareAttributeCollection($collection)
{
$collection->addIsFilterableInSearchFilter()
->addVisibleFilter();
return $collection;
}
/**
* Prepare attribute for use in layered navigation
*
* @param Mage_Eav_Model_Entity_Attribute $attribute
* @return Mage_Eav_Model_Entity_Attribute
*/
protected function _prepareAttribute($attribute)
{
$attribute = parent::_prepareAttribute($attribute);
$attribute->setIsFilterable(Mage_Catalog_Model_Layer_Filter_Attribute::OPTIONS_ONLY_WITH_RESULTS);
return $attribute;
}
}
更新1: apacheエラーログをクリーンアップし、ブラウザーを更新すると、ログの新しいテキストになります:[client 83.134.115.127]スクリプトヘッダーの早期終了:index.php