Перейти к содержанию
Форум поддержки пользователей VamShop

Разные шаблоны для главной и внутренних


Рекомендуемые сообщения

у меня для главной и внутренних два разных шаблона отображения

выводятся по такому правилу

{if $smarty.server.REQUEST_URI != "/index.php" && $smarty.server.REQUEST_URI != "/index.php?language=ua" && $smarty.server.REQUEST_URI != "/index.php?language=en"

&& $smarty.server.REQUEST_URI != "/index.php?language=ru" && $smarty.server.REQUEST_URI != "/"}

{include file="шаблон/page.html"}

{else}

{include file="шаблон/index_start.html"}

{/if}

но вот беда, когда страница не найдена т.е. на 404-ой выводится не просто главная, как должно быть, а шаблон внутри шаблона,

как это исправить?

Ссылка на сообщение
Поделиться на другие сайты

Вроде в корне магазина, в файле index.php в самом конце еще шаблон назначается.

Ссылка на сообщение
Поделиться на другие сайты

насколько я понял вот эта строчка

$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/index.html');
я попытался сделать так
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/[b]index_start[/b].html');

так на внутренних работает шаблон главной

я так понимаю тут что-то координально нужно поменять!?

Ссылка на сообщение
Поделиться на другие сайты

Так используйте так же условие, только в /index.php внизу:


if главная страница {
$template = ...
} else {
$template = ...
}
[/code]

Ссылка на сообщение
Поделиться на другие сайты

я сделал вот так


if (strstr($PHP_SELF, FILENAME_DEFAULT)) {
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/index_start.html');
} else {
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/page.html');

}[/code]

но не работает, для всех страниц index_start.html присваивается

Ссылка на сообщение
Поделиться на другие сайты

Добавьте ещё в условие !isset($GET['cat'])

А вообще были ведь темы на форуме с примером кода, как правильно делать.

Искали через поиск?!

Можно вообще попробовать ничего не трогать в коде, а просто делать шаблон index.php_.html или index.php_0.html

Ссылка на сообщение
Поделиться на другие сайты

VaM напиши пожалуйста по подробнее как записать это условие,

что по форуму шарюсь а ничего толкового не найду,

и еще подскажи какой из способов назначения разных шаблонов эффективнее в плане производительности?

Ссылка на сообщение
Поделиться на другие сайты

Я Вам в прошлом сообщении написал ведь какие шаблоны надо создать, Вы пробовали так делать?!

Это ж должно работать без какой-либо правки кода.

Ссылка на сообщение
Поделиться на другие сайты

оооо, отлично работает, но только вот так

index.php_.html  - это шаблон для главной

а это

index.html - для внутренней

Спасибо, большущее Vam

я просто сначала не вкурил как оно может работать по дефолту ничего не меняя в коде

отлично, вообще без лишнего кода, а как это работает интересно,

и можно ли таким же образом отдельный шаблон к примеру для новостей сделать!?

Ссылка на сообщение
Поделиться на другие сайты

Можно.

В руководстве пользователя написано - http://vamshop.ru/manual/ch14.html#id2665061

Для новостей получается, что шаблон будет news.php.html

Ссылка на сообщение
Поделиться на другие сайты

Использую для главной отдельный дизайн через шаблон index.php_.html

Но он затрагивает вывод производителей, адрес вида index.php?manufacturers_id=1. Наверно нижнее подчеркивание срабатывает.

Как побороть? Мне в товарах производителя обычный шаблон нужен.

P.S. А у меня шаблон index.php_0.html вообще не хочет работать.

Ссылка на сообщение
Поделиться на другие сайты

Наверное только в /index.php внизу прописываеть условие нужное, что б только для главной страницы работал.

Ссылка на сообщение
Поделиться на другие сайты
  • 1 month later...

Наверное только в /index.php внизу прописываеть условие нужное, что б только для главной страницы работал.

А можно как то по подробнее? А то действительно в производителях вылазит!

Ссылка на сообщение
Поделиться на другие сайты

' timestamp='1303339478' post='66413']

Использую для главной отдельный дизайн через шаблон index.php_.html

Но он затрагивает вывод производителей, адрес вида index.php?manufacturers_id=1. Наверно нижнее подчеркивание срабатывает.

Как побороть? Мне в товарах производителя обычный шаблон нужен.

P.S. А у меня шаблон index.php_0.html вообще не хочет работать.

я заменил в /index.php

$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/index.html');

на

$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.$cID.'.html' : CURRENT_TEMPLATE.'/index.html');

2 файла в папке с шаблоном - index.php.html (для Главной) и index.html (для остальных).

вроде работает. дотошно не искал баги.

Ссылка на сообщение
Поделиться на другие сайты

а как будет выглядит условие на проверку главной страницы?

PS неужели нет готового рабочего решения чтобы шаблон главной страницы был ТОЛЬКО на главной?

Или опять в Коммерческие предложения? ))

Ссылка на сообщение
Поделиться на другие сайты

Выше был пример кода:


if (strstr($PHP_SELF, FILENAME_DEFAULT)) {
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/index_start.html');
} else {
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/page.html');
}
[/code] попробуйте его заменить например на:
[code]
if (strstr($PHP_SELF, FILENAME_DEFAULT) && !$_GET['cat'] && !$_GET['manufacturers_id']) {
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/index_start.html');
} else {
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/page.html');
}

Ссылка на сообщение
Поделиться на другие сайты

А если так:


if (!$_GET['cat'] && !$_GET['manufacturers_id']) {
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/index_start.html');
} else {
$template = (file_exists('templates/'.CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_DEFAULT.'_'.$cID.'.html' : CURRENT_TEMPLATE.'/page.html');
}
[/code]

Ссылка на сообщение
Поделиться на другие сайты

Так а если просто вернуть код по умолчанию и скопировать index.html в index.php_.html ?!

По идее, index.php_.html файл как раз и будет использоваться для главной страницы.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...