PDA

Просмотр полной версии : Доступ к TSFE-переменным в TS


Winston James
28.05.2005, 17:42
Люди, помогите, пожалуйста.
Как обратиться к переменной $GLOBALS['TSFE']->fe_user->user['username']
через TS?

Я пробовал по-разному TSFE:fe_user:user:username
или
TSFE:fe_user.user.username
- не получается.

Мне хотелось бы результат отобразить через объект GIFBUILDER, поэтому я не могу воспользоваться внешним PHP_SCRIPTом.

Это должна быть конструкция типа

TRAILER.file = GIFBUILDER
TRAILER.file {
25 = TEXT
25.value = TSFE:fe_user.user.username
25.fontSize = {$myHeadFrontSize}
25.fontFile = fileadmin/fonts/arialb.ttf
25.fontColor = {$myHeadFrontFontColor}
25.fontColor = red
25.offset = 160, 108
}

Но так не работает. Я пробовал уже вместа .value ставить .data или .text - не помогаеть.

Кто подскажет в чем фишка зарыта?
Заранее благодарен.

Виталий
09.06.2005, 17:04
{glob:TSFE:fe_user:user:username}

Winston James
12.06.2005, 15:05
2 Виталий
Нет, не пишет зараза!
Пробовал варианты:

25.text.data={glob:TSFE:fe_user:user:username}
25.text.value={glob:TSFE:fe_user:user:username}
25.data={glob:TSFE:fe_user:user:username}

и тому подобное...
Ни в какую!

Valery Romanchev
12.06.2005, 15:23
http://typo3.org/documentation/document-library/kb_betterstdwrap/Users_manual-6353a0cbfd/?encryptionKey=&cHash=9fb23d60cc

Вроде экстеншен надо ставить дополнительный

Winston James
12.06.2005, 16:00
2 VR

Отличная ссылка! Это как раз то, что я искал.
Проблема только в том, что все равно - не работает.
Переношу пример 1:1 - не достает он эту проклятую переменную. Чистый текст выводит, а вместо переменной - пусто.

И что это может быть за дополнительный экстеншн, про который ничего не сказано?

И куда вставлять
print_r ($GLOBALS['TSFE') - кстати, с ошибкой написано?

Winston James
12.06.2005, 16:17
Только что половина получилась!

Ссылка была дана на середину информации об экстеншене, поэтому не сразу разобрался, а точнее было бы:
http://typo3.org/documentation/document-library/kb_betterstdwrap/EXT_KB_Better_stdWr/

Это - специальный экстеншен kb_betterstdwrap.

Его можно загрузить обычным способом.
После этого - пример работает.

Но для меня это только половина решения, поскольку я хочу содержимое переменных выводить внутри объекта GIFBUILDER, и вот тут-то пока и загвоздка: тот же самый фрагмент исходника не дает того же результата. Вместо содержимого - пусто. Попробую еще немного покопаться, равно как и с применением print_r ($GLOBALS['TSFE']) - наверное эту функцию следует запускать из какого-нибудь PHP-скрипта. Или?

Winston James
13.06.2005, 12:13
Теперь и вторая половина получилась!
Похоже, можно сабж на этом закрывать.
Вся фишка в следующем.

Внутри объекта PAGE будет работать следующая конструкция (как в примере на ссылке из предыдущего поста):

25 = TEXT
25.insertData = 1
25.value= User: {glob:TSFE:fe_user:user:username}

Сначала я пытался запустить эту конструкцию 1:1 также из объекта GIFBUILDER - но тщетно. Пришлось покопаться в исходниках, чтобы понять, как же выкрутиться. И я таки вычислил, что в данном случае нужно делать так:

25 = TEXT
25.text.insertData = 1
25.text = User: {glob:TSFE:fe_user:user:username}

И это действительно работает!!!

Я нашел так же, что следовало бы изменить в исходнике class.tslib_gifbuilder.php, для того, чтобы можно было и в GIFBUILDER пользоваться свойством .value: всего-то одну строку добавить. Но я этого делать не стал, чтобы не влезать в нутро Typo3.

----
Может быть я открываю Америку и гуру только саркастически ухмыльнутся, но мне почему-то кажется, что для многих коллег эта инфа может оказаться полезной.