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

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

Ответ
 
Опции темы Опции просмотра
Старый 21.09.2009, 20:45   #1
Sergey M Nikitin
Administrator
 
Аватар для Sergey M Nikitin
 
Регистрация: 10.07.2007
Адрес: Moscow
Сообщений: 181
Отправить сообщение для Sergey M Nikitin с помощью ICQ Отправить сообщение для Sergey M Nikitin с помощью Skype™
По умолчанию [TS] Удобный CONTENT

в этом примере я покажу как удобней всего (по мне так) организовать CONTENT объект при этом отделив данные от вида.

классический способ использования CONTENT
Код:
some.ts.obj = CONTENT
some.ts.obj{
  #Обрамляем наш объект, контейнер для вывода записей блога
  wrap = <div class="posts">|</div> 
  table = [some_table]
  select{
    ... bla bla bal ... (см. select)
  }
  #вот здесь пошел объет вывода.
  #представим что у нас запись блока и мы выводом, заголовок, дату и текст
  renderObj = COA
  renderObj{
    #Обрамляем каждую запись, контейнер для вывода поста
    wrap = <div class="post">|</div>
    10 = TEXT
    10{
      field = title
      wrap = <h1>|</h1>
    }
    20 = TEXT
    20{
      field = date
      wrap = <span>|</span>
      strftime = [strftime format]
    }
    30 = TEXT
    30{
      field = bodytext
      wrap = <div class="post_body">|</div>
    }
  }
}
как видем из этого примера шаблон записи блога "размазан" по конфигурации content объекта

мой способ (отделяем данные от вида):
Код:
some.ts.obj = CONTENT
some.ts.obj{
  #Обрамляем наш объект, контейнер для вывода записей блога
  wrap = <div class="posts">|</div> 
  table = [some_table]
  select{
    ... bla bla bal ... (см. select)
  }

  renderObj = COA
  renderObj{
    #ДАННЫЕ
    10 = LOAD_REGISTER
    10{
      post_title.cObject = TEXT
      post_title.cObject.field = title

      post_date.cObject = TEXT
      post_date.cObject{
        field = date
        strftime = [strftime format]
      }
      post_body.cObject = TEXT
      post_body.cObject.field = bodytext
    }

    #ВИД
    20 = TEXT
    20{
      value(
<div class="post">
  <h1>{register:post_title}</h1>
  <span>{register:post_date}</span>
  <div class="post_body">{register:post_body}</div>
</div>
      )
      insertData = 1
    }
  }
}

преимущества такого способа:
1. Компактность
2. Прозрачность
Sergey M Nikitin вне форума   Ответить с цитированием
Старый 21.09.2009, 23:49   #2
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Это уже перебор. Большой наглядности это не добавлят, а попытка сделать MVC внутри TS больше похожа на шутку.

Так же надо учитывать, что данный способ несет накладные расходы:
  • по памяти, для хранения регистров. Естественно зависит от того что буде зраниться.
  • по времени выполнения, для парсинга данных и нахождение {getData} вставок

В то же время польза сомнительная.

На мой взгляд.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 22.09.2009, 09:25   #3
Sergey M Nikitin
Administrator
 
Аватар для Sergey M Nikitin
 
Регистрация: 10.07.2007
Адрес: Moscow
Сообщений: 181
Отправить сообщение для Sergey M Nikitin с помощью ICQ Отправить сообщение для Sergey M Nikitin с помощью Skype™
По умолчанию

Код:
по памяти, для хранения регистров. Естественно зависит от того что буде зраниться.
собстно, регистр это массив $GLOBALS['TSFE']->register, в котором во время рендеринга CONTENT элемента переопределяются значения ключей, кол-во элементов массива при этом остается фиксированным.

Код:
по времени выполнения, для парсинга данных и нахождение {getData} вставок
Здесь нужно проводить конкретные тесты, на фоне не кэшируемой, медленной работы typo3 - скорей всего незначительно. Меня этот способ хорошо спасает когда на странице не сколько блоков с примерной одной структурой данных, но не много разными шаблонами и свойствами запроса. Да и просто хочется привнести в этот безумный "мир" ts хоть чуточку порядка

Последний раз редактировалось Sergey M Nikitin; 22.09.2009 в 09:35
Sergey M Nikitin вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[TS] Динамический getText Sergey M Nikitin Мастер-класс 0 21.09.2009 10:35
Стандартные шаблоны и CSS Styled Content Игорь Ф. Общие вопросы 9 18.09.2009 16:14
Content Item (Flexible Content) на всех страницах thebat Общие вопросы 4 27.03.2008 17:42
Объясните как работает "Show content from this page instead:" Илья Общие вопросы 5 19.06.2006 13:01
Как сделать так, что бы ###CONTENT### отрабатывал, находясь в подключаемом HTML? Юрий Сегеда Общие вопросы 2 11.11.2005 20:53


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


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

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