Просмотр полной версии : TYPO3 5.0 Brainstorming Results
Valery Romanchev
19.08.2006, 18:40
Есть на что посмотреть
http://typo3.org/teams/5.0-development/documents/
no separation of BE/FE
no backward compatibility (будут естетвенно инструменты миграции)
Dutchak Vitaly
19.08.2006, 19:16
Самое главное "best separation of logic and presentation" и Templating API, то чего не хватало очень сильно и прихожилось юзать samrty,возможно его и встроят в ядро в модифицированном виде.
Valery Romanchev
19.08.2006, 19:22
Самое главное "best separation of logic and presentation" и Templating API, то чего не хватало очень сильно и прихожилось юзать samrty,возможно его и встроят в ядро в модифицированном виде. Так вроде TS дает все возможности smarty...
Маркеры, subparts в TS есть, условия есть.. зачем что-то еще?
Dutchak Vitaly
19.08.2006, 19:27
проблема в том, что полностью логика и представление не отделялось и куски Html кода были в модулях. по правилам программирования, логика должна полностью отделена от представления. если в смарти встроить связь с Ts и написать 50 плагинов, то это будет мощнейший инструмент, а также большой плюс в TYPO3. он будет что-то вроде связки между TS и PHP
Valery Romanchev
19.08.2006, 19:31
проблема в том, что полностью логика и представление не отделялось и куски Html кода были в модулях.
дык, так не должно быть :-)
и нет особой проблемы в том, чтобы выносить весть HTML код в TS и во внешние HTML-шаблоны, которые через этот TS подцепляются.
Dutchak Vitaly
19.08.2006, 19:34
вот именно что надо полностью отделять Html от Php. и не в Ts выносить, а в отдельные файлы.
Valery Romanchev
19.08.2006, 19:47
вот именно что надо полностью отделять Html от Php. и не в Ts выносить, а в отдельные файлы. ну так навигацию же все равно надо в TS делать... Или в смарти все эти wrap'ы и optionSplit для навигации писать? Этож убиться...
Конечно можно их и в PHP писать, но тогда там внурти будет HTML-код, чего не хочется.
Поэтому, ИМХО, TS - это нормальный и правильный способ.
И ничто не мешает выносить отдельные куски в HTML файлы, которые содержат только ###SOME_MARKER### или используется subparts.
Dutchak Vitaly
19.08.2006, 19:51
Я про extension developpment. А не про TS шаблоны для сайта.
Valery Romanchev
19.08.2006, 19:53
Я про extension developpment. А не про TS шаблоны для сайта. дык разницы никакой нет.
Одно и тоже используется и там и там
см. http://wiki.typo3.org/index.php/Extension_Development%2C_using_HTML-Templates
Dutchak Vitaly
19.08.2006, 20:15
наверно не правильно понимают разделение логики и представления.
Это обозначает, что логика - это чистый PHP + минимумуправлением вывода (например сохранение вывода в перменную $content или print), а так же передача данных в шаблонизатор. Т.е никакие части кода вы не генерите в PHP коде. А все остальное делает шаблонизатор. Например, при использовании маркеров и шаблонов так, как сейчас оно есть, вы "передаете" в файл шаблона какие-то части вывода. по сути вы просто делаете обыкновенный str_replace. А части - уже готовые HTML куски.
При использовании шаблонизатора, вы только передаете данные в шаблон, именно передаете а не делаете замену, а в шаблоне вызываете те или иные дейсвия с ними. Например чтобы вывести картинку с помощью TS и TYPO3 я делаю вот что:
В ПХП:
...
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 и улучшать разделение логики от представления. У меня со многими были споры на эту тему, никто меня не смог переубедить в этом всем.
Valery Romanchev
19.08.2006, 21:22
Спасибо! вопрос стал яснее.
К примеру в sr_feuser_register все реальзовано нормально:
- добавляешь поле с помощью кикстартера
- правишь HTML шаблон
- получаешь вывод этого поля.
В коде ничего править не надо.
Что касается tt_news
Допольнительные поля в tt_news вставляют многие эктеншены, и обеспечивают их вывод (помоему с помощью хуков).
Что касается более "умного" чем TS шаблонизатора:
помоему нет особых проблем в том, что бы обработать в PHP все маркеры заданного TS объекта и заменить их содержимым полей.
А уж в TS коде вставлять новые поля типа вот так:
news1 = COA
news1 {
wrap = <tr>|</tr>
5 = 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 (хотя и меньше возможностей в нем будет).
Может это и имеет смысл.
Dutchak Vitaly
19.08.2006, 22:12
это само собой, а фичи, то все останутся, это не проблема, возможностей будет даже больше. а вот самое гавлное - это то что Php код становится в несколько раз читабельнее и приятнее.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot