
Drupal *
Система управления сайтом
Drupal и WordPress — сравнение, аналогии, сходства, различия
Drupal Composer рецепты

Open source инициатива Docker4Drupal.org

Уже можно твердо констатировать, что контейнеры и, в частности docker, стали стандартом де-факто для разработчиков. Можно еще спорить о применимости контейнеров в продакшене, но уже никто не спорит, что для локальной разработкой и dev инстансов Docker незаменим.
Именно поэтому мы решили раз и навсегда решить головную боль для друпал разработчиков начав open source инициативу Docker4Drupal.org. Тем более, что для друпала окружение довольно стандартизованное.
Критические уязвимости в Drupal: подробности и эксплоиты

Команда безопасности проекта Drupal опубликовала исправления для целого ряда критических уязвимостей. Ошибки безопасности затрагивают как популярные плагины, так и ядро системы.
Уязвимости обнаружены в модулях RESTful Web Services (используется для предоставления REST API к функциям Drupal), Coder (модуль анализа кода и миграции для старых версий) и Webform Multiple File Upload (добавляет компонент формы для загрузки пользовательских файлов). В ядре исправлена уязвимость httpoxy, о которой мы уже писали в блоге.
Согласно бюллетеню безопасности PSA-2016-001 уязвимости затрагивают до 10000 сайтов, на которых установлены указанные модули. Бюллетень PSA-2016-002 подтверждает наличие уязвимости httpoxy в восьмой ветке Drupal, где используется сторонняя библиотека Guzzle для осуществления HTTP-запросов, при этом более ранние версии Drupal 7.x не подвержены данной уязвимости.
В сети уже опубликованы эксплоиты, использующие данные уязвимости. В нашем сегодняшнем материале — их более подробное описание.
Опыт перехода сайта на Single Page Application с упором на SEO
Привет всем.
Мы классический web 2.0 сайт сделаный на Drupal. Можно сказать, что мы медиа сайт, т.к. у нас очень много всевозможных статей, и постоянно выходят новые. Мы уделяем много внимания SEO. У нас для этого даже есть специально обученные люди, которые работают полный рабочий день.
К нам заходит более 400k уникальных пользователей в месяц. Из них 90% приходит из поиска Google.
И вот уже почти полгода мы разрабатывали Single Page Application версию нашего сайта.
Как вы уже наверное знаете, JS это вечная боль сеошников. И нельзя просто так взять и сделать сайт на JS.
Перед тем как начать разработку мы начали исследовать этот вопрос.
И выяснили, что общепринятым способом является отдача google боту уже отрисованой версии страницы.
Making AJAX applications crawlable
Также выяснилось, что этот способ более не рекомендуется Google и они уверяют, что их бот умеет открывать js сайты, не хуже современных браузеров.
We are generally able to render and understand your web pages like modern browsers.
Т.к. на момент принятия нашего решения Google только-только отказались от подобного метода, и еще никто не успел проверить как Google Crawler на самом деле индексирует сайты сделаные на JS. Мы решили рискнуть и сделать SPA сайт без дополнительной отрисовки страниц для ботов.
Drupal: ajax_facets и history API

Дайджест интересных материалов из мира Drupal #20
Привет!
Если вы ненавидите свою CMS, то на этих майских самое время посмотреть на альтернативы. Мы в свою очередь с любовью отобрали для вас пару десятков полезных ссылок для изучения Drupal. Внутри опрос!
По-русски
- Хватит это терпеть! Большой честный обзор подходов для создания лендингов от соавтора дайджеста k0teg.
- Не менее полезный материал от Никиты Малышева. Отец-основатель dru.io делится своим подходом к верске Drupal-сайтов на основе Display Suite.
- Хабр заинтересовался вопросами лицензирования: FAQ по лицензированию Drupal, FAQ по лицензированию Backdrop.
- Немного старой доброй семёрки: Работа с чистым Token API. Важно понимать, как оно устроено, но на практике бывает удобно сразу интегрироваться с Entity API и его встроенной поддержкой токенов.
- К другим новостям. @xandeadx разжился лиценцией на PhpStorm и сразу же начал писать заметки на эту тему. Мы никогда ничего такого не писали, но поведение автора блога xandeadx.ru нас очень удиаляет и возмущает. Когда уже будут заметки по Drupal 8?! :)
FAQ по лицензированию Backdrop

- Если я создам модуль или тему, должен ли я применить к ним лицензию GPL?
- Если я создам модуль или тему, должен ли я предоставлять его кому угодно?
- Могу ли я продавать Backdrop или модуль для Backdrop или тему для Backdrop?
- Лицензия GPL требует, чтобы я распространял «исходный код» моих файлов. Что это означает для веб-приложения?
- Могу ли я опубликовать мою работу под лицензией GPL версии 3 или только под GPL версии 2?
- Перейдет ли Backdrop на лицензию GPL версии 3?
Анализ подходов для создания лендингов и лонгридов в Drupal
В статье сравниваются актуальные решения для создания неоднородных публикаций и лэндингов, а также лонгридов в административном интерфейсе CMS Drupal. Под неоднородностью понимается возможность для внедрения в текст в произвольном месте произвольных интерактивных элементов, таких как медиа-врезок, списков релевантных материалов, опросников и прочих нетекстовых элементов. Приведен авторский топ на основе анализа 16 критичных параметров.
Дайджест интересных материалов из мира Drupal #19
Мы собираем полезные статьи и свежие новости из мира Drupal и делимся с вами раз в месяц.

FAQ по лицензированию Drupal
Эти вопросы и ответы помогут прояснить юридические вопросы применительно к лицензированию проекта Drupal и лицензии GNU General Public License. Благодарим Software Freedom Law Center за их помощь в подготовке данной информации.
- Какая лицензия у Drupal?
- Лицензия распространяется только на PHP или на все?
- Кто обладает авторским правом на Drupal?
- Я желаю опубликовать мою работу под лицензией GPL версии 3 или только под GPL версии 2. Могу я так сделать и разместить ее на Drupal.org?
- Какая лицензия у контента на Drupal.org?
- Лицензия GPL требует, чтобы я распространял «исходный код» моих файлов. Что это означает для веб-приложения?
- Если я создам модуль или тему, должен ли я применить к ним лицензию GPL?
- Если я создам модуль или тему, должен ли я предоставлять его кому угодно?
- Могу ли я продавать Drupal, модуль для Drupal или тему для Drupal?
- Могу ли я написать «связующий модуль» для взаимодействия между Drupal и другой системой или библиотекой?
- Должен ли я предоставлять код своего сайта любому его посетителю?
- Будет ли Drupal распространяться на условиях лицензии GPL версии 3?
- Я обнаружил модуль или тему в репозитории контрибьютов, который распространяется только на условиях лицензии GPL версии 2 или только на условиях лицензии GPL версии 3. Что я должен делать?
- Я обнаружил модуль или тему в репозитории контрибьютов, который распространяется на лицензионных условиях, отличных от GPL (включая LGPL или AGPL). Что я должен делать?
- У меня есть вопрос, на который нет ответа здесь. Что я должен делать?
- Почему Drupal является зарегистрированным товарным знаком Дриса Бёйтарта? Это означает, что он не бесплатен?
Дайджест интересных материалов из мира Drupal #18
Мы собираем полезные статьи и свежие новости из мира Drupal и делимся с вами раз в месяц. В этом выпуске провожаем зиму (и Drupal 6).
По-русски
«Приятно наблюдать, как статьи по Друпал 8 постепенно наполняют русскоязычный сегмент сети...» — пишет автор открывающей статьи рубрики «По-русски». Действительно приятно! Друпал 8: Routing, links, permissions, tabs или "Hello YML" — создаём простой модуль со всеми необходимыми правами и ссылками в меню.
- Небольшой обзор Migrate для семёрки от этого же автора.
Похоже, что на Drupal.ru пригласили писать Дэдпула. По крайней мере с чувством юмора у нашего нового Drupal-героя всё впорядке. Уже можно насладиться двумя шедеврами: Drupal 8, Cache & Rock N' Roll и Drupal 8. Entity, мы с тобой одной крови. Автор, некогда объяснять, свяжись с нами срочно!
- Ещё на Drupal.ru: анонс модуля render_boost для ускорения семёрки.
- Там же на Drupal.ru можно найти информацию по Backdrop CMS, форку семёрки для тех, кому пока велик Drupal 8.
- Возвращемся к классике. Новое в блоге xandeadx.ru: полезный сниппет для поддержки алиасов нод в актуальном состоякии.
- Там же подробно и со скриншотами, как настроить табы (локальные задачи) во Views. То же самое для восьмёрки.
- Интеграция custom entity с Panelizer — продолжение серии статей про сущности в блоге nightdevel.ru.
- Модуль Commerce Robokassa обновлен до 7.x-2.0-rc1.
- Тема настройки локального окружения никогда не выйдет из моды. На сей раз читайте про настройку xdebug для сложных случаев. Хештеги: #windows #virtualbox #sshtunnel #docker #phpstorm.
Ближайшие события
Дайджест интересных материалов из мира Drupal #17
Мы собираем полезные статьи и свежие новости из мира Drupal и делимся с вами раз в месяц. Встречайте первый выпуск в этом году!

По-русски
Начнём с написания своего модуля для Drupal 8. В результате получится простая страничка собственного приготовления.
- 24 февраля заканчивается поддержка Drupal 6. Самое время переезжать на восьмёрку, ну или по крайней мере на семёрку. В первом случае смотрите
доклад Андрея Березовского, во втором — читайте статью в блоге angarsky.ru.
Мария Шерскова о подключении JS в теме Drupal 8.
- Блог nightdevel.ru продолжает радовать развёрнутыми статьями по семёрке. В этот раз рассмотрены базовые инструменты создания своих типов сущностей. Стоит отметить, что и Entity API, и ECK — темы очень объемные и целиком в статью, конечно, не влезли.
- Немного о DevOps. Перевод базы Drupal сайта с MyISAM на InnoDB.
- Настройка Docker-контейнера с Apache Solr для локальной разработки.
- К новостям сообщества. Группа активных участников Drupal-сообщества работает над проектом Российской Drupal-ассоциации. Это важный шаг для объединения и усиления локального сообщества как внутри страны так и в масштабах всего рынка. Чтобы присоединиться к рабочей группе, пожалуйста, заполните эту форму.
Дайджест интересных материалов из мира Drupal #16
Мы собираем полезные статьи и свежие новости из мира Drupal и делимся с вами раз в месяц. Встречайте новогодний выпуск!

По-русски
Хабр разворачивает Drupal 8: cначала докером, потом Otto, наследником Vagrant.
Как в восьмёрке сделать банальный $node->save() читайте в заметке Drupal 8: Программное создание сущностей Никиты Малышева.
Тот же автор продолжает: как добавить в восьмёрку семантическую разметку и не умереть (это про JSON-LD).
«Что случилось с hook_menu в Drupal 8?» — перевод отличной статьи луллаботов для хабра.
Блоггер Tlito записал свои заметки о восьмёрке для новичков, не знакомых ни с программированием, ни даже с друпалом (1, 2).
- @xandeadx написал модуль-хелпер, позволяющий выполнить всю очередь в фоне без вылета по таймауту — Background Queue.
- Он же показывает на красивом примере, как использовать теги db-запросов во Views: Необязательное одно из двух значений раскрытого фильтра с оператором BETWEEN
- Обзор методов работы с AJAX с примерами кода.
- После того, как AJAX-заработал, можно заняться стилизацией стандартной иконки лоадера.
- К новостям сообщества. Первоначальный владелец домена drupal.ru опубликовал прощальное письмо и анонсировал передачу домена из своих рук.
На Dru.io, другом сайте сообщества, активно проходят спринты по переводам восьмёрки. Присоединяйтесь!
Питерское сообщество опубликовало презентации и видео четырёх докладов по Drupal 8.
Отгремел DrupalCamp Siberia 2015 в Новосибирске. Пока официальные материалы обрабатываются и выкладываются, можно посмотреть экранку из нашего спец.выпуска (хочу такое получать).
Разворачиваем Drupal 8 с помощью Otto
Мой пост носит более практический характер. Я решил поднять на otto стандартный проект, чтобы сразу не наткнуться на тонкости настройки, а чтобы было интересно, выбрал Drupal 8, вышедший недавно.

Что случилось с hook_menu в Drupal 8?

В связи с недавним выходом стабильной версии Drupal 8, решил внести свой небольшой вклад, и перевести небольшую статью. Это очень вольный перевод статьи What Happened to Hook_Menu in Drupal 8? от Lullabot'ов. Надеюсь, что кому-нибудь пригодится.
В Drupal 7 и более ранних версиях, hook_menu был как швейцарский нож. Он отвечал практически за все: пути страниц, обработчики меню, вкладки и локальные задачи, контекстные ссылки, управление доступом, аргументы и параметры, обработчики форм, и даже устанавливал пункты меню. В моей книге, это самый часто используемый hook из всех. Я не знаю, ни одного модуля в котором, я не реализовывал бы hook_menu.
Но, в Drupal 8 все изменилось. Этого очень важного hook'a больше нет, и теперь все эти задачи решаются отдельно, используя систему YAML файлов, в которых нужно описать метаданные о каждом элементе и соответствующие ему PHP классы, которые обеспечивают логику.
В новой системе есть смысл, но она может показаться запутанной, тем более что API менялся несколько раз, в течении длительной разработки Drupal 8, и документация в настоящее время, не соответствует действительности. В этой статье будет рассказано как работает новая система.
Так же я хочу рассказать о ситуациях с которыми я столкнулся, во время переноса своего модуля с Drupal 7 на Drupal 8 и приведу примеры кода, до и после переноса.
Дайджест интересных материалов из мира Drupal #15
19 ноября в мире Drupal произошло важное событие — релиз Drupal 8.0.0. Об этом уже успели написать везде от хабра до Hacker News. Мы решили собрать самое главное здесь, в нашем спецвыпуске №15.

Drupal 8. Обучающие материалы и не только
В данной статье я выскажу своё мнение на эту наболевшую и злободневную тему, а также поделюсь с вами в качестве бонуса списком полезных материалов, которые собирались по мотивам всех предыдущих выпусков Drupal-дайджеста, и которые, надеюсь, вам помогут.
