Pull to refresh

Comments 27

Спасибо, полезно. Возможности Drupal действительно очень широки
Еще один хороший: drupal.org/project/simplenews — подписка на новости.
simplenews эта система рассылок. Кстати к нему есть целый выводок доп. модулей для статистики и внедрения тэгов для г-аналитикс
Думаю, Drupal надо уже развиваться в сторону оптимизации. А то слишком тяжело работает.
ну есть же уже более 10 готовых сборок под определенные задачи — газета, магазин и т.д…
не скажешь что они сильно оптимизированы, но уже немного заточены
Самое главное забыли:
1. Удалить из системы драйвер hands_from_ass.sys
2. Ecnfyjdbnm драйвер line_hands.sys
Это необходимо проделать еще ДО знакомства с Drupal.
*установить (сорри, опечатка)
При установке настроек stright_hands.sys, большинство выше отмеченных модулей Вам уже не потребуется. Ибо Вы уже сами решите задачу более элегантно и удобно для Ваших нужд. =)
Content Profile

позволяет создавать профиль пользователя как содержимое материала, и кастомизировать при помощи CCK.
для 6 есть лишь 3 бета — но работает отлично.
Идеально было бы на друпал ру замутить чарт, в котором каждый мог бы отметить какие модули он использует (голосовалкой). В итоге через пару месяцев топ 20 этой выборки можно было бы преподносить как джентльменский набор. Ну и на строки ниже можно было бы ориентироваться.

*Или на друпалере вывести самые часто запрашиваемые переводы.
Почему же костылей, очень полезные штуки, крошке да менюшке ))
Я считаю, что «пошло» называть модулем то, что содержит в себе пару функций (РНР), большинство которых Вы и сами можете реализовать за 1-2ч, что в результате может быть на порядок лучше для Вашего проекта.
Это правильное замечание, но я, например, пока не силен в php, поэтоиу пока на костылях %)
Не долго думая, скачал я «идеальные» менюшки (Jquerymenu) и увидел кучку «говнокода».
drupal.org/project/Jquerymenu
\\jquerymenu.module\\
function jquerymenu_block($op = 'list', $delta = 0, $edit = array()): 120
$edit — не известно для чего параметр, просто чтобы был, чисто по факту, чем больше параметров, тем более увесисто и значимо выглядит.

foreach ($enabledmenus as $menuname) { :142
if ($delta == $d) {
if ($menuname == 'navigation' && !empty($user->uid)) {
$title = $user->name;
}
else {
$title = db_result(db_query(«SELECT title FROM {menu_custom} WHERE menu_name = '%s'», $menuname));
}
Запросы в цикле ждут нас. Не вижу, что мешает сделать все в 1 запрос.

function jquerymenu_init() { :11
drupal_add_css(drupal_get_path('module', 'jquerymenu') .'/jquerymenu.css');
if (variable_get('jq_menu_animate', 0) == 0) {
drupal_add_js(drupal_get_path('module', 'jquerymenu') .'/jquerymenu.js');
}
if (variable_get('jq_menu_animate', 0) == 1) {
drupal_add_js(drupal_get_path('module', 'jquerymenu') .'/jquerymenu_no_animation.js');
}
}
Крутил, вертел, даже сквозь пальцы смотрел. Но эти шаманские уловки не открыли мне тайну 2х If подряд из которых может выполниться только 1 (=?: — в помощь).

хардкод и полное отсутствие ООП обсуждать бессмысленно, ибо это фишка Друпала и модуля в частности.

Заключающее Имхо, лучше потратить пару часов времени для изучения РНР и написания своего функционала, чем использовать подобный «идеальный» код, приобретая головную боль и ненужные нагрузки на проект — «бесплатно».
мда, трудно не согласиться, пошел за учебником :)
Неумные замечания.
1. Это не пишется за пару часов изучения ПХП. Нужно ещё очень хорошо знать API Drupal и JQuery.
2. Даже ЕСЛИ БЫ jquery-menu писалось за пару часов — моя пара часов гораздо дороже процессорного времени сервера.
3. _block — это API хуков Drupal. Читаем о хуках и что такое API вообще.
4. Запросов в цикле, скорее всего, будет один — для меню навигации. М.б. два.
Лепить ради этого in(...), усложнять код двойным циклом и добавлять потенциальную несовместимость с какими-либо СУБД неразумно.
Особенно если результаты запросов или сами блоки кэшируются, как то всегда бывает.
5. Такие if-ы проще мейнтейнятся. Если в будущем набор значений опции поменяется, else не сломается.
6. То, что мощная функция добавляется модулем в 5К — это ОФИГЕННЫЙ плюс Друпала.
7. Хардкод — издержка конкретного модуля. ООП в ядре есть; модули же можно писать так, как кому заблагорассудится.
Что хуки на функциях, а не объектах — это следствие динамической интерпретации. Ещё это оптимизация — далеко не все хуки «инстанцируются» при каждом запросе. С обэектами такого бы не получилось.
Об ООП в ядре приврал, остальное в силе.
вообще как бы да: ищущий — найдёт в любом случае.
однако моё глубокое имхо, что искать надо на drupal.org — там точно есть всё, а вот drupal.ru в этом смысле сильно отстаёт…
за пост спасибо, пару модулей не знал, надо затестить
Спасибо, очень вовремя, как раз с друпалом сижу :——————)
2 7paca
вы к нам в Омск 14 мая приезжаете, я уже билеты купил:)
Спасибо за подборку. Возьму на вооружение «Nice Menus и JQuery Menu»! Никто не натыкался на хорошее описание на русском Views 6.x?
Sign up to leave a comment.

Articles