понедельник, 27 сентября 2010 г.

TYPO3 и SEO (часть вторая - tt_news)

В предыдущей статье, а точнее в первой части темы TYPO3 и SEO, я рассказывал о том, как в Typo3 с помощью дополнительных плагинов и TypoScript можно формировать Title и Description обычных страниц системы - page. Но сайт на Typo3 может иметь и другие страницы...

Tt_news - одно из наиболее популярных расширений, применяемых с Typo3. Данный плагин для просмотра всего списка новостей использует одну единственную страницу - страницу детального просмотра новости. Для единообразия и более успешной раскрутки сайта, данная страница должна иметь тот же формат Title, что и все остальные страницы.

Я покажу как это можно сделать.

Предположим, что мы имеем следующие страницы на сайте:




Причем, уникальные идентификаторы страниц (uid) имеем следующие:
Новости - 12
Новости сайта - 37 (страница единичного просмотра)
Новости и статьи - 4 (Sysfolder со списком новостей)

Typo3 шаблон для страницы Новости и Новости сайта:
plugin.tt_news.code >
# Не индексируем страницу со списком новостей
config.index_enable = 0

plugin.tt_news {
code = LIST
}
[globalVar = TSFE:id = 70]
# На данной странице показываем только архивные новости
plugin.tt_news.archive = 1
[else]
plugin.tt_news.archive = -1
[global]

[globalVar = GP:tx_ttnews|tt_news > 0]
# Страница единичной новости
plugin.tt_news.code = SINGLE
# Страницу единичной новости - индексируем!
config.index_enable = 1
# Для единичной новости или статьи создаем мета-теги по нашим правилам
config.noPageTitle = 2

# Для description страницы используем subheader - подзаголовок новости
page.meta.description >
page.meta.description.data = register:newsSubheader

# Запросом находим title - заголовок новости
lib.meta_news=CONTENT
lib.meta_news.table = tt_news
lib.meta_news.select {
pidInList = 4
andWhere.data = GP:tx_ttnews|tt_news
andWhere.intval = 1
andWhere.wrap = uid=|
}

# Это будет перенос на новую строку (см. далее)
lib.meta_news.renderObj = COA
lib.meta_news.renderObj.5 = TEXT
lib.meta_news.renderObj.5.value (

)

lib.meta_news.renderObj.10 = TEXT
lib.meta_news.renderObj.10 {
field = title
wrap = <title>| : Имя сайта</title>
}
lib.meta_news.renderObj.10.append < lib.meta_news.renderObj.5

# Ручная генерация мета-тега - description
# (если кому-то интересно - можно разкомментировать, но убрать page.meta.description выше)
#lib.meta_news.renderObj.20 = TEXT
#lib.meta_news.renderObj.20 {
# field = short
# wrap = <meta name="description" content="|" />
#}
#lib.meta_news.renderObj.20.append < lib.meta_news.renderObj.5

# Записываем в заголовок мета данные
page.headerData.776 >
page.headerData.776 < lib.meta_news

[global]

# Остальные настройки новостей
plugin.tt_news.stdWrap.wrap =
|

plugin.tt_news.templateFile = fileadmin/templates/tt_news_v3_template.html
# Указываем id папки с новостями
plugin.tt_news.pid_list = 4
# Указываем страницу для детального просмотра
plugin.tt_news.singlePid = 37
# Количество новостей в списке
plugin.tt_news.limit = 6
# Задаем формат даты
plugin.tt_news.displayList.date_stdWrap.strftime = %d.%m.%Y
# Если у новости нет подзаголовка, то в режиме списка новостей отображаем первые 250 символов её "тела"
plugin.tt_news.displayList.subheader_stdWrap {
crop = 250 | ... | 1
ifEmpty.field = bodytext
}
lib.newsContent < plugin.tt_news

О себе

Моя фотография
Вадим Гиркало
Фрилансер, веб-разработчик сайтов на базе бесплатной, мощнейшей и очень гибкой CMS системы - TYPO3.
Просмотреть профиль

Позвонить мне в Skype

TOP - 3