![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
#1 |
|
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Уважаемые, подскажите как реализовать сабж.
У меня есть своя библиотека, генерящая HTML. Создал HTML шаблон, подключил через TV. Как мне залить HTML данные из PHP скрипта в TS или FCE TV-шаблона? Если у кого есть пример, я бы оттолкнулся от него, разжёвывать не надо, мне нужно просто понять на пальцах, как брать данные из внешних PHP скриптов. то есть вот это мне понятно page.10.userFunc = tx_templavoila_pi1->main_page но вот как задать данные конкретному блоку этого шаблона? Кое-что нашёл в вики: http://wiki.typo3.org/index.php/Typo...HP_Interaction, но там речь о своём плагине и без TV. Ещё вот что нашёл: TypoScript by example - PHP include-scripts http://typo3.org/documentation/docum...0.16/view/8/1/ TSref - PHP include scripts http://typo3.org/documentation/docum...1.0/view/13/1/ Но все эти доки - без применения к TV. Заранее благодарю за помощь! Последний раз редактировалось c0d3r; 03.05.2007 в 12:55 |
|
|
|
|
|
#2 |
|
Senior Member
|
включаемый скрипт - это обычный TS объект. значит можно замапить нужную область как TS object path (как меню) и передать туда нужный объект
Последний раз редактировалось PhilD; 03.05.2007 в 14:38 |
|
|
|
|
|
#3 |
|
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Работающий код:
Код:
lib.myObject = TEXT
lib.myObject {
value = РУССКИЙ TEST!!!
}
Код:
lib.myObject = PHP_SCRIPT
lib.myObject {
file = fileadmin/inc/test.inc
}
PHP код:
Код:
lib.myObject = PHP_SCRIPT
lib.myObject {
file = fileadmin/inc/test.php
}
PHP код:
Где я туплю в синтаксисе TS? |
|
|
|
|
|
#4 | |
|
Продвинутый
Регистрация: 12.10.2004
Адрес: Severodonetsk, Ukraine
Сообщений: 60
|
Цитата:
Setup: Код:
lib.myObject = PHP_SCRIPT
lib.myObject {
file = fileadmin/inc/test.inc
}
Код:
<?
class testClass {
function testClass() {}
function output() {
return 'PHP_SCRIPT!';
}
}
$content = testClass::output();
?>
|
|
|
|
|
|
|
#5 |
|
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
У меня не работало, пока я не перенёс конфу объекта выше подключения TV.
Код:
lib.myObject = PHP_SCRIPT
lib.myObject {
file = fileadmin/inc/test.inc
}
....
page.10.userFunc = tx_templavoila_pi1->main_page
Код:
page.10.userFunc = tx_templavoila_pi1->main_page
...
lib.myObject = TEXT
lib.myObject {
value = РУССКИЙ TEST!!!
}
|
|
|
|
|
|
#6 |
|
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Появился вот ещё какой интересный вопрос. Назначение FCE вроде бы понятно - генерация и выдача контента
Но на каждый чих создавать FCE тоже как-то неоптимально. Например, есть заголовок сайта "Добро пожаловать на сайт SITE.RU!", входящий в шаблон с несколькими FCE, в этом заголовке, например, для нескольких доменов меняется только маленькая строковая переменная - написание домена (.NET, .COM и .т.д.). Можно ли передать из TS шаблона эту строку в шаблон? Может быть, использовать включения на PHP? Но, по-моему, они вырезаются при обработке шаблона (я имею в виду обработку TV замапенного HTML-шаблона).Что-то в этом роде: Код:
...<td>Добро пожаловать на сайт SITE.<?php echo$TSparserObject->setup['site.']['domainCode']?><td>... Но весь сыр-бор от желания максимально разместить HTML разметку в одном файле - шаблоне, для общей наглядности. |
|
|
|
|
|
#7 |
|
Senior Member
|
Для таких вещей существует наследование и подключение TS-шаблонов. Т.е. все общее выносится в один шаблон, а отальные делаются based on на нем.
http://typo3.org/documentation/docum...2/6/#id3038155 |
|
|
|
|
|
#8 |
|
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Спасибо. К сожалению, у меня нет опыта в построении многошаблонной иерархии, да и тема это несколько другая. Меня устраивает 1 шаблон для TV. Вопрос был несколько другого плана: подстановка имеющихся TS-данных в шаблон.
То есть в TS-setup происходит инициализация некоторых данных, а в TV шаблоне есть какой-то способ отображения этой информации (без создания FCE). Или я что-то не просёк из предыдущего ответа? |
|
|
|
|
|
#9 |
|
Senior Member
|
скорее я не понял вопроса. Если я не ошибаюсь, так просто как вы хотите - не получится. Т.е. придется отдельно замапить .first-level-domain причем outer (или SITE.SMTH), а потом в него выводить нужное значение из TS или php. Причем я бы сделал строго наоборот, чем вы - замапил все приветствие, и весь его текст ввел вы в template setup. Или (более изящное решение) - ввел вы этот текст как контент-элемент на странице-хранилище, ввел бы в него маркер вместо имени сайта, и вставил бы с заменой маркера.
|
|
|
|
|
|
#10 |
|
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
> как контент-элемент на странице-хранилище
Спасибо. "контент-элемент" - имеется в виду FCE? И можно ли пример более изящного решения разжевать для чайника? Заранее благодарю за помощь. + Не понял термин "маркер". И ещё. Я, конечно, сейчас больше мыслю как PHP-кодер, а не как TYPO3-разработчик - практики мало, теории много - запутаться легко. Поэтому пока у меня алгоритм такой - замапить несколько мега-FCE сайта, например, блок "новости". А все наполнение блоков делать через подключаемые PHP классы ну и плюс некоторое кол-во TS-setup. То есть пока понимание TV/FCE на самом общем уровне типа Код:
lib.htmlHeaderTop = PHP_SCRIPT
lib.htmlHeaderTop {
file = fileadmin/inc/test.inc
}
...
lib.htmlHeaderTop2 = USER
lib.htmlHeaderTop2 {
userFunc = testClass2->output
}
Последний раз редактировалось c0d3r; 07.05.2007 в 18:02 |
|
|
|
![]() |
|
|
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Ссылка на FCE как часть шаблона Templavoila | acid-art | Общие вопросы | 1 | 09.04.2007 13:56 |
| передача данных между двумя сайтами | Melnichuk | Общие вопросы | 8 | 02.06.2006 14:15 |
| Как вставить PHP код до всякого TYPO3 кода.. Или почти до | Valery Romanchev | Разработка расширений / TYPO3 extension development | 1 | 30.07.2005 17:15 |
| Передача данных методом POST из одной формы в другую | Юрий | Общие вопросы | 1 | 19.02.2004 20:01 |