Готова Эгея 2.9 (сборка v3553) со значительной переписью старья под капотом, фоткой в «Настройке», тёмным режимом, входом через ВК, менюшками и подкастами (для платных пользователей). Эта заметка повторяет анонс беты, но с меньшим занудством. Хотите подробнее — читайте анонс беты.
2.9 — необычный релиз, такой «Снежный барс» среди Эгей. Я стремился к наведению порядка под капотом во многих местах движка, так что новых фич не очень много. См. заметки про альфу, альфу 2, альфу 3, альфу 4, бету и бету-2.
Перелопачивание коснулось всего взаимодействия с базой, логирования, подготовки данных для генерации страниц, фронтенда, инсталятора.
С последней беты фичи, связанные с подкастами, стали доступны только в платной версии, а также улучшилась совместимость с ПХП 7.4. Теперь в качестве обложки подкаста используется обложка страницы тега, используемого для подкаста, и только если её нет — фотография автора блога.
Настройка и темы
Теперь можно отсюда управлять картинкой блога, которая показывается в кружке рядом с названием слева сверху:
Можно перетащить файл, а можно ткнуть в большой кружок, и тогда появится обычный диалог выбора файла. Как и в предыдущих версиях, фотографию можно перетащить и напрямую в маленький кружок в углу (но если ткнуть в маленький кружок, перейдёшь на главную).
Эта фотка теперь автоматически используется в качестве фавыконки и эпл-тач-иконки.
Ещё Эгея теперь хранит загруженную аватарку в полном размере и отдаёт её в качестве обложки заметок, у которых нет других картинок (раньше отдавала малюсенький файл, который увеличивался и разблюривался в соцсетях).
В темах «Простая» и «Акут» появилась поддержка системного тёмного режима. То есть при переключении тёмного режима в ОС, блоги с этими темами будут тоже переключаться в тёмный режим. Если такое поведение вам не нужно, снимите галку «Поддерживать Тёмный режим»:
На этом скриншоте ещё видно новую галку «Показывать счётчики просмотров». Счётчики появились в 2.8, но их не все полюбили; теперь можно выключить.
В тёмных темах оформления подкручены цвета подсветки кода. Иконки, изображающие отстутствие фотографии у комментатора, теперь красятся подходящим к выбранной теме оформления цветом, в том числе, с учётом поддержки тёмного режима (раньше всегда были чёрными). В предпросмотре тем оформления теперь показываются этажи «Популярное» и «Теги» (в конце страницы).
Ещё в подвал «Настройки» вернулась ссылка на открытые сессии. Для меня самого загадка, зачем и при каких обстоятельствах я её убирал. Ещё там могли не показываться айпи-адреса при определённой конфигурации сервера, теперь показываются.
При изменении настройки соединения с базой теперь выводятся конкретные сообщения об ошибке, а не просто «перепроверьте параметры».
Менюшки
Появились выпадающие меню управления комментариями:
И загруженными картинками:
В менюшке картинки теперь видны имя и размер файла — информативность! Ещё теперь если вдруг файл с картинкой пропал с сервера, в качестве его превьюшки будет показан аккуратный перечёркнутый квадрат, а не что там браузер показывает, когда не смог загрузить картинку.
Нормальная обработка фейлов
Благодаря большой переписи слоя общения с базой данных, если с доступом к базе возникли проблемы, Эгея больше не сыпет гору бессмысленных ошибок на страницу, а показывает аккуратный лимон:
Ошибки при этом пишутся в лог, причём туда попадает информация о том, из какого места в коде какой именно запрос в базу делался и для чего. Если очень хочется, можно включить многословный режим, чтобы Эгея выводила это прямо на страницу.
Благодаря большому рефакторингу фронтенда, Эгея теперь умеет выводить аккуратные сообщения об ошибках при неудаче с аджакс-запросами:
Информативные подробности ошибки при этом попадают в консоль браузера, так что отлаживать такие проблемы станет проще. Раньше в случае неудачи с аджакс-запросом Эгея могла просто молчать или выводить какой-нибудь восклицательный знак где-то в незаметном месте.
Также стало проще включить ведение лога. Если вы мне пожалуетесь на необъяснимый баг, я смогу быстрее получить от вас лог и попытаться понять, в чём дело. (Поддержки движка по-прежнему нет, так что в общем случае помочь я вам не смогу.)
Практически всё, что касается фронтенда (включая настройку аватарки, новые менюшки, эти сообщения об ошибках и исправление кучи багов) сделал Женя Лазарев — мегаспасибо Жене!
Подкасты (для платных пользователей)
Теперь Эгею можно использовать для подкастов, правда поддержка этого сделана на уровне прожиточного минимума. В коде РССа теперь вставляются теги enclosure с аудиозаписями, если они использованы в заметке, и добавлены разные ещё теги, которые нужны для подкастов: язык, автор, описание. На обычную работу РСС это не влияет.
Чтобы сделать подкаст на Эгее, нужно завести какой-то тег, который будет стоять у всех заметок-выпусков. В каждую такую заметку должен быть загружен мп3-файл с выпуском. Например, вы выбрали тег «подкаст». В редакторе тега пропишите тегу нормальное название в урле (например, «podcast») и заполните поля «Заголовок страницы» и «Описание» — они станут названием и описанием подкаста.
У меня это выглядит так (на описание пока забил):
Теперь выпуски подкаста, как любые заметки по тегу, живут на его странице с урлом ваш-блог/tags/podcast/, а урл ваш-блог/tags/podcast/rss/ можно скормить любому подкастному приложению, и оно будет скачивать и играть выпуски. Этот же урл можно отдать Эплу, чтобы добавить подкаст в каталог Айтюнса.
В качестве обложки подкаста будет использоваться обложка страницы этого тега (просто перетащите картинку в редактор, не обязательно использовать её в тексте описания тега). Эгея не проверяет, что это за картинка, так что убедитесь сами, что она квадратная и соответствует требованиям каталога Айтюнса. Если такой картинки нет, то в качестве обложки подкаста в каталоге будет отдана квадратная середина картинки, которая загружена в качестве фотки в «Настройке».
Другие подкастные поля для Айтюса вроде категории и наличия ненормативной лексики теперь можно настроить в конфиге через атрибуты rss_itunes_categories_xml (сюда надо прям XML-код атрибутов в формате Айтюнса) и rss_itunes_explicit (yes или no). Эти параметры — глобальные для блога. Если вы хотите публиковать несколько подкастов на разных тегах, вы не сможете прописать им разные значения этих атрибутов.
У меня прописано так:
$_config['rss_itunes_categories_xml'] = (
'<itunes:category text="Arts">'. "\r\n".
'<itunes:category text="Design" />'. "\r\n".
'</itunes:category>'. "\r\n".
'<itunes:category text="Society & Culture">'. "\r\n".
'<itunes:category text="Personal Journals" />'. "\r\n".
'</itunes:category>'. "\r\n".
'<itunes:category text="Technology" />'. "\r\n"
);
$_config['rss_itunes_explicit'] = 'no';
В результате в Айтюнсе мой видеоблог-подкаст выглядит так:
Разметка фрагментов аудио
Вместо обычного аудиоплеера Жуэль с Эгеей теперь идёт продвинутый Жуэль Про. Это значит, что вы можете теперь пользоваться его контролами. Скажем, вы выложили подкаст и хотите обратить внимание читателей на конкретный фрагмент, как я делал недавно в заметке о подкасте про многозадачность на Айпаде:
В редакторе заметки это выглядит так:
[play] http://traffic.libsyn.com/atpfm/atp363.mp3 363: The Floor is Lava
<span class="e2-audio-seek jouele-control" data-href="http://traffic.libsyn.com/atpfm/atp363.mp3" data-type="seek" data-range="1:24:55...1:31:24">Разговор про Айпад начинается с 1:24:55</span>. Особенно здорово...
Как видите, приходится использовать АПИ Жуэля Про впрямую, в том числе, прописывать полный путь к файлу в атрибуте data-href. Класс .e2-audio-seek я определил в Эгее и использую, чтобы такие ссылки на места в аудиотреках выглядели как кликабельными и подсвечивались, когда эти фрагменты звучат.
Кроме того, появился упрощённый синтаксис для разметки частей длинного аудио, например диджейского микса или подкаста. Пример того, что с этим можно сделать — в недавней заметке о промомиксе «Аудио Санто». Пока играет микс, в плейлисте ниже подсвечен трек:
В редакторе заметки это выглядит так:
[play] http://promodj.com/download/6921656/ Ilya Birman: Audio Santo (Studio Mix)
0:00:00 0:02:44 Analog Pussy: Spooky Loops
0:02:45 0:04:34 Logic Bomb: Skrock
0:04:35 0:06:09 Krumelur: Understatement
...
Каждая строка имеет вид: от, пробел, до, два пробела, подпись. Тут важно, чтобы такие строчки с диапазонами и подписями шли без отступа после самого элемента [play]. Тогда Эгея поймёт, что это его разметка, и вам не придётся вручную описывать контролы Жуэля Про и верстать эту таблицу.
Остальное
Добавилась возможность представляться в комментариях через «Вконтакте» (спасибо Виктору Корейше):
«Роза» научилась английскому словоизменению (спасибо Роману Парпалаку). Кажется, меньше вероятность того, что поиск забудет проиндексировать некоторые заметки (был едва уловимый баг, попытался исправить).
Нисден стал поддерживать прямое указание языка программирования в коде: <code lang="php"> (спасибо Жене Степанищеву).
При редактировании тега теперь можно указать заголовок страницы этого тега. Я уже выше упоминал поле «Заголовок страницы» в связи с подкастами. Это новое поле в Эгее 2.9. По умолчанию в заголовке страницы тега написано что-то вроде «8 заметок с тегом кино». Теперь можно изменить, например, на «Обзоры кинофильмов», сохранив при этом сам тег «кино».
Мелочи:
- если загрузить файл с русским именем, его имя теперь романизируется;
- немного изменился внешний вид инсталятора;
- миграция будет выполняться быстрее благодаря меньшему числу лишних запросов;
- теперь не только в заметках, но в описаниях тега и блога можно использовать аудио и фоторамы (следствие унификации кода для обработки больших текстовых полей);
- всем страницам добавлен og:type="website";
- движок больше не даст запланировать заметку на будущее, если ему не хватает прав доступа к папке user/, и объяснит, что надо его дать (без этого он не сможет сохранить инфу о том, когда нужно будет сбросить кеши);
- в комплекте теперь идут Лайкли 2.4 с рабочим счётчиком Фейсбука и без Гугль-плюса (спасибо, Николай Рысь);
- sitemap.xml стал правильнее;
- теперь можно сделать свой кастомный шаблон для РСС (user/rss/rss.tmpl.php);
- при редактировании тега, в названии которого были эмодзи, они слетали, а теперь выживают;
- поправлены всякие другие баги.
Ещё появилась беспилотная инсталляция, но это я для себя просто пишу, чтобы не забыть.
Как обновиться
Отредактируйте и сохраните любую заметку или черновик (на всякий случай; это гарантирует, что сделается актуальный бекап базы).
Замените файл .htaccess в корне, папку /system/ и все подпапки в /themes/ (то есть уберите старые, положите новые, а не дозалейте в старые новые файлы).
Имейте в виду, что переделалось всё логирование. Вместо user/log.txt теперь в папке user/logs/ пишутся разные логи, так что если у движка не будет прав, чтобы создать эту папку и файлы в ней, логов не будет. Если у вас всё правильно установлено, таких проблем быть не должно, потому что у Эгеи должны быть полные права на запись всего внутри её собственной папки, но это повод вам перепроверить.
Если вы делали свою тему оформления, посмотрите, что изменилось в комплектной, и аккуратно повторите эти изменения у себя. Также изменились названия некоторых параметров конфига, добавились новые (ваш user/config.php может частично утратить актуальность; сверяйтесь с system/config.php);
Где скачать
Свежий дистрибутив — на сайте движка.
Если вы пользуетесь платной версией и хотите платную 2.9, напишите мне.
О предыдущей версии: 2.8