Почему я отказался от e107

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.

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

Автор: Сергей Ткаченко

Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день.

Почему я отказался от e107: 3 комментария

  1. много коментов и припераний, а по делу ноль, видимо не многие люди юзают этот движок, мне вот интересно что на этом движке мона построить, и какое мнение автора по поводу, скажем в сравнении что лучше вордпресс на котором как я понимаю сейчас его блог или e107, если строить сайт скажем по серьезней чем простой блог? интернет магазин с блогом или новостным порталом в купе?

    1. Давайте я сделаю выжимку из всей этой белиберды?
      Плюсы e107:
      +Высокая скорость работы
      +В коде разберется даже идиот
      +Просто писать свои плагины
      Минусы:
      -Не всегда годный перевод, но это решаемо
      -Маленькое коммунити
      -Мелкие баги, например, кэш убивает title у страницы.
      -Не очень адекватное представление новостей. При чтении новости комментарии не отображаются. А при чтении комментариев отображается начальный кусок новости. Это, по-моему, вообще идиотизм какой-то.
      -Многие плагины делают совсем не то, что вы от них ждете. Не уверен, что на момент моей работы с системой там был вообще какой-то аудит.
      -Система генерит гадкую разметку
      -Её не любят поисковые системы. Много повторов по разным ссылкам.
      -Шаблоны из коробки — это ад. И не из коробки тоже ад.

      Всё, что есть в вордпрессе из коробки, мне приходилось писать самому. Возможно, сейчас что-то изменилось.
      Я последний раз имел дело с довольно старой версией.

      Магазинов строить я не пробовал, мне нечего продавать. А Winreview, начинавшийся именно как новостной портал в 2009г., от е107 ничего не выиграл. Увы.
      А вот коменты я щас почищу, пожалуй.

Обсуждение закрыто.

css.php