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

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

Ответ
 
Опции темы Опции просмотра
Старый 14.04.2006, 00:12   #1
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
По умолчанию помогите разобраться с условиями в Ts

Нужно сделать, так что-бы в ListView:
1.при recordcount<10 вместо header выводилось содержимое bodytext,
если боьше 10, то стандартно - header.
2. есле в режиме поиска (code=SEARCH) то всегда header, не зависимо от верхнего условия

Первое условие с етим кодом работает:

subheader_stdWrap.override.field = bodytext
subheader_stdWrap.override.if {
value < 10
isLessThan.data = register:recordCount
}

Проблема как реализовать оба условия

Пробывал так, но безрезультатно

subheader_stdWrap.override.field = bodytext
subheader_stdWrap.override.if {
value < 10
isLessThan.data = register:recordCount
isTrue.if {
value=SEARCH
equals.data=register:code
negate=1
}
}
Хотя не понимаю почему, ведь в TS-Ref написано что isTrue имеет тип stdWrap

Помогите пожалуйста разобраться.
Boris вне форума   Ответить с цитированием
Старый 14.04.2006, 01:46   #2
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Если это крик души... то искрене сочуствуем.
А если хотите что бы помогли, то может хотя бы скажите где проблема?

Из далека похоже на плагин, даже наверно на tt_news...но кто его знает...
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 14.04.2006, 07:07   #3
Дылгеров Ц.В.
Senior Member
 
Регистрация: 14.11.2005
Адрес: Улан-Удэ
Сообщений: 158
Отправить сообщение для Дылгеров Ц.В. с помощью ICQ
По умолчанию

разве в if можно ставить value < ? зачем тогда isLess

Последний раз редактировалось Дылгеров Ц.В.; 14.04.2006 в 07:28
Дылгеров Ц.В. вне форума   Ответить с цитированием
Старый 14.04.2006, 14:00   #4
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
По умолчанию

Да ето кусок TS из tt_news

В коде читай value = 10 (описка )


Проблему вроде-бы описал, как заставить что-бы срабатывали оба условия?
Boris вне форума   Ответить с цитированием
Старый 14.04.2006, 15:21   #5
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

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

На мой взгля проблема есть тут:
Код:
         isTrue.if {
             value=SEARCH
             equals.data=register:code
             negate=1
        }
Этот код всегда = 0, так как нет никакого значения у самого isTrue. Добавьте isTrue = 1.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 14.04.2006, 17:15   #6
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
По умолчанию

Большое спасибо за ответ!

Да конечно, в plugin я установил оба регистра.
Толко я не понял, куда именно добавить (isTrue = 1) и почему ето выражение всегда = 0 ?
Ведь if должно возвращать True или False
if {
value=SEARCH
equals.data=register:code
negate=1
}
Хотелось бы для себя понять, как точно ето работает, чтобы потом опять на грабли не наступать
Boris вне форума   Ответить с цитированием
Старый 14.04.2006, 17:30   #7
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
По умолчанию

И ещё один маленький вопрос.

Как в TS правильно прописать условия для регистров?
Типа: [register:code = value]
Boris вне форума   Ответить с цитированием
Старый 14.04.2006, 19:55   #8
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
По умолчанию

Ещё раз большое спасибо Павел!!!!
Так заработало:
Код:
 
subheader_stdWrap.override.field = bodytext   
   subheader_stdWrap.override.if {
   value < plugin.tt_news.pageBrowser.maxPages 
   isLessThan.data = register:productCount
   isTrue.if {        
     value=SEARCH
     equals.data=register:pluginCode
     negate=1     
  } 
  isTrue=1
}
Но честно говоря_ не совсем понимаю логику

Ето значит, что по default я устанавливаю isTrue=1, и толко кода условие после if - falshe, cрабатывает isTrue=0 ?
Boris вне форума   Ответить с цитированием
Старый 15.04.2006, 13:22   #9
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Чтобы не было вопросов - читайте документацию!

if-ничего не возвращает. Он опредедяет будет или не будет отрабатывать родительская конструкция.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 15.04.2006, 19:10   #10
Boris
Продвинутый
 
Регистрация: 15.02.2005
Сообщений: 50
По умолчанию

Ето я понял из доку.
В даном случае родительская конструкция : isTrue=1
Не понятно что происходит с isTrue, если IF определят что родительская конструкция(isTrue) не отрабатывается.

Здесь: subheader_stdWrap.override.if всё понятно: будет переписываться если все условия выполняются(всёравно, что: subheader_stdWrap.override >)

Последний раз редактировалось Boris; 15.04.2006 в 19:17
Boris вне форума   Ответить с цитированием
Ответ


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

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

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


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


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

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