Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > TypoScript практикум

Ответ
 
Опции темы Опции просмотра
Старый 03.05.2007, 12:20   #1
c0d3r
Senior Member
 
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
По умолчанию Передача данных из PHP в TS или TV-FCE

Уважаемые, подскажите как реализовать сабж.

У меня есть своя библиотека, генерящая 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
c0d3r вне форума   Ответить с цитированием
Старый 03.05.2007, 14:02   #2
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

включаемый скрипт - это обычный TS объект. значит можно замапить нужную область как TS object path (как меню) и передать туда нужный объект

Последний раз редактировалось PhilD; 03.05.2007 в 14:38
PhilD вне форума   Ответить с цитированием
Старый 03.05.2007, 17:04   #3
c0d3r
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
}
test.inc:
PHP код:
$content 'ТЕСТИРУЕМ PHP_SCRIPT!'
Результат отрицательный.

Код:
lib.myObject = PHP_SCRIPT
lib.myObject {
    file = fileadmin/inc/test.php
}
test.php:
PHP код:
class testClass {
    
    function 
testClass() {}
    
    function 
output() {
        return 
'PHP_SCRIPT ТЕСТИРУЕМ!';
    }
}

$content testClass::output(); 
Результат отрицательный.

Где я туплю в синтаксисе TS?
c0d3r вне форума   Ответить с цитированием
Старый 04.05.2007, 11:27   #4
gunner
Продвинутый
 
Регистрация: 12.10.2004
Адрес: Severodonetsk, Ukraine
Сообщений: 60
По умолчанию

Цитата:
Сообщение от c0d3r Посмотреть сообщение
Работающий код:
Код:
lib.myObject = TEXT
lib.myObject {
    value = РУССКИЙ TEST!!!
}
превращаем в неработающий парой движений руки %)
Код:
lib.myObject = PHP_SCRIPT
lib.myObject {
    file = fileadmin/inc/test.inc
}
test.inc:
PHP код:
$content 'ТЕСТИРУЕМ PHP_SCRIPT!'
Результат отрицательный.
попробуй еще так:

Setup:
Код:
lib.myObject = PHP_SCRIPT
lib.myObject {
    file = fileadmin/inc/test.inc
}
test.inc:
Код:
<?

class testClass {
    
    function testClass() {}
    
    function output() {
        return 'PHP_SCRIPT!';
    }
}

$content = testClass::output();  

?>
проверено, работает... удачи =)
gunner вне форума   Ответить с цитированием
Старый 04.05.2007, 12:47   #5
c0d3r
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
хотя исходный тестоый код класса TEXT работал и ниже

Код:
page.10.userFunc = tx_templavoila_pi1->main_page
...
lib.myObject = TEXT
lib.myObject {
    value = РУССКИЙ TEST!!!
}
Вот такие пироги, получается, что описания FCE на основе CObject PHP_* должны идти раньше подключения TV шаблона - оно и логично, конечно...
c0d3r вне форума   Ответить с цитированием
Старый 04.05.2007, 15:54   #6
c0d3r
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>...
P.S. Конечно, можно создать более крупный FCE и там уже генерить всё что угодно в PHP $content.
Но весь сыр-бор от желания максимально разместить HTML разметку в одном файле - шаблоне, для общей наглядности.
c0d3r вне форума   Ответить с цитированием
Старый 04.05.2007, 17:38   #7
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

Для таких вещей существует наследование и подключение TS-шаблонов. Т.е. все общее выносится в один шаблон, а отальные делаются based on на нем.
http://typo3.org/documentation/docum...2/6/#id3038155
PhilD вне форума   Ответить с цитированием
Старый 07.05.2007, 16:20   #8
c0d3r
Senior Member
 
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
По умолчанию

Спасибо. К сожалению, у меня нет опыта в построении многошаблонной иерархии, да и тема это несколько другая. Меня устраивает 1 шаблон для TV. Вопрос был несколько другого плана: подстановка имеющихся TS-данных в шаблон.

То есть в TS-setup происходит инициализация некоторых данных, а в TV шаблоне есть какой-то способ отображения этой информации (без создания FCE).

Или я что-то не просёк из предыдущего ответа?
c0d3r вне форума   Ответить с цитированием
Старый 07.05.2007, 17:11   #9
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

скорее я не понял вопроса. Если я не ошибаюсь, так просто как вы хотите - не получится. Т.е. придется отдельно замапить .first-level-domain причем outer (или SITE.SMTH), а потом в него выводить нужное значение из TS или php. Причем я бы сделал строго наоборот, чем вы - замапил все приветствие, и весь его текст ввел вы в template setup. Или (более изящное решение) - ввел вы этот текст как контент-элемент на странице-хранилище, ввел бы в него маркер вместо имени сайта, и вставил бы с заменой маркера.
PhilD вне форума   Ответить с цитированием
Старый 07.05.2007, 17:31   #10
c0d3r
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
}
Настройку DS внутри FCE даже не пробовал пока.

Последний раз редактировалось c0d3r; 07.05.2007 в 18:02
c0d3r вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылка на 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


Часовой пояс GMT +4, время: 19:20.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория