по мотивам темы а также этой
Проверка на существование странички:
вставляется в frontend.php компонента content перед! строкой "//PAGE HEADING"
теперь несуществующие страницы пагинатора будут выдавать 404 ошибку, осталось склеить страницы вида /stati/page-1 со страницей /stati:
это правило надо добавить в url_rewrite.php (в корне сайта) либо правильнее в custom_rewrite.php, если вы его создавали.теперь сделаем добавление в тайтл страницы ее номера — возвращаемся к файлу frontend.php и послеменяем! строчку на такой код:
каталог я не использую, но думаю, что там подобным образом можно также избавиться от этих недостатков ядра.
послев соответствующий frontend.php
Добавление номера страницы в тайтл там уже есть, редирект "/page-1" такой-же как в статьях(если делали для статей он сработает, добавлять не надо).
добавляемИ, т.к. в каталоге отсутствует "page" в УРЛ странички, надо либо его туда добавить, либо, что проще, добавить отдельное правило в url_rewrite.php для склейки страницы типа "/catalog/ххх-1" с "/catalog/ххх":
Добавление номера страницы в тайтл там такое-же, как и в статьях, найти и заменить на Изменения для каталога проверены на последней версии 1.9...
P.S. Как предложил Fuze у меня в каталоге и статьях, к сожалению, не получилось, вывод объектов там вроде иначе сделан, чем в actions, либо просто мозгов не хватило…
1) Статьи
Решение топорное, но оно вроде работает у меня на ICMS 1.8, насколько я понимаю в 1.9 ничего в этом плане не изменилось...Проверка на существование странички:
$page = $inCore->request('page', 'int', 1); $perpage = $cfg['perpage'] ? $cfg['perpage'] : 20; $total = $inDB->rows_count('cms_content', 'published=1 AND category_id='.$cat['id']); if ($page > 1 && $page > $total_pages) {cmsCore::error404();}
теперь несуществующие страницы пагинатора будут выдавать 404 ошибку, осталось склеить страницы вида /stati/page-1 со страницей /stati:
'source' => '/^(.+)\/page-1$/i', 'target' => '/{1}', 'action' => 'redirect-301' );
//PAGE HEADING if($cat['id']>0){
$inPage->setTitle($cat['title']);
$page = $inCore->request('page', 'int', 1); $page_title = $cat['title']; if($page>1) { $page_title .= ' - '.$_LANG['PAGE'].' '.$page; } $inPage->setTitle($page_title);
2. InstantMaps
Для Instantmaps достаточно добавить строчку
if ($page > 1 && $page > $pages) {cmsCore::error404();}
//считаем конечное число страниц
Добавление номера страницы в тайтл там уже есть, редирект "/page-1" такой-же как в статьях(если делали для статей он сработает, добавлять не надо).
3. Универсальный каталог
после
if ($itemscount>0){ //pagination if (!@$advsearch) { $perpage = $cat['perpage']; } else { $perpage='100'; } $page = $inCore->request('page', 'int', 1);
if ($page > 1 && $page > $total_pages) {cmsCore::error404();}
'source' => '/^catalog\/(.+)-1$/i', 'target' => '/catalog/{1}', 'action' => 'redirect-301' );
$inPage->setTitle($cat['title']);
$page = $inCore->request('page', 'int', 1); $page_title = $cat['title']; if($page>1) { $page_title .= ' - '.$_LANG['PAGE'].' '.$page; } $inPage->setTitle($page_title);
P.S. Как предложил Fuze у меня в каталоге и статьях, к сожалению, не получилось, вывод объектов там вроде иначе сделан, чем в actions, либо просто мозгов не хватило…
Реклама #
bondar 12 лет назад #
googlebot 12 лет назад #
bondar 12 лет назад #
например /page-66 - отображает титтл страница 66 - это дубль?? если она такая же как и 3 страница, просто на ней нет списка объектов, ну у нее же титл другой, юрл другой. я прост не пойму с чего это считает дублем??
bondar 12 лет назад #
Dost 12 лет назад #
bondar 12 лет назад #
Dost 12 лет назад #
Dost 12 лет назад #
Спасибо!+
Fuze 12 лет назад #
после получения массива списка чего-либо, проверять, не пустой ли он и не первая ли это страница, пример на компоненте actions
после
letsgo 12 лет назад #
Fuze 12 лет назад #
Dorimen 12 лет назад #
Евгений Фоменко 12 лет назад #
Будет работать данное решение? Или оно универсальное?
googlebot 12 лет назад #
Dorimen 12 лет назад #
googlebot 12 лет назад #
Dorimen 12 лет назад #
googlebot 12 лет назад #
Dorimen 12 лет назад #
Евгений Фоменко 12 лет назад #
Сейчас с самого начала пройдемся...
Евгений Фоменко 12 лет назад #
googlebot 12 лет назад #
Евгений Фоменко 12 лет назад #
universe 12 лет назад #
universe 12 лет назад #
googlebot 12 лет назад #
traffs 12 лет назад #
Ещё раз спасибо !!!)
traffs 12 лет назад #
вот пример:
http://statmen.ru/catalog/1002-9999
Подскажите, что нужно добавить в коде для таких страниц?
googlebot 12 лет назад #
Dorimen 12 лет назад #
googlebot 12 лет назад #
Dorimen 12 лет назад #
Reborn 12 лет назад #
Сделал себе для InstantShop.
maia 11 лет назад #
maia 11 лет назад #
$rules[] = array(
'source' => '/^catalog\/([0-9]*)-([0-9]*)$/i',
'target' => '/catalog/{1}',
'action' => 'redirect-301'
);
Я в этом не специалист, но так заработало. Поправьте, плз, если не правильно, пока не поздно ))
googlebot 11 лет назад #
maia 11 лет назад #
maia 11 лет назад #
maia 11 лет назад #
googlebot 11 лет назад #
maia 11 лет назад #
googlebot 11 лет назад #
Dorimen 11 лет назад #
Евгений Фоменко 11 лет назад #
Если временем не располагаете, отпишитесь - может есть смысл обратиться к кому-то еще, не хочется чтобы у сообщества сайты сыпались.
googlebot 11 лет назад #
Евгений Фоменко 10 лет назад #