20 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Скачать друпал 7 русская версия. Технические особенности Drupal

Drupal

Drupal (Друпал) – основа управления содержимым (CMF), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением, защищённым лицензией GNU General Public License, и развивается усилиями энтузиастов со всего мира.

Drupal может работать в таких популярных системах как Microsoft Windows, Mac OS X, Linux, собственно, на любой платформе, которая поддерживает работу веб-сервера Apache HTTP Server, nginx, lighttpd или Microsoft IIS; также требуется наличие системы управления базами данных MySQL/MariaDB, PostgreSQL 8.3, SQLite или другие коммерческие. Полные системные требования Drupal приведены на официальном сайте.

Система поддерживает локализацию интерфейса на более чем 100 языкаx (однако не все переводы являются полными). Имеется поддержка русского языка. В Drupal используется собственный механизм для локализации с хранением переводов в базе данных, наравне с остальным содержимым сайта. При этом несложной является адаптация к работе со стандартной библиотекой GNU gettext. Импорт и экспорт переводов сайта осуществляется в виде po-файлов (формат используемый библиотекой GNU gettext).

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

В Drupal предлагается гибкая схема организации структуры сайта на основе таксономии. Таксономия – механизм, позволяющий создавать произвольное количество тематических категорий для содержимого сайта и ассоциировать их с модулями, обеспечивающими ввод и вывод информации. Категории могут представлять плоские или иерархические списки, либо сложные структуры, где элемент может иметь несколько “родителей” и несколько дочерних элементов. С помощью подобной схемы одними и теми же модулями возможна организация различных вариантов структуризации содержимого. Например, легко создаётся сквозной список “ключевых слов” для всех документов сайта и т. п..

Другая парадигма появилась с созданием в Drupal расширения Content Construction Kit (CCK). CCK позволяет дополнять документы новыми полями различных типов – от полей ввода URL и Email, до полей хранения и отображения мультимедийных файлов. Также посредством дополнительных модулей к CCK (например Node reference) можно организовать связи между документами, не используя механизм таксономии.

Drupal имеет модульную архитектуру с компактным ядром, предоставляющим API, к которому могут обращаться модули. Стандартный набор модулей включает такие функции, как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и другие. Дизайн сайта меняется также посредством специальных модулей – “тем оформления”.

Модули Drupal

Несколько примеров наиболее популярных модулей, которые можно скачать в репозитории на drupal.org:

  • Views – модуль с интерфейсом для создания различных списков;
  • Panels – предоставляет возможность разбивать содержимое страницы на регионы (более продвинутое использование стандартных регионов Drupal);
  • Services – создание собственных веб-сервисов, например XMLRPC или REST;
  • WYSIWYG – модуль для работы с WYSIWYG-редакторами, позволяет одновременно использовать несколько редакторов (CKEditor, TinyMCE, whyzziwyg);
  • Apachesolr – интеграция с поисковиком Apache Solr;
  • Panels everywhere – предоставляет возможность использовать главную панель для всего сайта, с последующей вставкой в неё других панелей;
  • Features – позволяет сливать определенные данные из базы в код в виде модулей для последующего переноса (например с сервера разработки на препродакшен сервер);
  • Backup and migrate (BAM) – возможность дампа и восстановления базы полностью или частично;
  • Views bulk operations – групповые операции над объектами в списках;
  • Devel – набор средств и функций для быстрой разработки;
  • Drush – Drupal shell, пакет для работы с друпалом и модулями через консоль (также доступен в репозитории последних версий Ubuntu);
  • Memcache – интеграция с сервером memcached;
  • Ubercart – система электронной коммерции.

К несомненным достоинствам Drupal следует отнести весьма полную документацию по различным аспектам системы (документация преимущественно на английском языке).

Технические особенности Drupal

Архитектура Drupal позволяет применять его для построения различных типов сайтов – от блогов и новостных сайтов до информационных архивов или социальных сетей. Имеющуюся по умолчанию функциональность можно увеличивать подключением дополнительных расширений – “модулей” в терминологии Drupal. Наиболее важные функции, предоставляемые Drupal “из коробки”:

  • Единая категоризация всех видов содержимого (таксономия) – от форумных сообщений до блогов и новостных статей.
  • Широкий набор свойств при построении рубрикаторов: плоские списки, иерархии, иерархии с общими предками, синонимы, родственные категории.
  • Вложенность категорий любой глубины.
  • Поиск по содержимому сайта, в том числе поиск по таксономии и пользователям.
  • Разграничение доступа пользователей к материалам (ролевая модель).
  • Динамическое построение меню.
  • Поддержка XML-форматов:

Вывод документов в RDF/RSS.

Агрегация материалов с других сайтов.

BlogAPI для публикации материалов с помощью внешних приложений.

  • Авторизация через OpenID.
  • Символьные осмысленные URL (иначе “человеко-понятные” – ЧПУ).
  • Переводы интерфейса сайта на разные языки, а также поддержка ведения разноязычного контента.
  • Возможность создания сайтов с пересекающимся содержимым (например общей базой пользователей или общими настройками).
  • Раздельные конфигурации сайта для различных виртуальных хостов (мультисайтинг), в том числе собственные наборы модулей и тем оформления для каждого подсайта.
  • Уведомления о выходящих обновлениях модулей.

Дизайн сайта на Drupal можно менять с помощью тем оформлений. В качестве шаблонизатора (“движок темы” в терминологии Drupal) используется PHPTemplate, однако есть возможность использовать Xtemplate, Smarty, Twig и другие.

Начиная с версии 4.7 Drupal поддерживает технологию AJAX для динамической подгрузки содержимого без полного обновления страниц. В версии 5 для работы с JavaScript добавлена библиотека jQuery. C версии 6.0 появилась возможность динамически изменять формы посредством AHAH. В версию 7.0 вошла библиотека jQuery UI.

Награды Drupal

  • Трижды — в 2007, 2008 и 2009 годах — система получила награду Webware 100 (присуждается лучшим на сегодня сайтам, сервисам и приложениям Сети);
  • Друпал — абсолютный победитель Packt Open Source CMS в 2008 г. и победитель в категории PHP в 2008 и 2009 гг.

Основным соперником Drupal была Joomla!. Победители выбирались жюри из экспертов в своей области, а также посетителями сайта Packt.

  • Победитель конкурса «Best Open Source Applications 2010» в категории «Лучшая система управления веб-контентом».

Недостатки Drupal

  • Критики Drupal ставят в упрёк разработчикам слабое использование объектных возможностей PHP.

Действительно, API Drupal практически не использует имеющиеся в PHP возможности ООП. Разработчики аргументируют это слабой реализацией ООП в языке (особенно до версии PHP 5). Объектная модель в Drupal присутствует, но в несколько нетрадиционном для PHP виде. В Drupal 7 однако присутствует ряд нововведений задействующих объектные возможности PHP 5.

  • К недостаткам (но одновременно и к достоинствам) Drupal можно отнести отсутствие обратной совместимости API.

В каждом новом большом релизе происходят большие изменения API, когда наряду с добавлением новых функций убираются некоторые старые или изменяются параметры вызова существующих. Это приводит к необходимости разработчикам сторонних модулей адаптировать их для работы с новыми версиями Drupal. Однако изменения API и процедура адаптации модулей к новым версиям описываются в документации для каждого релиза, также всегда предлагается механизм автоматизированного апгрейда ядра системы на новую версию. Плюс данной схемы разработки – нет необходимости тянуть из версии в версию программный слой совместимости со старыми API, что облегчает текущий код системы.

Установка Drupal 7

Установка Drupal 7 на веб-хостинге не представляет ничего сложного с технической точки зрения, однако нужно понимать что такое хостинг-эккаунт, виртуальный или невиртуальный веб-сервер. Что где “лежит” на этом сервере и как туда попасть. Эта статья для тех кто это знает.

Подготовка к установке Drupal 7

Проверяем можно ли на ваш хостинг установить Drupal 7. Требования Drupal 7 к хостингу следующие:

  • Apache 1.3 (лучше если 2).
  • MySQL 5.0.15 (или выше). Можно использовать MariaDB, PostgreSQL или SQLite, но в наших краях это экзотика.
  • PHP 5.2.4 (или выше).

Если все это на вашем хостинг-эккаунте есть тогда двигаемся дальше. В настройках хостинг-эккаунта нужно проверить:

  • В Apache должен быть включен mod_rewrite.
  • В PHP должны быть подключены модули gd, pdo, filter, json.
  • В PHP опцию memory_limit установить как минимум в 32М, а лучше в 64М.

Установка Drupal 7

Создать пустую базу данных MySQL с кодировкой utf-8. Запомнить имя этой БД, имя пользователя и пароль для доступа к этой БД. Эта база данных будет использоваться для работы Drupal. Никаких таблиц в ней создавать не нужно!

Скачать архив дистрибутива Drupal 7 с сайта drupal.org и распаковать файлы в ту папку на вашем хостинге которая в настройках Apache указана как DocumentRoot для вашего сайта. На разных хостингах эта папка может называться по разному – htdocs, docs, www. Смотрите документацию по вашему хостингу.

Читать еще:  Получение ROOT и установка ClockworkMod recovery (CWM) на ZTE LEO Q1. Получение Root ZTE Leo Q1 Zte leo q1 прошивка

Скачивать и закидывать файлы на сайт можно по разному. Можно зайти хостинг по SSH, затем wget и tar. Можно скачать архив на локальный компьютер, распаковать и потом закинуть по FTP. Дело вкуса. Однако учтите, что количество файлов в архиве более 1000 и по FTP они будут долго “заливаться”. Возможны сбои при закачке. Поэтому предусмотрите какой-то инструмент для проверки того, что все файлы закачались. Что-то типа “синхронизация каталогов” в totalcmd.

Drupal 7 имеет русский язык интерфейса. Для русификации Drupal уже в процессе установки, нужно, после того как файлы дистрибутива закачаны на хостинг, опять же с сайта drupal.org, скачать файл русского языка drupal-7.16.ru.po (номер версии в названии файла может быть другой!). Это локализация интерфейса Drupal на русский язык. Этот файл также нужно закинуть на хостинг, в папку /profiles/standart/translations. Если это сделать тогда установка Drupal будет уже на русском языке и после установки Drupal будет русифицирован.

Теперь можно запускать установку. Для нужно открыть ваш сайт в браузере:

Если у вас не открылась такая страница, значит вы что-то сделали не так. А на этой странице нужно кликнуть на “Save and continue”.

На второй странице “Russian” и опять “Save and continue”. Примечание: если вы не скачали и не скопировали файл drupal-7.16.ru.po тогда опции “Russian” не будет!

На этой странице нужно заполнить поля “имя БД”, “имя пользователя”, “пароль” и “хост БД”. Имена БД и пользователя вы получили когда создавали базу данных, а вот имя хоста нужно смотреть в документации к хостинг-эккаунту. Без правильного имени хоста установить не получится. Если это имя не найдете сами – обращайтесь в техподдержку хостинговой компании.

Теперь можно курить бамбук до тех пор пока не откроется следующая страница:

Поля “Имя пользователя” и “пароль” это данные авторизации для администратора системы. Пользователь с этими данными получает административные права и может рулить внутри Drupal. Так, что не нужно использовать имя вроде “admin” и пароль типа “12345”. Не облегчайте жизнь взломщикам.

Вот и все. Установка завершена – делайте сайт.

Если вы живете в г. Краснодар, для вас есть простой способ установить систему управления сайтом Drupal – позвоните по телефону, который указан ниже и договоритесь со специалистом. Подробнее.

Иван Сухов, 2012 г.

Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь – поддержите материально автора. Это легко сделать закинув денежек на Яндекс Кошелек № 410011416229354. Или на телефон +7 918-16-26-331.

Даже небольшая сумма может помочь написанию новых статей 🙂

Или поделитесь ссылкой на эту статью со своими друзьями.

Разработка

Drupal 7: Создание простой Feature (возможности)


Сразу оговорюсь, что с Features я знаком поверхностно. Доводилось пару раз побаловаться им. Решил раз уж буду делать Feature по технической поддержке, то и напишу как делал это.

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

Пример: вы сделали тип содержимого каталог, view для его отображения, а также добавили некоторые поля которые там используются. Создавая очередной сайт, вы вдруг понимаете что уже делали точно такой же каталог, зачем все делать по-новому? Это драгоценное время, которое можно потратить на другие занятия, особенно если такой каталог воссоздавать от нескольких часов. И тут приходит на помощь Feature. Данный модуль поможет «запаковать» ваш готовый каталог в новую «возможность», которая по факту является модулем, а затем использовать её где нужно. В нашем случае, эту «возможность» мы кидаем на новый сайт, включаем и вуаля, каталог готов.

Ценность данного модуля бесспорна, но у меня руки не доходят его изучить глубже, а именно, для создания сборок. Его также не пропустили мимо рук и разработчики Drupal, в 8 версии, в ядре появится «Менеджер конфигураций» с которым будет интегрироваться Features, но об этом я уже ничего точно сказать не могу. Но в ядро бесполезное вряд ли бы добавили.

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

Подготовка

Так как я буду показывать на примере «Технической поддержки», то вы можете скачать бэкап сайта из гайда. Также нам понадобится модуль Features.

От вступления к делу.

Знакомство с интерфейсом модуля

Перед тем как перейти к созданию, забегу вперед и расскажу про интерфейс создания «возможностей».

General Information — позволяет задать основные параметры возможности. В нем можно задать:

  • Имя — название будущей возможности.
  • Описание — описание для возможности чтобы было проще сориентироваться.
  • Группа — то, к какой группе будет относиться возможность. Позволяет разграничить возможности по группам. В том числе, будущая возможность будет именно с данной группой в списке модулей.
  • Версия — версия возможности, которая задается по типу модулей. Версия.друпала-версия.модуля.

Advanced Options — дополнительные настройки возможности. Состоят из:

  • Путь до файла обновления — это позволяет сообщить всем сайтам, на которых используется возможность, о том, что вышла новая версия и они могли обновиться по принципу обычных модулей. (необязательное поле)
  • Путь для генерации модуля-возможности — путь где создаться модуль с данной возможностью. Оставив пустым, возможность будет генерироваться в стандартную папку sites/all/modules/name_of_feature. Я повидал мало «возможностей», но все они как правило располагались в папке sites/all/modules/features/name_of_feature. Объяснять почему, я думаю не стоит.
  • Генераци возможности — генерация возможности в модуль. Используется когда все настройки уже сделаны.
  • Автоматическое добавление зависимостей — позволяет автоматически отслеживать и помечать модулиполя и т. д. на добавления в возможность. Например вы пометили созданную вами view, то автоматически добавится зависимость к модулю views.
  • Допустить конфликты — позволяет добавлять в возможность то, что будет конфликтовать между собой. Я, честно, с таким не сталкивался и даже представления не имею что может конфликтовать.

Components — раздел со всеми сущностями, полями и т. д. созданными на вашем сайте, и которые должны быть добавлены в возможность. Выделенные компоненты имеют следующие статусы:

  • Нормальный (серый) — вы выбрали данный компонент.
  • Измененый (серый с жирным текстом) — выбранный ранее компонент, но был изменен с момента генерации возможности.
  • Автоматически обнаруженный (голубой) — этот элемент необходим для какого-то из тех, что вы выбрали сами. (как в случае с views выше).
  • Конфликт — значит что-то конфликтует 🙂

Ну и кнопка скачать возможность, объяснять зачем, думаю не стоит.

Создаем новую «возможность»

Прежде чем что-либо «упаковывать», нам необходимо создать ту самую «упаковку». Для начала перейдите в административный раздел Features и приступим.

Шаг 1. Создаем новую «возможность»

Шаг 2. Даем название «Техническая поддержка» (technical_support)

Шаг 3. В группу пишем Technical support. Если что-то еще будите добавлять к службе поддержки, а затем выносить в feature, то будет проще ориентировать.

Шаг 4. Указываем версию 7.x-1.0

Шаг 5. Переходим в раздел «Components». И начинаем помечать что нам необходимо для корректно работы feature:

  • Content types: Тикет. У вас автоматически отметятся все поля которые там используются, словари таксономии и модули.
  • Rules configuration: помечаем все наши rules’ы с приставкой «Тикет».
  • Views: помечаем наше представление «Техническая поддержка».

Шаг 6. Жмем «Generate feature».

Наша возможность будет доступна по адресу sites/all/modules/technical_support, а также в разделе модулей и features.

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

Для того чтобы протестировать его, разумеется, логичнее всего поставить чистую сборку друпала, тогда все косяки всплывут сразу.

Проверяем

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

Как вы можете увидеть все зависимости прописаны, и нам достаточно включить возможность, как все остальные модули сами включаться и опять же, это сэкономит нам время.

После включения, у нас появится функционал «Технической поддержки».

Читать еще:  ТОП-3 Способа Как Скачать Всю Переписку из ВК

Что делать после

Не думайте что включили и проблема решена. Взять все тот же наш пример. Словари категорий, статусов и приоритетов тикетов создались, но они пустые. Надо либо добавлять, либо импортировать (Feeds) их.

Также все на этом примере. Например сейчас надо заполнять поле «Title» для тикета, а в статье мы избавились от этого методом добавления кода в template.php, который, feature перенести не может.

Такие ньюансы нужно учитывать и прежде чем цеплять feature на продакшен, два-три раза протестируйте на чистых сборках.

Технические требования к хостингу для сайта на Drupal

Русскими словами

  • Операционная система: любая
    мы используем LinuxDebian
  • Веб сервер: Nginx или Apache или Microsoft IIS – любая современная версия
    у нас используется Nginx
  • Язык: PHP 7.1+, поддержка предыдущих версий PHP закончилась 3декабря 2017 года, а с 2019 года для них даже не будет обновлений безопасности. Drupal может работать с PHP 5.6+.
  • База данных: MySQL 5.0.15+, т.е. любая современная версия (SQLite для сайтов-визиток)
    у нас MySQL 5.6+, друпал поддерживает PostgreSQL, SQLite и множество других
  • План хостинга: память 128+мб, место на диске 100+мб
    – оперативная память min 32Mb. Для комфортной работы желательно 128Mb+
    – место на диске 50Mb+. Для комфортной работы 400Mb+

Итого:

Для работы сайта на друпале подойдёт любой современный хостинг.

Для технарей

1) Web-севрер Apache 1.3 или Apache 2.x или Nginx

  • mod_rewrite
  • .htaccess (Apache Virtualhost должна содержать директиву “AllowOverride All” для использования файлов .htaccess в Drupal.)
  • mbstring
  • iconv
  • Больше информации о требованиям к веб-серверу на английском тут
  • Конфигурация наших серверов тут.
  • Drupal 8: PHP 7.0 or higher
  • Drupal 7: PHP 5.2.5 or higher (5.4+ recommended).
  • Settings
    – register_globals off
    – safe_mode off
    – session.save_handler user
    – session.cache_limiter nocache
    – error_reporting E_ALL
    – php_memory_limit не менее 100мб
    – The standard PHP extensions (enabled by default) Hash and JSON are required by Drupal 7
    – PDO support (extension=pdo.so and extension=pdo_mysql.so)
    – The PECL version of PDO is not compatible with Drupal 7 and cannot be used
  • Больше информации о требованиям к PHP на английском тут
  • Конфигурация наших серверов тут.

3) MySQL 5.0.15 or higher with PDO

  • Drupal 8:
    – MySQL 5.5.3/MariaDB 5.5.20/Percona Server 5.5.8 or higher with PDO and an InnoDB-compatible primary storage engine,
    – PostgreSQL 9.1.2 or higher with PDO,
    – SQLite 3.6.8 or higher
  • Drupal 7:
    – MySQL 5.0.15/MariaDB 5.1.44/Percona Server 5.1.70 or higher with PDO,
    – PostgreSQL 8.3 or higher with PDO
  • Больше информации о требованиях к базе данных на английском тут

Урок Темизация Drupal 7. Обзор файлов темы (шаблона)

Я уже давно грозился, и, наконец, решился написать серию статей по темизации для Drupal 7. Итак, для начала я опишу все файлы в Drupal 7, которые необходимы для создания собственной темы.

Тема представляет из себя набор файлов, которые определяют уровень представления (внешнего вида) сайта. К каждой теме вы можете создать одну или несколько подтем (саб-тем). Для того, чтобы Друпал обнаружил вашу тему, достаточно лишь наличия .info файла (файл с описанием темы), однако в таком случае пользы от вашей темы будет немного 🙂

Ниже приведён рисунок, который отражает “анатомию” темы в Друпале. Обратите внимание на цвет перед именем шаблона и цвет на макете сайта: наглядно показано какой шаблон за какую часть сайта отвечает. Например, html.tpl.php включает в себя разметку полной html страницы (DOCTYPE, , ), а page.tpl.php отвечает за вывод содержимого (внутри тэга ). На рисунке показана тема с названием example.

.info файл (обязателен)

Как я уже говорил – всё, что нужно Друпалу, чтобы найти тему – это .info файл. Здесь могут быть описаны файлы стилей (css), javascript, метаданные, блоки. Именно могут быть описаны, но не являются обязательными. О том, что является в .info файле обязательным для заполнения, я расскажу в следующей статье.

Этот файл описывает имя темы, которое будет видно при работе с сайтом, а так же имя файла, которое будет использоваться для вызова функций темы (опять же – об этом чуть позже). Например, если .info файл назвать themename.info, а внутри файл указать name = Theme Name, то на сайте эта тема будет названа именно Theme Name, но в качестве имени темы для функций должно использоваться themename.

Файлы шаблонов (.tpl.php)

Эти шаблоны используются для (X)HTML разметки и вывода PHP переменных. В некоторых случаях они могут использоваться для вывода других типов данных, например, XML или RSS. Каждый файл.tpl.php управляет выводом определённой части (темизируемых) данных. В некоторых случаях шаблоны могут перекрывать друг друга при помощи системы возможных вариантов отображения данных (suggestions).

Присутствие каждого файла шаблона в теме необязательно. Отсутствие шаблона приведёт лишь к использованию его стандартного прототипа из ядра Drupal 7. Огромная просьба – никогда не пишите в этих файлах объёмные фрагменты php кода. Для этого есть template.php. Файлы шаблонов должны оставаться лишь файлами шаблонов, а никак не слоем для реализации какой-либо логики.

Для того, чтобы Drupal понял, что необходимо использовать шаблон из темы, а не из ядра, достаточно скопировать его в корень темы и сбросить кэш регистра темы. В этом может помочь Drush либо Admin menu. Если не хотите разбираться с дополнительным функционалом – просто очистите кэш всего сайта.

Вообще, кэш регистра темы необходимо очищать в следующих ситуациях:

  • При добавлении новых функций Друпала в template.php
  • При изменении файла .info
  • При добавлении/удалении шаблонов .tpl.php

template.php

Данный файл используется как площадка для написания php кода. Здесь необходимо описывать всю логику темы. Файл template.php не является обязательным, однако в большинстве тем он всё же присутствует как минимум для предварительной обработки данных, или создания новых переменных для файлов шаблонов .tpl.php.

Неважно, что именно вы пишете – свои функции, или перекрываете функции темы – всё это должно находиться в template.php. Файл начинается с открывающегося тэга не рекомендуется по причинам возможных ошибок php.

Подтемы (саб-темы)

По сути, подтема – эта обычная тема, но она использует файлы какой-либо другой темы. Для того, чтобы созать подтему, необходимо в .info файле указать родительскую тему, файлы которой также будут подключены к сайту. Друпал позволяет создавать подтемы на основе других подтем – т.е. создавать иерархию из тем.

Скачать друпал 7 русская версия

И другие). Drupal является свободным программным обеспечением, защищённым лицензией GNU General Public License, и развивается усилиями энтузиастов со всего мира.

Drupal может работать в таких популярных системах как Microsoft Windows, Mac OS X, Linux, собственно, на любой платформе, которая поддерживает работу веб-сервера , или Microsoft IIS; также требуется наличие системы управления базами данных / , 8.3, или другие коммерческие. Полные системные требования Drupal приведены на официальном сайте .

Система поддерживает локализацию интерфейса на более чем 100 языкаx (однако не все переводы являются полными). Имеется поддержка русского языка. В Drupal используется собственный механизм для локализации с хранением переводов в базе данных, наравне с остальным содержимым сайта. При этом несложной является адаптация к работе со стандартной библиотекой . Импорт и экспорт переводов сайта осуществляется в виде po-файлов (формат используемый библиотекой ).

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

В Drupal предлагается гибкая схема организации структуры сайта на основе таксономии. Таксономия – механизм, позволяющий создавать произвольное количество тематических категорий для содержимого сайта и ассоциировать их с модулями, обеспечивающими ввод и вывод информации. Категории могут представлять плоские или иерархические списки, либо сложные структуры, где элемент может иметь несколько “родителей” и несколько дочерних элементов. С помощью подобной схемы одними и теми же модулями возможна организация различных вариантов структуризации содержимого. Например, легко создаётся сквозной список “ключевых слов” для всех документов сайта и т. п..

Другая парадигма появилась с созданием в Drupal расширения Content Construction Kit (CCK). CCK позволяет дополнять документы новыми полями различных типов – от полей ввода URL и Email, до полей хранения и отображения мультимедийных файлов. Также посредством дополнительных модулей к CCK (например Node reference) можно организовать связи между документами, не используя механизм таксономии.

Читать еще:  Запуск gps на андроиде. Что такое GPS в смартфоне и как им пользоваться: как включить и настроить. Состояние аккумуляторной батареи при использовании GPS

Drupal имеет модульную архитектуру с компактным ядром, предоставляющим API, к которому могут обращаться модули. Стандартный набор модулей включает такие функции, как новостная лента, блог, форум, загрузка файлов, сборщик новостей, голосования, поиск и другие. Дизайн сайта меняется также посредством специальных модулей – “тем оформления”.

Несколько примеров наиболее популярных модулей, которые можно скачать в репозитории на :

  • Views – модуль с интерфейсом для создания различных списков;
  • Panels – предоставляет возможность разбивать содержимое страницы на регионы (более продвинутое использование стандартных регионов Drupal);
  • Services – создание собственных веб-сервисов, например XMLRPC или REST;
  • WYSIWYG – модуль для работы с WYSIWYG-редакторами, позволяет одновременно использовать несколько редакторов (CKEditor, whyzziwyg);
  • Apachesolr – интеграция с поисковиком ;
  • Panels everywhere – предоставляет возможность использовать главную панель для всего сайта, с последующей вставкой в неё других панелей;
  • Features – позволяет сливать определенные данные из базы в код в виде модулей для последующего переноса (например с сервера разработки на препродакшен сервер);
  • Backup and migrate (BAM) – возможность дампа и восстановления базы полностью или частично;
  • Views bulk operations – групповые операции над объектами в списках;
  • Devel – набор средств и функций для быстрой разработки;
  • Drush – Drupal shell, пакет для работы с друпалом и модулями через консоль (также доступен в репозитории последних версий Ubuntu);
  • Memcache – интеграция с сервером memcached;
  • Ubercart – система электронной коммерции.

К несомненным достоинствам Drupal следует отнести весьма полную документацию по различным аспектам системы (документация преимущественно на английском языке).

Технические особенности Drupal

Архитектура Drupal позволяет применять его для построения различных типов сайтов – от блогов и новостных сайтов до информационных архивов или социальных сетей. Имеющуюся по умолчанию функциональность можно увеличивать подключением дополнительных расширений – “модулей” в терминологии Drupal. Наиболее важные функции, предоставляемые Drupal “из коробки”:

  • Единая категоризация всех видов содержимого (таксономия) – от форумных сообщений до блогов и новостных статей.
  • Широкий набор свойств при построении рубрикаторов: плоские списки, иерархии, иерархии с общими предками, синонимы, родственные категории.
  • Вложенность категорий любой глубины.
  • Поиск по содержимому сайта, в том числе поиск по таксономии и пользователям.
  • Разграничение доступа пользователей к материалам (ролевая модель).
  • Динамическое построение меню.
  • Поддержка XML-форматов:

Вывод документов в RDF/RSS.

Агрегация материалов с других сайтов.

BlogAPI для публикации материалов с помощью внешних приложений.

  • Авторизация через OpenID.
  • Символьные осмысленные URL (иначе “человеко-понятные” – ЧПУ).
  • Переводы интерфейса сайта на разные языки, а также поддержка ведения разноязычного контента.
  • Возможность создания сайтов с пересекающимся содержимым (например общей базой пользователей или общими настройками).
  • Раздельные конфигурации сайта для различных виртуальных хостов (мультисайтинг), в том числе собственные наборы модулей и тем оформления для каждого подсайта.
  • Уведомления о выходящих обновлениях модулей.

Дизайн сайта на Drupal можно менять с помощью тем оформлений. В качестве шаблонизатора (“движок темы” в терминологии Drupal) используется PHPTemplate, однако есть возможность использовать Xtemplate, и другие.

Начиная с версии 4.7 Drupal поддерживает технологию AJAX для динамической подгрузки содержимого без полного обновления страниц. В версии 5 для работы с JavaScript добавлена библиотека . C версии 6.0 появилась возможность динамически изменять формы посредством AHAH. В версию 7.0 вошла библиотека .

  • Трижды – в 2007, 2008 и 2009 годах – система получила награду Webware 100 (присуждается лучшим на сегодня сайтам, сервисам и приложениям Сети);
  • Друпал – абсолютный победитель Packt Open Source CMS в 2008 г. и победитель в категории в 2008 и 2009 гг.

Основным соперником Drupal была . Победители выбирались жюри из экспертов в своей области, а также посетителями сайта Packt.

  • Победитель конкурса «Best Open Source Applications 2010» в категории «Лучшая система управления веб-контентом».
  • Критики Drupal ставят в упрёк разработчикам слабое использование объектных возможностей .

Действительно, API Drupal практически не использует имеющиеся в возможности ООП. Разработчики аргументируют это слабой реализацией ООП в языке (особенно до версии 5). Объектная модель в Drupal присутствует, но в несколько нетрадиционном для виде. В Drupal 7 однако присутствует ряд нововведений задействующих объектные возможности 5.

  • К недостаткам (но одновременно и к достоинствам) Drupal можно отнести отсутствие обратной совместимости API.

В каждом новом большом релизе происходят большие изменения API, когда наряду с добавлением новых функций убираются некоторые старые или изменяются параметры вызова существующих. Это приводит к необходимости разработчикам сторонних модулей адаптировать их для работы с новыми версиями Drupal. Однако изменения API и процедура адаптации модулей к новым версиям описываются в документации для каждого релиза, также всегда предлагается механизм автоматизированного апгрейда ядра системы на новую версию. Плюс данной схемы разработки – нет необходимости тянуть из версии в версию программный слой совместимости со старыми API, что облегчает текущий код системы.

Сегодня, проверяя опросники сайта – заметил, что больше десятка пользователей задали один и тот же вопрос, а именно «Расскажите пожалуйста, как выполнить автоматическую загрузку файла, при создании материала». Именно этим я и решил заняться, ибо данной задачи, как ни странно никогда не решал. На просторах drupal.org , был найден модуль, который вроде бы как решал нашу задачу, – autoupload. Но как всегда есть одно «НО» – у меня он категорически отказался заводиться. Естественно, что после неудачи – я полез в исходники модуля, с целью разобраться с реализацией и именно этот модуль натолкнул меня на мысль, что с данной задачей можно легко справиться через jQuery, файл которого не превышает 1кб.

Собственно осталось все это дело реализовать и в конечном счете был создан модуль auto_upload. Так же решил добавить пока одну настройку – это выбор, для каких типов материалов необходимо добавлять данную опцию. Возможно, нужна реализация с ограничениями по ролям пользователей, но это по вашему желанию – если нужно будет, допишу.

Теперь к модулю. Установка такая же как и у всех, сложностей не должно возникнуть. Из зависимостей – только Jquery_update. После активации модуля в разделе «Конфигурация», у вас появится новый раздел – Settings Auto Upload Files.

В данном разделе вы можете выбрать для каких типов материалов необходимо использовать автоматическую загрузку файлов.

Так же не забываем менять версию Jquery на 1.7. После выполнения всех действий, для выбранных типов материалов будет доступна автоматическая загрузка файлов (кнопку загрузить – я естественно скрыл, ибо необходимость в ней отпадает).

Ну вот в принципе и все. Как всегда на d.org он не появится, любители drush – отпадают.

Скачать модуль auto_upload (версия 1.0.2)

  • Исправлено отображение кнопки “Загрузить” для полей с типом – файл
  • Исправлена работоспособность для типов материалов, в имени которых присутствует “_”
  • Добавил подключение скрипта, только на страницах администрирования

Скачать модуль auto_upload (версия 1.0.3)

  • Добавлена поддержка форм, создаваемые модулем webform.

Drupal – одна из самых популярных CMS в мире, почитаемая разработчиками и веб-дизайнерами за простоту, гибкость и распространение на бесплатной основе. С ее помощью вы можете легко создавать абсолютно любые типы интернет-ресурсов, в том числе блоги, сайты-визитки, интернет-магазины, информационные ресурсы и так далее. Что важно, для создания собственного сайта вам не понадобятся знания никаких языков программирования и навыки верстки – умений уверенного пользователя ПК для работы с Drupal будет вполне достаточно.

Установка CMS достаточно проста и интуитивна и практически ничем не отличается от установки прочих подобных решений. Для начала необходимо перенести файлы на хостинг при помощи FTP клиента (конечно, если вы не используете собственный сервер). После этого нужно ввести адрес будущего сайта и ознакомиться с приветственным окном установщика. Далее от вас потребуют ввести адрес к базе данных, данные для админки и название ресурса. На этом установка CMS окончена и вы можете приступать к работе с сайтом: подыскать подходящий шаблон (коих в сети можно найти достаточно много), добавить всю необходимую информации, установить полезные модули и так далее. В общем, Drupal – отличное решение для тех, кто не обладает знанием HTML, CSS и PHP, но при этом хочет иметь собственный веб-сайт.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: