---
title: 'Плагин Blog Archive'
url: 'https://graker.ru/news/2016/08/31/blogarchive-plugin'
language: ru
type: post
author: 'Роман Грачев'
published: '2016-08-31T11:25:00+03:00'
updated: '2017-03-13T13:09:45+03:00'
categories:
  - OctoberCMS
  - Разработка
---

# Плагин Blog Archive

В процессе миграции домовой страницы с Drupal 6 на OctoberCMS, написал несколько плагинов. Первым из них стал плагин [BlogArchive](https://github.com/graker/blogarchive) и в этой заметке я немного о нем расскажу.

Изначально плагин я написал, чтобы сделать [архив постов по месяцам](https://graker.ru/news/2016), примерно как было на старом сайте, только лучше. Архив реализован через компонент `blogArchive`, он работает, можно пользоваться. Компонент даже умеет количество комментариев из Disqus подгружать (если Disqus включен).

Для того чтобы все посты (точнее, ссылки на них) были доступны из карты sitemap.xml плагина [Sitemap](https://octobercms.com/plugin/rainlab-sitemap), добавил интеграцию туда страниц архива. В данный момент это может быть полезно, когда в плагине Blog сделают возможность выгружать в sitemap.xml разом все посты — фича наверное станет не нужна.

Также добавил в плагин компонент `randomPosts` для вывода нескольких случайных заметок (см. блок «Случайные заметки» внизу). Компонент позволяет задавать количество заметок и кэшировать блок, если не хочется гонять `RAND()` при загрузке каждой страницы.

Затем нужно было озадачиться основной проблемой миграции: переносом сотен постов на новую систему. В October есть [импорт из CSV](https://graker.ru/news/2016/06/21/import_iz_csv_v_octobercms) — нужно было только, чтобы данные, экспортируемые из Друпал 6, были совместимы с форматом импорта. То есть нужно было привести csv, выходящий из Feeds Друпала, к csv, входящему в October Blog. Для этого добавил в плагин команду artisan:

```
php artisan blogarchive:d6_preprocess_import
```

Команда вырезает slug-и из полных путей Друпала, правильно упаковывает категории для импорта, убирает тизеры, если они равны контенту, меняет пути к файлам и ещё всякое делает. Тут нужно заметить, что команда в целом сильно заточена под мои нужды и из коробки вряд ли будет работать как надо. Но как опорная точка для своего обработчика данных — может пригодиться. Если, конечно, кому-то еще понадобится мигрировать с шестого Друпала к светлым достижениям Октября.

Наконец, лично для себя добавил в редактор заметок кнопку JavaScript-типографа [Typofilter.js](https://github.com/graker/typofilter.js). Если кому интеграция не нужна, ее можно выключить в конфигах плагина (`config/config.php`, можно переопределять в теме).

Все это добро можно найти [на гитхабе](https://github.com/graker/blogarchive).
