Создаем XML дерева страниц TYPO3 для Flash меню
English version / Английская версия статьи
Возможности TYPO3 совсем не ограничены одними только HTML страницами. Для того что бы сформировать XML файл по контенту в TYPO3 совершенно не нужны какие-либо расширения, коих, к моему удивление, такое большое количество в репозитории.
Поскольку я не приветствую использование расширений без особой причины, приведу пример формирования XML выгрузки страниц из TYPO3 для Flash меню. Стоит отметить, что тем же способом можно выдавать абсолютно любого вида и направленности данные, как например, Google Sitemaps или WML и т.д.
XML для Flash menu имеет следующий вид:
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="UTF-8"?> <menu> <item url="index.php?id=1" title="Page 1" /> <item url="index.php?id=2" title="Page 2" /> <item url="index.php?id=3" title="Page 3"> <item url="index.php?id=4" title="Page 3-1" /> <item url="index.php?id=5" title="Page 3-2" /> <item url="index.php?id=6" title="Page 3-3"> </item> <item url="index.php?id=7" title="Page 4"/> </menu> |
Typoscipt генерации такого XML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | ######################################## # PAGETREE TO XML ######################################## xmlmenu = PAGE xmlmenu.typeNum = 111 # отключаем генерацию стандартных заголовка страницы TYPO3 xmlmenu.config.disableAllHeaderCode = 1 # устанавливаем корректный тип контента xmlmenu.config.additionalHeaders = Content-Type: application/xml # Выдаем заголовок XML xmlmenu.10 = TEXT xmlmenu.10.value = <?xml version="1.0" encoding="UTF-8"?> xmlmenu.10.postCObject = TEXT xmlmenu.10.postCObject.char = 10 # Сами данные дерева страниц xmlmenu.20 = HMENU xmlmenu.20 { wrap = <menu>|</menu> entryLevel = 0 1 = TMENU 1 { expAll = 1 NO { doNoShowLink = 1 allStdWrap.cObject = COA allStdWrap.cObject.10 = TEXT allStdWrap.cObject.10.typolink.parameter.field = uid allStdWrap.cObject.10.typolink.returnLast = url allStdWrap.cObject.10.noTrimWrap = |<item url="|" | allStdWrap.cObject.20 = TEXT allStdWrap.cObject.20.field = nav_title // title allStdWrap.cObject.20.wrap = title="|"/> } # отличается от NO тем, что нам надо обернуть под элементы в <item></item> IFSUB < .NO IFSUB = 1 IFSUB { # Добавляем завершающий </item> wrapItemAndSub = |</item> # Заменяем <item ... /> на <item ...> allStdWrap.cObject.20.wrap = title="|"> } } 2 < .1 3 < .1 4 < .1 5 < .1 } |
Flash приложение теперь может получать данные для меню по адресу “index.php?type=111″
При желании можно добавить и выгрузку контента из TYPO3, что может быть актуально для сайтов созданных полностью на Flash, но использующих TYPO3 в качестве системы управления. И без всяких расширений…
2 Responses to “Создаем XML дерева страниц TYPO3 для Flash меню”
Leave a Reply










How-to create dynamic XML for Flash menu based on TYPO3 pagetree at Codeline on May 22nd, 2008
[...] Русская версия статьи / Russian version [...]
Дмитрий Сподарец » Blog Archive » Создаем XML дерева страниц TYPO3 для Flash меню on June 1st, 2008
[...] http://codeline.richmd.ru/?p=23 Послать ссылку на этот обзор другу по ICQ или [...]