Неустранимая ошибка: вызов функции-члена getLevel () для необъекта в magento

Я новичок в magento, недавно разработал один сайт, но в окне поиска, если я что-то ищу, он показывает это сообщение

Фатальная ошибка: Вызов функции-члена getLevel () на не объект в
/home/bjcprod2/public_html/app/design/frontend/amazon/default/template/catalog/product/list.phtml
на линии 32


 <?php
$productOnLine = 4;
$_productCollection=$this->getLoadedProductCollection();
$_collectionSize = $_productCollection->count();
?>
<?php
$_category = Mage::registry('current_category');
if($_category) {
$id = $_category->getId();
$name = $_category->getName();
//Zend_Debug::dump($id);
$styletemplate = (int)$_category->getStyletemplate();   //echo $styletemplate;
$totalPerPage = ($this->show_total) ? $this->show_total :4;
$counter = 1;
$visibility = array(
Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
);
$storeId = Mage::app()->getStore()->getId();

$_productCollection1 = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addOrderedQty()
->addAttributeToFilter('visibility', $visibility)
->setStoreId($storeId)
->addCategoryFilter(Mage::getModel('catalog/category')->load($id))
->setOrder('ordered_qty', 'desc');
$categoryc = Mage::getModel('catalog/category')->load($id);
$children = explode(',', $categoryc->getChildren());
}
if($_category->getLevel() == 2){    include('category_'.$styletemplate.'.phtml');   }else{  include('list_'.$styletemplate.'.phtml');}
?>

пожалуйста помоги.

Заранее спасибо.

-1

Решение

В размещенном коде $ _category устанавливается путем загрузки текущей категории из реестра:

$_category = Mage::registry('current_category');

На следующей строке обратите внимание, что он проверяет, загрузил ли $ _category объект перед продолжением:

if($_category) {. . .

Позже код вызывает getLevel () для $ _category, но в этом случае он сначала не проверяет, является ли $ _category объектом.

if($_category->getLevel() == 2). . .

Это позволяет появиться ошибкам.

Вы можете изменить код, чтобы проверить, что $ _category является объектом. Что-то вроде:

if($_category && $_category->getLevel() == 2)
{
include('category_'.$styletemplate.'.phtml');
} else {
include('list_'.$styletemplate.'.phtml');
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]