30.08.11

Настройка RealUrl для страниц новостей tt_news pagebrowser

настройка real url

Для того чтобы ссылки сайта выглядели красиво, то есть содержали вместо параметров id, tt_news более близкие человеку название категорий, страниц или разделов используется модуль RealURL speaking paths for TYPO3 (realurl). Это один из вариантов сделать ЧПУ в TYPO3, можно сказать, самый популярный. Настройка realurl, в принципе, производится по стандартным правилам и в сети даже есть готовые варианты конфигураций, которые можно позаимствовать. Тем не менее, иногда возникают ситуации, нюансы и неточности с которыми приходится разбираться. Сегодня рассмотрим одну из них.

На сайте про Готику 4 есть отдельный раздел под названием «Игровой блог», где публикуются разные новости компьютерных игр. Реализовано все с помощью плагина tt_news, на одной странице выводится список всех записей, на другой пост отображается полностью.

Ссылки на новости имеют вид:

http://gothic4.com.ua/blog/post/45.html
http://gothic4.com.ua/blog/post/42.html

Внизу страницы расположен браузер страниц tt_news, для которого в RealURL установлено правила отображения ссылок в таком виде:

http://gothic4.com.ua/gameblog/browse/1.html
http://gothic4.com.ua/gameblog/browse/2.html

Проблема, которая возникала — при переходе на следующие страницы игрового блога вместе с параметром ID для новости в RealURL «подхватывался» и номер страницы, в итоге получалось:

http://gothic4.com.ua/blog/browse/2/post/32.html
http://gothic4.com.ua/blog/browse/2/post/31.html

Это, во-первых, немного некрасиво и не логично, во-вторых, нехорошо для поисковых систем и индексации страниц. Как только новость попадала на следующую страницу ее URL сразу же менялся, что не есть гуд.

Пришлось потратить на изучение вопроса некоторое время, причем возникали странные непонятные нюансы и не состыковки. Перепробовал достаточно много различных типовых настроек RealURL в том числе с официального сайта, устанавливал разные версии экстеншена, но ничего не помогало, но в итоге все вышло.

Решение задачи

В базовой настройке RealURL для отображения записей tt_news прописывались исключительно через  postVarSets

'postVarSets' => array(
            '_DEFAULT' => array(
                'archive' => array(
                    array(
                        'GETvar' => 'tx_ttnews[year]' ,
                        ),
                    array(
                        'GETvar' => 'tx_ttnews[month]' ,
                            'valueMap' => array(
                            'january' => '01',
                            'february' => '02',
                            'march' => '03',
                            'april' => '04',
                            'may' => '05',
                            'june' => '06',
                            'july' => '07',
                            'august' => '08',
                            'september' => '09',
                            'october' => '10',
                            'november' => '11',
                            'december' => '12',
                            )
                        ),
                    ),
                'browse' => array(
                    array(
                        'GETvar' => 'tx_ttnews[pointer]',                                        
                        ),
                    ),
                'select_category' => array (
                    array(
                        'GETvar' => 'tx_ttnews[cat]',
                        ),
                    ),
                'post' => array(
                    array(
                        'GETvar' => 'tx_ttnews[tt_news]',
                        'lookUpTable' => array(
                            'table' => 'tt_news',
                            'id_field' => 'uid',
                            'alias_field' => 'uid',
                            'addWhereClause' => ' AND NOT deleted',
                            'useUniqueCache' => 1,
                            'useUniqueCache_conf' => array(
                                'strtolower' => 1,
                                'spaceCharacter' => '-',
                                ),
                            ),
                        ),
		    array(
			'GETvar' => 'tx_ttnews[backPid]',
                                'valueMap' => array(
                                    'no_cache' => 0,
                                ),
                                'noMatch' => 'bypass',						
						),	                        
                    array(
                        'GETvar' => 'tx_ttnews[swords]',
                        ),
                    ),
                ),             
            ),

После этих строк я добавил также директиву fixedPostVars.

'fixedPostVars' => array(
    '65' => array (
        array(
                    'GETvar' => 'tx_ttnews[tt_news]',
                        'lookUpTable' => array(
                            'table' => 'tt_news',
                            'id_field' => 'uid',
                            'alias_field' => 'uid',
                            'addWhereClause' => ' AND NOT deleted',
                            'useUniqueCache' => 1,
                            'useUniqueCache_conf' => array(
                                'strtolower' => 1,
                                'spaceCharacter' => '-',
                                ),
                            ),
                        ),
		array(
  		    'GETvar' => 'tx_ttnews[pointer]',
  		    'noMatch' => 'bypass',
		),
	 ), 
 ),

Здесь 65 — ID страницы где новости отображаются полностью, для параметра tx_ttnews[pointer], что отвечает за страницы указывается мол его нужно пропустить. Сохраняем после этого настройки RealURL, очищаем кэш.

Также нужно посмотреть параметры Alias и Speaking URL path segment в настройках страницы — все ли вам подходит как нужно. И, возможно, придется удалить старые значения ЧПУ через меню Web — Info. Выбираете корневую либо страницу новостей, в окне справа открываете Real URL Management, чуть ниже пункт Show ID-to-path mapping.

конфигурация real url

Лично у меня после изменений настроек страницы и очистки кэша новые значения URL страниц не всегда срабатывали, поэтому пришлось очищать предварительно старые в этом разделе меню. Потом также советую еще пару раз проверить работоспособность сайта и ссылок в разных браузерах дабы на 100% удостовериться в правильной настройки Real URL.

P.S. Интернет магазин Линзмастер предлагает цветные контактные линзы и различные аксессуары к ним по хорошим ценам и с доставкой.

Понравился пост? Подпишись на TYPO3 блог typo3 blog RSSRSS, RSS typo3 blogEmail или typo3 twittertwitter!
Экстеншены

1 комментарий к статье “Настройка RealUrl для страниц новостей tt_news pagebrowser”

  1. Maks   31.08.11

    Отличная заметка. Пригодилась.

Оставить комментарий к статье Настройка RealUrl для страниц новостей tt_news pagebrowser

Полезные блоги

  • для блоггеров и вебмастеров