Архив метки: Drupal

Что нового в системе управления контентом Drupal 10

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

Для масштабирования, обновления программного обеспечения, платформ, веб-сайтов и приложений требуются инновационные решения, поддержка сайта drupal и технические обновления. Чтобы ускорить вашу цифровую производительность, сотрудничество с новейшими технологиями-это самый простой и быстрый способ доставки оптимизированного и надежного контента в Интернете. Кроме того, это позволяет вам предоставлять непрерывный и бесперебойный опыт вашим клиентам на всех платформах.

Чтобы помочь вам в этом, Drupal 10 приходит вам на помощь.

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

Срок службы Drupal 8 истекает в ноябре 2021 года. Версия Drupal 7 была запущена в 2011 году. EOL для этой версии будет запланирован на ноябрь 2022 года.

Здесь мы рассмотрим предстоящую версию — Drupal 10.

 

Когда будет выпущен Drupal 10?

Drupal 10 планируется выпустить в период с июня 2022 года по ноябрь 2022 года.

Последняя версия поставляется с расширенными функциями, целями и результатами, чтобы быть в курсе ваших веб-сайтов и быть в курсе меняющихся технологий. Пришло время подготовиться к ознакомлению с новым редактором CKEditor 5, автоматическими обновлениями, фронтальной темой Olivero, разделенными меню и другими дополнительными функциями!

Послы инициативы по обеспечению готовности Drupal 10 выступили с основным докладом на DrupalCon North America 2021, обсуждая будущий релиз.

“Drupal 10 будет усовершенствованной версией Drupal 9, включающей все преимущества всех инициатив. Он будет включать в себя Olivero, Claro, всю работу по инициативе автоматизированных обновлений, устранение ошибок, простое готовое, разделенное меню и браузер проекта, если он у нас будет вовремя. Таким образом, он будет включать в себя все результаты всей работы, проделанной сообществом”.

 

Чего Ожидать От Drupal 10?

Готовы ли вы обновить свой сайт до Drupal 10?

Вот некоторые новые обновления, которые придумал Drupal 10.

 

1. Обновленные компоненты сторонних производителей

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

Вот несколько обновлений, запланированных на 2022 год:

  • Обновление с CKEditor 4 до CKEditor 5
  • Обновление с Symfony 4 до Symfony 5 или 6
  • Обновление с Композитора 1 до Композитора 2
  • Обновление с PHP 7 до PHP 8
  • Замена пользовательского интерфейса jQuery современными компонентами JavaScript
  • Больше нет поддержки Internet Explorer 11

 

2. Браузер проекта

С Drupal 10 на борту разработчики могут легко искать и устанавливать модули прямо со своей панели администратора сайта Drupal. Интерфейс drupal просто похож на магазин интеллектуальных приложений, что делает Drupal еще более мощным и восхитительным. Это последняя функциональность, которая будет добавлена в CMS Drupal.

Это модуль браузера проекта, созданный на ранних стадиях разработки. Инструмент DrupalPod создаст облачную среду разработки Drupal в браузере. Здесь вы увидите вкладку «Расширение», на которой вы можете просто просматривать проекты.

 

3. Облегчает Разделение Меню

Drupal 10 станет одной из ведущей CMS в 2022 году благодаря своим функциям, включая безголовую архитектуру и развязанные технологии. Drupal CMS предлагает вам опыт разработки Javascript и позволяет интерфейсу Javascript использовать меню, управляемые в Drupal.

Drupal 10 предлагает поддержку API REST, JSON и GraphQL. Кроме того, это позволяет вам создать обширный репозиторий веб-компонентов и интеграций фреймворков.

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

 

4. Автоматическое обновление

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

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

 

5. Новая тема Frond-End По Умолчанию

В Drupal 10 появилась новая современная тема Olivero, заменяющая существующую, Bartik. Платформа обеспечивает полную доступность. Здесь вы получите минимум проблем с контрастностью, фокусировкой, масштабированием и созданными формами.

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

 

6. Новый инструмент темы Starterkit

Ранее Drupal 8 и 9 часто использовали основную стильную тему для подтемы. Создатели Drupal в настоящее время работают над новым рабочим процессом для создания пользовательских тем и новым инструментом тем для начального набора в Drupal 10.

Дизайнеры смогут создавать отличные и современные дизайны, используя новейший инструмент для создания тем. Кроме того, они могут вносить изменения быстрее и проще, поскольку инструмент «Тема» не будет напрямую влиять на рабочие темы.

 

Вывод

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

Я надеюсь, что на данный момент вы поняли об обновлениях, которые содержит версия Drupal 10. Мы в Classic Informatics поможем вам обновить ваш веб-сайт до последней версии Drupal, которая обеспечивает высокую безопасность, стабильность, производительность и надежность.



2022-01-20T16:12:30
Drupal

Drupal 7 – работа с пользователями и ролями

В настоящее время поддержка многопользовательского режима для современных веб-приложений является одним из ключевых факторов на пути к завоеванию популярности среди пользователей и их же симпатии. Так, например, если уникальность контента очень привлекает поисковые системы и способствует продвижению сайта в топ поисковой выдачи. То возможность пообщаться, подискутировать в комментариях к статьям. Или писать собственные статьи, делясь информацией, опытом и т. д. привлекает и часто заставляет возвращаться на полюбившийся ресурс уже самих пользователей. Это довольно занятно — иметь своё место в сети на разных сайтах. Оформляя аккаунты по вкусу, задавая никнеймы, аватары, статусы, олицетворяя таким образом в электронной вселенной собственную персону. Для администраторов многопользовательский доступ — это прежде всего сфера повышенной ответственности по управлению сайтом. В данной статье речь пойдёт о том, как организован многопользовательский доступ и как, собственно, управлять пользователями в популярной CMS Drupal 7.

Концепция многопользовательского доступа для сайтов Drupal

В базовой поставке дистрибутива Drupal предусмотрена довольно продвинутая система многопользовательского доступа к сайту. Пользователь в Drupal – это не просто учётная запись. Но ещё и набор разрешений на доступ и использование функционала системы. Пользователь связан со своими разрешениями посредством членства в группе. А группа — это и есть набор разрешений, которыми она определяется.

По-умолчанию, при создании нового пользователя, если в системе нет других групп кроме тех, что определены по-умолчанию (администратор и авторизованный пользователь). Он (пользователь) добавляется именно в группу авторизованных пользователей. Это те пользователи, которые прошли авторизацию при входе на сайт. Но при этом не входят ни в какую специально определённую для них группу. Об этом администраторам необходимо помнить при проведении многопользовательской политики. Как нетрудно догадаться, группы создаются отдельно от пользователей. Для каждой группы определяются разрешения в системе. Это в общем-то, классическая модель многопользовательского доступа и распределения прав. Ключевыми элементами здесь являются разрешения, ключевыми субъектами — пользователи. Ну а объединяющими и связывающими элементами между разрешениями и пользователями являются роли. Они служат исключительно для удобства проведения той самой политики многопользовательского доступа. Ведь куда практичнее и быстрее управлять одной группой пользователей, нежели отдельно каждым из них. А два и более пользователей с идентичными разрешениями, которые можно (и нужно) заключить в группу, найдутся всегда.

Некоторые дополнительные модули, которые так или иначе связаны с расширением функционала многопользовательского доступа в Drupal. Могут дополнять страницы интерфейса панели администрирования для управления пользователями и разрешениями новыми элементами. Таковыми являются вкладки в верхней части страницы. По-умолчанию, в базовой поставке Drupal 7 доступно две — «СПИСОК» и «ПРАВА ДОСТУПА». Например, если установить модуль HybridAuth Social Login, то добавится и соответствующая вкладка — «HYBRIDAUTH». Она направляет на страницу просмотра доступных для конкретного пользователя учётных записей социальных сетей, с помощью которых он авторизуется на сайте.

Рис. 1: Общий вид страницы управления пользователями по-умолчанию (без дополнительных модулей).
Рис. 1: Общий вид страницы управления пользователями по-умолчанию (без дополнительных модулей).

Также в результате установки новых модулей могут добавляться и новые категории настроек на страницу конфигурирования учётной записи пользователя. Так, после установки модуля CKEditor, доступна новая категория настроек «НАСТРОЙКИ РАСШИРЕННОГО ТЕКСТОВОГО РЕДАКТОРА». Которая позволяет сконфигурировать для пользователя использование расширенного текстового WYSIWYG-редактора для создания текстового содержимого материалов и/или статей на сайте. Подобные возможности по-умолчанию доступны только администратору. Однако, в соответствии с проводимыми политиками безопасности и многопользовательского доступа. Можно настроить соответствующие разрешения и для групп обычных пользователей.

Рис. 2: Категория настроек, добавляемая модулем CKEditor на странице редактирования учётной записи пользователя.
Рис. 2: Категория настроек, добавляемая модулем CKEditor на странице редактирования учётной записи пользователя.

Управление ролями

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

Роли создаются на странице управления разрешениями, доступной по адресу http://drupal-site/admin/people/permissions/roles. Условно предполагается, что базовый адрес сайта http://drupal-site. На следующих рисунках можно видеть, как организован пользовательский интерфейс панели администрирования по управлению ролями и разрешениями пользователей:

Рис. 3: Добавление новой роли (группы) на странице управления ролями в Drupal 7.
Рис. 3: Добавление новой роли (группы) на странице управления ролями в Drupal 7.

Как можно видеть, для создания роли предназначена соответствующая кнопка. Роли необходимо задать имя и далее назначить ей требуемые разрешения. Отметив соответствующие чекбоксы в общем списке всех доступных для системы. Который формируется из функционала как ядра Drupal, так и установленных и включенных на данный момент модулей. После всех сделанных настроек необходимо сохранить изменения нажатием на кнопку «Сохранить» внизу страницы.

Рис. 4: Административная страница со списком разрешений для роли.
Рис. 4: Административная страница со списком разрешений для роли.

Управление пользователями

Для управления пользователями служит административная страница по адресу http://drupal-site/admin/people. Здесь приводится список всех зарегистрированных на сайте пользователей. Набор фильтров для показа только определённых категорий пользователей. А также основные действия над пользовательскими аккаунтами: блокировка/разблокировка учётных записей, удаление и назначение ролей. Следует заметить, что пользователь может входить только в одну группу, т. е. иметь только одну роль.

Для добавления нового пользователя предназначена ссылка «Добавить пользователя» вверху страницы:

Рис. 5: административная страница добавления нового пользователя в Drupal 7.
Рис. 5: административная страница добавления нового пользователя в Drupal 7.

Страница настроек пользователя

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

  • имя пользователя и его регистрационный e-mail – обязательные поля;
  • пароль — обязательное поле;
  • статус — активен или заблокирован;
  • назначаемая роль — по-умолчанию «авторизованный пользователь»;
  • языковые настройки — используется для отображения меню и элементов управления пользовательского интерфейса на требуемом языке.

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

По завершении редактирования учётной записи необходимо сохранить сделанные изменения. Нажав на всё ту же кнопку «Сохранить» внизу страницы.

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-05-27T12:34:30
Drupal

Перевод пользовательского интерфейса в Drupal 7

Несомненно, для современного программного обеспечения (ПО), отвечающего всем критериям качества. Одним из самых важных является наличие локализаций, соответствующих родному языку пользователей, использующих это ПО. Это обстоятельство оказывает довольно заметное влияние также и на удобство использования ПО. И как следствие, на его популярность. Учитывая это, разработчики стремятся наделить свои программные продукты гибкой системой локализации. Способной не только предоставить пользователю выбор заранее определённых переводов интерфейса, но также и возможность самостоятельно создавать собственные переводы. Именно так и организована система локализации для CMS Drupal. О которой более подробно будет рассказано в данной статье.

Система локализации в Drupal 7

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

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

Основу системы локализации Drupal составляет функция t() — от слова «translate», т. е. «перевод». Эта функция в качестве параметра получает строку (только на английском языке) и возвращает её перевод на том языке, который установлен основным для сайта в целом или для текущего пользователя. Да, каждый пользователь сайта на Drupal может выбрать для своего аккаунта язык по-умолчанию. Если это разрешено администратором.

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

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

  • ядро системы;
  • переводы для модулей;
  • переводы для тем оформления.

Где найти переводы для Drupal

На официальной странице поддержки переводов для Drupal https://localize.drupal.org/ можно найти все требуемые локализации как для ядра Drupal, так и для его модулей и тем, причём раздельно для разных версий. Переводы представляют собой файлы *.po, которые удобно импортировать в систему. Таким образом и устанавливается новый язык.

Поскольку при установке новых модулей (как и тем оформления) в интерфейс чаще всего добавляются новые формы и элементы управления, то по-умолчанию они отображаются на базовом языке системы, т. е. на английском. Для их перевода необходимо скачать соответствующие для этих модулей файлы *.po и вручную их импортировать. Однако, этот процесс можно автоматизировать и при установке новых модулей, Drupal будет самостоятельно обнаруживать необходимые переводы, скачивать их и устанавливать. Для этого предназначен модуль «Localization update». Он выводит и без того прекрасную функциональность системы локализации Drupal, на ещё более продвинутый уровень, обеспечивая, помимо автоматической установки переводов, также и проверку их обновлений.

Страница управления переводами и их настройками доступна по адресу http://drupal-site/admin/config/regional/translate. Или же можно на странице конфигурации системы (пункт «Конфигурация» в главном меню) щёлкнуть по ссылке «Перевод интерфейса», находящейся в категории «Регион и язык». Все рекомендации даются с расчётом на то, что русская локализация уже установлена. Это можно, кстати, сделать ещё на этапе установки Drupal.

Экспорт и импорт переводов

Страница управления переводами в Drupal располагает несколькими категориями задач, среди которых экспорт и импорт переводов. Управление и опции для этих задач доступны в соответствующих вкладках. Например, на вкладке «Обзор» имеется список всех установленных в системе языков с указанием объема перевода в процентном соотношении.

Рис. 1: Административная страница состояния переводов.

Но более полезными в практическом являются вкладки «Экспортировать» и «Импортировать». Здесь несложно разобраться. Предоставляемый функционал позволяет экспортировать переводы для требуемого языка в файл готовых переводов *.po или в файл шаблона переводов *.pot. Последний отличается тем, что содержит лишь строки оригинального языка без соответствующих вариантов перевода. Это удобно, например, когда нужно подготовить строки локализации для их последующего перевода другими людьми или профессиональными переводчиками. Опция «Текстовая группа» определяет, для какой части системы должен производиться экспорт. В данном случае это встроенный интерфейс Drupal.

Рис. 2: Административная страница управления экспортом переводов.
Рис. 2: Административная страница управления экспортом переводов.

С импортом переводов (вкладка «Импортировать») также всё довольно просто. Нужно лишь выбрать требуемый файл переводов (*.po), указать язык, в который добавляются импортируемые переводы, а также определить категорию переводов (как и в случае с экспортом) и режим самого перевода. Для последнего характерны два варианта, отличающиеся только тем, что в одном из них полностью заменяются существующие (идентичные) строки, а в другом они же игнорируются.

Рис. 3: Административная страница управления импортом переводов.
Рис. 3: Административная страница управления импортом переводов.

Ручной перевод отдельных строк

Для ручного перевода предназначена вкладка «Перевод». Здесь представлен список оригинальных строк (на английском языке), для которых можно определить, изменить или вовсе удалить переводы для имеющихся в системе языков. В этой таблице можно также видеть, к какой текстовой группе относится конкретная строка, а также перечень языков, на которых для неё имеются переводы.

Рис. 4: Список строк локализации для редактирования переводов.
Рис. 4: Список строк локализации для редактирования переводов.

В поле поиска можно вводить строки на любом языке. Например, если нужно изменить перевод вкладки «Импортировать» на более короткое «Импорт». То нужно попытаться найти эту строку, введя в поисковую строку «Импортировать». Если таковой перевод имеется, то для него будут показаны все соответствующие совпадения:

Рис. 5: Поиск нужной строки перевода.
Рис. 5: Поиск нужной строки перевода.

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

Рис. 6: Редактирование переводов для имеющихся языков.
Рис. 6: Редактирование переводов для имеющихся языков.

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

Рис. 7: Результат отредатированного перевода вкладки со старым названием "Импортировать".
Рис. 7: Результат отредатированного перевода вкладки со старым названием «Импортировать».

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-05-27T11:42:26
Drupal

Работа с блоками в Drupal 7

Базовыми компонентами для построения страниц в Drupal являются блоки. Практически всё, что отображается на странице — это содержимое блоков. Выводя или скрывая требуемые блоки, легко создавать оригинальные компоновки контента. Располагая их в любой части шаблона: левая и правая колонка, шапка, подвал, дополнительные регионы, специфичные для конкретной темы оформления. В данной статье будет показано, каким образом управлять блоками Drupal 7, используя инструментарий панели администратора.

Что такое блоки Drupal?

Все данные в CMS Drupal представляют собой не разрозненную информацию, а строго структурированные наборы полей данных — сущностей. А то, как выглядит эта сущность на странице — определяется блоком Drupal. Кстати сказать, сущности — это комментарии, формы авторизации, основное содержимое страницы. Которые рендерятся на странице в виде блоков. Чтобы вывести на странице форму поиска на сайте (которая, как можно догадаться, также являются сущностью). Нужно просто отобразить соответствующий для неё блок. Если для сущности нет соответствующего блока, то его нетрудно создать.

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

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

Управление блоками

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

Для отображения блока в нужном месте (регионе) страницы, необходимо для этого блока назначить соответствующий регион. Для этого служит интерактивная таблица настройки расположения блоков. Она доступна через панель администрирования Drupal 7 по адресу http://drupal-site/admin/structure/block. Туда же можно попасть, кликнув пункт «Структура» в главном меню администрирования и далее — «Блоки».

Рис. 1: Страница управления блоками Drupal 7.
Рис. 1: Страница управления блоками Drupal 7.

Для блоков также доступны индивидуальные настройки (ссылка «настроить» в третьей колонке таблицы), с помощью которых задаются такие параметры как:

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

Рис. 2: Страница настройки индивидуальных опций блока.
Рис. 2: Страница настройки индивидуальных опций блока.

Для добавления своего собственного блока служит ссылка «Добавить блок». Однако, в данном случае это будет самый простой блок, содержащий в основном только текстовое содержимое, как обычная статья. Более сложные блоки с выводом полей и интерактивными элементами следует создавать программно или с использованием модуля Views.

Регионы разметки страницы

Прежде, чем начать непосредственно настраивать компоновку страниц, управляя расположением блоков, необходимо, как уже было отмечено выше, чётко представлять, где расположены регионы, в которых требуется разместить нужные блоки. Для этой цели на странице управления блоками (см. предыдущую главу) нужно кликнуть ссылку «Показать области блоков (Bartik)». Здесь в скобках указывается тема оформления, для которой будет показана схема расположения регионов. Дело в том, что для каждой темы оформления предусматривается собственный оригинальный каркас, в котором дизайнер вместе с верстальщиком определяют регионы Drupal для расположения блоков. Выбрать тему, для которой требуется настроить расположение и состав блоков позволяют вкладки вверху страницы.

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

Рис. 3: Страница демонстрации схемы расположения регионов для темы оформления в Drupal.
Рис. 3: Страница демонстрации схемы расположения регионов для темы оформления в Drupal.

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

Размещение блоков и компоновка страницы

Теперь можно на примере рассмотреть, как размещать блоки. По-умолчанию, после установки Drupal 7, на страницах доступно 6 основных блоков: содержимое, форма поиска, вход на сайт, навигация, системная справка и подпись «Создано на Drupal» в подвале. Первые три блока явно бросаются в глаза. На следующей иллюстрации они отмечены зелёным цветом:

Рис. 4: Компоновка страницы Drupal стандартным набором блоков.
Рис. 4: Компоновка страницы Drupal стандартным набором блоков.

Если теперь на странице управления блоками для блока «Содержимое страницы» указать регион «Вторая боковая панель». То страница будет выглядеть следующим образом:

Рис. 5: Задание расположения блока в Drupal 7.
Рис. 5: Задание расположения блока в Drupal 7.

 

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

Рис. 6: Блок с основным содержимым страницы перемещён во вторую боковую панель.
Рис. 6: Блок с основным содержимым страницы перемещён во вторую боковую панель.

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

Блоки, не помещённые ни в один регион, помещаются в самый низ таблицы настроек, в категорию «Отключено». А наименование области для них в соответствующем столбце имеет значение «не указано». Следует заметить, что в таблице присутствуют другие категории, соответствующие наименованиям регионов. В этих категориях представлены, как нетрудно догадаться, блоки, помещённые в соответствующий категории регион.

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-05-20T15:17:41
Drupal

Чистые ссылки в Drupal 7 – общие сведения, неполадки и их устранение

Нередко разработчики или владельцы сайтов на Drupal сталкиваются с такой особенностью этой CMS, как «чистые» ссылки. Дело в том, что архитектура Drupal (до 7-й версии включительно) устроена таким образом, что ссылки на страницы генерируются только в машинопонятном виде. Это неудобно для ручной навигации по адресам, а также вызывает ряд других проблем. В данной статье будет рассказано, каким образом включать «чистые» ссылки в Drupal 7. А также рассмотрены некоторые распространённые неполадки, связанные с работой «чистых» ссылок и методы их устранения.

Что такое «чистые» ссылки и для чего они нужны?

«Чистая» красивая и понятная ссылка выглядит, например, так:

https://drupal-site/user

Обычная ссылка, генерируемая Drupal 7 куда менее привлекательна и наглядна:

https://drupal-site/?q=user

Обычному пользователю последний вариант практически ни о чём не говорит. А вот программист или хакер сразу поймёт, каким образом и какие параметры нужно передавать через базовый адрес drupal-site. Чтобы достичь (или даже попытаться взломать) какую-либо страницу сайта. Таким образом чистые ссылки играют не последнюю роль в безопасности сайта. Да и вообще любого веб-приложения.

Поисковые системы, когда встречают ссылку, которая не очищена от технического «мусора» обычно её пропускают и не индексируют. Какой бы интересный контент по этой ссылке ни находился. Отсюда вывод: «чистые» ссылки играют важную роль для SEO – поисковой оптимизации контента веб-приложения, т. е. сайта. Быстро и качественно продвинуть для поисковиков такой сайт точно не получится, если получится вообще.

Поэтому для сайтов, созданных на CMS Drupal версии 7 и более ранних необходимо следить за тем, чтобы «чистые» ссылки (ЧС) были во-первых: включены в панели администрирования, а во-вторых поддерживались конфигурацией веб-окружения, на котором работает сайт.

Как включить «чистые» ссылки в Drupal 7?

Перейдя в раздел «Конфигурация». А затем выбрав в категории «Поиск и метаданные» пункт «Чистые ссылки», ЧС могут быть включены:

Следует ещё раз обратить внимание на конкретном примере, насколько удобочитаемым выглядит адрес в режиме работы ЧС:

Обычно, опция включения «чистых» ссылок активна. Если Drupal не «сомневается» в задействовании такой возможности. Если же по каким-то причинам Drupal не может определить, возможно ли использование ЧС. Он предложит провести тест проверки вручную. Это сделано для того, чтобы лучше контролировать процесс устранения неполадок с работой ЧС. Например:

Неполадки с «чистыми» ссылками и их устранение

С работой ЧС часто возникают две основные проблемы:

  • отсутствует или отключен модуль для перестроения URL-адресов, в частности, преобразующий их в «чистые» ссылки, такой как mod_rewrite для Apache;
  • использование HTTPS-протокола для базового URL веб-приложения, что как таковой проблемой не является. Однако в этом случае Drupal не может корректно выполнить тест работы ЧС и активировать соответствующую опцию.

В первом случае необходимо проверить, установлен и включен ли модуль rewrite Apache:

$ apachectl -M | grep rewrite

rewrite_module (shared)

Данный вывод говорит о том, что нужный модуль включен, в противном случае вывод будет пустым. Это также можно проверить вручную, просмотрев содержимое каталога /etc/ apache2/mods-enabled:

$ ls /etc/apache2/mods-enabled | grep rewrite

rewrite.load

В случае, если вывод будет пустым, нужно установить модуль rewrite для Apache. Если в системе доступны служебные утилиты Apache, среди которых a2enmod, то включить требуемый модуль можно очень быстро командой:

$ sudo a2enmod rewrite

Со вторым случаем, когда не удаётся задействовать ЧС, часто сталкиваются, когда переводят сайт на использование защищённого протокола HTTPS. В такой ситуации используют редирект с обычной версии сайта на HTTPS. Например такой (зависит от настроек веб-окружения):

RewriteCond %{HTTPS} off

RewriteRule (.*) https://{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Подобные записи делаются в файле .htaccess Drupal и именно это мешает выполнению теста ЧС. В данном случае нужно просто задействовать их принудительно, добавив в файл drupal-site/sites/default/settings.php строку:

$conf[‘clean_url’] = 1;

Также необходимо определить новый базовый адрес сайта, основанный на HTTPS:

$base_url = ‘https://drupal-site’;

Стоит обратить внимание, что каталог default и сам файл settings.php защищены от записи. Перед внесением изменений необходимо настроить соответствующие режимы доступа.

Дополнительной мерой для обеспечения работы ЧС в Drupal является задание директивы Apache AllowOverride All для корневого каталога виртуальных хостов, например:

AllowOverride All

Также желательно, чтобы в файле .htacces или в конфигурационном файле виртуального хоста сайта на Drupal присутствовали следующие инструкции:

RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !=/favicon.ico

RewriteRule ^ index.php [L]

Заключение

В заключение нужно отметить, что рассмотренные проблемы с ЧС — самые распространённые. Которые могут возникнуть на любом используемом хостинге. А рассмотренные методы их устранения рекомендованы самими разработчиками Drupal

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-04-22T15:14:51
Drupal

Программный вывод полей в Drupal 7

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

Когда нужно выводить поля программно?

Поле необходимо выводить программно в следующих случаях:

  • Когда изначально не представляется возможным задействовать стандартный инструментарий пользовательского интерфейса, по-умолчанию предоставляемого Drupal. Например, когда разрабатывается новый модуль, который работает с данными полей, которые необходимо определённым образом отображать;
  • Когда необходимо вывести поле в непредусмотренном для него месте.

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

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

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

В итоге, программный вывод полей применяется для их вывода вне их сущностей. Теперь, для более полного понимания, необходимо разобраться с «сущностями» Drupal.

Что такое сущности Drupal 7?

Сущность Druapl – это уровень абстракции, характеризующий структуры данных Drupal. Таких структур в Drupal очень много, поэтому в 7-й версии этой CMS разработчиками было введено такое понятие — сущность или entity.

Как можно догадаться из предыдущей главы, комментарий — это сущность типа «comment». Тип материала, нода (node – узел), пользователи, термины таксономии, блоки — это также сущности, состоящие из определённого набора полей. Сущности можно формировать и создавать самостоятельно. После этого они будут готовы к выводу как единое целое.

Поле Drupal является базовым элементом в структуре объектов Drupal. Что касается ноды Drupal, то с технической точки зрения, нода — это верхушка иерархии этих объектов, наиболее общая сущность, практически объединяющая все остальные. Визуально для пользователя, нода — это отображаемая в конечном виде страница Drupal. Содержащая материал, блоки, комментарии, теги и т. д. Которые, в свою очередь, также являются сущностями. Получить доступ к отдельным полям сущностей, и автоматически настроить их вывод позволяет функция field_view_field() из API Drupal 7.

Использование функции field_view_field()

Теперь можно более подробно рассмотреть, как работает функция field_view_field(). Она сама ничего не выводит, но производит большую работу:

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

Второй пункт позволяет использовать функцию field_view_field() гибко, передавая в неё массив, содержащий всевозможные опции вывода, например:

  • выводить ли поле вместе с его меткой (Label);
  • если это текст, то в каком объёме (по количеству символов) его вывести;
  • если это изображения (или ссылка на него), то какой формат (размер, графические эффекты) к нему применить;
  • и многие другие.

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

Синтаксис функции field_view_field() следующий:

<?php

field_view_field($entity_type, $entity, $field_name, $display, $langcode)

Назначение её параметров:

  • $entity_type – тип сущности (например комментарий или нода), к полю которого нужно получить доступ;
  • $entity – идентификатор сущности;
  • $field_name – машинное имя поля, к которому нужно получить доступ;
  • $display – настройки отображения поля, которые могут быть заданы в составе массива опций, определяющих вывод;
  • $langcode – опционально, задаёт язык кода, на котором должно отображаться значение поля.

Небольшой пример:

<?php

$nid = node_load($node);

$output = field_view_field(‘node’, $nid, ‘field_preamble’, array(

         ‘label’ => ‘hidden’,

         ‘type’ => ‘test_summary_or_trimmed’,

         ‘settings’ => array(‘trim_length’ => 150)));

render($output);

В данном примере опущена HTML-разметка для чистоты восприятия кода, который в произвольном месте страницы выводит поле «field_preamble». Хранящее содержимое преамбулы к статье. Также производится его форматирование, которое заключается в том, чтобы не выводилась метка этого поля, а содержимое было обрезано до 150 символов. Возвращаемый результат присваивается переменной $output. После чего она передаётся в функцию render() для рендеринга на странице.

А как быть, когда сущность имеет несколько значений одного поля? Например, когда для поля «field_image» определено несколько значений, т. е. изображений. Нужно сначала получить список всех значений поля с помощью функции field_get_items(). А затем, отобрав нужное значение, обработать его функцией field_view_value(). Которая аналогична field_view_field(), но предназначена для работы с конкретным значением поля. Пример:

<?php

$image = field_get_items(‘node’, $nid, ‘field_image’);

$output = field_view_value(‘node’, $nid, ‘field_image’, $image[0], array(

       ‘label’ => ‘hidden’,

       ‘type’ => ‘image’,

       ‘settings’ => array(

               ‘image_style’ => ‘thumbnail’,

               ‘image_link’ => ‘content’,

      ),

));

Как можно видеть, сначала определяется список значений поля «field_image», который присваивается переменной $image. Далее, функция field_view_value() получает доступ к переданному ей нужному значению поля «field_image» (по индексу списка или массива $image[]) и форматирует его вывод для последующего рендеринга.

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-04-22T13:54:15
Drupal