Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   TemplaVoila MAPPING или DS??? (http://forum.typo3.ru/showthread.php?t=1702)

MDG 15.08.2006 17:13

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-м ветвлении встречается контейнер или секция, ее невозможно выбрать, когда правишь заголовок страницы, она просто сама по сабе пропадает.

Pavel Antonov 15.08.2006 17:57

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

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

В TS должно быть что то вроде:
Код:

lib.row = COA
lib.row {
  10 = TEXT
  10.field = field_cell1
  10.wrap = <td ...>|</td>
 
  ...
}


MDG 15.08.2006 18:39

Код:

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>.

Pavel Antonov 16.08.2006 18:19

field_cell1 - это поле с содержимым... переименуйте как оно у Вас называется.

MDG 16.08.2006 19:23

Цитата:

Сообщение от Pavel Antonov
field_cell1 - это поле с содержимым... переименуйте как оно у Вас называется.

Переименовал конечно, но я получаю ID контента(число) вместо самого конткнта. Просто число "123"! Как мне именно содержимое ID=123 получить?

Pavel Antonov 16.08.2006 19:34

А... видимо поле имеет тип "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

MDG 17.08.2006 14:12

Цитата:

А... видимо поле имеет тип "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>
}


Pavel Antonov 17.08.2006 14:56

да точно... ошибся


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

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