![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
|
|
#1 |
|
Senior Member
|
Да, это и похоже на мою идею. Только одним шаблоном это не решить - шаблон выводит одну страницу, а на сайте может быть пару десятков разделов раскиданных на разных ветках. Под разделом я имею в виду страницу с неким плагином (например tt_news), то есть когда одна "физическая" страница в TYPO3 содержит еще десятки-сотни-тысячи виртуальных страниц (например tt_news single view).
|
|
|
|
|
|
#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>
}
|
|
|
|
|
|
#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 включит. |
|
|
|
|
|
#4 |
|
Senior Member
|
Я когда продумывал как это сделать как раз прислушался к совету Валерия размещать все записи непосредственно на страницах, так их действительно проще вынимать для sitemap.
А по поводу длины шаблонов - тут не нужно боятся, надо просто комментировать для себя и заодно где возможно использовать саму базу и бэкенд, т.е. какие-то данные вводить в скрытый контент в бэкенде и т.п. |
|
|
|
|
|
#5 |
|
Senior Member
|
понятно, что на TS можно написать что угодно, но ДЛЯ СОЗДАННОГО ТОБОЮ САЙТА, то есть это решение не охватывает сути...
Ну а по делу... это как RealURL - если кто для него пишет решения - то велком, а нет, так придумывайте - не обяжешь... Или решения есть, вроде привязывания меток к страницам, контенту, кешируемому содержимому и т.п.? По сути: расшифруйте, что нужно от этой карты сайта? Отметить страницы и содержимое (в том числе виртуальные, типа новостей) и далее??? |
|
|
|
|
|
#6 | |
|
Senior Member
|
Цитата:
1. что бы поисковики быстрей индексировали новый контент. 2. и желательно не переиндексировали старый. |
|
|
|
|
|
|
#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 |