С помощью движка Drupal 8 можно с легкостью создать личный сайт-блог, который будет включать в себя не только сам блог, но и дополнительные разделы, которыми очень легко управлять (кстати, этот сайт, страницу которого вы сейчас читаете, как раз и работает на Drupal 8).
Макет сайта будет состоять из следующих элементов:
- чердак с логотопом-баннером,
- меню с основной навигацией по сайту,
- основной раздел с контентом, где будут отображаться публикации,
- подвал с контактной информацией и логотипом.
Структура сайта несложная:
- Главная страница с подборкой 12 последних публикаций,
- Раздел "Заметки" со списком всех публикаций, отсортированных по дате публикации по убиванию,
- Раздел "Библиотеки", в котором будут собраны файлы для загрузки, например инструкции, сканы интересных публикаций или архивы,
- Раздел "Галереи", в котором будут размещены фотографии и картинки,
- Карта сайта, которая будет отображать всю структура сайта.
Итак, приступим к созданию сайта.
В заметке "Установка Drupal 8 на сервере CentOS 7" я уже рассказывал, как установить ядро Drupal на сервере, поэтому в этой статье будет я сразу перейду к модификации Drupal под личный блог.
Сначала на сайт надо загрузить несколько картинок, которые будут использоваться по умолчанию для обложек заметок, которые показываются на главной странице сайта. Для каждой заметки я использую обложку размером 300х200, подгружаемую из галереи картинок сайта, поэтому необходимо создать новый тип стиля изображения с именем Gallery thumbnail (300x200) на странице Administration \ Configuration \ Media Image styles (Администрирование \ Конфигурация \ Мультимедиа \ Стили изображения) - http://имя-сайта-или-ip-адрес/admin/config/media/image-styles.
Когда новый стиль изображения создан, необходимо загрузить несколько универсальных картинок в библиотеку в раздел Administration \ Content \ Media (Администрирование \ Содержимое \ Мультимедиа) - http://имя-сайта-или-ip-адрес/media/add/image.
Дополнительно к изображениям в библиотеке потребуются картинки для шаблона оформления сайта. Эти картинки, такие как логотипы, иконки, баннеры и тому подобное, надо загружать по FTP протоколу в специальную папку сервера /var/www/drupal/web/sites/default/files/images, путь которой позднее будет упоминаться в шаблонах в HTML-коде, хотя выбрать такие картинки из портала управления сайтом будет нельзя.
В разделе Administration \ Structure \ Menus (Администрирование \ Структура \ Меню) - http://имя-сайта-или-ip-адрес/admin/structure/menu в настройках меню Main navigation (Главное меню) отключить ссылку Home (Главная), переименовать меню в Главное меню и создать пункт меню Карта сайта, ссылающийся на страницу /sitemap (другие пункты меню создавать на этом этапе не нужно):
- Главная - /
- Карта сайта - /sitemap
Далее надо создать пользовательские блоки SiteHeader и SiteFooter в разделе Administration \ Structure \ Block layout \ Custom block library (Администрирование \ Структура \ Схема блоков \ Пользовательские блоки) - http://имя-сайта-или-ip-адрес/admin/structure/block/block-content.
Для SiteHeader в редакторе контента задать html-код для шапки своего сайта, например так:
<div><a href="http://www.mysite.ru"><img alt="mysite.ru" height="65/" height:="" src="/sites/default/files/images/SiteHeader.png" /></a></div> <div style="margin: 0px; padding: 0px; font-size: 12pt; font-weight: bold; letter-spacing: 2px;">Мой сайт</div>
Для SiteFooter в редакторе контента задать html-код для подвала своего сайта, например так:
<div style="width: 90px; float: left;"> <a href="http://metrika.yandex.ru/stat/?id=517165" target="_blank"> <img alt="MySite" border="0" src="/sites/default/files/images/MySite-logo.png" /> </a> </div> <div style="width: 90px; float: right;"> <!-- start Rambler Top100 code --> <script id="top100Counter" type="text/javascript" src="http://counter.rambler.ru/top100.jcn?1938909"></script> <noscript> <a href="http://top100.rambler.ru/navi/1938909/"> <img src="http://counter.rambler.ru/top100.cnt?1938909" alt="Rambler's Top100" border="0"/> </a> </noscript><!-- end Rambler Top100 code --> </div> <div style="text-align: center; margin: 0px; font-size: 0.8em;">город Бор - Нижегородская область - Россия<br /> © 2009-2020, Vitaly Bochkarev, E-mail: <a href="mailto:vitaliyboch@yandex.ru">vitaliyboch@yandex.ru</a></div>
В итоге получится два базовых пользовательских блока, которые впоследствии будут размещены в структуре шаблона сайта.
Следующий шаг - это создание типов материалов (контента) в разделе Structure \ Content types (Структура \ Типы материалов) - http://имя-сайта-или-ip-адрес/admin/structure/types. Перед созданием своих типов материалов надо удалить встроенные типы Article и Basic page.
А потом нужно создать типы Заметка, Библиотека, Галерея и Простая страница.
Параметры для типа материала Заметка:
- в поле Name (Название) дать типу название Заметка;
- нажать Edit (Редактировать) после поля Name (Название) и установить машинное имя note;
- убрать в Display settings (Настройки отображения) опцию Display author and date information (Отображать автора и информацию о дате);
- убрать в Menu settings (Настройки меню) опцию Главное меню (Основная навигация), которую нужно будет активировать позднее, когда будет создан пункт меню Заметки;
- сохранить тип материала и перейти на вкладку Manage fields (Управление полями);
- во вкладке Manage fields (Управление полями) удалить поле Body;
- добавить поле Text (formatted, long, with summary) (Текст (форматированный, длинный с резюме)):
- Label (Метка) - Содержимое,
- Machine name (Машинное имя) - content,
- Allowed number of values (Допустимое количество значений) - Limited (Ограниченно): 1,
- Required field (Обязательное поле) - установлено,
- Summary input (Ввод краткого содержания) - установлено
- добавить поле Taxonomy term (Термин таксономии):
- Label (Метка) - Метки,
- Machine name (Машинное имя) - tags,
- Allowed number of values (Допустимое количество значений) - Unlimited (Неограниченно),
- Vocabulary (Словарь) - Tags (Теги),
- Create referenced entities if they don't already exist (Создать сущности по ссылке, если они еще не созданы) - установлено
- добавить поле File (Файл):
- Label (Метка) - Вложения,
- Machine name (Машинное имя) - attachments,
- Allowed number of values (Допустимое количество значений) - Unlimited (Неограниченно),
- Allowed file extensions (Допустимые расширения файлов) - txt pdf doc docx xls xlsx zip gz tar,
- File directory (Каталог файлов) - notes/attachments/[date:custom:Y]-[date:custom:m],
- Maximum upload size (Максимальный размер закачки) - 20M,
- Enable Description field (Включить поле Описание) - установлено.
- добавить поле Media (Мультимедиа):
- Label (Метка) - Промокартинка,
- Machine name (Машинное имя) - promoimage,
- Allowed number of values (Допустимое количество значений) - Limited (Ограниченно): 1,
- Required field (Обязательное поле) - установлено,
- Media type (Тип мультимедиа) - Image (Картинка),
- Default value (Значение по умолчанию) - Promo - Note - Описание изображения (картинка, загруженная ранее).
- переключиться в раздел Manage form display (Управление отображением формы);
- кнопкой Add field group (Добавить группировочное поле) создать группу вкладок Tabs (Вкладки):
- Label (Метка) - Tabs,
- Machine name (Машинное имя) - tabs,
- Direction (Направление) - Horizontal (Горизонтально).
- кнопкой Add field group (Добавить группировочное поле) создать вкладку Tab (Вкладка):
- Label (Метка) - Content,
- Machine name (Машинное имя) - content.
- кнопкой Add field group (Добавить группировочное поле) создать вкладку Tab (Вкладка):
- Label (Метка) - Other,
- Machine name (Машинное имя) - other.
- во вкладку Content поместить Title (Заголовок) и Содержимое;
- во вкладку Other поместить Промокартинка, Вложения и Метки;
- сами вкладки Content и Other поместить в Tabs и переместить всю группу вкладок наверх списка;
- переключиться в раздел Manage display (Управление отображением);
- переместить Промокартинка в Disabled (Отключены);
- установить у Содержимое параметр Label (Метка) в -Hidden- (-Скрытый-);
- отсортировать оставшиеся элементы в таком порядке: Links (Ссылки), Содержимое, Вложения, Метки.
Параметры для типа материала Простая страница:
- в поле Name (Название) дать типу название Простая страница;
- нажать Edit (Редактировать) после поля Name (Название) и установить машинное имя basic_page;
- убрать в Publishing options (Настройки публикации) опцию Promoted to front page (Помещено на главную страницу) и Create new revision (Создать новую редакцию);
- убрать в Display settings (Настройки отображения) опцию Display author and date information (Отображать автора и информацию о дате);
- убрать все опции в Menu settings (Настройки меню);
- во вкладке Manage fields (Управление полями) удалить поле Body;
- через опцию Re-use an existing field (Использовать существующее поле) добавить поле Text (formatted, long, with summary) (Текст (форматированный, длинный с резюме)): field_content:
- Label (Метка) - Содержимое,
- Required field (Обязательное поле) - установлено,
- Summary input (Ввод краткого содержания) - установлено.
Параметры для типа материала Библиотека:
- в поле Name (Название) дать типу название Библиотека;
- нажать Edit (Редактировать) после поля Name (Название) и установить машинное имя library;
- убрать в Publishing options (Настройки публикации) опцию Promoted to front page (Помещено на главную страницу) и Create new revision (Создать новую редакцию);
- убрать в Display settings (Настройки отображения) опцию Display author and date information (Отображать автора и информацию о дате);
- убрать все опции в Menu settings (Настройки меню), так как эта опция будет активирована позднее, когда будет создан пункт меню Галереи;
- во вкладке Manage fields (Управление полями) удалить поле Body;
- через опцию Re-use an existing field (Использовать существующее поле) добавить поле File (Файл): field_attachments:
- Label (Метка) - Вложения,
- Required field (Обязательное поле) - не установлено,
- Allowed file extensions (Допустимые расширения файлов) - txt, pdf, doc, docx, xls, xlsx, zip, gz, tar,
- File directory (Каталог файлов) - library/[date:custom:Y]-[date:custom:m],
- Maximum upload size (Максимальный размер закачки) - 20M,
- Enable Description field (Включить поле Описание) - установлено.
- переключиться в раздел Manage display (Управление отображением);
- установить у Вложения параметр Label (Метка) в -Hidden- (-Скрытый-).
Параметры для типа материала Галерея:
- в поле Name (Название) дать типу название Галерея;
- нажать Edit (Редактировать) после поля Name (Название) и установить машинное имя gallery;
- убрать в Publishing options (Настройки публикации) опцию Promoted to front page (Помещено на главную страницу) и Create new revision (Создать новую редакцию);
- убрать в Display settings (Настройки отображения) опцию Display author and date information (Отображать автора и информацию о дате);
- убрать все опции в Menu settings (Настройки меню), так как эта опция будет активирована позднее, когда будет создан пункт меню Библиотеки;
- во вкладке Manage fields (Управление полями) удалить поле Body;
- через опцию Re-use an existing field (Использовать существующее поле) добавить поле Text (formatted, long, with summary) (Текст (форматированный, длинный с резюме)): field_content:
- Label (Метка) - Содержимое,
- Required field (Обязательное поле) - не установлено,
- Summary input (Ввод краткого содержания) - не установлено.
- добавить поле Image (Изображение):
- Label (Метка) - Картинки,
- Machine name (Машинное имя) - images,
- Required field (Обязательное поле) - установлено,
- Allowed file extensions (Допустимые расширения файлов) - png, gif, jpg, jpeg,
- File directory (Каталог файлов) - gallery/images/[date:custom:Y]-[date:custom:m],
- Enable Alt field (Показывать поле для ввода атрибута alt) - не установлено
- Enable Title field (Показывать поле для ввода атрибута title) - установлено.
- переключиться в раздел Manage display (Управление отображением);
- установить у Содержимое параметр Label (Метка) в -Hidden- (-Скрытый-),
- установить у Картинки параметр Label (Метка) в -Hidden- (-Скрытый-)..
Теперь, когда типы материалов созданы, необходимо создать отображения: Главная, Заметки, Галереи и Библиотека.
В разделе Administration \ Structure \ Views (Администрирование \ Структура \ Представления) с помощью кнопки Add view (Добавить представление) создать новое представление:
- View name (Имя представления) - Главная страница;
- Machine name (Машинное имя) - main_page;
- В поле View settings (Настроки представления) установить Show: Content of type All sorted by newest first (Показать: Содержимое типа: Все отсортированные по Новые сначала);
- В поле Page settings (Настройки страницы) установить опцию Create a page (Создать страницу) и заполнить параметры:
- Title (Заголовок страницы) - Главная страница,
- Path (Путь) - main,
- Page display settings (Настроки отображения страницы): Display format - Unformated list of fields (Формат отображения - Неформатированный список из поля),
- Items to display (Элементов для отображения) - 12,
- Use a pager (Использовать постраничную навигацию) - установлено,
- Create a menu link (Создать ссылку меню) - Главное меню (Основная навигация),
- Link text (Текст ссылки) - Главная страница,
- Нажать кнопку Save and edit (Сохранить и редактировать).
- В разделе Displays (Отображения) - Page установить недостающие настройки:
- Format (Формат) - Unformated list (Неформатированный список) - Settings (Настройки):
- Grouping field Nr.1 (Группирующее поле номер 1) - -None-,
- Row class (Класс строки) - col-xs-12 col-sm-6 col-md-4,
- Add views row classes (Добавить классы строк) - установлено.
- Fields (Поля) - исправить существующие и добавить недостающие:
- Content (Содержимое): Title (Заголовок):
- Formater (Средство форматирования) - Plain text (Простой текст),
- Link to content (Ссылается на Содержимое) - установлено.
- Content (Содержимое): Промокартинка:
- Formater (Средство форматирования) - Thumbnail (Миниатюра),
- Image style (Стиль изображения) - Gallery thumbnail (300x200),
- Link image to (Изображение как ссылка на) - Content (Содержимое).
- Content: Содержимое (Содержимое: Содержимое):
- Formater (Средство форматирования) - Smart trimmed,
- Trim length (Количество знаков) - 200,
- Trim units (Единицы обрезки) - Characters (Символы),
- Wrapped content class - trimmed,
- Display more link? (Показывать ссылку Еще) - установлено,
- More link text (Текст ссылки Еще) - Читать дальше,
- More link class - more-link,
- Summary (Сводка) - Use summary if present, honor trom settings,
- Strip HTML - установлено.
- Filter criteria (Критерии фильтрации) - исправить существующие и добавить недостающие:
- Content: Published (Содержимое: Опубликовано):
- Operator (Оператор) - Is equal to (Равно),
- Published status (Статус публикации) - Yes (Да).
- Content: Promoted to front page (Содержимое: Помещено на главную страницу):
- Operator (Оператор) - Is equal to (Равно),
- Promoted to front page status (Статус размещения на главной странице) - Yes (Да).
- Sort criteria (Критерий сортировки):
- Content: Authored on (Содержимое: Время создания):
- Order (Порядок) - Sort descending (Сортировать по убыванию),
- Granularity (Степень детализации) - Second (Секунда).
- Pager (Постраничный навигатор):
- Use pager (Использовать постраничный навигатор) - Paged output, full pager (Постраничный вывод, полный навигатор)
- Нажать кнопку Save (Сохранить).
В разделе Administration \ Structure \ Views (Администрирование \ Структура \ Представления) с помощью кнопки Add view (Добавить представление) создать новое представление:
- View name (Имя представления) - Заметки;
- Machine name (Машинное имя) - notes;
- В поле View settings (Настроки представления) установить Show: Content of type Заметка sorted by newest first (Показать: Содержимое типа: Заметка отсортированные по Новые сначала);
- В поле Page settings (Настройки страницы) установить опцию Create a page (Создать страницу) и заполнить параметры:
- Title (Заголовок страницы) - Заметки,
- Path (Путь) - collection/notes,
- Page display settings (Настроки отображения страницы): Display format - Unformated list of fields (Формат отображения - Неформатированный список из поля),
- Items to display (Элементов для отображения) - 0,
- Use a pager (Использовать постраничную навигацию) - установлено,
- Create a menu link (Создать ссылку меню) - Главное меню (Основная навигация),
- Link text (Текст ссылки) - Заметки,
- Нажать кнопку Save and edit (Сохранить и редактировать).
- В разделе Displays (Отображения) - Page установить недостающие настройки:
- Format (Формат) - Unformated list (Неформатированный список) - Settings (Настройки):
- Grouping field Nr.1 (Группирующее поле номер 1) - Content: Authored on (Содержимое: Время создания) - данная опция появляется, когда создано соответсвующее поле (смотрите ниже),
- Use rendered output to group rows (Использовать обработку сгруппированных строк) - установлено,
- Add views row classes (Добавить классы строк) - установлено.
- Fields (Поля) - исправить существующие и добавить недостающие:
- Content: Authored on (Содержимое: Время создания):
- Exclude from display (Исключить из вывода) - установлено,
- Date format (Формат даты) - HTML Year format: 2019 (Год HTML формат: 2019).
- Content: Authored on (Содержимое: Время создания):
- Date format (Формат даты) - HTML Date format: 2019-12-30 (Дата HTML формат: 2019 12 30).
- Content (Содержимое): Title (Заголовок):
- Formater (Средство форматирования) - Plain text (Простой текст),
- Link to content (Ссылается на Содержимое) - установлено.
- Отсортировать поля в следующем порядке: Content: Authored on [hidden], Content: Authored on, Content: Title (Содержимое: Время создания [скрыто], Содержимое: Время создания, Содержимое: Заголовок);
- Нажать кнопку Save (Сохранить).
В разделе Administration \ Structure \ Views (Администрирование \ Структура \ Представления) с помощью кнопки Add view (Добавить представление) создать новое представление:
- View name (Имя представления) - Галереи;
- Machine name (Машинное имя) - galleries;
- В поле View settings (Настроки представления) установить Show: Content of type Галерея sorted by newest first (Показать: Содержимое типа: Галерея отсортированные по Новые сначала);
- В поле Page settings (Настройки страницы) установить опцию Create a page (Создать страницу) и заполнить параметры:
- Title (Заголовок страницы) - Галереи,
- Path (Путь) - collection/galleries,
- Page display settings (Настроки отображения страницы): Display format - Unformated list of fields (Формат отображения - Неформатированный список из поля),
- Items to display (Элементов для отображения) - 12,
- Use a pager (Использовать постраничную навигацию) - установлено,
- Create a menu link (Создать ссылку меню) - Главное меню (Основная навигация),
- Link text (Текст ссылки) - Галереи,
- Нажать кнопку Save and edit (Сохранить и редактировать).
- В разделе Displays (Отображения) - Page установить недостающие настройки:
- Format (Формат) - Unformated list (Неформатированный список) - Settings (Настройки):
- Grouping field Nr.1 (Группирующее поле номер 1) - None (Не указано),
- Row class (Класс строки) - col-xs-12 col-sm-6 col-md-4,
- Add views row classes (Добавить классы строк) - установлено.
- Fields (Поля) - исправить существующие и добавить недостающие:
- Content: Картинки (Содержимое: Картинки):
- Formater (Средство форматирования) - Thumbnail (Миниатюра),
- Image style (Стиль изображения) - Gallery thumbnail (300x200),
- Link image to (Изображение как ссылка на) - Content (Содержимое).
- Content (Содержимое): Title (Заголовок):
- Formater (Средство форматирования) - Plain text (Простой текст),
- Link to content (Ссылается на Содержимое) - установлено.
- Отсортировать поля в следующем порядке: Content: Картинки, Content: Title (Содержимое: Картинки, Содержимое: Заголовок);
- Pager (Постраничный навигатор):
- Use pager (Использовать постраничный навигатор) - Paged output, full pager (Постраничный вывод, полный навигатор)
- Нажать кнопку Save (Сохранить).
В разделе Administration \ Structure \ Views (Администрирование \ Структура \ Представления) с помощью кнопки Add view (Добавить представление) создать новое представление:
- View name (Имя представления) - Библиотеки;
- Machine name (Машинное имя) - libraries;
- В поле View settings (Настроки представления) установить Show: Content of type Библиотека sorted by oldest first (Показать: Содержимое типа: Библиотека отсортированные по Старые сначала);
- В поле Page settings (Настройки страницы) установить опцию Create a page (Создать страницу) и заполнить параметры:
- Title (Заголовок страницы) - Библиотеки,
- Path (Путь) - collection/libraries,
- Page display settings (Настроки отображения страницы): Display format - Unformated list of fields (Формат отображения - Неформатированный список из поля),
- Items to display (Элементов для отображения) - 0,
- Use a pager (Использовать постраничную навигацию) - неустановлено,
- Create a menu link (Создать ссылку меню) - Главное меню (Основная навигация),
- Link text (Текст ссылки) - Библиотеки,
- Нажать кнопку Save and edit (Сохранить и редактировать).
- В разделе Displays (Отображения) - Page установить недостающие настройки:
- Format (Формат) - Unformated list (Неформатированный список) - Settings (Настройки):
- Grouping field Nr.1 (Группирующее поле номер 1) - None (Не указано),
- Add views row classes (Добавить классы строк) - установлено.
- Fields (Поля) - исправить существующие и добавить недостающие:
- Content (Содержимое): Title (Заголовок):
- Formater (Средство форматирования) - Plain text (Простой текст),
- Link to content (Ссылается на Содержимое) - установлено.
- Нажать кнопку Save (Сохранить).
В разделе Administration \ Configuration \ System \ Basic site settings (Администрирование \ Конфигурация \ Система \ Основные настройки сайта) установить новую главную страницу, созданную ранее в Представлениях:
- Default front page (Главная страница) - /main
Вернуться в настройки типов материалов Administration \ Structure \ Content types (Administration \ Structure \ Content types) и указать для каждого типа пункт меню по умолчанию:
- Заметка - Edit (Редактировать):
- Menu settings (Настройки меню):
- Main navigation (Основная навигация) - установлено,
- Default parent item (Родительский элемент по умолчанию) - Заметки.
- Галерея - Edit (Редактировать):
- Menu settings (Настройки меню):
- Main navigation (Основная навигация) - установлено,
- Default parent item (Родительский элемент по умолчанию) - Галереи.
- Библиотека - Edit (Редактировать):
- Menu settings (Настройки меню):
- Main navigation (Основная навигация) - установлено,
- Default parent item (Родительский элемент по умолчанию) - Библиотеки.
Перейти в раздел Administration \ Configuration \ Search and metadata \ Sitemap (Администрирование \ Конфигурация \ Поиск и метаданные \ Карта сайта) и в настройках карты сайта выставить следующие параметры:
- изменить заголовок на Карта сайта
- убрать Show front page
- активировать меню Main navigation и Tags
- отключить RSS - Include RSS links = None.
Перейти в раздел Administration \ Extend (Администрирование \ Расширение) и найти расширение Sitemap, в свойствах расширения выбрать Permissions (Права доступа)
- в настройках разрешений модуля Sitemap отметить View published sitemap: Anonymous user, Authenticated user.
Упорядочить главное меню в следеющем порядке: Главная (отключено), Главная страница, Заметки, Библиотеки, Галерея, Карта сайта.
Первый этап создания сайта завершен. Для пользователей сайт будет выглядеть следеющим образом: