We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 9673
    • 52 Posts
    Мне нужно вывести на страницу таблицу которая формируется на основе TV параметров вложенных в нее ресурсов. Делаю через ditto, я запнулся над ее гибкостью и не знаю как сделать такой вывод.(Нужно вывести на страницу список логотипов который прикрепляется через tv параметры)
    Таблица имеет три столбца и неизвестное количество строк (так как не известно сколько их будет). Код который будет генерироваться должен иметь такой вид:

    <table width="100%" style="text-align: center;">
    <tbody>
    <tr>
    <td><img height="100" width="200" alt="picture" src="images/port_1.jpg"></td>
    <td><img height="100" width="200" alt="picture" src="images/port_2.jpg"></td>
    <td><img height="100" width="200" alt="picture" src="images/port_3.jpg"></td>
    </tr>
    <tr>
    <td><img height="100" width="200" alt="picture" src="images/port_1.jpg"></td>
    <td><img height="100" width="200" alt="picture" src="images/port_2.jpg"></td>
    <td><img height="100" width="200" alt="picture" src="images/port_3.jpg"></td>
    </tr>
    <tr>
    <td><img height="100" width="200" alt="picture" src="images/port_1.jpg"></td>
    <td><img height="100" width="200" alt="picture" src="images/port_2.jpg"></td>
    <td><img height="100" width="200" alt="picture" src="images/port_3.jpg"></td>
    </tr>
    </tbody>
    </table>


    Вроде выглядит все просто.
    Нужно чтобы ditto делал вывод этого куска кода
    <tr>
    <td><img height="100" width="200" alt="picture" src="[+img-klient+]"></td>
    <td><img height="100" width="200" alt="picture" src="[+img-klient+]"></td>
    <td><img height="100" width="200" alt="picture" src="[+img-klient+]"></td>
    </tr>

    Остальные теги table tbody я задам в шаблоне при выводе.

    Вопрос как мне сгенерировать такой код? Я уже пробовал разбивать его на 2 чанка
    (чанк client-ditto)
    <tr>
    <td><img height="100" width="200" alt="picture" src="[+img-klient+]"></td>
    <td><img height="100" width="200" alt="picture" src="[+img-klient+]"></td>

    и (чанк client-ditto-2)
    <td><img height="100" width="200" alt="picture" src="[+img-klient+]"></td>
    </tr>

    В коде вызова прописываю [!Ditto? &startID=`5` &tpl=`client-ditto` &tplAlt=`client-ditto-2`!]
    В принципе структура получается так как я хочу, но шаблон client-ditto генерирует два одинаковых рисунка что очень плохо. Подскажите как мне найти решение моей проблеме?
      • 1788
      • 1,103 Posts
      Можно сделать все 9 TV для картинок.
      Можно использовать в ditto &tplAlt, &tplFirst, &tplLast.
        • 9673
        • 52 Posts
        Quote from: antey at Mar 31, 2011, 01:11 PM

        Можно сделать все 9 TV для картинок.
        Можно использовать в ditto &tplAlt, &tplFirst, &tplLast.
        Их может быть потом 12 или 15, нужно чтобы таблица с логотипами в будущем без проблем пополнялась.
        Можно, я и использую tplAlt. А tplFirst и tplLast немного за другое отвечают
          • 9673
          • 52 Posts
          Вот я нашел статью которая похожа на мою проблему. http://www.alexuspro.ru/blog/2009/ditto-output-breaker/
          Но мне не понятно как ей воспользоваться, непонятно как будет выглядеть код вызова сниппета и как будет выглядеть шаблон
            • 9085
            • 630 Posts
            Quote from: filchakov at Mar 31, 2011, 01:23 PM

            Вот я нашел статью которая похожа на мою проблему. http://www.alexuspro.ru/blog/2009/ditto-output-breaker/
            Но мне не понятно как ей воспользоваться, непонятно как будет выглядеть код вызова сниппета и как будет выглядеть шаблон

            Ну, если кто не в курсе, то надо создать сниппет, назвать его phx:evenoddx, и записать в него вышеприведенный код. И, разумеется, иметь установленный phx. После этого в конце чанка, который будет использовать Ditto, вызываем наш сниппет вот так:

            [+ditto_iteration:evenoddx+]

            Если параметров нет (как в этом примере), то на каждый 3-ий вывод будет генерироваться ’</div><div>’.

            Видимо, как-то так:
            [+ditto_iteration:evenoddx=`3::</tr><tr>`+]

            а первый и последний <tr>...</tr> вынести в шаблон рядом с <table>...</table>
              Правильно заданный вопрос повышает вероятность получения нужного ответа.
              Что-то не работает? Загляните в лог ошибок!
              Есть проблема? "Локализуйте" её!
              Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx
              • 1228
              • 8 Posts
              Что-то я не понял в чем проблема-то?
              Создаем чанк client-ditto

              <img alt="picture" src="[+img-klient+]">

              Делаем блок шириной в 600 пикселей, а внутри помещаем вызов Дитто:

              <div class="tghcn">
              [!Ditto? &startID=`5` &tpl=`client-ditto`!]
              </div>

              Прописываем стили для класса tghcn

              .tghcn{
              width:600px;
              }
              .tghcn img{
              width:200px;
              height:100px;
              }

              На сколько я понимаю, фотографии таким образом должны выстроиться по три в ряд. А это, судя по всему, и требовалось?
                • 9085
                • 630 Posts
                Quote from: alpatov at Apr 06, 2011, 09:43 AM

                Делаем блок шириной в 600 пикселей, а внутри помещаем вызов Дитто:
                ...
                На сколько я понимаю, фотографии таким образом должны выстроиться по три в ряд. А это, судя по всему, и требовалось?

                ну.. в первоначальном варианте width=100%.. между ними, видимо промежутки-пустоты будут. И, полагаю, выровнены по центру...
                можно, конечно, баловаться с margin-ами.. с расположением картинки внутри блока... с горизонтальным и вертикальным выравниванием в Div...

                И в итоге достичь похожего расположения. Но вопрос-то был поставлен конкретно ))))

                Код который будет генерироваться должен иметь такой вид:
                  Правильно заданный вопрос повышает вероятность получения нужного ответа.
                  Что-то не работает? Загляните в лог ошибок!
                  Есть проблема? "Локализуйте" её!
                  Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx