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

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

Ответ
 
Опции темы Опции просмотра
Старый 11.09.2007, 18:23   #1
Maria Rykalina
Новенький
 
Регистрация: 04.07.2007
Сообщений: 17
По умолчанию Вложенные условия

Здравствуйте. При изучении TypoScript возник такой вопрос:

Допускает ли TypoScript создание вложенных условий такого вида:

[Условие 1]
[Условие 2]
Действия 2.1
[else]
Действия 2.2
[end]

[else]
Действия 1
[end]

Может, есть какая-нибудь специальная конструкция, отличающаяся от моих фантазий?

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

Нет, не допускает. Обычно, когда нужно сделать не просто if-else условие, пользуются CASE.
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 11.09.2007, 18:58   #3
Maria Rykalina
Новенький
 
Регистрация: 04.07.2007
Сообщений: 17
По умолчанию

CASE здесь вряд ли пойдет, потому что имеется в виду выбор не среди нескольких значений одного свойства.

Нужно, чтобы в зависимости от значения одного свойства происходил дальнейший выбор действия уже по значению другого свойства.

Как реализовать такой выбор?
Maria Rykalina вне форума   Ответить с цитированием
Старый 11.09.2007, 19:10   #4
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Вложенные CASE-ы.

Вообще, приведите здесь условия которые необходимо реализовать.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 12.09.2007, 14:05   #5
Maria Rykalina
Новенький
 
Регистрация: 04.07.2007
Сообщений: 17
По умолчанию

Вложенные CASE-ы вполне подойдут. Только как проверить не совпадение конкретного значения, а просто наличие хоть какого-нибудь?
Не так ведь:
stuff = CASE
...
stuff.* = TEXT
stuff.* {
....
}

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

Ну, например, как-то так:

Код:
10 = COA
10.10 = TEXT
10.10.value = Привет, {TSFE:fe_user|user|username} #Общая часть
10.10.insertData = 1
10.20 = TEXT
10.20.data = TSFE:fe_user|user|email
10.20.required = 1
10.20.wrap = Твой email: |
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 13.09.2007, 18:17   #7
Maria Rykalina
Новенький
 
Регистрация: 04.07.2007
Сообщений: 17
По умолчанию

Если я не ошибаюсь(что весьма вероятно), этот пример обязательно выведет username, а после авторизации - обязательно выведет email.

Если опираться на Ваш пример, то мне нужна такая последовательность:
1. Выводится общая часть
2. Пользователь авторизуется
3. Проверяется email
3.1. Если email не пуст, выводится username
3.2. Иначе вывести name

Если для этого подойдет приведенная конструкция, то как ей воспользоваться?

PS: Основной вопрос сейчас - как записать условие "если атрибут имеет хотя бы какое-то значение(не пуст)"?

Последний раз редактировалось Maria Rykalina; 13.09.2007 в 19:08
Maria Rykalina вне форума   Ответить с цитированием
Старый 14.09.2007, 14:40   #8
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Email будет выведен только в том случае если он не пуст.
Для этого служит required=1
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 14.09.2007, 15:22   #9
Maria Rykalina
Новенький
 
Регистрация: 04.07.2007
Сообщений: 17
По умолчанию

Наверное, я опять чего-то не понимаю, но:

Как вывести атрибут, отличный от email, если email все же пуст?
Maria Rykalina вне форума   Ответить с цитированием
Старый 14.09.2007, 18:25   #10
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Цитата:
Сообщение от Maria Rykalina Посмотреть сообщение
Наверное, я опять чего-то не понимаю, но:

Как вывести атрибут, отличный от email, если email все же пуст?
Код:
10 = TEXT
10.value = Привет, {TSFE:fe_user|user|username}
10.insertData = 1
10.override {
  data = TSFE:fe_user|user|email
  required = 1
  wrap = Твой email: |
}
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Ответ


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

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

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


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


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

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