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

Вернуться   Russian TYPO3 community > Новости TYPO3 > Новости TYPO3-разработки

Ответ
 
Опции темы Опции просмотра
Старый 19.08.2006, 19:31   #1
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
проблема в том, что полностью логика и представление не отделялось и куски Html кода были в модулях.
дык, так не должно быть :-)
и нет особой проблемы в том, чтобы выносить весть HTML код в TS и во внешние HTML-шаблоны, которые через этот TS подцепляются.
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 19.08.2006, 19:34   #2
Dutchak Vitaly
TYPO3 Infected
 
Регистрация: 29.08.2005
Адрес: Ukraine, Simferopol
Сообщений: 412
Отправить сообщение для Dutchak Vitaly с помощью ICQ Отправить сообщение для Dutchak Vitaly с помощью Skype™
По умолчанию

вот именно что надо полностью отделять Html от Php. и не в Ts выносить, а в отдельные файлы.
__________________
TYPO3/PHP Developer
http://dv-charts.com/ - open source flash charts
Dutchak Vitaly вне форума   Ответить с цитированием
Старый 19.08.2006, 19:47   #3
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
Сообщение от Dutchak Vitaly
вот именно что надо полностью отделять Html от Php. и не в Ts выносить, а в отдельные файлы.
ну так навигацию же все равно надо в TS делать... Или в смарти все эти wrap'ы и optionSplit для навигации писать? Этож убиться...
Конечно можно их и в PHP писать, но тогда там внурти будет HTML-код, чего не хочется.

Поэтому, ИМХО, TS - это нормальный и правильный способ.

И ничто не мешает выносить отдельные куски в HTML файлы, которые содержат только ###SOME_MARKER### или используется subparts.
__________________
Веб-студия ТТЛАБ
www.ttlab.ru

Последний раз редактировалось Valery Romanchev; 19.08.2006 в 19:51
Valery Romanchev вне форума   Ответить с цитированием
Старый 19.08.2006, 19:51   #4
Dutchak Vitaly
TYPO3 Infected
 
Регистрация: 29.08.2005
Адрес: Ukraine, Simferopol
Сообщений: 412
Отправить сообщение для Dutchak Vitaly с помощью ICQ Отправить сообщение для Dutchak Vitaly с помощью Skype™
По умолчанию

Я про extension developpment. А не про TS шаблоны для сайта.
__________________
TYPO3/PHP Developer
http://dv-charts.com/ - open source flash charts
Dutchak Vitaly вне форума   Ответить с цитированием
Старый 19.08.2006, 19:53   #5
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
Сообщение от Dutchak Vitaly
Я про extension developpment. А не про TS шаблоны для сайта.
дык разницы никакой нет.
Одно и тоже используется и там и там

см. http://wiki.typo3.org/index.php/Exte...HTML-Templates
__________________
Веб-студия ТТЛАБ
www.ttlab.ru

Последний раз редактировалось Valery Romanchev; 19.08.2006 в 20:01
Valery Romanchev вне форума   Ответить с цитированием
Старый 19.08.2006, 20:15   #6
Dutchak Vitaly
TYPO3 Infected
 
Регистрация: 29.08.2005
Адрес: Ukraine, Simferopol
Сообщений: 412
Отправить сообщение для Dutchak Vitaly с помощью ICQ Отправить сообщение для Dutchak Vitaly с помощью Skype™
По умолчанию

наверно не правильно понимают разделение логики и представления.

Это обозначает, что логика - это чистый PHP + минимумуправлением вывода (например сохранение вывода в перменную $content или print), а так же передача данных в шаблонизатор. Т.е никакие части кода вы не генерите в PHP коде. А все остальное делает шаблонизатор. Например, при использовании маркеров и шаблонов так, как сейчас оно есть, вы "передаете" в файл шаблона какие-то части вывода. по сути вы просто делаете обыкновенный str_replace. А части - уже готовые HTML куски.

При использовании шаблонизатора, вы только передаете данные в шаблон, именно передаете а не делаете замену, а в шаблоне вызываете те или иные дейсвия с ними. Например чтобы вывести картинку с помощью TS и TYPO3 я делаю вот что:

В ПХП:
PHP код:
       ...
    function 
drawPreviewData(){
        
$this->tpl->assign ('item',$this->shopData->loadProduct());
        
$this->content $this->tpl->display ('product_preview.tpl');
    }
       ... 

В ШАБЛОНЕ:
Код:
   ...
     <div class="smallImage"> {typo3_img field=image width=150 height=150 item=$item}</div>
   ...


Имеем полное разделение Логики и представления. Это как бы свзяка между TS, который генерится в плагине typo3_img и PHP, который управляет всей логикой модуля.

Вы когда-нибудь пытались изменить в tt_news полностью отображение новости не залезая в код?

например вы добавили новое поле в таблицу новостей и вам надо его вывести, вам прийдется править код и шаблон. тут же вам прийдется править только шаблон.

Или приятно вам копаться newloginbox, когда он был еще без шаблонов?

Главное, чторазработчики поняли, что надо обязательно делать Templating API и улучшать разделение логики от представления. У меня со многими были споры на эту тему, никто меня не смог переубедить в этом всем.
__________________
TYPO3/PHP Developer
http://dv-charts.com/ - open source flash charts
Dutchak Vitaly вне форума   Ответить с цитированием
Старый 19.08.2006, 21:22   #7
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Спасибо! вопрос стал яснее.

К примеру в sr_feuser_register все реальзовано нормально:
- добавляешь поле с помощью кикстартера
- правишь HTML шаблон
- получаешь вывод этого поля.

В коде ничего править не надо.

Что касается tt_news
Допольнительные поля в tt_news вставляют многие эктеншены, и обеспечивают их вывод (помоему с помощью хуков).

Что касается более "умного" чем TS шаблонизатора:
помоему нет особых проблем в том, что бы обработать в PHP все маркеры заданного TS объекта и заменить их содержимым полей.

А уж в TS коде вставлять новые поля типа вот так:

PHP код:
       news1 COA
      news1 
{
          
wrap = <tr>|</tr>
          
TEXT
          5.value 
= <td>
          
10 IMAGE
          10.
if.isTrue ###IMAGES###
          
10 {
            
file uploads/tx_someext/###IMAGES###
            
file {
              
width 120
              maxH 
100
              ext 
jpg
              params 
= -quality 85
            
}
            
wrap = <a href="###SECTION_URL###">|</a></td>
          } 
###IMAGES### и ###SECTION_URL### - это именно то, что лежит в базе. Никакого HTML - вроде нормальный шаблонизатор получается.


Я понял, что идея в том, чтобы сделать более "умный" HTML шаблон.
который будет проще, чем TS (хотя и меньше возможностей в нем будет).
Может это и имеет смысл.
__________________
Веб-студия ТТЛАБ
www.ttlab.ru

Последний раз редактировалось Valery Romanchev; 19.08.2006 в 21:41
Valery Romanchev вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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


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


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

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