2013-07-15 4 views
1

У меня есть странный экземпляр, где страница, созданная с помощью бэкэнда CMS, не отображается на сайте. Это происходит только на одной из страниц из 40, которые я недавно создал. Я попытался удалить страницу и переделать ее, но это приводит к той же ошибке. Я также попытался изменить статус на «Отключено» и обратно на «Включено», но это тоже не сработало.Страница не отображается в Magento

Я просто получаю белую страницу без ошибок в консоли или иным образом. Есть предположения?

+0

Вы пробовали создать эту страницу без содержания и т. Д.? Вы очистили кеши? – Zak

+0

Какие магазины выбраны на этой странице cms? –

ответ

0

Ваш пост немного света на детали программист должен помочь вам, так вот как я бы отладить этот

Magento ищет страницы CMS следующим способом.

#File: app/code/core/Mage/Cms/Model/Resource/Page.php 
public function checkIdentifier($identifier, $storeId) 
{ 
    $stores = array(Mage_Core_Model_App::ADMIN_STORE_ID, $storeId); 
    $select = $this->_getLoadByIdentifierSelect($identifier, $stores, 1); 
    $select->reset(Zend_Db_Select::COLUMNS) 
     ->columns('cp.page_id') 
     ->order('cps.store_id DESC') 
     ->limit(1); 

    return $this->_getReadAdapter()->fetchOne($select); 
} 

Этот код генерирует запрос SQL, который сравнивает идентификатор в URL с тем, что он может найти в cms_page таблице. По какой-то причине этот запрос возвращает нулевые строки в экземпляре Magento. Добавьте временный код отладки, чтобы вывести SQL-запрос

$select->reset(Zend_Db_Select::COLUMNS) 
     ->columns('cp.page_id') 
     ->order('cps.store_id DESC') 
     ->limit(1); 

    echo '<pre>'; 
    echo $select->__toString(); 
    echo '</pre>'; 
    exit(__METHOD__ . '::' . __LINE__); 
    return $this->_getReadAdapter()->fetchOne($select); 

и определить, почему ваш запрос не возвращает строк.

+0

Ну, это сообщение, которое я получил: SELECT 'cms_page'. * FROM' cms_page' INNER JOIN 'cms_page_store' ON cms_page.page_id = cms_page_store.page_id WHERE (' cms_page'.'page_id' = '68 ') AND (is_active = 1) И (cms_page_store.store_id IN (0, 1)) ORDER BY 'cms_page_store'.'store_id' DESC LIMIT 1 Mage_Cms_Model_Resource_Page :: _ getLoadSelect :: 214 – user2584696

+0

Я посмотрел в БД и паге, к которому я пытаюсь получить доступ, является действительно, id страницы = 68. Все еще запутано. Gremlins man .. – user2584696

+0

@ user2584696 Вы запускали SQL против своей базы данных и возвращали строку? –