Winreview.ru два года существовало под управлением CMS e107, и за это время я неоднократно получал письма с просьбой о помощи от читателей, решившихся запустить собственный сайт на этой системе. Я как мог отговаривал их от этого, и я надеюсь, мне это удавалось. Несмотря на то, что два года — это не два дня, в итоге я сам ушел от неё прочь. Сегодня я хочу рассказать, какие проблемы ждут пользователя e107, и почему, собственно, я сам от неё отказался.
Небольшое лирическое отступление
C системой управления контентом e107 связаны все исторические вехи этого ресурса, его взлёты и многочисленные падения. В начале своего пути Winreview.ru был порождением воспаленного сознания двух человек: моим, и моего приятеля Глеба, известного вам как Hryuckinnen, но e107 была моим единоличным выбором. Почему? Потому что ныне покойный проект WhatsNext.ru Райкера был на e107, а в 2009 году Райкер мне был интересен. Потому что мой приятель IRL, некий Влад, имевший опыт создания вполне приличных и успешных онлайн-ресурсов, считал эту систему чуть ли не идеальной. Я был далек от представления того, что я хочу от CMS, и тоже взялся за e107.
И e107 была идеальной. Идеальной для того, кто любит писать код, а не статьи. Построив сайт на e107, я тоже начал писать код, и продолжал этим заниматься в течение прошедших двух лет. В системе было три наиболее существенных недоработки, откровенно мешавших мне жить, и которые наверняка захочется устранить любому после пары дней использования.
Пользователям было неудобно
e107 имеет довольно безобразную особенность «из коробки»: статьи отображаются без комментариев, а в конце статьи есть ссылка «Комментировать». Т. е. чтобы прочесть или написать комментарии, надо тыкать дополнительные ссылки. Более того, когда пользователь открывает комментарии, он видит не полный текст статьи, а лишь её анонс, вариант «полный текст статьи + комментарии одновременно» не доступен ни при каком раскладе. Зачем так сделано, мне непонятно, и это было первое, что не понравилось ни мне, ни Глебу, ни читателям.
Эту проблему я решил использованием шорткодов. Шорткод в терминах e107 — это конструкция вида {BLABLA}, заменяющаяся при рендеринге контента на привычный HTML. Внутри определения {BLABLA} — php-код, делающий что-то полезное.
e107 позволяет определять пользовательские шорткоды в плагинах и темах. Я выбрал вариант с плагином.
Для устранения недостатка мне потребовалось: а) заменить ссылку «Читать далее»; б) заменить ссылку-заголовок статьи; в)и, наконец, изменить вывод текста, чтобы отображались комментарии вместе с полной статьёй. Не мудрствуя лукаво, я взял штатные шорткоды новостей (e107_files/shortcode/batch/news_shortcodes.php), и доработал их.
Куча мала
В недрах админки e107 скрывается чертовски нерациональный способ хранения изображений к статьям. Все картинки, которые вы добавили к посту, сваливаются в одну папку, без признака принадлежности к статье. При вставке в текст вы выбираете картинку из длинного списка всех изображений, которые вы когда-либо добавляли к вашим статьям.
Представьте себе, сколько картинок накопится там, к примеру, за полгода, если вы регулярно пишете?
Я резал по живому. Гуманных способов улучшить ситуацию попросту не было, поэтому я занялся прямой правкой файла e107_admin/newspost.php.
Я добавил ещё одно поле, которое служило для ввода имени подпапки, автоматически создававшейся при загрузке изображений.
Таким образом можно было поддерживать хоть какой-то порядок в коллекции изображений.
Вообще, по-хорошему, надо было вместо ввода имени папки автоматически создавать папку с именем, равным идентификатору статьи. Так было бы проще, и условностей меньше, но переделывать мне было уже лень.
Очеловечивание
Ещё один недостаток, не сдавшийся без боя — вид ссылок. Так называемые «человекоподобные урлы» - это неразрешимая задача средствами e107. Эта CMS вообще не позволяет менять внешний вид ссылок.
Считается, что Гугл «любит» структурированные ссылки, а также более лоялен к ссылкам, содержащим в себе ключевики. Вообще, как я пытался «понравиться» поисковикам - это целая эпопея, но началась она именно с ЧПУ.
Требовалось немало. Надо было написать:
- транслитератор русского названия статьи;
- создать шорткоды, выводящие ссылку на статью в каком-то «человекоподобном» виде;
- написать обработку ссылок модулем mod_rewrite, дабы «красивый» урл был преобразован в «понятный и привычный» для e107 формат а-ля comment.php?comments.new.цифра;
- перелопатить все файлы и плагины, прямо относящиеся в генерированию ссылок на статьи.
Мотивация самого себя на подобные фокусы мне давалась довольно легко (откуда только что бралось, я сейчас сам удивляюсь. Не лень же было). Просидев до четырёх утра в компании ноутбука, я реализовал всё, кроме файла .htaccess с директивами mod_rewrite. Впрочем, за ним не заржавело.
Модификации подверглись:
- comment.php — чтобы после размещения комментария пользователь возвращался на ЧПУ;
- все мои предыдущие шорткоды для вывода ссылок и текста статьи;
- плагин поиска по сайту был прилично перелопачен.
- плагин RSS-лент;
- плагин «новое на сайте»;
- возможно, ещё что-то, о чем я навскидку не вспомнил.
Это была большая куча php-файлов, заставляющая сердце сжиматься от одной мысли, что пора ставить очередное обновление CMS.
Пинг-понг и не менее занимательные игры
Сервис оповещения блогов по XML-RPC — отличная штука. Один из самых быстрых способов сообщить поисковикам, что вышел <sarcasm>очередной релиз Personalization Panel</sarcasm>. Хотите себе такую опцию в e107 — пишите плагин.
Дополнительные ББ-коды? Пишите плагин, потому что имеющееся в репозитории плагинов e107 поделие вам не понравится, уверяю вас.
Блоки рекламы? Пишите плагин с поддержкой меню e107.
Категории новостей (да ещё с ЧПУ)? Пишите плагин с поддержкой меню e107.
Карта сайта (Google sitemap.xml)? Встроенная — унылое говно, работающее в ручном режиме. Впрочем, если у вас нет ЧПУ, можно воспользоваться готовым плагином из репозитория, он вполне сносный. Ах, у вас ЧПУ? Пишите свою.
Похожие новости, популярные статьи, антиспам без капчи, да много чего — я сидел и писал.
В конечном итоге всё было написано, и всё работало.
Обратная сторона медали
Каждое обновление системы было адом. Это был настоящий кошмар, когда ты часами просиживал с WinMerge, перенося наработки. Этот процесс меня откровенно достал. Но это полбеды.
Разработчики начали упорно подкладывать свинью с каждым релизом системы. Начиная с версии 0.7.23, e107 просто отказывалась нормально работать «из коробки». Например, запросто могли перестать удаляться файлы штатным файловым менеджером e107.
А последней каплей в моей чаше терпения стал перевод. К исторически перепутанным «По возрастанию» и «По убыванию» добавились феерический «Поыльзователь» и пара ему подобных милых опечаток, а также незакрытая кавычка в локализации настроек сайта, которые теперь тупо не открывались. У меня пропало всякое желание использовать этот продукт.
Так Winreview.ru оказалось на WordPress.
Я не хочу сказать, что e107 — самая плохая из CMS. Нет. У неё немало плюсов, один из которых — отличная скорость рендеринга контента. Нагрузка на сервер у неё минимальна, при количестве посетителей до 10000 в день можно вообще не использовать кэш. Опять таки, отличная документация, и несложный прозрачный код плагинов и системных модулей
Но она непременно потребует от вас постоянного тесного контакта и ощутимых затрат времени. Даю руку на отсечение, тратить массу времени на её доработку решится не каждый, и далеко не каждому это нужно. А я от этого просто устал.
💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.
Настоящему Админу настоящий геморой с CMS))
много коментов и припераний, а по делу ноль, видимо не многие люди юзают этот движок, мне вот интересно что на этом движке мона построить, и какое мнение автора по поводу, скажем в сравнении что лучше вордпресс на котором как я понимаю сейчас его блог или e107, если строить сайт скажем по серьезней чем простой блог? интернет магазин с блогом или новостным порталом в купе?
Давайте я сделаю выжимку из всей этой белиберды?
Плюсы e107:
+Высокая скорость работы
+В коде разберется даже идиот
+Просто писать свои плагины
Минусы:
-Не всегда годный перевод, но это решаемо
-Маленькое коммунити
-Мелкие баги, например, кэш убивает title у страницы.
-Не очень адекватное представление новостей. При чтении новости комментарии не отображаются. А при чтении комментариев отображается начальный кусок новости. Это, по-моему, вообще идиотизм какой-то.
-Многие плагины делают совсем не то, что вы от них ждете. Не уверен, что на момент моей работы с системой там был вообще какой-то аудит.
-Система генерит гадкую разметку
-Её не любят поисковые системы. Много повторов по разным ссылкам.
-Шаблоны из коробки — это ад. И не из коробки тоже ад.
Всё, что есть в вордпрессе из коробки, мне приходилось писать самому. Возможно, сейчас что-то изменилось.
Я последний раз имел дело с довольно старой версией.
Магазинов строить я не пробовал, мне нечего продавать. А Winreview, начинавшийся именно как новостной портал в 2009г., от е107 ничего не выиграл. Увы.
А вот коменты я щас почищу, пожалуй.