Друпалургия

От лендинга до интернет-магазина: что в России делают на Drupal

Drupal в рунете - вт, 19/05/2020 - 17:42

Популярность CMS Drupal в России растёт. Компания ADCI Solutions выбрала 10 сайтов, которые доказывают на себе: с этой платформой можно сделать много интересного и под любые задачи. Среди примеров — портал для киноманов, магазин для меломанов, сайт для ценителей русской аутентичной культуры и многое другое.

Drupal входит в пятёрку самых популярных CMS с открытым исходным кодом в России. Хотя на первое место с большим отрывом вышел Wordpress, для владельцев бизнеса предпочтительнее остаётся Drupal — и чем бизнес крупнее, тем более предпочтительной эта CMS должна быть.

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

ADCI Solutions занимается веб-разработкой уже 13 лет и имеет статус первого в России премиум-партнёра ассоциации Drupal. Мы верим в эту CMS, и нам захотелось найти 10 отечественных Drupal-сайтов, которые бы доказывали, что на платформе можно создавать сайты для разных отраслей и разной сложности, будь то лендинг или интернет-магазин.

Параметры оценки

Основным источником сайтов стал каталог Рейтинга Рунета. В первую очередь сайты оценивались по скорости загрузки с десктопа и мобильного устройства и пристойному внешнему виду. Так из почти 4,5 тысяч сайтов удалось выбрать 10.

Мы знаем, что будущее за сайтами, которые открываются на телефонах быстрее чем за 3 секунды, но даже у популярных новостных ресурсов с этим не всё хорошо. Поэтому в случае некоторых сайтов мы пошли на компромисс. Для замера скорости загрузки использовались сервисы loading.express и PageSpeed Insights.

Мы также согласны, что дизайн сайта может выглядеть как памятник эпохе и это не мешает ему выполнять свою задачу, но привлечение пользователей — война, в которой победу нужно одерживать быстро: сайт начинает производить впечатление в первые 50 миллисекунд. Это должен быть рекордный блицкриг, и залог успеха — внешний вид.

Вопрос о поисковой оптимизации в Drupal достоин отдельной статьи. Пока ограничимся общими словами о том, что Drupal-сайты не появляются с хорошим SEO сами по себе; оптимизация зависит от того, знает ли разработчик правильные модули и то, как их настраивать.

Кстати, о модулях: перечислить тех из них, которые рекомендуется использовать на сайтах для создания тех или иных функциональных возможностей, мы считаем важной частью нашего обзора. За историю Drupal некоторые модули использовались настолько часто, что к восьмой, последней на сегодняшний день, версии CMS стали частью её стандартного релиза, или так называемого ядра. Они используются почти на всех сайтах, поэтому перечислим их здесь:

  • User — управление учетными записями пользователей.
  • Node — управление основным контентом страниц сайта.
  • Field и Field UI — управление полями.
  • Menu UI — управления меню.
  • Views и Views UI — создание списков, таблиц и блоков из существующего контента.
  • Taxonomy — упорядочивание контента по категориям.
  • Media — управление созданием, настройкой и отображением элементов медиа.
  • Responsive image — подстраивает размер изображения под разные экраны.
  • BigPipe — ускоряет загрузку страниц сайта.
  • Internal Dynamic Page Cache — кэширует страницы для пользователей.

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

Мы также считаем важным оценить:

  • простоту совершения целевого действия,
  • акценты на CTA-элементах,
  • среднее время на сайте.
Омский портал «Культура»

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

Скорость загрузки сайта на десктопе по PageSpeed Insights: 38/100.

Скорость загрузки сайта на мобильном устройстве по loading.express: 3/10.

Среднее время пребывания пользователя на сайте по данным alexa.com: 1 мин. 57 сек.

Сайт ставит перед собой цель привлекать внимание пользователей к событиям и культурным учреждениям города. Навигация привычная и простая. В слайдере на главной странице — 5 событий с CTA-кнопкой «Узнать подробнее», по мнению администраторов сайта заслуживающих максимального внимания. Ниже — блоки со статьями и новостями. В разделе «Афиша» — рубрикатор и календарь. В «Местах» — исторические справки о музеях, театрах и т. д. В «Экскурсиях» — ознакомительная информация о всех экскурсионных маршрутах, длительности и стоимости.

Сайт сделан для Министерства культуры Омска, поэтому он должен соответствовать некоторым критериям доступности для инвалидов. В мировой практике эти стандарты, как ни странно, несколько проще, чем для российских государственных сайтов. Этот сайт — как раз прекрасный пример. Тут есть и голосовой помощник, и замена картинок, и возможность сменить оформление.

Здесь и далее мы кратко расскажем, на каких Drupal-модулях построены функциональные возможности сайта и решение отдельных задач вроде сбора метрик и интеграции с соцсетями. Модульная архитектура Drupal — то, что выделяет CMS и стоит в основе его универсальности.

На каких модулях можно построить сайт с такой же функциональностью:

  • Слайдер: Slick Carousel.
  • Календарь: Calendar, Fullcalendar View.
  • Привязка событий к календарю: Views.
  • Яндекс.Метрика: Yandex.Metrics.
  • Управление размером текста: Text Resize.
  • Исправление ошибок за разработчиком и приведение HTML-кода к соответствию стандартам (в том числе стандартам accessibility): HTML Purifier, Style Switcher.
  • Другие модули, которые помогут сделать сайт по стандартам Accessibility: Contributed modules for extending accessibility in Drupal 8.
  • Архитектурно-этнографический музей Вологодской области

    Сайт посвящён музею, поддерживающему память о традиционном укладе русских деревень. Музей представляет из себя ансамбль из усадьбы, домов и хозяйственных построек в 12 километрах от Вологды, носящий статус памятника общероссийского значения.

    Скорость загрузки сайта на десктопе по PageSpeed Insights: 90/100.

    Скорость загрузки сайта на мобильном устройстве по loading.express: 9/10

    Среднее продолжительность пребывания пользователя на сайте: 3 мин. 49 сек.

    По своему назначению сайт похож на омский портал о культуре. Яркое и динамичное видео на главной странице и раздел «О музее» в меню пробуждают интерес пользователей к музею. И если музей их заинтересовал, то пользователи быстро найдут информацию об экскурсиях, мастер-классах и интерактивных программах.

    На каких модулях можно построить сайт с такой же функциональностью:

    Магазин «Винилотека»

    Интернет-магазин российского представительства концерна звукозаписи Warner Music, что сулит надёжность, хороший сервис и своевременное пополнение каталога свежими релизами.

    Скорость загрузки сайта на десктопе по PageSpeed Insights: 78/100.

    Скорость загрузки сайта на мобильном устройстве по loading.express: нет данных.

    Среднее время пользователя на сайте по данным alexa.com: 4 мин. 54 сек.

    Очевидных задач у сайта две: продавать аудио и видеоносители и заботиться об их доставке покупателю. Плюс, что разработчики сайта учли разные сценарии поиска: по исполнителю, альбому, жанру, алфавиту или с помощью более тонких настроек. Ведь запросы могут отличаться от потребителя к потребителю и от момента к моменту: кто-то хочет найти новинку в хип-хопе, а кто-то хочет наверняка узнать, есть ли в магазине бокс-сеты с альбомами Led Zeppelin.

    После нажатия на кнопку «Купить» появляется всплывающее окно с предложением перейти в корзину — это хороший тон. После закрытия всплывающего окна возможность продолжать покупки сохраняется.

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


    На каких модулях можно построить сайт с такой же функциональностью:

    • Каталог с сопутствующими ему фильтрацией и сортировкой: Taxonomy.
    • Оформление карточки товара, интеграции с платёжной системой, оформление доставки, управление заказами и корзиной: Commerce.
    • SEO: Metatag, Real-time SEO, Pathauto, Redirect, SEO Checklist.
    • Автоматическое построение карты сайта: XML Sitemap.
    Сеть детских клиник «До 16-ти»

    Сайт для сети омских детских клиник, над которым компания ADCI Solutions работает с 2016 года.

    Скорость загрузки сайта на десктопе по PageSpeed Insights: 87/100.

    Скорость загрузки сайта на мобильном устройстве по loading.express: 7/10.

    Среднее продолжительность пребывания пользователя на сайте по данным alexa.com: 3 мин. 49 сек.

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

    Подробнее о работе над сайтом читайте в нашей статье на vc.ru.

    На каких модулях можно построить сайт с такой же функциональностью:

    • Оплаты услуг: Commerce и Commerce NoCart.
    • Подключение платёжного шлюза Сбербанка: Commerce RBS payment. Лично нам удалось получить актуальную версию модуля в ходе долгой переписки с техподдержкой банка.
      • Опросы: Poll.
      • Голосование (в нашем случае возможность поставить лайк одному из докторов): Fivestar.
      • Создание контактной формы: Webform.
      • Создания формы оплаты годового медобслуживания и формы пополнения баланса карты: Entityform.
      • Слайдер: Slick Carousel.
      • Создание и кастомизация стандартных админских страниц (управление контентом, управление пользователями): Administration Views.
      Турфирма 7 СОВ

      Вологодская турфирма, предлагающая стандартный в своей отрасли набор услуг: подбор туров и направлений для путешествий, и всё это, как обещает компания, без скрытых комиссий и переплат.

      Скорость загрузки сайта на десктопе по PageSpeed Insights: 88/100.

      Скорость загрузки сайта на мобильном устройстве по loading.express: 7/10.

      Среднее время пребывания пользователя на сайте по данным alexa.com: 14 мин. 48 сек.

      Пользователей, которые более-менее представляют, куда хотят отправиться, на главной странице ждёт поиск с фильтрацией. Однозначный плюс и для пользователя, и для SEO — чётко сформулированное полезное действие, которое сообщается в заголовке H1.

      Для тех, кто не уверен и ищет поддержки при выборе, введена функция «Запросить тур»: пять шагов, поддержка в виде уточняющих вопросов, и в финале пользователя просят оставить данные для связи.

      На каких модулях можно построить сайт с такой же функциональностью:

      • Фильтрация контента по таксономии и группировка результатов поиска по заданным параметрам: Views.
      • Оформление заказа: Commerce.
      Швейная компания Valentina. dresses

      Valentina. dresses — новосибирская компания с почти 20-летней историей, занимающаяся пошивом и оптовой продажей женской одежды по всей России.

      Скорость загрузки сайта на десктопе по PageSpeed Insights: 76/100.

      Скорость загрузки сайта на мобильном устройстве по loading.express: 5/10.

      Среднее время пребывания пользователя на сайте по данным alexa.com: 8 мин. 55 сек.

      Все разделы и функциональность, решающая задачу поиска, выбора и покупки одежды, собрана в шапке.

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

      На каких модулях можно построить сайт с такой же функциональностью:

      • Оформление карточки товара, интеграции с платёжной системой, оформление доставки, управление заказами и корзиной: Commerce.
      • Каталог: Taxonomy.
      Строительный холдинг «Атомстройкомплекс»

      Сайт крупнейшего на Урале строительного холдинга, объединяющего 12 заводов по производству материалов, проектный институт и организации-подрядчики.

      Скорость загрузки сайта на десктопе по PageSpeed Insights: 67/100.

      Скорость загрузки сайта на мобильном устройстве по loading.express: 6/10.

      Среднее время пребывания пользователя на сайте по данным alexa.com: 4 мин. 42 сек.

      Задача сайта — помогать искать коммерческую и жилую недвижимость. Информации для этого на карточке объекта в избытке: от диапазона цен и метража на превью карточки объекта до вида из окна — внутри карточки. Но становится привычным такой сценарий поиска, какой предлагает турфирма 7 СОВ: попав на сайт, пользователь сразу же видит необходимую функциональность. Если брать отрасль недвижимости, то хороший пример подаёт сайт ДомКлик.

      На каких модулях можно построить сайт с такой же функциональностью:

      Карточка объекта: Views.
      Возможность отмечать точки на карте: Geolocation Views для Google Maps и Yandex Maps для Яндекс.Карт.
      Контактная форма и форма заказа звонка: Webform.
      Страница с опросами: Poll.

      Кинопортал «Фильм.ру»

      Один из самых популярных русскоязычных сайтов о кино, объединяющий его любителей, дающий возможность бесплатно смотреть фильмы из подборки сайта ivi.ru, читать рецензии, следить за новостями, знакомиться и общаться на почве общего интереса.

      Скорость загрузки сайта на десктопе по PageSpeed Insights: 86/100.

      Скорость загрузки сайта на мобильном устройстве по loading.express: 5/10.

      Среднее время пребывания пользователя на сайте по данным alexa.com: 1 мин. 25 сек.

      Если вам понадобится пример веб-портала в классическом виде, то ссылайтесь на film.ru. Налицо стремление организовать комьюнити по конкретному интересу. Интерактивная составляющая решается за счёт общения в комментариях, агрегируемых в разделе «Мнения». Сам сайт не замкнут на себя и интегрирован с тематическими приложениями: ivi.ru и мобильным приложением Хочу в кино, Тиндером для киноманов, созданным film.ru вместе с российским филиалом журнала о кино Empire. Но с точки зрения особенных возможностей Drupal это вполне обычный контентный сайт.

      На каких модулях можно построить сайт с такой же функциональностью:

      Сайт, видимо, имеет интеграцию с приложением «Хочу в кино», потому что информацию по API приложения нигде найти не удалось. В контексте API считаем важным сказать, что Drupal включает в себя фреймворк Symfony, на котором реализованы основные концепции, спрятанные в ядре Drupal. Symfony позволяет быстро разрабатывать интеграции со сторонними API и выносить это в отдельные модули, что облегчает менеджмент зависимостей и не усложняет по экспоненте дальнейшую разработку.

      Конференция Ruby Russia 2019

      Промо-страница прошлогоднего съезда Ruby-разработчиков.

      Скорость загрузки сайта на десктопе по PageSpeed Insights: 92/100.

      Скорость загрузки сайта на мобильном устройстве по loading.express: 7/10.

      Среднее время пребывания пользователя на сайте по данным alexa.com: нет информации.

      Сайт не преследует никаких целей, кроме как проинформировать о конференции, авторитетных спикерах и расписании. Это пример того, как можно использовать Drupal в качестве основы для последующего заполнения контентом при создании простого сайта. Всё остальное делается JavaScript и CSS, и никаких особых модулей тут не используется. Drupal нужен был для быстрого старта, и вряд ли на сайт было потрачено больше 2-3 недель и привлечено для его разработки больше пары-тройки разработчиков.

      Торговый центр SILA VOLI

      Популярное в Екатеринбурге место, совмещающее торговый и спортивный центры, места для спокойного досуга, кафе и барбершопы, различные мероприятия — всё, чем живёт современный житель города-миллионника.

      Скорость загрузки сайта на десктопе по PageSpeed Insights: 78/100.

      Скорость загрузки сайта на мобильном устройстве по loading.express: 6/10.

      Среднее время пребывания пользователя на сайте по данным alexa.com: 0 мин. 43 сек.

      Сайт — по сути, красивая брошюра для посетителей центра: куда сходить, что купить по скидкам, где поесть. Поэтому, как и в предыдущем примере, примечательных модулей здесь не найдено. На главную страницу вынесены особо важные предложения, которых три, что положительный момент — не создаётся избытка по CTA-элементам.

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

      Общие рекомендации для сайтов

      Мы показали вам несколько Drupal-сайтов, которые привлекли наше внимание скоростью загрузки, внешним видом и принадлежностью к разным отраслям. Но не стоит забывать, что время от времени нужно выявлять на сайте проблемы с помощью аудита.

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

      • Проставлены заголовки страниц, текстовые заголовки (H1-H6), оформлен нижний колонтитул и структурирован контент. Это помогает пользователю в навигации по странице.
      • Контент содержит заголовки, картинки, поддерживающие суть текста, и пробелы.
      • Есть хлебные крошки (навигационные цепочки) и ссылки в колонтитулах.
      • Дизайн соответствует бренду компании.
      • Сайт адаптивный: с ним просто работать как на стационарных ПК, так и на планшетах, телефонах и т. д.
      • Все визуальные элементы дизайна выполнены в одном стиле и сочетаются друг с другом.
      • Контент структурирован согласно обратной пирамиде Якоба Нильсена: главную информация — впереди, важные детали — за ней и дополнительная информация — в конце.
      • Никаких грамматических ошибок!
      • Никакого контента, отвлекающего посетителя сайта от CTA.
      • Используются метатеги Title, Description и Image.
      • Нет битых ссылок.
      • Страница не содержит ссылок на внешние ресурсы в самом начале, чтобы пользователи не уходили с сайта слишком рано.
      • В любом случае внешние ссылки лучше настроить так, чтобы они открывались в соседней вкладке, а внутренние — на той же.
      • Нижний колонтитул и основной текст не перегружены лишними ссылками.
      • Правильно настроены файлы, которые дают поисковым системам доступ к вашему сайту и позволяют им его индексировать: .htaccess, robots.txt, sitemap.xml.
      • Указаны ссылки на ваши аккаунты в соцсетях и мессенджеры.
      Заключение

      В США и Европе Drupal как платформа уже состоялась. Посмотрите на список сайтов, сделанных на Drupal, и вы увидите очень много знакомых имён и названий брендов: Илон Маск, Бруно Марс, Grammy, Warner Music Group, Tesla, Оксфорда, Кембриджа и другие.

      В России популярность Drupal растёт. В данной статье мы хотели продемонстрировать, что эта CMS подойдёт для решения любых задач.

      Если вы нашли в статье сайт для бизнеса, чем-то похожего на ваш, то, может быть, и вам нужен сайт на Drupal? Пишите нам — поговорим об этом подробнее: hello@adcillc.com.

      Источник: https://vc.ru/u/443770-adci-solutions/126904-ot-lendinga-do-internet-mag...

  • Предлагаю решение
  • Статьи и публикации
  • Категории: Друпалургия

    Drupal: Текстовый фильтр добавляющий rel=nofollow для внешних ссылок

    <?php // src/Plugin/Filter/NofollowExternalLinksFilter.php   namespace Drupal\modulename\Plugin\Filter;   use Drupal\Component\Utility\Html; use Drupal\Component\Utility\UrlHelper; use Drupal\filter\FilterProcessResult; use Drupal\filter\Plugin\FilterBase;   /** * @Filter( * id = "nofollow_external_links_filter", * title = @Translation("Nofollow external link"), * description = @Translation("Add attribute rel=nofollow to external links."), * type = Drupal\filter\Plugin\FilterInterface::TYPE_TRANSFORM_REVERSIBLE, * weight = 20, * ) */

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Drupal: Хлебные крошки + schema.org

    У некоторых почему-то возникают сложности встраивания разметки schema.org в хлебные крошки. Листинг файла breadcrumb.html.twig:

    {% if breadcrumb %} <ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"> {% for index, item in breadcrumb %} <li class="breadcrumb__item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> {% if item.url %} <a class="breadcrumb__text" href="{{ item.url }}" itemprop="item"> <span itemprop="name">{{ item.text }}</span> </a>

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Обновлённый модуль quote для цитирования

    Drupal в рунете - сб, 14/03/2020 - 20:26

    Хочу представить вам обновлённый модуль quote для цитирования

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

    На данный момент работают 3 режима цитирования:

    1. Цитировать выделенное
    2. Цитировать всё
    3. Ответить и цитировать всё

    Первые два режима работают через JavaScript и мы остаемся на этой же странице. Режим "ответа" позволяет создать комментарий с ветвлением.

    На данный момент модуль имеет много настроек: можно выбирать какие будут доступны режимы цитирования, в каких типах материалов, а также можно выбирать CSS селекторы для полей "откуда", "куда", на случай, если ваша тема оформления меняет стандартные классы на свои (как это делает тема оформления друпал.ру)

    Так же я добавил лимит цитирования. Он позволяет предотвратить цитаты с большим количеством текста. На данный момент я установил лимит в 400 символов. Если будет мало, пишите, увеличим

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

  • Drupal8
  • Drupal7
  • Предлагаю решение
  • Выставка модулей
  • Категории: Друпалургия

    Drupal: Добавляем на страницу управления отображением комментария поля "автор" и "дата создания"

    Простой способ добавить поля "автор" и "дата создания" на страницу управления отображением комментария:

    // MODULENAME.module   /** * Implements hook_entity_base_field_info_alter(). */ function MODULENAME_entity_base_field_info_alter(&$fields, EntityTypeInterface $entity_type) { if ($entity_type->id() == 'comment') { /** @see \Drupal\comment\Entity\Comment::baseFieldDefinitions() */ $fields['uid']->setDisplayConfigurable('view', TRUE); $fields['created']->setDisplayConfigurable('view', TRUE); } }

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Drupal: Views фильтр "товар имеет опубликованную вариацию"

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

    // src/Plugin/views/filter/ProductHasPublishedVariationViewsFilter.php   /** * @ViewsFilter("product_has_published_variation") */ class ProductHasPublishedVariationViewsFilter extends FilterPluginBase {   /** * {@inheritDoc} */ public function query() { $this->ensureMyTable(); $query = $this->query; /** @var \Drupal\views\Plugin\views\query\Sql $query */

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Drupal: Оптимизация кэширования больших меню

    Всем блокам меню друпал добавляет кэш-контекст route.menu_active_trails, который создаёт новый кэш блока в зависимости от активной ссылки (т.е. если меню содержит сто ссылок, то по итогу в cache_render будет 101 вариант этого блока).

    Если меню достаточно большое и все пункты в нём раскрыты по умолчанию, то можно безболезненно удалить этот кэш-контекст, позволив держать в кэше только одну версию блока.

    Пример для меню main:

    /** * Implements hook_block_build_BASE_BLOCK_ID_alter(): system_menu_block. */

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    ВНИМАНИЕ! Роскомнадзор заблокировал drupal.org

    Drupal в рунете - сб, 07/03/2020 - 13:11

    Если вы испытываете проблемы с проверкой обновлений или с обновлениями, то, возможно, дело в этом.

    Подробнее на хабре

  • Drupal9
  • Drupal8
  • Drupal7
  • Предлагаю решение
  • Свободные программы
  • Категории: Друпалургия

    Drupal: Кэш-контекст по хэшу значения куки

    В восьмёрке есть кэш-контекст cookies, который возвращает значение куки. Значение возвращается без какой-либо обработки, что временами нежелательно, так как кука может быть оооочень длинной (например, как у меня, это пользовательские фильтры вьюхи и настройки сортировки). Выход — создать новый кэш-контекст, который вместо raw значения куки будет возвращать его хэш:

    // src/Cache/CookiesHashContext.php   namespace Drupal\modulename\Cache;   use Drupal\Core\Cache\Context\CookiesCacheContext;   class CookiesHashContext extends CookiesCacheContext {   /**

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Drupal: Добавляем возможность указывать атрибуты для элементов option

    12 лет, как в друпал не могут добавить возможность указывать атрибуты для элементов <option> в select-ах. Делаем сами:

    1. Копируем core/modules/system/templates/select.html.twig в папку своей темы.

    2. Изменяем строчку

    <option value="{{ option.value }}"{{ option.selected ? ' selected="selected"' }}>{{ option.label }}</option>

    на

     

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Drupal: Выносим определение поддержки javascript в head

    Для пользователей с включённым javascript друпал добавляет тегу <html> класс js, что позволяет писать более "доступные" стили. Например если на форме включена автоотправка, то можно не просто скрыть кнопку сабмита для всех, а скрыть только для пользователей с js:

    .js .example-form .form-submit { display: none; }

    Проблема только в одном — скрипт, добавляющий класс js подключается в подвале и поэтому пока страница загружается пользователь будет видеть кнопку, потому что соответствующего класса у <html> ещё нет.

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Почему я выбираю docksal вместо docker4drupal

    Drupal в рунете - вс, 01/03/2020 - 16:28

    Сегодня я расскажу, почему мне больше нравится docksal, а не docker4drupal. Этот вопрос уже обсуждался в телеграм чате, но я решил резюмировать обсуждение в виде статьи.

    Скажу сразу, я буду сравнивать docksal и docker4drupal с точки зрения новичков и вебмастеров. К сожалению, многие разработчики стали забывать, что когда-то и они были новичками и то, что сейчас для них очевидно, для других совсем не очевидно. Помните об этом.

    1) Централизованная установка и обновление. docksal устанавливается в вашу систему привычным образом, а обновляется командой fin update. Если вы используете стэк приложений по умолчанию, то он сразу обновится во всех контейнерах. d4d же нужно обновлять в каждом контейнере отдельно. Опять таки, в комплекте с d4d идет набор файлов, которые на 99% обычных проектов не нужны: Makefile, traefik.yml, docker-sync.yml. Это сбивает с толку начинающих пользователей d4d.

    2) Не нужно нигде прописывать имя проекта. docksal берет имя проекта из имени каталога (как OpenServer на windows). В d4d же нужно обязательно в .env файле прописывать имя и ссылку для проекта. Это затрудняет обновление, потому что "нельзя просто так взять и заменить .env файл на новый". Нужно со старого скопировать имя вашего проекта и вписать в новый. Это такие мелочи, на которые бывалые разработчики не обращают внимания. Многие вообще перестают обновлять d4d потому что лень с этим заморачиваться.

    3) Прокси сервер. Сразу после установки docksal будет запущен nginx который будет проксировать все ваши виртуальные хосты. Это позволит вам запустить сразу несколько сайтов одновременно на 80 порту. d4d "из коробки" такого не умеет.

    4) Импорт больших баз. Наверняка многие пользователи d4d помнят

    the input device is not a TTY при импорте БД через drush

    Новичков это очень сбивает с толку. Через PMA БД не грузится, через drush тоже. Как быть? Нужно штудировать документацию, найти там ключ -Т и помнить о нем. В docksal же всё намного проще. Есть централизованная команда fin db import ИМЯ-ДАМПА, которая сама дропнет все таблицы и загрузит данные из файла дампа.

    5) На работе мы используем docksal на dev сервере и там есть возможность просто прописать директиву VIRTUAL HOST и доксал автоматом разрулит когда будет обращение к нужному хосту по внешнему адресу и отправит в нужный проект. Например site1.mycompany.com, site2.mycompany.com
    Я не сторонник использования докера на проде, но на дев сервере это невероятно удобно. Чтобы сделать такое в d4d нужно долго и внимательно штудировать документацию к traefik.

    Приятные мелочи:

    6) Установочные скрипты. В docksal есть встроенная возможность добавить к конфигурации сайта установочные скрипты и вызывать их удобным способом fin init-site, например. Скрипт поднимет контейнеры, запустит composer install, скачает БД с дев сервера, импортирует ее. И вот мы имеем готовый сайт для локальной разработки. В d4d можно такое сделать, но вручную.

    Резюме:
    Если вы давно хотели попробовать докер для локальной разработки, то я рекомендую начать именно с docksal. Он проще и дружелюбнее к начинающим пользователям.

  • Drupal9
  • Drupal8
  • Drupal7
  • Веб-мастерам и владельцам сайтов Автор ivnish Drupal backend developer в компании Abventor
    Категории: Друпалургия

    Преодоление трудностей, с которыми сталкиваются организаторы Drupal-мероприятий

    Drupal в рунете - вс, 01/03/2020 - 16:25

    Перевод статьи Марины Пайч «Overcoming challenges faced by Drupal events organizers» с советами по координации мероприятий по обучению Drupal.

    Организация мероприятий в рамках Drupal Global Training Days — это отличный способ рассказать о Drupal, привлечь новых разработчиков и повысить его популярность.

    Если вы еще не слышали о Drupal GTD, обычно это одно- или двухдневный тренинг, где опытные разработчики проводят сессии, посвященные Drupal, и обучают участников созданию своего первого сайта на Drupal или модуля. Почему это мероприятие называется глобальным? Потому, что оно проводится по всему миру ежеквартально в определенные дни (или около того). Организаторы из Северной и Южной Америки, Европы, Африки, Азии и Австралии объединили свои усилия, чтобы создать движение GTD и показать силу мероприятий, проводимых сообществами по всему миру.


    Знакомство с Drupal 8 в Рияде. Фото @EssamAlQaie.

    Однако организаторы Drupal-мероприятий сталкиваются с проблемами при проведении тренингов и конференций. Рабочая группа Drupal Global Training Days провела опрос, чтобы выяснить общие трудности для организаторов и то, как они могут помочь с проведением мероприятий GTD. Сначала мы разработали анкету для онлайн-опроса, а затем провели несколько обстоятельных интервью для подтверждения собранных данных. В этой статье я собрала наиболее распространенные проблемы, с которыми сталкиваются организаторы Drupal Global Training Days и провела мозговой штурм, чтобы найти пути их преодоления, основываясь на своем личном опыте организации мероприятий и положительном опыте других организаторов. Что ж, приступим.


    GTD в Омске. Фото @ADCISolutions.

    Проблема 1: Нехватка материалов для докладов (документация или презентации других организаторов)

    Чему мы должны научить? Отсутствие готовых материалов является самой распространенной проблемой организаторов во всем мире. Это действительно очень острая проблема. Не существует «специальной папки» с постоянно обновляемыми и готовыми к использованию презентациями и докладами.

    На это есть две основные причины:

    1. Большинство организаторов проводят мероприятия GTD на своем родном языке: испанский, русский и т. д., что делает такие презентации малопригодными для использования в других странах.
    2. Программы мероприятий составляются с учетом уровня участников: в некоторых странах на GTD в основном приходят люди не знакомые с Drupal, в других странах — более опытные.

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

    Решить эту проблему можно, обратившись за помощью к другим организаторам GTD. Вступите в группу GTD на Drupal.org. Там вы можете создать новую дискуссию и попросить людей поделиться своими материалами или хотя бы программами мероприятий, чтобы вы могли адаптировать материалы к вашей аудитории и целям. Также есть специальный канал Slack, где вы также можете обратиться за помощью к другим организаторам.

    Я поступила именно так, когда мы решили добавить семинар к нашему GTD. В прошлом у нас были только теоретические мероприятия, но затем мы захотели провести практический семинар. Поскольку мы никогда раньше не проводили практикумов, я обратилась к другим организаторам с вопросом, кто уже проводил семинары. И Маурисио ответил мне и поделился большим количеством материалов, которые они использовали в Никарагуа.

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

    Опираясь на опыт никарагуанских мероприятий GTD, мы смогли не начинать все с нуля, а провести качественное мероприятие.

    Реализуется также глобальная инициатива по переводу руководства пользователя Drupal 8 на различные языки. Если вашим родным языком является один из следующих: Català, Magyar, Español, Українська, 简体中文, Français, Deutsch, فارسی, Bahasa Indonesia, 日本語 — вы можете использовать эти материалы для своих тренингов. Если вашего языка пока нет в этом списке, вы можете помочь перевести его. (Примечание: теперь руководство доступно и на русском языке).

    Проблема 2: отсутствие унифицированных рекламных материалов

    Вторая широко распространенная проблема — отсутствие промоматериалов. Эта ситуация аналогична первой проблеме. Разные языки и разные профессиональные навыки участников затрудняют создание единого набора материалов для продвижения всех мероприятий GTD. В ходе дискуссий с участниками рабочей группы GTD мы обсудили, что мы можем сделать, и поняли, что для каждого организатора лучше всего создавать собственные промоматериалы, поскольку они лучше знают свою аудиторию и могут передать основную цель GTD — «Введение в Drupal» на простом и понятном языке.

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

    Проблема 3: нехватка докладчиков

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

    Ситуация #1

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

    Ситуация #2

    Если ваши потенциальные докладчики слишком стесняются выступать, постарайтесь вовлекать их постепенно. Попросите их подготовить небольшой доклад о чем-то простом для тренинга. Затем предоставьте им качественную обратную связь и укажите сильные стороны их презентации. А затем, когда они будут готовы, пригласите их на более масштабное мероприятие. Это займет некоторое время, но ваши усилия окупятся, когда вы достигнете своих целей.

    Ситуация #3

    Вы являетесь единственным организатором или некому выступить в вашей организации. Преодолеть эту проблему можно двумя способами:

    1. Поищите докладчиков из других Drupal компаний в вашем регионе. Они смогут прорекламировать свою компанию, а вы получите докладчиков с опытом. Другой вариант может быть применен, если у вас сильное сообщество в вашем городе или регионе. В этом случае вы можете пригласить людей из сообщества выступить на мероприятии.
    2. Если первый способ не может быть реализован, найдите дистанционных докладчиков и сделайте видеозвонок или даже организуйте онлайн-событие. Глобальное сообщество Drupal невероятно огромно. Я уверена, что вы найдете замечательных и мотивированных докладчиков для вашего мероприятия в сообществе.
    Проблема 4: низкая конверсия (многие регистрируются, немногие посещают)

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

    Но если это происходит постоянно, вам необходимо тщательно оценить свои усилия по продвижению. Возможные причины:

    • Промо материалы вводят в заблуждение: ожидания участников не оправдались. Убедитесь, что обещанные цели достигнуты, и усовершенствуйте промо материалы и тексты в соответствии с этим. Чтобы определить разрыв между ожиданиями и реальностью, организуйте несколько обстоятельных интервью с представителями вашей целевой аудитории или добавьте вопрос об ожиданиях в регистрационную анкету.
    • Проблемы с сопровождением участников: обычно с момента отправки заявки на участие в мероприятии до фактической даты его проведения проходит пару недель. Человек мог забыть о событии, потерять интерес или даже передумать. Чтобы этого не произошло, предусмотрите несколько возможных способов контакта с уже зарегистрированными пользователями. Отправляйте электронные письма, информируйте о ходе подготовки тренингов и расписании их проведения, отправляйте напоминания.
    • Не совсем ваша целевая аудитория: если ваши промо материалы будут рассылаться более широкой аудитории (например, не только студентам технических специальностей, но и всем студентам), вы можете получить много регистраций, но только технари примут участие. Будьте внимательны при выборе каналов продвижения, убедитесь, что вы привлекаете целевую аудиторию.

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

    Проблема 5: нехватка денег для оплаты площадки и кофе-брейков

    Согласитесь, здорово, когда вы приходите на мероприятие и там есть бесплатный кофе? Позаботьтесь о том, чтобы участникам мероприятия было удобно и приятно и во время докладов и на кофе-брейках:

    • Организуйте мероприятие в офисе IT-компании. Если ваш офис не подходит для проведения мероприятий, обратитесь в более крупные компании и предложите сотрудничество: вы организуете мероприятие, а они предоставят площадку. В обмен, они смогут прорекламировать себя во время мероприятия. Необязательно, чтобы это был офис именно IT-компании, можно поискать любое удобное и красивое место; просто зачастую IT-офисы круто выглядят и уже оборудованы для проведения таких событий.
    • Организуйте мероприятие в вузах. Попробуйте договориться с руководством учебного заведения о безвозмездном предоставлении помещения для проведения мероприятия. Преимущества вузов в том, что они, как правило, располагают всем необходимым оборудованием и там можно найти потенциальных участников вашего мероприятия — студентов технических специальностей.
    • Ищите спонсоров на бартерной основе. Drupal GTD — международное событие, притягивающее внимание множества людей. Используйте это в своих интересах и привлекайте компании, которые окажут вам поддержку в организации вашего тренинга и предоставят необходимые ресурсы или услуги в обмен на рекламу. Предложите разместить их рекламу на площадке мероприятия. Это даст возможность провести мероприятие на хорошем уровне: участники получат более приятные впечатления, а вам не придется беспокоиться о финансовых затратах.
    Проблема 6: отсутствие спонсоров

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

    Если же без спонсорской поддержки не обойтись, то:

    1. Создайте список компаний, которым может быть интересно ваше мероприятие.
    2. Узнайте, кто в этих компаниях принимает решения по таким вопросам.
    3. Напишите, чем ваше мероприятие может быть полезно компаниям-спонсорам: продвижение, брендинг, доклад на мероприятии и так далее и обозначьте стоимость спонсорского пакета.
    4. Подготовьте индивидуальное спонсорское предложение для каждой компании.

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

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

    Проблема 7: недостаточная осведомленность

    Не везде еще знают о мероприятиях GTD, что может создать определенные сложности для организаторов. Сложно найти спонсоров, докладчиков и привлечь посетителей. Чтобы решить подобные проблемы, вам стоит связаться с компаниями, которые разрабатывают проекты на Drupal, и рассказать им о преимуществах участия в GTD-движении. Среди таких преимуществ — продвижение компании в Drupal-сообществе, возможность засветиться в блогах, твитах, на карте событий Drupal и даже получить кредиты на Drupal.org!

    Чтобы привлечь больше внимания к вашему мероприятию, вам стоит проводить его в тот же день, когда такие мероприятия устраиваются глобально по всему миру. Масштабность проводимого мероприятия часто вызывает у людей любопытство и желание его посетить. Для продвижения своего мероприятия не стесняйтесь использовать видео других организаторов GTD: видеоролик №1, видеоролик №2.


    Томас П. Томас (исполнительный директор Zyxware Technologies) рассказывает о Drupal GTD и сообществе Drupal на мероприятии GTD в Керале. Фото @zyxware.

    Выводы

    Организация мероприятий — сложная и хлопотная задача. Вместе с тем она открывает широкие возможности для профессионального роста и экспериментов в сфере PR, маркетинга и ивент-менеджмента. Я занимаюсь организацией мероприятий не первый год, и до сих пор нахожу в работе много нового и интересного.

    Организаторам GTD я желаю быть активными, креативными и целеустремленными. Эти качества помогут вам проводить яркие и запоминающиеся мероприятия и привлекать к Drupal внимание множества людей!

    Рабочая Группа Drupal GTD (paych, lizzjoy, dinarcon, rgs, rachit_gupta, pendashteh, solomonkitumba) всегда готова протянуть вам руку помощи и подсказать, что делать.

    Вступайте в группу Drupal GTD, подключайтесь к нашему каналу в Slack и подписывайтесь на наш Twitter :)

    Удачных GTD!

  • Предлагаю решение
  • Статьи и публикации
  • Категории: Друпалургия

    Выборочный деплой контента с Drupal 8 на Drupal 8

    Drupal в рунете - пн, 24/02/2020 - 22:42
    Вступление

    В последнее время эта тема довольно популярна, но особо нигде нет достаточно информации. Поделюсь своим опытом.

    Напомню, что является контентом. Это созданные ноды, пункты меню, кастомные блоки, термины таксономии, файловые сущности.

    Для чего вообще может понадобиться деплой контента? Ситуации бывают разные. Например, вам нужно сделать страницу, блок, пункт меню на деве, а потом сделать так, чтобы оно появилось на проде. А доступа к проду у вас нет, потому что клиент - банк, со всеми вытекающими. Или когда над сайтом одновременно работают много человек и таскать с дев сервера базу на локалку надоедает. Ну или вы, хитрец, взяли БД с прода, чтобы внести необходимые правки (добавить термины таксономии, изменить пункты меню), а пока вы делали, клиент добавил 100 товаров на сайт и вы не можете теперь вашу БД загрузить обратно на прод (да и это не самая хорошая идея, в принципе).

    На этом вступительная часть окончена.

    Экспорт контента

    Итак, для деплоя контента я перепробовал разные способы. И миграции, и VDE, и feeds'ы всякие. Наиболее удобной оказалась связка модулей default_content + default_content_deploy. default_content умеет экспортировать контент в виде JSON файлов, а так же импортировать. Проблема в том, что нет никакого интерфейса для этого. Ни в админке, ни drush команд. Только программно через код. Так и появился default_content_deploy, в который добавили возможность экспорта/импорта контента используя drush. А в dev-ветке уже есть возможность импорта через админку и скоро будет готов экспорт. Как это работает?

    drush dcde node
    Экспортировать все ноды.

    drush dcde node --folder='../content'
    Экспортировать все ноды в указанный каталог (а не в каталог, указанный в конфигурации модуля)

    drush dcde node --bundle=page
    Экспортировать все ноды определенного типа.

    drush dcde node --bundle=page,article --entity_id=2,3,4
    Экспортировать все ноды определенного типа плюс ноды с ID 2,3 и 4

    drush dcde node --bundle=page,article --skip_entities=5,7
    Экспортировать все ноды определенного типа и пропустить экспорт нод с ID 5 и 7

    drush dcde node --skip_entities=5,7
    Экспортировать все ноды и пропустить экспорт нод с ID 5 и 7

    Вместо node вы можете использовать наименования других сущностей.

    Есть еще другие команды для экспорта, но вероятно, они будут заменены на ключи к команде dcde, поэтому приводить я их не буду, но вы всегда можете прочитать о них в README

    Окей, мы выгрузили нужный нам контент, добавили его в гит и теперь он лежит на продакшене в виде JSON файлов.

    Импорт контента

    Для импорта существует команда

    drush dcdi
    Она отобразит найденные сущности в виде файлов и предложит их импортировать. Если UUID сущности уже будет найден в системе, то эта сущность будет пропущена.

    drush dcdi --force-override
    Ключ force-override скажет программе импорта перезаписать содержимое контента из файлов в БД. Нужно использовать его с осторожностью.

    Вот собственно и всё. Добавив нужные команды в Gitlab CI (или в любой другой CI) вы сможете автоматизировать доставку контента с дева на прод.

    Послесловие

    Я настоятельно рекомендую использовать именно альфа-версию, а не дев-версию default_content_deploy. Модуль сейчас в стадии активной разработки и вы можете столкнуться с проблемами после очередного коммита.

  • Drupal8
  • Разработчикам Автор ivnish Drupal backend developer в компании Abventor
    Категории: Друпалургия

    Drupal: Показать форму входа при попытке анонимного пользователя поставить флаг

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

    src/Plugin/ActionLink/AjaxOrLoginActionLink.php:

    /** * @ActionLinkType( * id = "ajax_login_link", * label = @Translation("AJAX link (for loged users)"), * description = "An AJAX JavaScript request will be made without reloading the page." * ) */ class AjaxOrLoginActionLink extends AJAXactionLink {   /** * {@inheritDoc} */ public function getAsFlagLink(FlagInterface $flag, EntityInterface $entity) {

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Устойчивое развитие Drupal: вклад, признание заслуг и отдача

    Drupal в рунете - чт, 20/02/2020 - 18:26
    Перевод статьи «Drupal Sustainability: Contribution, Credit and Impact» (автор Tiffany Farriss)

    Увеличение числа компаний, работающих с Drupal, — нужная и важная задача. Но это требует от нас улучшения того, как мы привлекаем людей к поддержке и развитию Drupal, а также то, как мы признаем их вклад в общее дело.

    Несколько недель назад я получила свое первое признание вклада в Drupal за программную речь на DrupalCamp Colorado. Несмотря на то, что я необычайно взволнована произошедшим, все же нахожу это несколько забавным, так как этот доклад — не первый мой вклад в Drupal.

    На странице моего профиля на Drupal.org можно увидеть, что я являюсь участником сообщества уже более двенадцати лет. К тому времени я уже выступала с программными докладами на трех других друпалкемпах, выступала на сессиях и участвовала в рабочих группах во время конференции DrupalCon Boston 2008, руководила разработкой технического задания по редизайну Drupal.org, была председателем DrupalCon Chicago 2011, на протяжении девяти лет являлась членом правления Drupal Association, а совсем недавно входила в состав Комиссии по выбору Исполнительного директора Ассоциации. Это лишь часть моего личного вклада и, кроме того, компания Palantir.net, совладельцем которой я являюсь, сделала значительный вклад временем, творческим потенциалом и другими ресурсами за все эти годы.

    Признание заслуг не является для меня движущей силой. Как и многие участники проектов с открытым исходным кодом, я делаю свой вклад в Drupal, потому что готова оказывать поддержку, когда я вижу в этом необходимость или перспективу. Раньше, когда я была еще новичком в сообществе, о вкладе в развитие Drupal (и кодом и не кодом) могли знать только в узком кругу. Я постоянно ощущала, что заслужила доверие и поддержку тех, с кем тесно сотрудничала в решении все новых и новых задач.

    В итоге Drupal стал крупнейшим независимым проектом с открытым исходным кодом, управляемым сообществом. И многие из нас верили, что нашего коллективного успеха и того влияния, которое мы оказывали, было достаточно для дальнейшего раскручивания спирали успеха открытого программного обеспечения. Но так ли это было?

    Open source победил, и сегодня множество людей и компаний доверяют Drupal и другим инструментам и продуктам с открытым исходным кодом. Но эти компании могли сделать свой выбор в пользу инструмента с открытым исходным кодом не до конца осознавая возможности, которые открывает Open Source. Двенадцать лет назад сообщество Drupal было достаточно маленьким, чтобы устоявшиеся нормы и надежды передавались от человека к человеку, как легенды и предания. Прежние способы формирования поведения и обеспечения соблюдения норм через социальное взаимодействие (так называемое товарищеское воздействие) не являются достаточно действенными для новых участников сообщества.

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

    В своей программной речи в Амстердаме в 2014 году Дрис отметил, что в мире Open Source уже давно есть механизм признание заслуг отдельных разработчиков (за вклад кодом), но для компаний и организаций пока не выработаны соответствующие методы признания (и поощрения) их заслуг и вклада, который они делают. Он предложил для этого простой способ признания заслуг организаций, которые участвовали в работе над проблемами ядра Drupal либо непосредственно кодом, либо финансируя разработку, о чем было сообщено в докладе Drupal Association в конце 2015 года. С течением времени эта система была расширена, чтобы охватить больше, чем только участие вкладом в код.

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

    Однако, будучи исполнительным директором компании Palantir, я поняла, что невозможность в полной мере отразить вклад, который делают компании (и который от них ожидают), гораздо более проблематична с точки зрения долгосрочных перспектив развития проекта. Некоторые из основополагающих направлений работы сообщества (Совет директоров Ассоциации Drupal, Общественная рабочая группа (CWG), Команда безопасности и другие виды деятельности команды ядра Drupal, не связанные с написанием кода, включая управление релизами, обеспечение взаимодействия, организацию спринтов, а также общую координацию проектов и инициатив) серьезно недооценены или полностью проигнорированы системой признания заслуг. Деятельность Джорджа ДеМета как председателя CWG в среднем занимает от четверти до половины его рабочего времени (и больше в наиболее загруженные периоды), а за последний год он получил только четыре упоминания в системе признания заслуг (остальные члены CWG получили даже меньше!). Сообщество и проект испытывают серьезные трудности из-за подобной неизвестности, которая затушевывает, а со временем и вовсе обесценивает ожидания и надежды сообщества. Это происходит из-за того, что мерилом вклада становится лишь активность, легко поддающаяся измерению, а не то, что имеет действительное значение.

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

    Эти программы и привлеченные с их помощью новые интеграторы и агентства существенно влияют на развитие и распространение Drupal. Для экосистемы Drupal они представляют собой долгожданное пополнение. Тем не менее, существуют серьезные проблемы с тем, как эти программы были организованы до настоящего времени, и в непредвиденном воздействии на нашу культуру внесения вклада:

    • Получения статуса в рамках этих программ изначально является платным и нефинансовый вклад в проект не требуются.
    • Эти программы ни прямо, ни косвенно не поддерживают и не побуждают вкладывать время или творческий капитал, от которых зависит Drupal.
    • Финансовые поступления от таких программ приносят пользу инфраструктурным инициативам (Drupal.org и, в более широком плане, Ассоциации), а также способствуют повышению узнаваемости на рынке, которые отнюдь не являются наиболее востребованными для Drupal или сообщества.
    • Эти программы подорвали репутационную систему, в которой предпочтение отдавалось достижениям (успешные внедрения и вклад в Drupal), и заменили ее такой, где предпочтение отдается показателям (финансовый успех и список клиентов).

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

    Как я отметила во время дискуссии на конференции OSCON, я вижу во всем этом угрозу на пути достижения прогресса. Наличие большего количества компаний, в том числе крупных интеграторов и агентств, работающих с Drupal — это хорошо и полезно для сообщества. Что нам необходимо совершенствовать, так это методы привлечения людей к развитию и улучшению Drupal и, что особенно важно, найти способы подчеркнуть их деятельное участие в проекте, чтобы восстановить культуру внесения вклада в Drupal. Для достижения этой цели необходимо создать новые и доступные способы внесения вклада, соответствующие как значимым целям Drupal и сообщества, так и ресурсам, которыми располагают компании, будь то время, творческий капитал или иной вклад, который они могут внести в проект. Сосредоточение внимания на том, что имеет существенное значение, укрепит Drupal на пути долгосрочного устойчивого развития.

    Расскажите, как вы участвуете в развитии Drupal и сообщества? Какую поддержку вам оказывает компания, в которой вы работаете?

  • Есть вопрос
  • Статьи и публикации
  • Категории: Друпалургия

    Может быть, это уже не управление контентом. Может быть, это управление контекстом.

    Drupal в рунете - сб, 15/02/2020 - 22:09

    Перевод статьи «Maybe It’s Not Content Management Anymore. Maybe It’s Context Management.» (автор Ernie Smith)

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

    Устарела ли сама концепция систем управления контентом?

    Так можно подумать, основываясь на недавнем решении компании Gartner, известной прогнозами технологических тенденций, которая ежегодно публикует исследования рынка CMS в отчете Magic Quadrant for Web Content Management (магический квадрант управления веб-контентом). Точнее... публиковала до недавнего времени... Спустя два десятка лет Gartner решила отказаться от этого отчета в 2020 году.

    Эти 20 с лишним лет охватывали множество тенденций — взрывной рост блогов, растущее влияние открытого программного обеспечения на индустрию онлайн-паблишинга (в частности, WordPress и Drupal), появление Web 2.0 и отзывчивого дизайна, а также более современные подходы к управлению контентом, такие как JAMstack и headless CMS. Однако в 2020 году компания Gartner решила, что нужен новый термин для обозначения пространства цифрового контента, который бы лучше соответствовал текущему состоянию рынка. Как отмечает CMSWire, Gartner теперь применила более широкий подход с помощью своего нового отчета Magic Quadrant for Digital Experience Platforms (магический квадрант платформ цифрового взаимодействия).

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

    «Теперь это не только веб, и, безусловно, мы должны управлять новыми каналами распространения информации: Alexa, чат-боты и различные устройства», — сказала ведущий аналитик Gartner Ирина Гусева изданию CMSWire. «Контент не умирает. Он просто превращается в исходную сущность систем управления контентом, которые были предназначены для разных типов контента, а теперь и для разных каналов.»

    Содержание и контекст повсюду

    В значительной степени пересмотр отчета Magic Quadrant связан с ростом влияния таких игроков, как компания Acquia, основного разработчика Drupal, и Adobe, которая недавно приобрела Magento и Marketo, чтобы увеличить свое присутствие в цифровом маркетинге.

    Новый отчет в основном обходит стороной вопросы о роли открытого исходного кода в современном управлении контентом. Так, например, компания Automattic, которая управляет разработкой невероятно популярного WordPress, отсутствует в новом исследовании, хотя в отчете Magic Quadrant for Web Content Management, вышедшем прошлой осенью, она была упомянута. Ребрендинг отчета дает понять, что, по мнению Gartner, все более важной становится поддержка крупной компании.

    Я, по правде говоря, скептически отношусь к этому. Вы можете получить довольно хорошую поддержку от организаций, которые управляют платформами CMS с открытым исходным кодом. Но я думаю, что в Gartner правы: если мы ограничимся управлением контентом только в интернете, то это существенно сузит наши возможности. Мы живем в мире, где дистрибуция контента стала важна как никогда. Искусственный интеллект и голосовые помощники — инструменты, которые не были существенными десять лет назад, теперь стали повсеместно распространенными. И в какой-то момент ваша организация должна начать учитывать их в стратегическом плане и, если не сегодня, то в ближайшем будущем.

    Во многих компаниях контентная часть управления контентом слабо развита. Но очень важно, чтобы контент был везде, или хотя бы во множестве мест. Контент должен появляться в приложениях, на смарт-часах, в имейл-рассылках, в социальных сетях и, возможно, даже на устройствах интернета вещей. Нам нужно создавать инструменты для новых условий и новых контекстов. Цифровой мир меняется вместе с нашим контентом, и мы должны управлять этим.

    В следующий раз, когда вы услышите термин «CMS», подумайте о нем как о «системе управления контекстом». Позволяет ли этот инструмент упростить дистрибуцию контента, скажем, через API? Или вам придется извернуться, чтобы добиться этого?

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

    Сегодня контекст стал важнее, чем когда-либо.

  • Предлагаю решение
  • Статьи и публикации
  • Категории: Друпалургия

    Drupal: Создать свою ajax команду (8)

    Пример создания ajax команды для вывода сообщений в консоль браузера.

    src/Ajax/ConsoleLogCommand.php:

    namespace Drupal\modulename\Ajax;   use Drupal\Core\Ajax\CommandInterface;   class ConsoleLogCommand implements CommandInterface {   protected $message;   /** * Command constructor. */ public function __construct($message) { $this->message = $message; }   /** * {@inheritDoc} */ public function render() { return [ 'command' => 'consoleLog', 'message' => $this->message, ]; }   }

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Drupal: Создать свой ajax индикатор прогресса

    Пример создания индикатора прогресса с именем toggleClass, который добавляет/удаляет класс у элемента:

    (function ($, Drupal) {   /** * Create custom progress type "toggleClass". * @see Drupal.Ajax.prototype.beforeSend() */ Drupal.Ajax.prototype.setProgressIndicatorToggleclass = function () { var $progressTarget = this.progress.target ? $(this.progress.target) : $(this.element); var progressClass = this.progress.class ? this.progress.class : 'ajax-progress-animation';   // Add class $progressTarget.addClass(progressClass);

    Читать дальше →

    Похожие записи:

    Категории: Друпалургия

    Красивые release notes на drupal.org

    Drupal в рунете - вс, 02/02/2020 - 22:20

    Задался я сегодня вопросом, как на drupal.org делают "красивые" release notes. Например https://www.drupal.org/project/jsonapi/releases/8.x-2.1

    Красивость в том, что номер issue является ссылкой на issue, а имя пользователя ссылкой на пользователя. Плюс есть разделение по типу issue (bug, task, feature)

    Выяснилось, что есть инструмент помогающий в этом. Это drupalorg-cli

    Пример использования:

    1) Переходим в каталог, где находится .git вашего модуля
    2) Запускаем drupalorg rn 8.x-1.0, где 8.x-1.0 это номер ПРЕДЫДУЩЕЙ версии
    3) Получаем в ответ что-то вроде

    <p><em>Add a summary hereem>p>
    <h3>Contributors (1)h3>
    <p><a href="https://www.drupal.org/u/ivnish">ivnisha>p>
    <h3>Changelogh3>
    <p><strong>Issues:strong> 2 issues resolved.p>
    <p>Changes since <a href="https://www.drupal.org/project/visually_impaired_module/releases/8.x-1.0">8.x-1.0a>:p>
    <h4>Featureh4>
    <ul>
      <li><a href="https://www.drupal.org/node/3110474">#3110474 by ivnish:">https://www.drupal.org/u/ivnish">ivnish: Allow choose image or text in the block
    ul>
    <h4>Taskh4>
    <ul>
      <li><a href="https://www.drupal.org/node/3025823">#3025823 by ivnish:">https://www.drupal.org/u/ivnish">ivnish: Fix coding standards
    ul>

    4) Вставляем этот код в release notes вашего модуля на drupal.org при создании нового релиза.

    Выглядит это примерно вот так

  • Drupal 8
  • Drupal 7
  • Разработчикам Автор ivnish Разработка, поддержка и лечение сайтов после заражения
    Категории: Друпалургия

    Страницы

    Подписка на Друпалургия сбор новостей - Друпалургия