Несколько полезных и интересных модулей для Друпала

    logoИзучая Drupal, я нередко натыкаюсь на новые задачи, которые необходимо реализовать, и проблемы, которые нужно устранить.
    Конечно, сайты Drupal.ru и Drupal.org — неоценимые помощники во всех вопросах и помогут разобраться практически в любой поставленной задаче, однако сегодня хотелось бы рассказать вам о некоторых модулях и их возможностях, чтобы вам не пришлось лихорадочно искать ответы на ваши вопросы, когда подобный функционал вам вдруг понадобится. Возможно, вы не узнаете для себя ничего нового из этого топика, но я все же попробую.


    Начнем по порядку.

    Automatic Nodetitles


    Страница проекта

    При создании нового типа материала в Drupal нельзя убрать поле «Заголовок» или указать его значение по умолчанию, но в этом случае нам поможет модуль Automatic Nodetitles, который спрячет и автоматически сгенерирует содержимое поля заголовка у выбранного типа материала, основываясь на ваших указаниях. Можно настроить генерацию заголовка в зависимости от любого значения, либо просто сделать одинаковый заголовок для всех материалов одного типа.

    Доступен для Drupal 4,5,6.

    Custom Breadcrumbs


    Страница проекта

    Позволяет настроить так называемые «хлебные крошки» для любого типа материала, основанного на ССК, например, «Главная страница > Блог пользователя > 2009 > Апрель», легко синхронизируя их с различными представлениями (Views) или алиасами модуля Pathauto.

    Доступен для Drupal 5,6.

    Community Tags


    Страница проекта

    Модуль позволяет пользователям самим добавлять теги для определенных типов материалов, формируя для каждого поста собственное облако тегов (аля «Собери свою лепру»).
    Имеет множество применений, например, можно сделать подписку на событие с помощью добавления своего имени в метки поста.

    Доступен для Drupal 5,6.

    Author Taxonomy


    Страница проекта

    Модуль позволяет указывать при создании материала сразу несколько авторов и автоматически создает словарь из них. Конечно, практически то же самое можно реализовать стандартными средствами CCK + Taxonomy, однако этот модуль в результате оказывается гораздо удобнее.

    Доступен для Drupal 5,6.

    Conditional Fields


    Страница проекта

    Довольно важное дополнение для модуля CCK, позволяет создавать зависимые поля, которые становятся видимыми только при определенном значении другого поля. Кстати, на свет поле «вылазит» с довольно красивой анимацией и затуханием.

    Доступен для Drupal 5,6.

    Node Expire


    Страница проекта

    Позволяет каждому типу материала либо каждому определенному материалу указывать время, когда он «потеряет силу», то есть станет полностью скрытым от пользователей, но не удалится. Удобен для всяких объявлений.
    Настраивается в свойствах каждого отдельного типа материала.

    Доступен для Drupal 5,6.

    Subscriptions


    Страница проекта

    Очень мощный модуль рассылок и подписок, имеет множество настроек, которые учитывают почти все, что необходимо; в то же время позволяет пользователям довольно просто подписаться на все материалы одного типа или на каждый материал в отдельности (включая обновления содержимого).

    Доступен для Drupal 5,6.

    Nice Menus и JQuery Menu


    Страница проекта Nice Menus | Страница проекта JQuery Menu

    Два модуля, делающие навигационное меню вашего сайта более удобными. JQuery Menu позволяет быстро сворачивать/разворачивать пункты меню AJAX'ом (после обновления страницы состояния меню не сохраняются), в то время как Nice Menus добавляет вам удобные и красивые меню с всплывающими слева-справа-снизу подпунктами. Во всех браузерах, кроме IE6, работает на чистом CSS, для IE добавляется немного скриптов.
    В редких случаях Nice Menus ломал мне верстку, причину выявить не удалось.

    Оба модуля доступны для Drupal 6. Есть версия Nice Menus для Drupal 5.

    Collapsible Text


    Страница проекта

    Позволяет вам добавить к каждому формату ввода теги [collapse] [/collapse]; текст, введеный между тегами, будет сворачиваться/разворачиваться при клике на заголовок. Текст можно сделать свернутым по умолчанию, использовав [collapse collapsed]. Чтобы заменить стандартную надпись заголовка на свою, нужно после первого тега использовать любой из тегов-заголовков (h1-h6).
    Подобный текст очень любят юзеры форумов по типу IP Board, так как он напоминает теги [offtop] и [spoiler].

    Личные наблюдения: Если вставить лишнюю пустую строку между абзацами внутри сжатого текста, но тег прервется. Однако если эта строка вам совсем необходима, вставьте в конце абзаца тег
    </li>
    и нужный пропуск появится, не прервав тег.


    Доступен для Drupal 5,6.

    Tabs + Views Tabs + CCK Fieldgroup Tabs


    Страница проекта Tabs
    Страница проекта Views Tabs
    Страница проекта CCK Fieldgroup Tabs

    Эти три модуля позволят вам добавить вкладки в любой тип материала (группы полей) либо любое представление. Собственно, если разбираетесь в Views и CCK, то никаких проблем не возникнет.

    Модули доступны для Drupal 6.
    Views Tabs и CCK Fieldgroup Tabs есть для Drupal 5.

    Удачи вам в работе с Друпалом. :)
    Если возникли какие-либо вопросы — пишите в комментариях или в личку.
    Или сразу на Drupal.ru, там вам точно помогут.
    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

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

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

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

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.