Показать сообщение отдельно
  #86 (permalink)  
Старый 31.10.2012, 13:18
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от tenshi
что же это за волшебное средство?
Ты не поверишь, XSLT.

Сообщение от tenshi
модель представления вернёт вью ориентированные данные
Привет, копипаста моделей.

Сообщение от tenshi
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds.
Охх... Ну смотри:

<?xml version="1.0" encoding="UTF-8"?>
<ten:root xmlns:ten="TEN" xmlns="http://www.w3.org/1999/xhtml">
  
  <!-- Один шаблон для списка пользователей, может лежать в отдельном файле -->
  <ten:block name="user-list">
    <ul>
      <ten:each array="this" item="user">
        <li><ten:echo data="user.name" /></li>
      </ten:each>
    </ul>
  </ten:block>
  
  <!-- Одна выборка всех пользователей. Если бы нам потребовались только совершеннолетние, в методе getUsers можно реализовать параметры fromAge и toAge. Пример приводить не буду -->
  <ten:async method="getUsers" arguments="userList">
    <ten:context object="new Collection(userList)">

      <!-- Первый список, первая фильтрация -->
      <ten:render block="user-list" context="this.get(':el.age < 18')" />

      <!-- Второй список, вторая фильтрация -->
      <ten:render block="user-list" context="this.get(':el.age >= 18')" />

    </ten:context>
  </ten:async>

</ten:root>


Ну и сама разметка списка может быть кастомизирована для каждого конкретного случая.
В итоге:
Сообщение от B~Vladi
"У меня" будет один шаблон, один запрос и две фильтрации.
И никакой копипасты.

Такой подход используется и в XSL.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф

Последний раз редактировалось B~Vladi, 31.10.2012 в 13:22.
Ответить с цитированием