Страница 404 в стиль магазина

Тема в разделе "WebAsyst", создана пользователем intercar, 12 фев 2015.

  1. intercar

    intercar

    Регистрация:
    12 фев 2015
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте! Подскажите как сделать красивую страницу 404 в стиле основного шаблона магазина.
    Туда же сразу добавить ссылку на карту сайта
     
  2. Gevano

    Gevano

    Регистрация:
    11 янв 2015
    Сообщения:
    34
    Симпатии:
    5
    Чтобы 404 ошибка открывалась в теле сайта, а не отдельной страницей. Делаем так:

    Можно "обернуть" содержимое 404-й страницы в оформление магазина:

    В файле published/SC/html/scripts/templates/frontend/frame.html

    изменить

    {if $main_body_tpl}{include file=$main_body_tpl}{else}

    {if $page_not_found404}{include file="404.html"}{else}{include file="index.html"}{/if}

    {/if}

    на

    Код:

    {if $main_body_tpl}{include file=$main_body_tpl}{else}

    {include file="index.html"}

    {/if}


    В редакторе дизайна на вкладке "Основная разметка" в режиме правки кода замените

    <td id="container_main_content"><!-- cpt_container_start -->{cpt_maincontent overridestyle=':iwgkmz'}<!-- cpt_container_end --></td>

    на

    <td id="container_main_content">
    {if $page_not_found404}
    {include file="404.html"}
    {else}
    <!-- cpt_container_start -->{cpt_maincontent overridestyle=':iwgkmz'}<!-- cpt_container_end -->
    {/if}
    </td>

    Здесь приведен дефолтный тип разметки.
     
  3. intercar

    intercar

    Регистрация:
    12 фев 2015
    Сообщения:
    4
    Симпатии:
    0
    Спасибо огромное, единственный косяк. Вверху и внизу страницы 404 появляются числа, нельзя никак избавиться от этого?
     
  4. Gevano

    Gevano

    Регистрация:
    11 янв 2015
    Сообщения:
    34
    Симпатии:
    5
    Найдите файл /published/SC/html/scripts/core_functions/functions.php
    В нем функцию error404page
    и в ней закоментируйте строки
    header("HTTP/1.1 404 Not Found;");
    header("Status: 404 Not Found;");
     
  5. Gevano

    Gevano

    Регистрация:
    11 янв 2015
    Сообщения:
    34
    Симпатии:
    5
    Да, кстати чуть не забыл имеется проблема с показом 404 страницы из-за локализации магазина. Это тоже надо подправить, раз у вас ошибка «в теле сайта», а не отдельная страница, ну и чтобы ваши сеошники не орали.
    Наберите например: www.мой-домен.ru/gf
    Вас перебросит не на 404 страницу, а на главную.

    Решение:
    Находите /published/SC/html/scripts/class.furl.php

    В этом файле находите вот такой кусок кода:

    if(strlen($part_value) == 2){//It is language iso2
    $languageEntry = LanguagesManager::getLanguageByISO2($part_value);
    if(!is_null($languageEntry)&&$languageEntry->enabled){

    LanguagesManager::setCurrentLanguage($languageEntry->id, false);
    $this->__path_settings['language_iso2'] = $part_value;
    $this->__path_settings['get'] .= '&lang_iso2='.$part_value;
    }
    break;
    }

    Меняете его на вот этот код:

    if(strlen($part_value) == 2){//It is language iso2
    $languageEntry = LanguagesManager::getLanguageByISO2($part_value);
    if(!is_null($languageEntry)&&$languageEntry->enabled){

    LanguagesManager::setCurrentLanguage($languageEntry->id, false);
    $this->__path_settings['language_iso2'] = $part_value;
    $this->__path_settings['get'] .= '&lang_iso2='.$part_value;
    } else {
    $this->__path_settings['ukey'] = $part_value;
    }
    break;
    }

    Проверяете.