LINUX.ORG.RU

Drupal 5.0 вышел!


0

0

Вышел долгожданный 5ый релиз одного из лучших CMS -- Drupal.

Из новшеств:

  • улучшенная админка
  • изменена архитектура javascript кода (теперь используется jQuery по умолчанию)
  • добавлен rich text editor по умолчанию.

>>> Подробности

anonymous

Проверено: Teak ()

Ответ на: комментарий от anonymous-III

> А смысл? Шаблоны лежат в базе и редактируются (доступные части) удаленно через web интерфейс - девочки сидят в офисе и иногда меняют контент таким образом. Все просто, эффективно и удобно... Минимум забот и программистам и дизайнеру и контент провайдерам.

Вы бы ещё и движок в базу сложили, чего уж там. Минимум забот.

kastaneda
()
Ответ на: комментарий от kastaneda

>Заменитель PHP, написанный на PHP, работает со скоростью большей, чем сам PHP? Отсыпьте немного.

Где я написал, про "Заменитель PHP, написанный на PHP"? Комментируйте, плиз, прочитанное, а не придуманное Вами!

Ничто не мешает пользоваться шаблонизатором, написанным на С/C++. Вы же пользуетесь в PHP libgd? Ну так а что мешает написать PHP extension?

stellar
()
Ответ на: комментарий от kastaneda

> Дятел долбит. Если дятел не долбит - значит, это плохой, негодный дятел. Если разработчик - дятел, то он и в Smarty, и в XSLT такой срач разведёт, что мама не горюй.

Т.е. ты хочешь сказать, что большинство разработчиков php-проектов - дятлы? :))

Deleted
()
Ответ на: комментарий от kastaneda

Zope Page Template:

<ul id="navigation">
  <tal:block tal:repeat="i menu_items>
      <li tal:condition="i/selected" tal:content="i/text" class="selected" >Selected item</li>
      <li tal:condition="not i/selected"><a tal:attributes="href i/url" tal:content="i/text"</a>Menu item</li>
  </tal:block>
</ul>

Сравните наглядность кода, а также возможность самодокументирования
тексты "selected item"  и "Menu item" никогда не появятся на страничке)

IMHO преимущества очевидны!

redbaron ★★
()
Ответ на: комментарий от anonymous

>Людям с IQ слабо отличающимся от 0 поясню: для Drupal есть способы "привернуть" несколько разных template engine.

Анонимусу, с IQ слабо отличающимся от 0, поясняю: http://www.linux.org.ru/jump-message.jsp?msgid=1743058#1743237

Читайте исходники, они - рулез.

stellar
()
Ответ на: комментарий от redbaron

В паре мест кавычки и тег не закрыты :) исправить возможности нет, но суть ясна думаю.

redbaron ★★
()
Ответ на: комментарий от stellar

берем дефолтный шаблон:

кроме чтения настроек (отображения, подгрузки css, которая, кстати, определяется в шаблоне) из php там только дергание модулей для вставки данных, можно оставить и только подгрузку модулей (например прописывая настройки в html код и указывая абсолютные пути), причем подгружаются не конкретные модули, а абстракции размещения (left,right) а уж что запихнуть в эти размещения задается из административной панели. Не надо топать ногами если вы увидели html тег в php коде, просто это короче чем создавать класс-виджет для тега, ктомуже на эти элементы все равно натягивается css, заданный шаблонизатором и код перековыривать при изменении дизайна не надо. Все это ничуть не менее изящно, чем добавлять третью(?) сущность языка шаблонизатора. Разделение вполне на уровне современного GUI программирования. Учтите, что в десктопных приложениях дизайн не имеет такого значения как для web(мордах, сайт - и лицо и средство рекламы и приложение для работы) и причесать всех к стандартной GUI-библиотеке обеспечивающей разделение без ущерба для функционала не получится.

Syncro ★★★★★
()
Ответ на: комментарий от stellar

> Ничто не мешает пользоваться шаблонизатором, написанным на С/C++.

Для того, чтобы вместо <?=$foo?> писать {$foo}? Спасибо, рассмешили.

kastaneda
()
Ответ на: комментарий от gloomdemon

>Приколист. И на много хостинго разрешают подключать свой модуль к php?

Для тех хостингов, где нельзя грузить свой extension для mod_PHP, можно:

- использовать Smarty

- поставить свой fastcgi сервер

- поставить php-cgi версию

>И что с хостингом сделают когда найдут там дырку?

Ничего не сделают. При правильных правах на файлы и каталоги - ни-че-го.

stellar
()
Ответ на: комментарий от Deleted

> Т.е. ты хочешь сказать, что большинство разработчиков php-проектов - дятлы? :))

Это касается не только разработчиков php-проектов. Дятлов везде полно.

kastaneda
()
Ответ на: комментарий от kastaneda

>> Ничто не мешает пользоваться шаблонизатором, написанным на С/C++.

>Для того, чтобы вместо <?=$foo?> писать {$foo}? Спасибо, рассмешили.

Хватит передергивать! Если у Вас шаблоны не сложнее <?=$foo?>, это Ваше счастье.

Если сайт более менее сложный будет кошмарная мешанина из крайне плохо оптимизирующихся <? foreach .... ?> и <? if .... ?>.

stellar
()
Ответ на: комментарий от redbaron

> <li tal:condition="not i/selected"><a tal:attributes="href i/url" tal:content="i/text"</a>Menu item</li>

Тихий ужас.

> IMHO преимущества очевидны!

Уж лучше XSLT. Тот же бред, только он является стандартом W3C.

kastaneda
()
Ответ на: комментарий от anonymous-III

да и причем тут девочки ? конфигурялку цвета кнопок можно (проще) сделать смешивая код и представление

Syncro ★★★★★
()
Ответ на: комментарий от stellar

> Хватит передергивать! Если у Вас шаблоны не сложнее <?=$foo?>, это Ваше счастье. Если сайт более менее сложный будет кошмарная мешанина из крайне плохо оптимизирующихся <? foreach .... ?> и <? if .... ?>.

Отделяйте мух от котлет. Добавьте <? include(...) ?>. Не пользуйтесь табличной вёрсткой. Или вы хотите всё и сразу?

kastaneda
()
Ответ на: комментарий от kastaneda

Что конкретно не понравилось :) По пунктам. По сравнению с тем что было - гораздо читабельнее и логичнее. Там всего этих выражений немного, но их с головой хватает на всё, учитывая что можно вызывать питоновские скрипты или писать на питоне (защищенном) one-liner'ы прям в шаблоне.

tal:attributes - dynamically change element attributes. tal:define - define variables. tal:condition - test conditions. tal:content - replace the content of an element. tal:omit-tag - remove an element, leaving the content of the element. tal:on-error - handle errors. tal:repeat - repeat an element. tal:replace - replace the content of an element and remove the element leaving the content.

плюс мега удобная вещь METAL (юзается точно также): metal:define-macro - Define a macro. metal:use-macro - Use a macro. metal:define-slot - Define a macro customization point. metal:fill-slot - Customize a macro.

Не поленитесь, прочтите http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/AppendixC.stx

redbaron ★★
()
Ответ на: комментарий от stellar

см. мой недавний ответ про юмлу в код шаблона можно вставлять только блоки для компонентов а уж иф или форич решит модуль, который управляется девочками выглядит намного проще и понятнее хитрых шаблонизаторов и xslt. Keep it simple, Lucke

Syncro ★★★★★
()
Ответ на: комментарий от kastaneda

Что конкретно не понравилось :) По пунктам. По сравнению с тем что было - гораздо 
читабельнее и логичнее.
Там всего этих выражений немного, но их с головой хватает на всё, учитывая что можно вызывать 
питоновские скрипты или писать на питоне (защищенном) one-liner'ы прям в шаблоне.

tal:attributes - dynamically change element attributes.
tal:define - define variables.
tal:condition - test conditions.
tal:content - replace the content of an element.
tal:omit-tag - remove an element, leaving the content of the element.
tal:on-error - handle errors.
tal:repeat - repeat an element.
tal:replace - replace the content of an element and remove the element leaving the content.

плюс мега удобная вещь METAL (юзается точно также):
metal:define-macro - Define a macro.
metal:use-macro - Use a macro.
metal:define-slot - Define a macro customization point.
metal:fill-slot - Customize a macro.

Не поленитесь, прочтите http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/AppendixC.stx

redbaron ★★
()
Ответ на: комментарий от kastaneda

>Отделяйте мух от котлет.

Вот именно. Отделяйте исполнимый код от представления

>Добавьте <? include(...) ?>.

1) Include небезопасен.

2) Как использование Include поможет упростить конструкции <? foreach .... ?> и <? if .... ?>.

>Не пользуйтесь табличной вёрсткой. Или вы хотите всё и сразу?

Причем тут табличная верстка? Сверстать можно на чем угодно, хоть на div.

stellar
()
Ответ на: комментарий от redbaron

во, не надо фигачить html в php, надо наоборот - придумать язык программирования шаблона !

Syncro ★★★★★
()
Ответ на: комментарий от stellar

> > Отделяйте мух от котлет.
> Вот именно. Отделяйте исполнимый код от представления
Отделяйте руки от задницы.

> > Добавьте <? include(...) ?>.
> 1) Include небезопасен.
Ну чем, чем именно?

> 2) Как использование Include поможет упростить конструкции <? foreach .... ?> и <? if .... ?>.
Если у вас пиццот таких конструкций - разложите их в разные файлы.

> > Не пользуйтесь табличной вёрсткой. Или вы хотите всё и сразу?
> Причем тут табличная верстка? Сверстать можно на чем угодно, хоть на div.
Табличная вёрстка - это перегруженный оформлением код. Нонче оформление принято класть в CSS, а в XHTML писать только контент.

kastaneda
()
Ответ на: комментарий от stellar

> Для тех хостингов, где нельзя грузить свой extension для mod_PHP, можно: - использовать Smarty - поставить свой fastcgi сервер - поставить php-cgi версию

Надо просто сразу использовать smarty, не такой уж он и тяжёлый. А если просто страничка васи пупкина то можно обойтись вообще без него. Приделыват костыли в виде шаблонного движка на C/C++ это изврат (ИМХО). Пример по поводу gd не катит, т.к. у обработки изображений и шаблонов несколько разные требования к производительности.

А на много хостингов можно поставить fastcgi сервер? Типа позвонить им и попросить? А там где есть свою версию php не так просто поставить.

gloomdemon
()
Ответ на: комментарий от stellar

stellar, на протяжении многих постов вы уже доказали совершенное владение конструкциями <? foreach .... ?> и <? if .... ?>.
Наболевшее? Или не давали давно?

anonymous
()
Ответ на: комментарий от kastaneda

> Отделяйте мух от котлет. Добавьте <? include(...) ?>.

А лучше просто не мешать всё в кучу и все. Хотя для простой странички из двух разделов, этого достаточно.

> Не пользуйтесь табличной вёрсткой. Или вы хотите всё и сразу?

Всё на div и css? Попробуйте хоть раз, довольно большой и сложный дизайн целиком на css и div сверстать. Будет весело.

gloomdemon
()
Ответ на: комментарий от stellar

>> Людям с IQ слабо отличающимся от 0 поясню: для Drupal есть способы "привернуть" несколько разных template engine.

> Анонимусу, с IQ слабо отличающимся от 0, поясняю: http://www.linux.org.ru/jump-message.jsp?msgid=1743058#1743237

> Читайте исходники, они - рулез.

да БАГ это БАГ. чего тут непонятного ???

В любом случае можно переопределить класс у div'а в CSS или вообще убрать этот класс а внутренности рендерить иначе (через table например).

anonymous
()
Ответ на: комментарий от gloomdemon

> Всё на div и css? Попробуйте хоть раз, довольно большой и сложный дизайн целиком на css и div сверстать. Будет весело.

Спасибо, я уже попробовал. Понравилось.

P.S. Если встречу верстальщика, который "верстает на div'ах" - уши пообрываю. Я имею ввиду дятлов, которые пишут <div class="header"> вместо <h1>.

kastaneda
()
Ответ на: комментарий от gloomdemon

> Всё на div и css? Попробуйте хоть раз, довольно большой и сложный дизайн целиком на css и div сверстать. Будет весело.

я думаю имелось ввиду что основой является не <table> с кучей вложенных, а совокупность div'ов, так действительно сейчас очень много где сделано (особенно с нашествием аякса) совсем без таблиц конечно сложно, данные опять же выводить

Syncro ★★★★★
()
Ответ на: комментарий от gloomdemon

>> 1) Include небезопасен.

>Ну чем, чем именно?

Тем, что он выполняется в контексте PHP, а не как шаблон с ограниченной функциональностью.

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

Конечно-конечно. Генерировать _динамический_ HTML можно медленно, это же совершенно очевидно. Спуститесь с небес на землю, и потрудитесь посчитать, сколько раз в типичном вебпроекте на один запрос генерируется HTML, а сколько раз - картинка.

>А на много хостингов можно поставить fastcgi сервер?

Везде, где есть шелл и не зарезаны до невозможности лимиты. А там где есть свою версию php не так просто поставить. Например, на .masterhost - можно. Ведущий хостер РУнета...

stellar
()
Ответ на: комментарий от kastaneda

> P.S. Если встречу верстальщика, который "верстает на div'ах" - уши пообрываю. Я имею ввиду дятлов, которые пишут <div class="header"> вместо <h1>.

:D Под столом. Такого ещё не встречали =)

gloomdemon
()
Ответ на: комментарий от gloomdemon

Удобно. Все от всего отделено. То, что вы все здесь, олухи, и хотели. Сказали вам страшное слово, так сразу: "нееее... нам это не надо... как же мы тут какашками кидаться тогда будем?"

anonymous
()
Ответ на: комментарий от stellar

> > > 1) Include небезопасен.
> > Ну чем, чем именно?
> Тем, что он выполняется в контексте PHP, а не как шаблон с ограниченной функциональностью.

Ещё раз спрашиваю: что в этом "небезопасного"?

kastaneda
()
Ответ на: комментарий от kastaneda

А у него все теперь небезопасно, после дешевой девочки.

anonymous
()
Ответ на: комментарий от kastaneda

изюм в том что:

1. внешний вид всех элементов class="header" будет задаваться в таблице стилей, можно конечно переопределить h1 в тойже таблице, но это костыль похлеще будет

2. к диву можно назначить id и активно этим пользоваться из джаваскрипта

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

> 1. внешний вид всех элементов class="header" будет задаваться в таблице стилей, можно конечно переопределить h1 в тойже таблице, но это костыль похлеще будет

Значит, div.header { color: red } - это нормально, а h1 { color: red } - это костыль? Дайте телефон вашего дилера.

> 2. к диву можно назначить id и активно этим пользоваться из джаваскрипта

Что мешает id повесить на любой другой элемент, кроме div'а? Кстати, не document.getElementByClassId'ом единым можно добраться до элементов страницы.

kastaneda
()
Ответ на: комментарий от stellar

> Тем, что он выполняется в контексте PHP, а не как шаблон с ограниченной функциональностью.

Это писал не я =)

> Конечно-конечно. Генерировать _динамический_ HTML можно медленно, это же совершенно очевидно. Спуститесь с небес на землю, и потрудитесь посчитать, сколько раз в типичном вебпроекте на один запрос генерируется HTML, а сколько раз - картинка.

Узнайте про PEAR Cache, и в частности про Pear CacheRequest. Это совсем радикально. А есть ещё смарти, который на каждый {include file=$_content_file} генерирует _отдельный_ кеш, что мешает всю динамику подключать через include file, т.е. тот же смарти будет только динамику заново обрабатываь.

> Везде, где есть шелл и не зарезаны до невозможности лимиты. А там где есть свою версию php не так просто поставить. Например, на .masterhost - можно. Ведущий хостер РУнета...

Даааалеко не все такие хорошие и пушистые.

gloomdemon
()
Ответ на: комментарий от stellar

Впервые встречаю вменяемого программиста на пхп. Выражаю свою почтение. Возможно вам стоит задуматься, что ЛОР это не то место, где стоит кому-то что-то доказывать - бесполезно.

anonymous
()
Ответ на: комментарий от Syncro

Можно и без id обойтись

в jquery xpath есть $(".content").hide();

кажется так :-)

А вот XSL есть не во всех браузерах.

anonymous
()
Ответ на: комментарий от anonymous

Ага, и верстальщика надо учить xls и т.д. Особенно когда надо будет частично вёрстку сменить на поддреживаемом сайте. Вместо того что бы открыть шаблон смарти и всё по быстрому подправить.

gloomdemon
()
Ответ на: комментарий от anonymous

> Впервые встречаю вменяемого программиста на пхп.

Оценка такова, что сразу постим:

> А вот XSL есть не во всех браузерах.

Идиот, или просто не знаешь где xsl процессор работает?

anonymous
()
Ответ на: комментарий от kastaneda

а innerHTML у такого id'шнутого h1 можно переписать, даже если можно то выглядит это все как то коряво, есть div как аналог холста или лейбла в GUI фреймворках, зачем городить переопределения тегов ?

Syncro ★★★★★
()
Ответ на: комментарий от gloomdemon

Тем, что ты ничего не знаешь, но поумничать хочется.
Ну на тебе поджопник:
Верстаешь ты в XML - считай нативный текст вбиваешь между двумя тегами, которые тебе, дураку, редактор не показывает.
Цвета своих кнопочек и остальную порнографию - в других тегах.
А xsl тебе знать не надо, да и не потянешь.

Если не успокоился, то начни здесь:
http://www.w3.org

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.