Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
22.02.2012, 11:49 | #1 |
Senior Member
|
Да, это и похоже на мою идею. Только одним шаблоном это не решить - шаблон выводит одну страницу, а на сайте может быть пару десятков разделов раскиданных на разных ветках. Под разделом я имею в виду страницу с неким плагином (например tt_news), то есть когда одна "физическая" страница в TYPO3 содержит еще десятки-сотни-тысячи виртуальных страниц (например tt_news single view).
|
22.02.2012, 12:14 | #2 |
Senior Member
|
Я приведу пример:
http://www.rzhevrealty.ru/sitemap.xml выводится вот этим вот шаблоном: Код:
[globalVar = GP:type > 0] config.sourceopt.enabled = 0 [end] sitemap = PAGE sitemap { typeNum = 777 config { disableAllHeaderCode = 1 additionalHeaders = Content-type:text/xml no_cache = 1 xhtml_cleaning = 0 admPanel = 0 absRefPrefix = http://www.rzhevrealty.ru/ } ### start_tags 10 = TEXT 10.value = <?xml version="1.0" encoding="UTF-8"?> 10.postCObject = TEXT 10.postCObject.char = 10 20 = TEXT 20.value = <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 20.postCObject = TEXT 20.postCObject.char = 10 ### main_page 30 = COA 30 { wrap = <url>|</url> 1 = TEXT 1.typolink.parameter.data = leveluid:0 1.typolink.returnLast = url 1.wrap = <loc>|</loc> 2 = TEXT 2.data = field:tstamp 2.date = c 2.wrap = <lastmod>|</lastmod> } ### main_menu 40 = HMENU 40 { wrap = | entryLevel = 0 1 = TMENU 1 { expAll = 1 NO { doNotShowLink = 1 allStdWrap.cObject = COA allStdWrap.cObject.wrap = <url>|</url> allStdWrap.cObject.10 = TEXT allStdWrap.cObject.10.typolink.parameter.field = uid allStdWrap.cObject.10.typolink.returnLast = url allStdWrap.cObject.10.wrap = <loc>|</loc> allStdWrap.cObject.20 = TEXT allStdWrap.cObject.20.field = tstamp allStdWrap.cObject.20.date = c allStdWrap.cObject.20.wrap = <lastmod>|</lastmod> } } } ### side_menu 50 < .40 50.special = directory 50.special.value = 9 ### show_realty_objects 60 = CONTENT 60 { table = tx_estateagent_estate select { selectFields = uid, pid, tstamp, name pidInList = this orderBy = pid recursive = 100 andWhere = NOT deleted } renderObj = COA renderObj { wrap = <url>|</url> 1 = TEXT 1.typolink.parameter.field = pid 1.typolink.additionalParams = &tx_estateagent_pi1[showUid]={field:uid} 1.typolink.additionalParams.stdWrap.insertData = 1 1.typolink.returnLast = url 1.insertData = 1 1.wrap = <loc>|</loc> 2 = TEXT 2.field = tstamp 2.date = c 2.wrap = <lastmod>|</lastmod> } } ### end_tags 70 = TEXT 70.value = </urlset> } |
22.02.2012, 12:45 | #3 |
Senior Member
|
Да, простой и полезный код.
Но на сколько я понимаю у вас записи для tx_estateagent_pi1 хранятся на тех же страницах на которых выводятся. Это упрощает решение. Но в моем случае такая реализация будет затруднительна. Например, записи "компании" хранятся в нескольких SysFolder, и выводятся на нескольких разных страницах в зависимости от SysFolder и категории. Откуда выводить компании (SysFolder) и каких категорий задается в FlexForm плагина на странице. Получается всю такую конфигурацию для всего сайта нужно продублировать в шаблоне для typeNum = 777. Получится очень длинный шаблон с большим количеством кода, и следовательно легко что-то забыть там добавить, забыть вносить изменения сделанные в конфигурации разделов. Теперь думаю сделать так как вы написали, но для каждого раздела (некоторые страницы) сделать свою конфигурацию для sitemap, так проще ее поддерживать актуальной. И потом написать что-то вроде crawler-a, который: 1. будет проходить по всем страницам, запрашивать их с typeNum = 777 2. если получит в ответ валидный xml (это sitemap.xml для этого раздела), то добавит в общий sitemap index файл ( http://www.sitemaps.org/protocol.html#index) 3. ну и конечно sitemap обычных страниц тоже в sitemap index включит. |
22.02.2012, 13:14 | #4 |
Senior Member
|
Я когда продумывал как это сделать как раз прислушался к совету Валерия размещать все записи непосредственно на страницах, так их действительно проще вынимать для sitemap.
А по поводу длины шаблонов - тут не нужно боятся, надо просто комментировать для себя и заодно где возможно использовать саму базу и бэкенд, т.е. какие-то данные вводить в скрытый контент в бэкенде и т.п. |
23.02.2012, 00:24 | #5 |
Senior Member
|
понятно, что на TS можно написать что угодно, но ДЛЯ СОЗДАННОГО ТОБОЮ САЙТА, то есть это решение не охватывает сути...
Ну а по делу... это как RealURL - если кто для него пишет решения - то велком, а нет, так придумывайте - не обяжешь... Или решения есть, вроде привязывания меток к страницам, контенту, кешируемому содержимому и т.п.? По сути: расшифруйте, что нужно от этой карты сайта? Отметить страницы и содержимое (в том числе виртуальные, типа новостей) и далее??? |
23.02.2012, 11:43 | #6 | |
Senior Member
|
Цитата:
1. что бы поисковики быстрей индексировали новый контент. 2. и желательно не переиндексировали старый. |
|
16.04.2012, 18:55 | #7 |
Senior Member
|
А если как раз использовать кэш realurl?
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Настройки параметров ImageMagick для TYPO3 на FreeBSD и Linux | Valery Romanchev | Мастер-класс | 9 | 25.06.2013 22:38 |
Подойдет ли TYPO3 для информационного сайта? | vold57 | Вопросы выбора CMS | 19 | 07.12.2011 00:23 |
Подойдет ли Typo3 для моего сайта | Marlina | Вопросы выбора CMS | 2 | 12.05.2010 15:05 |
Подходит ли Typo3 для простого сайта? | juvie | Общие вопросы | 3 | 23.02.2007 18:23 |
Каковы требования к хостингу для нормального функционирования сайта на базе typo3 | Александр | FAQ (Часто задаваемые вопросы) | 11 | 01.12.2006 16:12 |