Друпалургия

Обновление drupal.ru 25.07.2018: colorbox, картинки в комментариях и новый порядок обновления сайта

Drupal в рунете - ср, 25/07/2018 - 18:21

На сайте drupal.ru больше не будет ежемесячных релизов и публикации подробных release notes. Эту информацию можно свободно получить в репозитории проекта https://github.com/DrupalRu/drupal.ru.

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

Сегодня мы представляем два нововведения.

1. Colorbox

Картинки, вставленные в материалы, теперь могут открываться в модальном окне.

2. Картинки в комментариях

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

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

Форумы: Сайт и проект Drupal.ru 3 Thanks
Категории: Друпалургия

Drupal 8: Работа с Composer (видео)

Drupal в рунете - пн, 09/07/2018 - 11:15

Пользователь drupal.ru и гуру разработки niklan начал цикл очень полезных видео. В этом видео он расскажет вам о Composer всё, что вы хотели знать, но боялись спросить.

Текстовый вариант: https://niklan.net/blog/130

Ссылка на канал: https://www.youtube.com/channel/UCtrxYnRQunkn-sr82lCmTOg/

Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Форумы: FAQ 0 Thanks
Категории: Друпалургия

Модуль Yandex Money Blocks (ymb)

Drupal в рунете - пн, 02/07/2018 - 12:38

Специально для drupal.ru мной был разработан модуль, позволяющий создавать любое количество блоков с формой доната Яндекс.Деньги. Выглядят эти блоки так:

Список ymb-блоков отображается на странице /admin/structure/ymb и выглядит так:

Окно добавления/редактирования блока:

Скачать модуль можно с официальной страницы проекта

Поучаствовать в разработке можно на GitHub

Пока модуль только для Drupal 7. После перехода drupal.ru на Drupal 8 модуль будет портирован и на "восьмерку"

Тип материала: Предлагаю решение Версия Drupal: Drupal 7.* Форумы: Программирование 1 Thanks
Категории: Друпалургия

Релиз drupal.ru 31 июня 2018 года

Drupal в рунете - вс, 01/07/2018 - 23:13

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

Список issue релиза и людей, принимавших участие в их решении

#901  itcrowd72,  mbaev
Добавление изображений при создании и редактировании материалов, добавлении комментариев и в личных сообщениях сделано более удобным.

#1115  madt
Внешний вид главной страницы приведен в соответствие дизайну внутренних страниц.

#1109  madt,  itcrowd72
Установлен модуль  ymb, с помощью которого на нашем сайте будут создаваться блоки для сбора доната через Яндекс.Деньги. Ранее сбор денег на поддержку drupal.ru был сделан через сервис yasobe.ru. К сожалению, мы столкнулись с тем, что невозможно ни изменить, ни освободить адреса, по которым размещаются страницы на yasobe.ru, а также невозможно изменить номер кошелька, который привязан к соответствующей странице. Чтобы исключить проблемы в будущем при передаче полномочий координатора вместо страниц на yasobe.ru мы будем использовать нативные блоки сбора доната и размещать их на страницах нашего сайте.

Модуль создан  itcrowd72 (участником команды drupal.ru) и размещен на drupal.org — https://www.drupal.org/project/ymb

#1111  itcrowd72,  mbaev  bsyomov
В репозиторий проекта возвращены стандартные текстовые файлы.

#1110  itcrowd72
Файлы переводов исключены из репозитория проекта.

Наш репозиторий: https://github.com/DrupalRu/drupal.ru

Мы открыты для идей и предложений по улучшению сайта. Также будем рады видеть в команде новых людей. Присоединяйтесь!

Форумы: Сайт и проект Drupal.ru 2 Thanks
Категории: Друпалургия

Drupal: Подменить административное меню для определённой роли

Код для роли rid=4 подменяет административное меню management на menu-example:

/** * Implements hook_admin_menu_output_alter(). */ function MODULENAME_admin_menu_output_alter(&$content) { if (user_has_role(4)) { // Remove old links $content['menu'] = array_diff_key($content['menu'], array_flip(element_children($content['menu']))); // Add new links $content['menu'] += admin_menu_links_menu(admin_menu_tree('menu-example')); } }

Комментарии

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

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

Drupal 8 — мой процесс разработки и деплоя на июнь 2018 (видео)

Drupal в рунете - чт, 28/06/2018 - 15:33

Пользователь drupal.ru и гуру разработки niklan начал цикл очень полезных видео. В этом видео-гайде он о том, как быстро деплоить Drupal 8 с локальной машины на dev/prod.

Ссылка на канал: https://www.youtube.com/channel/UCtrxYnRQunkn-sr82lCmTOg/

Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Форумы: FAQ 0 Thanks
Категории: Друпалургия

Drupal 8: Два варианта установки ядра (видео)

Drupal в рунете - ср, 27/06/2018 - 17:10

Пользователь drupal.ru и гуру разработки niklan начал цикл очень полезных видео. В этом видео-гайде он расскажет о двух способах установки Drupal 8.

Ссылка на канал: https://www.youtube.com/channel/UCtrxYnRQunkn-sr82lCmTOg/

Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Форумы: FAQ 0 Thanks
Категории: Друпалургия

Drupal 8: hooks (видео)

Drupal в рунете - пн, 25/06/2018 - 13:16

Пользователь drupal.ru и гуру разработки niklan начал цикл очень полезных видео. В этом видео-гайде он расскажет что такое хуки в Drupal 8 и как они работают "изнутри".

Ссылка на канал: https://www.youtube.com/channel/UCtrxYnRQunkn-sr82lCmTOg/

Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Форумы: FAQ 2 Thanks
Категории: Друпалургия

Docker4Drupal — локальная среда для разработки на Drupal (видео)

Drupal в рунете - пн, 25/06/2018 - 13:04

Пользователь drupal.ru и гуру разработки niklan начал цикл очень полезных видео. В этом видео-гайде он расскажет что такое Docker4Drupal и чем он лучше виртуальной машины или локального веб-сервера.

Ссылка на канал: https://www.youtube.com/channel/UCtrxYnRQunkn-sr82lCmTOg/
Текстовый вариант с доп. материалами: https://niklan.net/blog/172

Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Drupal 7.* Форумы: FAQ 2 Thanks
Категории: Друпалургия

Хостинг в обмен на рекламу

Drupal в рунете - пт, 22/06/2018 - 20:49

Уважаемые представители хостинг-компаний!

Мы изучаем возможность получения хостинга бартером за рекламу на нашем сайте. Например, это может быть подпись в подвале сайта о том, что %company% является официальным хостинг-провайдером drupal.ru.

Предварительное обсуждение темы происходит в нашем гитхабе https://github.com/DrupalRu/drupal.ru/issues/1074

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

Тип материала: Есть вопрос Форумы: Хостинг 1 Thanks
Категории: Друпалургия

Drupal: Разрешаем открывать в Colorbox инлайновый картинки в тексте ноды

В седьмом друпале в настройках Colorbox была опция "Enable Colorbox load", позволяющая ссылкам с классом colorbox-load открываться в колорбоксе. В восьмой версии эту опцию удалили, но её достаточно просто вернуть с помощью кода:

/** * Preprocess variables for page.html.twig. */ function THEMENAME_preprocess_page(&$variables) { \Drupal::service('colorbox.attachment')->attach($variables); }

Сбрасываем кэш.

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

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

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

Drupal: Добавить в хлебные крошки заголовок текущей страницы

Код добавляет в хлебные крошки заголовок текущей страницы:

/** * Preprocess function for breadcrumb.html.twig. */ function psdhtmlcss_preprocess_breadcrumb(&$variables) { if ($variables['breadcrumb']) { $request = \Drupal::request(); $route_match = \Drupal::routeMatch(); $page_title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject())ж   if ($page_title) { $variables['breadcrumb'][] = [ 'text' => $page_title ]; } } }

Комментарии

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

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

Drupal: Получить текущий заголовок страницы

$request = \Drupal::request(); $route_match = \Drupal::routeMatch(); $page_title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());

Есть ещё такой вариант, более старый:

$request = \Drupal::request(); $route = $request->attributes->get(\Symfony\Cmf\Component\Routing\RouteObjectInterface::ROUTE_OBJECT); $page_title = \Drupal::service('title_resolver')->getTitle($request, $route);

Комментарии

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

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

Релиз drupal.ru 26 мая 2018 года

Drupal в рунете - вт, 12/06/2018 - 15:29

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

Список issue релиза и людей, принимавших участие в их решении

#1054  madt,  itcrowd72,  mbaev
Из формы добавления материалов удалено поле «Ключевые слова», также удален соответствующий словарь терминов. Пояснение: теги необходимо использовать в тех проектах, где есть необходимость в сборе данных и анализе на их основе. У нас этого нет, не планируется, также неизвестно для чего вообще мы могли бы использовать термины из словаря «Ключевые слова». За много лет в словаре «Ключевые слова» набралось более 20 000 тегов. Полезных тегов, к сожалению, в словаре было слишком мало, и зачастую они дублировали значения полей «Версия Drupal» или «Модули и темы». Удаление поля и словаря облегчило форму добавления материалов и освободило базу от ненужных данных.

#1082  madt,  itcrowd72
Удалены два неиспользуемых кастомных модуля:
* dru_bookmark — модуль закладок, который был отключен в 2015 году, в будущем планируется реализовать закладки с помощью контриб-модуля flag.
* dru_solve_mark — модуль должен был подсвечивать заголовки содержащие «Решено», «Решение» и т. п. Сейчас вопрос с отмеченным решением отображается со специальной иконкой.

#1069  madt,  itcrowd72
Деинсталлирован модуль book.

#1033  madt
В правила сайта добавлен пункт о запрете использования мультиаккаунтов для обхода бана основной учетной записи.

#1095  bsyomov
Настроена отправка почты на dev- и stage-серверах сайта, используемых для тестирования новых функций перед деплоем на основой сервер drupal.ru.

#1088  Semantics,  itcrowd72
Отключен фильтр матерных слов. Атмосфера на нашем ресурсе теперь вполне дружелюбная. Было решено в качестве эксперимента отключить на несколько месяцев матофильтр, который, к сожалению, иногда блокировал тексты и без мата. В команде проекта 2 модератора, неустанно очищающие сайт от сообщений, нарушающих правила сайта. Мы благодарны всем пользователям, которые помогают модераторам делать сайт более человечным. Напоминаю, что мат на нашем ресурсе запрещен. Продолжайте, пожалуйста, быть вежливыми друг к другу.

#1059  madt
Изменен порядок блоков на главной странице. Теперь блок «Интересное» располагается в самом верху, затем идут блоки «События» и «Компании». В будущем планируется убрать блок «Компании» с главной страницы, а блок «События» будет переработан.

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

#1047  madt
На странице команды drupal.ru добавлена дата следующих выборов координатора.

#575  Studio VIZA,  itcrowd72
Возможность использования «Темной материи» оставлена только для модераторов.

#1085  itcrowd72
Все кастомные модули теперь располагаются в /sites/all/modules/custom

#1083  itcrowd72
Из репозитория удалена неиспользуемая тема оформления «Alpha»

#1080  itcrowd72
Обновлен контриб-модуль Views Bulk Operations (VBO) с версии 7.x-3.4 до версии 7.x-3.5

#677  Studio VIZA,  madt,  itcrowd72
На странице личных сообщений добавлена возможность удаления диалогов.

#1013  madt,  itcrowd72
Исправлен баг отображения блока «Лучший ответ» и соответствующего комментария. При просмотре материала под анонимным пользователем блок и комментарий не были отмечены зеленым, как при просмотре под авторизованным пользователем.

#1058  madt,  itcrowd72
Из профиля удалено поле «Откуда узнали о Drupal?», так как оно не выполняло никакой полезной функции.

#1001  madt,  itcrowd72,  bsyomov
Исправлен баг в структуре БД проекта, из-за которого был невозможен импорт дампа базы данных на mysql версии ниже 5.7.

#963  adubovskoy,  bumble
В стили добавлено стандартное оформление для таблиц.

#1057  madt,  itcrowd72
Из формы регистрации нового пользователя убраны необязательные поля.

#1056  madt,  itcrowd72
Из формы редактирования профиля удалено неиспользуемое поле «Открывать внешние ссылки в новом окне» и вкладка «Разное», в которой было это единственное поле.

#1055  madt,  itcrowd72
Из формы редактирования профиля удалено неиспользуемое поле «Секретный вопрос» и вкладка «Безопасность», в которой было это единственное поле.

Наш репозиторий: https://github.com/DrupalRu/drupal.ru

Мы открыты для идей и предложений по улучшению сайта. Также будем рады видеть в команде новых людей. Присоединяйтесь!

Тип материала: Есть вопрос Форумы: Сайт и проект Drupal.ru 0 Thanks
Категории: Друпалургия

Drupal: Рендеринг дерева с помощью Twig

Есть twig шаблон, который принимает на вход переменную tree в формате:

$tree = [ 0 => [ 'data' => 'Item 1', 'childrens' => [ 0 => [ 'data' => 'Item 1.1', ], 1 => [ 'data' => 'Item 1.2', ], ], ], 1 => [...] ];

Нужно вывести эту переменную в виде дерева из вложенных списков ul/li.

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

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

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

Drupal Beginner — новый youtube-канал для начинающих изучать Drupal 8

Drupal в рунете - чт, 24/05/2018 - 19:13

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

На данный момент на канале опубликовано 4 видеоурока:

1. Установка модуля
2. Восстановление пароля
3. Сброс кэша
4. Включение twig debug

Если у вас есть желание записать видеоинструкцию для новичков и поделиться ею со всеми, напишите Мирославу в телеграм https://t.me/miroslav_lee.

Идеи, критика, обсуждение и предложения очень приветствуются.

Ссылка на канал: https://www.youtube.com/channel/UCdVPCpneA3HiUaLg1DJm1gA/featured

Ссылка на чат для новичков в Drupal: https://t.me/drupal_beginner

Ставьте лайк, подписывайтесь на канал, жмите колокольчики и вступайте в чат.

Версия Drupal: Drupal 8.* Форумы: Выставка сайтов 2 Thanks
Категории: Друпалургия

Тема оформления "Бутик"

Drupal в рунете - чт, 24/05/2018 - 02:17

Один из результатов моего полугодового сотрудничества с Ювелирным домом CLUEV. Эта тема заказчику не занравилась, а по моему ничего, нормально. Строго говоря, это не голая тема, которая станет на любой сайт, а сборка, предполагающая наличие в системе определенных типов материалов. Темизация материалов применялась для этого сайта весьма активно, местами изощренно. Например, материал типа "изделие" имеет четыре разных тизера, которые подставляются в разных местах в зависимости от необходимости. Также применялась темизация, views, блоков, отдельных полей. Разумеется, тема адаптирована для мобильных устройств.

Из неядерных модулей использовались уже упомянутый Views, Views Infinite Scroll, Better Exposed Filters, Colorbox.

Посмотреть сайт можно здесь http://fw-boutique.kluch-na-start.ru

Продолжение следует. Также в ходе сотрудничества с CLUEV мной созданы еще две других темы оформления.

Модули и темы: views views infinite scroll Better Exposed Filters colorbox Тип материала: Предлагаю решение Версия Drupal: Drupal 7.* Форумы: Выставка сайтов 0 Thanks
Категории: Друпалургия

Деплой сайта Drupal 8 на nic.ru (через composer)

Drupal в рунете - сб, 12/05/2018 - 17:18
Введение

На днях мне пришлось разворачивать сайт на хостинге nic.ru. За последнее время очень привык пользоваться composer`ом, и как-то отводил бог от виртуального хостинга - заказчики попадались со своими серверами, и все было легко и непринужденно - нужная версия php, composer, Drupal console, Drush. Но в этот раз у уважаемого заказчика был оплаченный хостинг на nic.ru, при том, оплачен из гранда на образовательный сайт, что не позволяло сменить сервер или хостера. Спросил про опыт в сообществе и получил ответ - беги оттуда. Но мы не привыкли отступать ) Ниже я опишу как победил хостинг, и что надо делать, чтобы развернуть сайт на Druapl 8 с помощью композера на shared хостинге nic.ru

Установка composer Трабл с зависимостями PHP.

Итак, мы попытаемся поставить composer по инструкции:

mkdir ~/bin
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=bin --filename=composer

и тут получаем ошибку

> Some settings on your machine make Composer unable to work properly.
> Make sure that you fix the issues listed below and run this script again:
>
> The phar extension is missing.
> Install it or recompile php without --disable-phar

Решение

Эта ошибка устраняется установкой модуля phar для php, для этого нужно зайти по адресу https://www.nic.ru/hcp2/ , затем в Управление веб-сервером -> Управление модулем PHP, разворачиваем вкладку Управление расширениями, там отмечаем заветный Phar и нажимаем Сохранить внизу страницы.

Прим. На этой же странице можно установить нужную версию PHP.

Совет

После удачной установки, composer можно запускать как ~/bin/composer, вы можете добавить папку ~/bin в переменную $PATH, для того, чтобы композер запускать привычно.

  • Разово (на текущую сессию) - запустите export PATH=$PATH:~/bin
  • Перманентно - добавьте в ~/.bashrc export PATH=$PATH:~/bin
Трабл с нехваткой памяти.

При запуске composer install или update, у вас может выскочить такая ошибка

Loading composer repositories with package information
Updating dependencies (including require-dev)
Убито.

Решение

Это происходит от нехватки памяти. Скорее всего у вас в репозитории нет файла composer.lock. Если его исключить из .gitignore, то проблема решается и все скачивается как надо. Единственный нюанс - на боевом хостинге и ваше окружение для разработки должны быть максимально идентичными.

Настройка DocumentRoot Трабл с webroot.

Если вы используете репозиторий, в котором web вынесена в подпапку (см https://www.drupal.org/node/2718229#download-core), то и на хостинге нам надо настроить DocumentRoot так, чтобы он ссылался не на ~/domain.com/docs, а в ~/domain.com/docs/web (в docs будет репозиторий, а в web - открытая часть)

Решение

Сначала надо включить в настройках сайта ручной режим. Для этого идем Панель управления -> Сайты -> domain.com -> Настройки -> Веб-сервер и там включаем Автоматический режим работы сайта.

И так, в результате этих действий в папке ~/etc появляются настройки для серверов apache и nginx. Папки ~/etc/apache_2.4/sites-enabled и ~/etc/nginx/sites-enabled содержат файлы типа таких: domain.com.site.conf, в которых надо дописать web в конце строк, указывающих на путь к сайту /home/user/domain.com/docs/, чтобы получилось /home/user/domain.com/docs/web/ . Я это делал через ssh и mcedit, вы можете воспользоваться файловым сервером в панели управления.
После этого идем в Управление веб-сервером и нажимаем Перезагрузить.

Заключение.

Эти несложные шаги помогли мне победить установку Drupal 8 на shared хостинг nic.ru.
Спасибо за внимание. Очень жду любых комментариев и поправок.

ВложениеРазмер snimok_ekrana_ot_2018-05-12_13-09-20.png37.61 КБ snimok_ekrana_ot_2018-05-12_13-13-29.png27.44 КБ snimok_ekrana_ot_2018-05-12_13-09-57.png52.48 КБ Ключевые слова: composer nic.ru git deploy Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Форумы: Хостинг 2 Thanks
Категории: Друпалургия

Как определить, что ваш сайт взломали

Drupal в рунете - ср, 09/05/2018 - 21:38

За последнее время я лечил множество сайтов от drupalgeddon2 и почти все они имели идентичные признаки взлома. Если вы хотите понять был ли взломан ваш сайт, то в первую очередь загляните в файл index.php в корне вашего сайта:

Если в нем присутствует странная строка, значит вас взломали:

Так же часто практически по всем служебным каталогам друпала (include, misc, profiles, и т.д.) будут распиханы файлы index.php похожего содержания:

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

Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Drupal 7.* Форумы: Решение проблем 0 Thanks
Категории: Друпалургия

Is Hacked: Простой модуль для определения изменений в системе контроля версий для Drupal 7 и Drupal 8

Drupal в рунете - ср, 09/05/2018 - 00:51

В субботу накидал простой модуль, который смотрит в изменения системы контроля версий и кричит в Status report если таковые имеются. По умолчанию работает с git, но в теории должен работать и с другими путём изменения переменной/конфигурации.

Если вы знаете как запихнуть в крон команду git status, то этот модуль не для вас.

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

Качать тут: https://www.drupal.org/project/is_hacked
Просить фичи и создавать баги тут: https://www.drupal.org/project/issues/is_hacked

Ключевые слова: безопасность Тип материала: Предлагаю решение Версия Drupal: Drupal 8.* Drupal 7.* Форумы: Программирование 5 Thanks
Категории: Друпалургия

Страницы

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