Я хочу иметь возможность отображать меню с опечаткой 3 на стороннем сайте, поскольку часть сайта размещена в другой системе. Я бы предположил, что лучший способ сделать это - использовать json или xml-канал, но я не вижу, как выводить json через typoscript или любой другой метод динамически в typo3?
Вывод динамического меню с опечаткой 3 на стороннем сайте
comment
Я бы выбрал решение StephenKing, включенное на страницу в iframe (простой) или загруженное с помощью JavaScript и вставленное в заданное место на странице. Конечно, вы можете загрузить содержимое меню как json (потребуется плагин или, по крайней мере, собственный метод PHP для вывода его в TYPO3) или XML (можно сделать только с TypoScript), проанализировать его и вывести на страницу, но это просто дополнительная работа без видимой выгоды (если сторонний сайт не должен контролировать вывод меню).
- person tmt   schedule 06.02.2012
Ответы (2)
Возможно, вы сможете получить HTML-код через http-запрос, проанализировать HTML-документ и вставить меню в нужное место.
$homepage = file_get_contents('http://www.example.com/page/with/menu/');
... crop
Таким образом, на вашей веб-странице TYPO3 вам нужно только создать страницу с меню, которое вам нужно на другом сервере. Анализируйте содержимое и используйте только меню. F.e. вы можете добавить маркер к своему меню.
lib.menu = HMENU
lib.menu {
... your config ...
stdWrap {
prepend = TEXT
prepend.value = ####SomeMarkerBegin###
append = TEXT
append.value = ###SomeMarkerEnd###
}
}
person
maholtz
schedule
09.02.2012
Спасибо, я кое-что дополнил с помощью file_get_contents
- person ak85; 17.04.2012
Вы даже можете добавить собственный объект PAGE (через TypoScript) с другим typeNum. Добавьте к этому объекту PAGE только меню, но не его содержимое (например, css_styled_content). Вы также можете отключить весь код заголовка. В результате получается просто HTML-код меню, который можно вывести прямо на другой сайт.
person
StephenKing
schedule
06.02.2012
Ага. Этот HTML-код меню можно отправить либо напрямую с помощью ajax, либо через iframe, либо через запрос php, который можно кэшировать на стороне сервера.
- person Fedir RYKHTIK; 06.02.2012
Использовать ajax.php не так-то просто, поскольку вам нужно создать экземпляр отрисовки TSFE самостоятельно. Использование другого объекта PAGE упрощает ИМХО. И, конечно же, меню нужно кешировать в другом приложении;)
- person StephenKing; 06.02.2012
Спасибо @StephenKing. Я действительно пробовал это, так как это другой домен, я не верю, что могу использовать загрузку ajax? Я попробовал Iframing, и он хорошо работает в IE, но во всех других браузерах вы не можете щелкнуть какой-либо другой контент, который находится под событием iframe as, хотя фрейм прозрачен, он по-прежнему накладывается поверх контента, что предотвращает щелчок. Есть ли другой способ обойти это?
- person ak85; 07.02.2012