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

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

Ответ
 
Опции темы Опции просмотра
Старый 07.09.2007, 16:28   #1
Maria Rykalina
Новенький
 
Регистрация: 04.07.2007
Сообщений: 17
По умолчанию Как использовать условие [userFunc]?

Нужно выводить контент в зависимости от результата, возвращаемого пользовательской функцией.

Подскажите, пожалуйста:
1. Где должна находиться эта функция (Создать свой файл? Использовать имеющийся?)
2. Какой cObject (если он нужен) использовать, чтобы TypoScript увидел функцию
3. Как должно выглядеть условие, вызывающее функцию с параметрами

Очень нужна любая подсказка. Спасибо.
Maria Rykalina вне форума   Ответить с цитированием
Старый 07.09.2007, 17:48   #2
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

TSref рулит

Цитата:
userFunc:




Syntax:




[userFunc = user_match(checkLocalIP)]
Comparison:




This call the function ”user_match” with the first parameter ”checkLocalIP”. You write that function. You decide what it checks. Function result is evaluated as true/false.
Example:




Put this function in your localconf.php file:
function user_match($cmd){switch($cmd){case "checkLocalIP":if (strstr(getenv("REMOTE_ADDR"),"192.168")){return true;}break;case "checkSomethingElse":// ....break;}} This condition will return true if the remote address contains ”192.168” - which is what your function finds out.
[userFunc = user_match(checkLocalIP)]
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 07.09.2007, 17:58   #3
Maria Rykalina
Новенький
 
Регистрация: 04.07.2007
Сообщений: 17
По умолчанию

Действительно, рулит!

Спасибо, что вернули в нужное русло поиска. Такой вариант ранее не работал, оказывается, из-за неправильно использованных конструкций вывода.

Еще вопрос: функция обязана содержаться в localconf.php или быть include-нной в него? Может, есть возможность указать другой файл, специально для пользовательских функций?

Спасибо.
Maria Rykalina вне форума   Ответить с цитированием
Старый 07.09.2007, 18:12   #4
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Функция обязана быть глобально объявленной и доступной. В принципе, подойдет ext_localconf.php любого установленного расширения. Кроме того (если я не ошибаюсь), можно прописать в TS
config.includeLibs.user_myveryspecialfunc = fileadmin/php/myfunc.php
и объявить эту функцию внутри этого файла.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 11.09.2007, 18:25   #5
Maria Rykalina
Новенький
 
Регистрация: 04.07.2007
Сообщений: 17
По умолчанию

Цитата:
config.includeLibs.user_myveryspecialfunc = fileadmin/php/myfunc.php
Спасибо. То, что нужно.
Maria Rykalina вне форума   Ответить с цитированием
Старый 25.12.2007, 13:44   #6
mrlw
Новенький
 
Регистрация: 10.12.2007
Сообщений: 5
По умолчанию

а куда эту строчку надо вставлять? в TS Setup? или TS config?

дело в том, что пробовал вставлять - ничего, пишу
Код:
page.includeLibs.user_qwert = fileadmin/myfunc.php
файл иклюдится, но условие не выполняется

Код:
[userFunc = user_qwert]
где сама функция

Код:
function user_qwert() {
	echo "user_qwert";
 return true;	
}
echo - делаю для того, чтобы посмотреть выполяется она или нет
mrlw вне форума   Ответить с цитированием
Старый 25.12.2007, 22:01   #7
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Попробуйте объявить функцию в localconf или ext_localconf.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 25.12.2007, 22:06   #8
mrlw
Новенький
 
Регистрация: 10.12.2007
Сообщений: 5
По умолчанию

делал, работает не так, как нужно .... с тем же условием выполняется почему-то 2 раза ... поэтому и ищу решение с внешним файлом
mrlw вне форума   Ответить с цитированием
Старый 25.12.2007, 22:31   #9
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Проще сделать синглтон, чем найти, почему выполняется два раза.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 25.12.2007, 22:33   #10
mrlw
Новенький
 
Регистрация: 10.12.2007
Сообщений: 5
По умолчанию

ээээ .... не знаю, что это такое
mrlw вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таксономия в typo3 (как реализовать?) Slanj Общие вопросы 19 24.06.2013 01:14
Как в RTE HtmlArea добавить свою кнопку? Дылгеров Ц.В. HTMLArea, RTE, tinymce_rte и другие визуальные редакторы 9 17.04.2008 20:21
посоветуйте как разобраться с ImageMagic-ом -=STYDENT=- Общие вопросы 3 27.07.2006 23:54
как удалить файл Станислав Общие вопросы 1 25.01.2006 07:37
Как сoвместить tt_news, da_newslettersubscription, direct_mail ?? Boris Общие вопросы 1 09.04.2005 10:05


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


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

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