Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   Передача данных из PHP в TS или TV-FCE (http://forum.typo3.ru/showthread.php?t=3293)

PhilD 07.05.2007 18:22

http://codeline.richmd.ru/?p=3
спасибо Павлу!

c0d3r 07.05.2007 18:53

Огромное спасибо!
Похоже на то, что мне нужно, попробую уже завтра :)

c0d3r 08.05.2007 12:37

Прочитал статью "Подстановка данных в блоки контента", вопрос остался открытым, потому что, по-моему, у меня несколько другой случай, у меня нет объекта TEMPLATE и маркеры отпадают, как я понимаю. А шаблон используется TV. Вариант 2 (insertData) тоже, по-моему, не мой случай. Мне требуется подставлять значения из TS *вне* FCE-объектов, то есть в самом HTML-шаблоне, который после всех подстановок будет обрабатываться в TV, где уже сгенерится FCE-контент.

То есть сначала в HTML-шаблон подставляются всякие мелочи там и сям типа текущего года и т.д.
А потом TV работает с FCE.
Вот такое вот возможно?

Заранее благодарю за помощь!

Далее можно не читать, вопрос снят, оставил для поиска, может кому пригодится :)

2. Возвращаясь к начальному вопросу, начал рефакторить код и наткнулся на неработоспособность следующего:

Код:

config {
  includeLibrary.test = fileadmin/inc/class.test.inc
}
...
lib.htmlHeaderTop = PHP_SCRIPT
lib.htmlHeaderTop {
    file = fileadmin/inc/test.inc
}
...
page.10.userFunc = tx_templavoila_pi1->main_page

test.inc:
PHP код:

<?php
$content 
testClass::output();

class.test.inc:
PHP код:

<?php
class testClass {
    function 
output() {
        return 
'PHP_SCRIPT ТЕСТ (testClass EXT)!';
    }
}

Получаю:
Fatal error: Undefined class name 'testclass' in ...test.inc ...

Конечно, я могу подключить php либу непосредственно в test.inc, но почему либа не подключается через TS?

Решение: использовать page.includeLibs или просто includeLibs
Код:

page.includeLibs {
    test = fileadmin/inc/class.test.inc
...
}


PhilD 10.05.2007 21:44

если объекта TEMPLATE нет, то его всегда можно создать :) использование TV этому не мешает. По-моему, вы хотите невозможного (в силу устройства TV), и бесполезного. Правильный, с точки зрения TYPO3 и TV алгоритм такой: мапите все области которые будут изменяться, а не только области контента. И потом описываете в template setup подстановку в эти изменяемые области. Т.е. идет одновременная подстановка и контента, и значений заданых (сгенерированных) в TS. И непонятен смысл пытаться сделать это по этапам.

c0d3r 11.05.2007 14:01

Спасибо, разжевали :) К тому и пришёл. Вчера делал хидер, только в нём насчитал 7 изменяемых областей, включая небольшие строки кода, где изменяться будет буквально одно слово. (типа "Здравствуйте, гость" -> ""Здравствуйте, c0d3r").
Не многовато ли?
Этак у меня вся страница разбухнет до полусотни объектов - при условии максимального разделения дизайна и кода. Конечно, можно и упростить, объединять в одном FCE несколько уник. сущностей и генерить для них HTML в PHP методах, но этот подход мне не нравится.

Поэтому и было желание разгрузить от таких мелочей TV - может быть, я не должен этого хотеть, не спорю, но знания TS всё ещё зачаточные, пишу свой hello world :)

Кто-нибудь может сказать - сколько у вас было максимальное кол-во FCE на шаблон? :)

PhilD 11.05.2007 17:41

Немножко определимся с терминологией - FCE - flexible content element - а вовсе не область (area) которую вы мапите в TV.
Ну а что до количества - ну если у вас столько областей вывода, то что поделаешь. Язык описания есть язык описания, область (логически) есть- извольте описать.

c0d3r 11.05.2007 17:52

Спасибо за помощь!
Ну, FCE я уже не путаю с area, неточно выразился.


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

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