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

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

Ответ
 
Опции темы Опции просмотра
Старый 15.08.2006, 17:13   #1
MDG
Новенький
 
Регистрация: 08.08.2006
Сообщений: 11
Question TemplaVoila MAPPING и DS???

Даже не знаю, как правильно описать ситуацию, чтобы стало ясно, чего я хочу, но попробую...

Есть вот такое условие маппинга для темплейта страницы:
[CS]->div
____[CO]->div
________[EL]->td_INNER
________[EL]->td_INNER
________[EL]->td_INNER

в [CO] попадает следующий HTML
Код:
<div class="padding">
<table class="showcase" cellspacing="0">
  <tbody>
    <tr valign="top">
      <td class="showcase1">
         qwerty1
      </td>
      <td class="showcase2">
         qwerty2
      </td>
      <td class="showcase3">
         qwerty3
      </td>
     </tr>
   </tbody>
  </table>
</div>
в [EL] попадает HTML
Код:
<td class="showcase">
      qwerty1 (...2,...3)
</td>
В результате получается таблица с 3-мя! ячейками в любом случае.
А мне нужно, чтобы когда в заголовке страницы я вставляю содержимое (контент) только в первый [EL] (в первую ячейку), а в двух остальных элементах пусто, вот этот
Код:
<td class="showcase2"></td><td class="showcase3"></td>
не выводился. Просто сейчас получается, что таблица состоит из 3-х ячеек чтобы я не делал, а мне нужно, чтобы количество ячеек было от 1 до 3 в зависимости от контента (есть/нет).

Может в DS можно руками условия прописать??? Я в структуре еще совсем плохо разобрался...

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

Последний раз редактировалось MDG; 16.08.2006 в 14:06
MDG вне форума   Ответить с цитированием
Старый 15.08.2006, 17:57   #2
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Нужно тогда генерить эти тэги в TS...

Мэпить какой нибудь объект TS на <tr> и все <td> генерировать самостоятельно. А контент оставить бэз меппинга.

В TS должно быть что то вроде:
Код:
lib.row = COA
lib.row {
  10 = TEXT
  10.field = field_cell1
  10.wrap = <td ...>|</td>
 
   ...
}
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 15.08.2006, 18:39   #3
MDG
Новенький
 
Регистрация: 08.08.2006
Сообщений: 11
По умолчанию

Код:
 10.field = field_cell1
выводит ID страницы(число) которая присутствует в field_cell1 а как вывести саму страницу (содержание)?

Ну, соответственно, чтобы <td></td> выводилось только когда field_cell1 не пусто, я добавил if,
получилось
Код:
lib.row = COA
lib.row {
  10 = TEXT
  10{
  if.isTrue.field = field_cell1
  wrap = <td ...>|</td>
  field = field_cell1
}
}
Так реагирует на содержимое field_cell1 и если там что-то есть только тогда выводит <td ...>|</td>.

Последний раз редактировалось MDG; 15.08.2006 в 18:54
MDG вне форума   Ответить с цитированием
Старый 16.08.2006, 18:19   #4
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

field_cell1 - это поле с содержимым... переименуйте как оно у Вас называется.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 16.08.2006, 19:23   #5
MDG
Новенький
 
Регистрация: 08.08.2006
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Pavel Antonov
field_cell1 - это поле с содержимым... переименуйте как оно у Вас называется.
Переименовал конечно, но я получаю ID контента(число) вместо самого конткнта. Просто число "123"! Как мне именно содержимое ID=123 получить?
MDG вне форума   Ответить с цитированием
Старый 16.08.2006, 19:34   #6
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

А... видимо поле имеет тип "content elements"???

Тогда
Код:
10 = TEXT
10.cObject = RECORDS
10.cObject {
  source.field = field_cell1
  tabel = tt_content
}
10.if.isTrue.field = field_cell1

сObject используется для вложения RECORDS, так как у него нет опций stdWrap
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 17.08.2006, 14:12   #7
MDG
Новенький
 
Регистрация: 08.08.2006
Сообщений: 11
Thumbs up

Цитата:
А... видимо поле имеет тип "content elements"???
ДА, он самый.

Спасибо огромное, все получилось как я хотел!
Вот немного подправленный рабочий код:
Код:
lib.row = COA
lib.row {
10 = TEXT
10.cObject = RECORDS
10.cObject {
  source.field =field_cell1
  tables = tt_content
}
10.if.isTrue.field = field_cell1
10.wrap = <td class="showcase1">|</td>
}
MDG вне форума   Ответить с цитированием
Старый 17.08.2006, 14:56   #8
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

да точно... ошибся
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Ответ


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

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

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


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


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

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