Встречайте альфа-сборку новой версии Эгеи.
В прошлой версии 2.10 появились рекомендации и перебивки — крутейшие инструменты, благодаря которым читатели могут находить хорошие заметки в вашем блоге независимо от того, когда они были написаны. А что нового в 2.11?
Главное меню
Главное меню — очередной важный шаг для улучшения навигации. Это снова для тех, для кого блог — инструмент, а не просто игрушка. У меня-то на сайте давно есть навигация по темам блога — важные теги вынесены наверх. Но у меня это было сделано вручную. Вы такое тоже могли заверстать в своей теме оформления.
А теперь ничего и верстать не надо — Главное меню есть в Эгее «из коробки»:
Если самая верхняя заметка не заинтересовала читателя, теперь видна альтернатива, а значит меньше шансов, что читатель уйдёт. Меню помогает понять, что интересного в блоге, и подталкивает к тому, чтобы проявить ещё большее любопытство.
В этом примере в начале меню стоит Избранное, а потом — любимые теги автора. Можно походить по тегам и посмотреть, какие есть заметки по разным темам:
Смотрите, какое чистенькое и аккуратненькое меню! Но при этом умное и функциональное.
Понятно, что когда ты ткнул в тег в меню, ты попадаешь на его страницу, и в меню этот пункт подсвечивается. Но даже если просто читать какую-то заметку, тег которой закреплён в меню, будет видно, что ты как бы в этом разделе. Да, если таких тегов несколько, подсвечиваются они все:
При этом и на них можно ткнуть и перейти на общую страницу тега. Это всё тоже подталкивает к тому, чтобы походить по блогу и почитать ещё заметки.
Меню включается в Настройке, вот так:
Как видите, гибкость довольно большая: в меню можно добавить разные системные страницы. Наконец-то до Избранного, Обсуждаемого, Популярного будет легко добраться. Страница с полным списком тегов раньше пряталась за иконкой внутри поля поиска, а теперь её тоже можно показать в меню.
Если включить вообще всё и добавить кучу тегов, меню может получиться длинным:
Предполагаю, что «вообще всё» мало кому понадобится, но это дело автора. Вам не нужно думать, влезет ли меню у читателей с узким экраном. Не влезет — будет красиво прокручиваться прямо в своей строке.
Более того, если открыть страницу, которая есть в меню, меню обязательно сразу же откроется прокрученным так, чтобы выбранный пункт было видно (за такие вещи вы и любите Эгею):
Чтобы тег попал в меню, его нужно «закрепить» вот этой кнопкой:
Заходите на страницу любого тега через список под заметкой, через связанные теги или через поиск, и жмёте там. Надоел тег в меню — заходите в него и жмёте ещё раз. Эта кнопка показывается, только если есть само меню.
Автор блога расставляет пункты меню в любом порядке простым перетаскиванием:
Главное меню и закреплённые теги будут доступны только в платной версии. Пользователи бесплатной увидят такое:
Если вы пользовались закреплёнными тегами раньше в бесплатной версии, расскажите мне, как именно. Но вроде никому до них не было дела.
Если вы включили Главное меню в Настройке, но не выбрали ни одной специальной страницы, и закреплённых тегов у вас нет, то меню тоже отображаться не будет, потому что там нечему отображаться. Также главное меню не будет показываться, пока в блоге нет заметок. Это общий принцип: Эгея не показывает элементы управления, которые ведут «вникуда». Например, поиск тоже не отображается, пока заметок нет. И кнопочка черновиков появляется только когда появляются черновики. Но пункты меню всё-таки будут показываться все, которые вы выбрали, даже если их страницы пустые. Иначе будет ощущение неуправляемости: включаешь «Обсуждаемое», а оно не показывается фиг пойми почему.
Немодальный поиск
Поиск стал немодальным! То есть не нужно сначала тыкать в поле поиска, а потом начинать писать запрос. Любой ввод на странице сразу интерпретируется как поиск. Просто жмёшь букву «щ», и она сразу оказывается в поле поиска.
Я это изобрёл когда-то для торгового терминала «Маркетс», который мы делали в бюро. Потом у нас так стал работать поиск во всех бюрошных книгах. Так должно работать всё. Это чувство лёгкости ни с чем не сравнить.
Как вы могли заметить, когда есть меню, поиск показывается прямо в нём, и всё вместе выглядит очень опрятно:
Если меню нет (выключено или бесплатная Эгея), поиск остаётся в уголке, как раньше, но немодальность работает в любом случае.
Есть ещё одна мелкая приятность, связанная с поиском. Бывает, начинаешь писать заметку, а надо поискать что-то в предыдущих заметках. Раньше приходилось открывать ещё одну вкладку, и там уже искать, чтобы не «перебить» редактор заметки результатами поиска.
Теперь можно искать прямо в редакторе. Эгея автоматически открывает результаты поиска в новом окне, если вы пытаетесь искать из редактора или любой другой формы. Чтобы вы были уверены, что Эгея всё понимает правильно, она даже показывает иконку, что результаты откроются в новом окне:
Заботушка.
Навигация по календарю
Один из возможных пунктов Главного меню — «Календарь». Он открывает доступ к навигации по датам:
На этом примере мы перешли в «Календарь» — открылся день, когда была написана последняя заметка (на момент снятия скриншота). Видны заметки за день, можно перейти к другому дню, а также вверх к любому месяцу или году. Видно, если в какие-то даты не было заметок. А снизу есть навигация влево-вправо по соседним датам. Она же работает по альт-стрелкам аналогично тому, как можно альт-стрелками ходить по заметкам.
Как ни странно, в каком-то виде это всё было и в предыдущих версиях. Давным-давно в Эгее заметки получали адреса вида /год/месяц/день/номер/. Соответственно, до любой части адрес можно было стереть, и открывался список заметок за соответствующий день, месяц или год. Когда Эгея перешла на текстовые адреса заметок, мало кто мог догадаться сходить по урлу типа /2019/05/. А теперь такое можно просто натыкать.
Вот страница 2018-го года, например:
Альт-стрелками тут можно листать годы. Строчки календаря сделаны из того же компонента, что и Главное меню, поэтому умеют прокручиваться, если в них всё не влезает. Я веду блог с 2002 года, поэтому годы у меня не влезают никуда.
Как видите, календарь работает и без Главного меню (если выключено или бесплатная Эгея). Но придётся догадаться, как туда зайти.
Скрытые теги
Теперь теги можно делать скрытыми, как последний тут:
Скрытые теги видны только автору, но учитываются при формировании рекомендаций. Вы можете щедро разметить заметки тегами для повышения качества рекомендаций, но при этом не заваливать ими читателей.
Ещё иногда сомневаешься, дать ли тег заметке: будут ли ещё заметки с таким тегом или эта останется единственной и тег просто болтаться будет мусором? Теперь можно просто дать скрытый тег, а потом, если дозреет, открыть для всех.
Чтобы тег стал скрытым, нужно его назвать с точкой в начале:
Почему такой «программистский» интерфейс, а не красивый тумблер как-нибудь? А потому так намного удобнее писать в строчку — ничего настраивать не надо! При этом точка не является частью названия, это именно интерфейс скрытия такой. Нельзя, например, добавить два тега, отличающихся только точкой в начале.
Если потом тег захочется открыть, можно зайти в его карандашик и убрать эту точку:
Точно так же можно добавить точку уже существующим тегам, и они скроются.
Скрытые теги невозможно закрепить в Главном меню. Ленты заметок по скрытому тегу видны тоже только автору (остальным видна страница 404):
Безопасность
В Эгее появился фоновый мониторинг беззащитности. Щас объясню.
Как-то нашлось, что в блоге одного из пользователей по прямому урлу открывался файл settings.json, в котором хранится пароль от базы данных. Пароль зашифрован, но если расшифровать, злоумышленник мог получить доступ к базе. Поэтому с Эгеей идёт файл .htaccess, который закрывает доступ к этому и другим чувствительным файлам. Но это если Эгея работает на «родном» для себя сервере Апач. К сожалению, у автора был Нгинкс, и автор его настроил неправильно. То есть в том, что файл settings.json открывался, Эгея не только не виновата, но она вообще бессильна влиять на настройку сервера.
И всё же я подумал: окей, Эгея не может сама правильно настроить Нгинкс, но может хотя бы проверить результат настройки: убедиться, что чувствительные файлы не открываются извне. Я могу запросить эти файлы «сам у себя» и уведомить автора, если они отдадутся в ответ. В общем, я это реализовал: теперь Эгея поглядывает за тем, чтобы всякие конфиги, логи и прочее не открывалось снаружи.
Стоило мне билд с этой фичей выкатить у себя, как мой английский блог пожаловался:
Работает! Конечно, эти сообщения видны только автору. Я доволен, что у меня давно есть вся инфраструктура для ленивых фоновых дел типа индексации поиска или подгрузки обложек с Ютюба. Благодаря этому реализация такого мониторинга была не слишком накладной.
Ещё одно улучшение — в настройке параметров доступа к базе данных раньше был виден пароль от базы, а теперь нет:
Конечно, сам этот экран доступен только автору. Но вдруг злоумышенник подошёл к компьютеру автора, пока тот отошёл, и сфоткал себе пароль от базы? А ведь в базе кроме Эгеи может быть и что-то ещё. Короче, так надёжнее.
И ещё. В недавнем апдейте Эгеи 2.10 были устранены несколько уязвимостей. В 2.11 сделаны несколько внутренних изменений, которые сделают подобные уязвимости менее вероятными в будущем.
Остальное
Есть ещё куча мелочей, которые не удостоились своего раздела с заголовком. Про эти вы могли уже догадаться, глядя на скриншоты выше. Например, что бесплатная Эгея контекстно показывает, что можно было бы сделать в платной.
Появилась фича «Случайная заметка», о которой давно просили. Работает, только если заметок хотя бы 10. Если есть избранные заметки, выбирать случайную будет из них. Это было просто сделать, но я не понимал, куда это поставить, а теперь для этого как раз есть Главное меню.
Новая тема оформления — Галь (голубенькая, это она на скриншотах выше). Поддерживает тёмный режим. Дизайн чекбоксов также осовременился.
Кстати, благодаря прокручиваемому дизайну Главного меню, на мобиле оно работает как родное:
Но обратите внимание, что отступ между пунктами меню чуть больше. Это сделано, чтобы в них было легче попадать пальцем. Зелёные иконки управления тоже «расступаются». Причём на самом деле тут дело не в мобиле, а именно в тач-экране. На 12-дюймовом айпаде тоже будут увеличенные отступы между пунктами меню и иконками управления.
А также:
- добавилась поддержка изображений формата ВебП (если ваша версия ПХП собрана с библиотекой gd, которая его поддерживает);
- по аналогии с тем, как @2x в имени файла подсказывает Эгее, что картинка ретиновая, @loop в имени файла видоса теперь подсказывает, что видос надо предзагрузить и играть по кругу без контролов (так вставлены видосы в этом посте);
- в заметках теперь хорошо выглядят два уровня подзаголовков;
- если оплаченный срок платной версии позади, показывается красная точечка в Настройке;
- раньше при апгрейде до платной версии не сбрасывались кеши, потому что архитектурно Эгея не считала включение платности «обновлением», поэтому какие-то платные фичи могли проявиться не сразу, а теперь Эгея видит, что произошла подмена и сбрасывается кеш автоматически;
- заодно изменения в config.php теперь тоже приводит к автоматическому сбросу кеша (разумеется, если вы просто что-то меняете в Настройке, то о кешах вам и раньше не нужно было заботиться);
- до Эгеи 2.11 нельзя обновиться с Эгеи 2.6 или более старой (сначала обновитесь до 2.10, а уже потом до 2.11);
- сообщение об успешном обновлении теперь чуток человечнее (кроме номеров билдов теперь есть номера версий);
- обновление теперь работает «прозрачно», то есть открывается именно та страница, которую вы запросили без редиректа на главную.
Технические дела
Эгея нормально работает на ПХП 8 (ну или давайте найдём, что ломается, и допочиним к релизу). Минимальные требования — ПХП 5.6, Майэскуэль 5.6 или МарияДБ 10.1.
Системные и пользовательские темы разделились. Папки /themes/ в корне больше нет, теперь есть /system/themes/ и /user/themes/. Если у вас были свои темы, перенесите их в /user/themes/.
Если у вас платная Эгея и вы использовали subscribe-sheet, то теперь вместо него — follow-sheet. Внесите в него нужные вам изменения.
Теперь заморочка для тех, у кого Эгея больше 9 лет. Перечитайте заметку об окончательном избавлении от Каллиопе в следующей версии. Начиная с Эгеи 2.11 Каллиопе не поддерживается ни в каком виде. Страницы /settings/calliope/ в 2.11 тоже нет. Если вы ещё не прошли через неё, рекомендую сначала поставить 2.10, и разгрести заметки оттуда. Прочитайте там.
Про улучшения в поддержке нескольких блогов на одном сервере, видимо, надо будет писать отдельно.
Благодарности
Самая большая благодарность в этот раз — Нине Папчене. Нина сверстала меню со всем его волшебным и прекрасным поведением.
Также спасибо Арсению Шароглазову за помощь с безопасностью.
Что тестировать
Больше всего изменений — невидимые, под капотом. А это значит, что тестировать нужно вообще всё, чтобы убедиться, что я ничего не сломал. Новые фичи, конечно, тоже стоит потестировать, но за них я как раз меньше переживаю, потому что их я довольно много крутил, пока делал.
Также было бы хорошо потестировать всё на ПХП 8 (8.1, 8.2).
Бесплатный и платный дистрибутивы
В бесплатной альфа-сборке нет Главного меню, потому что это платная фича.
Если вы платный пользователь, вы, как всегда, можете написать мне, и я дам вам платную версию альфы 2.11, и у вас будут работать меню и другие платные фичи. Учтите, что это всё равно альфа-версия со всеми рисками. Лучше пока не ставить на рабочий блог.
Также вы можете стать платным пользователем ради 2.11. В этом случае для вас спецпредложение. Если вы купите годовую лицензию за 3000 рублей, год начнёт отсчитываться только когда Эгея 2.11 выйдет. Если вы уже платный пользователь, вы тоже можете перейти на бету 2.11 и «остановить время» действия лицензии до даты финального релиза. Напишите мне.
Когда 2.11 выйдет, цена годовой лицензии вырастет.
Если вам интересно поэкспериментировать, то скачайте (или возьмите у меня платную) сборку v4034a 4045a v4065b релиз, поставьте себе, и попробуйте с ней пожить. Не забывайте, что нет вообще никакой поддержки и даже на несложные вопросы вроде «а в каком файле ты хранишь то-то» я могу отвечать долго. Если в вашем блоге есть хоть что-то ценное, сделайте максимальный бекап. В моём блоге сейчас, конечно же, крутится именно v4034a.
Чтобы обновиться, замените папку /system/.
Наконец-то можно не писать про подпапки в /themes/ каждый раз!
См. также: Альфа 2, Бета