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

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 05.01.2010, 13:06   #1
3ton
Senior Member
 
Регистрация: 25.12.2009
Сообщений: 106
По умолчанию

Цитата:
Сообщение от dmartynenko Посмотреть сообщение
ПС: хотя вам 3ton это и не нравится, но иногда быстрее помочь найти решения зная общую решаемую задачу, а не отдельный ее кусок, который TYPO3-способом может быть не решить.
проблема в том, что в зависимости от того какой будет режим использования моего расширения в разные моменты на одной и той же странице отдельная часть интерфейса, находящаяся в другой части страницы нежели мое расширение, должна быть отображена по разному

узнать режим работы расширения я смогу лишь в самом расширении обработав переменные из RealUrl из TS и из FF и только после этого я буду знать как отображать ту отдельно расположенную часть интерфейса

если есть возможность ее решить другими способами - буду рад выслушать их
3ton вне форума   Ответить с цитированием
Старый 05.01.2010, 14:56   #2
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Было бы проще, что бы ваше расширение само показывало ту, вторую часть. Тогда вы в своем коде можете обрабатывать нужные вам условия.

Вы, например, можете в коде своего расширения создавать и выводить "результат" куска TS кода.
Так проще задействовать стандартные средства TYPO3 из вашего PHP кода (например, http://typo3.toaster-schwerin.de/typ.../msg00030.html)

Можно и в шаблоне условия прописывать. Каких-то особенных переменных из RealURL не существует - существуют переменные из GET, а RealURL лишь промежуточное звено, о котором ни TS ни ваш PHP код не знает. Если его отключить - сайт будет работать точно также, только URL будут выглядеть по другому.
Единственная проблема - сложность ваших условий. Пременные из GET/POST использовать просто:
Код:
[globalVar = GP:print > 0]
А вот из TS и FF напрямую нельзя.
Кроме того, TS-условия создают дополнительные копии контента в кэше. Чем больше условий, тем больше (и медленней) будет кэш TYPO3.
dmartynenko вне форума   Ответить с цитированием
Старый 05.01.2010, 15:01   #3
3ton
Senior Member
 
Регистрация: 25.12.2009
Сообщений: 106
По умолчанию

в моем случае в зависимости от 2 параметра в URL 3 и 4 могут держать в себе разные переменные для этого расширения, что не позволит в тот момент знать что же я хочу проверить

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

можно об этом поподорбнее?
3ton вне форума   Ответить с цитированием
Старый 05.01.2010, 15:14   #4
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Все довольно просто. В своем расширении создаете массив аналогичный TS коду. И потом передаете в cObjGetSingle().
Код:
$TS['conf'] = 'RECORDS';
$TS['conf.']['tables']='tt_content';
$TS['conf.']['source'] = '151,99,113,199,163,208';
$TS['conf.']['dontCheckPid'] = 1;
$TS['conf.']['conf.']['tt_content'] = 'TEXT';
$TS['conf.']['conf.']['tt_content.']['field'] = 'bodytext';
$content = $this->cObj->cObjGetSingle($TS['conf'],$TS['conf.']);
Есть функции cObjGetSingle() или cObjGet(), вторая более "продвинутый" вариант для сложных TS скриптов.

Примеры того, как это используется в более сложном варианте (с подстановкой TS констант) есть в:
http://typo3.org/extensions/reposito..._code/current/
http://typo3.org/extensions/reposito...marty/current/
dmartynenko вне форума   Ответить с цитированием
Старый 05.01.2010, 15:16   #5
3ton
Senior Member
 
Регистрация: 25.12.2009
Сообщений: 106
По умолчанию

а можно совместить вывод результата в HTML и после него дать TypoScript ???
3ton вне форума   Ответить с цитированием
Старый 05.01.2010, 15:41   #6
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Вопрос недопонял, в каком месте совместить, в первой или второй ваших частях?

Вызов cObjGetSingle() вернет вам HTML код, который вы должны еще вернуть TYPO3 из функции main(). Иначе он никуда не попадет.

Исключение - если ваш TS объект будет типа USER_INT/COA_INT. Тогда вам вернется "маркер" (такой специальынй HTML код), который вы должны будете вернуть TYPO3 из функции main(). А сам контент будет вызван и сформирован асинхронно, без кэширование (почитайте отличие в TSRef между USER и USER_INT).
dmartynenko вне форума   Ответить с цитированием
Старый 05.01.2010, 15:52   #7
3ton
Senior Member
 
Регистрация: 25.12.2009
Сообщений: 106
По умолчанию

судя по вашему посту, я могу делать все так же как и раньше в своем расширении, но перед return'om результата из main функции я могу добавить TypoScript код к результату который будет так же обработан, как если бы он был прописан в шаблоне

я прав?

если да, то интересует - в какой момент будет обработан возвращаемый скрипт, в момент когда я передаю результат выполнения расширения в subparts
temp.mainTemplate.subparts.CONTENT_BLOCK < plugin.tx_astro7experts_pi1
или по завершению обработки скрипта шаблона?

кстати возвращаемый из расширения TypoScript должен будет сделать следущее

temp.mainTemplate.subparts.MODE_BLOCK = TEXT
temp.mainTemplate.subparts.MODE_BLOCK.value = tra-la-la
3ton вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
multilanguage extension typo27 Разработка расширений / TYPO3 extension development 3 23.09.2008 16:40
DR Wiki - Typo3 Wiki extension Extension key Костик Общие вопросы 1 07.08.2008 17:48
Extension Manager не работает Игорь Ф. Общие вопросы 38 25.06.2008 19:14
TYPO3 Fatal Error: Extension key "sv" was NOT loaded! Tod Общие вопросы 2 28.10.2007 21:53
Multiple vulnerabilities in extension ve_guestbook RSS Bot Новости TYPO3 (на английском) 0 02.08.2007 12:51


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


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

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