eID-scripts и сессии FE-пользователей
Недавно писал расширение с использованием eID scripts и теперь хочу поделиться некоторыми мыслями.
1. Кратко о том, что это такое и зачем оно нужно. Часто не требуется грузить весь фронтенд TYPO3, а достаточно небольшой его части. Например, нужно показать картинку или вернуть ответ на ajax-запрос. В этом случаем можно прописать в файле ext_localconf.php своего расширения нечто такое: PHP код:
Мы только что определили eID скрипт с ключевым словом 'something_cool'. Это ключевое слово должно быть уникальным в пределах инсталляции, поэтому лучше использовать название своего расширения (возможно с префиксами или постфиксами). 2. Как это работает Вся инициализация TYPO3 начинается с выполнения файла index_ts.php, который лежит в typo3/sysext/cms/tslib/. (Кстати, рекомендую просмотреть его тем, кто желает таки узнать, как работает схема рендеринга фронтэнда). Сразу после совсем базовой инициализации и различных проверок, но до создания глобального объекта TSFE можно увидеть вот такой кусок кода: PHP код:
Для проверки напишем в нашем ajax.php что-то вроде PHP код:
3. Про сессии Итак, получить данные из сессии анонимного пользователя можно примерно так: PHP код:
После получаса бегания по исходникам тайпы, я нашел решение. Примерно вот такое: PHP код:
P.S. Стоит ли писать иногда такие вот посты о хитростях программирования расширений? Я бы попросил всех, кому такие вещи интересны, написать об этом в комментариях =) |
Однозначно стоит писать! Тема про eID очень нужна.
Я бы только добавил еще где можно найти доп информацию в оригинале (то, что вы уже писали отвечая на мои вопросы). У меня с помощью eID получилось сделать отображение имени пользователя на всех страницах сайта и при этом все объекты страницы кешируемые, что дает значительный прирост производительности. |
1++! (Согласен с demav: Однозначно стоит писать!)
|
Да, полностью согласен с marco и demav-ом!
|
Hello,
I am trying to output simple picture in eID. PHP код:
Fatal error: Call to a member function getFileName() on a non-object in /home/webadmin/typo3_src-4.1.6/typo3/sysext/cms/tslib/class.tslib_content.php on line 4701 Has anybody succeed in outputing an image $myCObj->IMAGE i eID? By the way, in the plugin pi1 php $GLOBALS['TSFE']->cObj->IMAGE($imsTS); works well. |
eID mode does not have any FE classes. Thus using of such functions not possible.
What Dmitry Dulepov write day ago in mail list: Цитата:
|
Thanks,
just it seems some guy has succeeded to generate TS image in eID: http://lists.netfielders.de/pipermai...ne/023952.html |
So, finally succeeded:
PHP код:
|
Цитата:
|
не знаю насколько старую тему поднимаю. Но сейчас использую typo3 4.5 и пытаюсь написать eID функцию. Однако столкнулся с проблемой, что при внесении переменной $TYPO3_CONF_VARS['FE']['eID_include']['test'] в файл ext_localconf.php он не видит этой переменной. Нашел лишь корявое внесение этой переменной в глобальный файл localconf.php.
Кто нибудь сталкивался с такой проблемой? |
Часовой пояс GMT +4, время: 19:09. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot