Долго ли коротко ли, но 9 лет спустя после выхода Joomla 3 свет увидела новая версия – Joomla 4.
В новой версии CMS разработчики добавили некоторые полезные, и даже уникальные возможности о которых я расскажу в этой статье.
Содержание
- Пролог
- 1. Новый шаблон админки с полной поддержкой доступности
- 2. Упрощенный процесс установки
- 3. Новый медиа-менеджер
- 4. Publishing Workflow – Процессы
- 5. Шаблоны писем
- 6. Улучшенное управление переопределениями
- 7. Web Services API
- 8. CLI (Command Line Interface)
- 9. Веб-ассеты
- 10. Настраиваемый дашборд панели управления
- 11. Управление заголовками HTTP
- 12. Использование Bootstrap 5
- Эпилог
- Новые возможности, добавленные в Joomla 4.1
- Новые возможности, добавленные в Joomla 4.2
Пролог
По моему скромному мнению, большая часть новых возможностей Joomla 4 направлена на разработчиков. Это означает, что вы не увидите в новой версии масштабных изменений, но это не означает, что их там нет. Просто большинство из них «под капотом».
Перенося сравнение новой версии с тройкой, можно представить себе автомобиль, который уже давно на рынке. И вот была выпущена новая рестайлинговая версия. С виду подправили фары, бампер, перекрасили салон. Рядовой водитель не увидит большой разницы с прошлой версией авто. Но вот под капотом заменили половину внутренностей. Заглядывая туда, автомеханик испытывает чувство неподдельной радости, т.к. теперь с такой машиной можно сделать значительно больше – тюнинговать так, как раньше нельзя было и мечтать.
Именно в такой форме я советую смотреть на Joomla 4 потребителям (администраторам, владельцам сайтов, и т.п.). Новая версия, это скорее про широту и качество новых возможностей, а не про новые компоненты из коробки (хотя это тоже есть).
Ладно, закончим со вступлением, и посмотрим, что же нового предлагает нам Joomla 4.
Дискламер: Писать ниже про сложные вещи я стараюсь максимально простым языком, для людей, не относящихся к разработчикам. Поэтому программисты, верстальщики и другие братья по оружию: не судите описание строго. Примеры новых возможностей с горой терминов и кода вы всегда сможете найти в официальной документации, на которую, кстати, в этой статье немало ссылок.
1. Новый шаблон админки с полной поддержкой доступности
Конечно, самым визуально заметным нововведением в Joomla 4 стал новый шаблон админки Atum.
О, сколько же, простите, срача, было вокруг этого шаблона в процессе разработки! Дело доходило до перехода на личности. Надеюсь, хоть без рукоприкладства обошлось =).
В результате, как это обычно бывает, все разделились на сторонников и противников. Пора выяснить, к кому отнесете себя вы. Смотрим:
Должен признаться, после уже привычной админки Joomla 3 здесь, на экране в 24 дюйма, у меня сначала чуть кровь из глаз не потекла. Это было первое впечатление. Но…
Я вспомнил, что при переходе с Joomla 2.5 на Joomla 3 ощущения были очень похожие. А сейчас, возвращаясь иногда в админки Joomla 2.5 и даже Joomla 1.5, думаю: «И ЭТО мне нравилось?!». Короче говоря, в визуальной составляющей всё очень субъективно.
Сейчас, когда админка Joomla 4 уже немного примелькалась, она воспринимается очень даже неплохо.
Так ради чего весь сыр-бор с изменением оформления? Почему всё именно так – почему некоторые цвета имеют слишком четкие и резкие переходы? Всё дело в доступности для людей с ограниченными возможностями.
Мы с вами можем бесконечно много критиковать оформление и выявлять в нем недостатки, но существуют четкие правила того, как должен выглядеть интерфейс, доступный, в том числе, для слабовидящих, а также всяких читалок. Эти правила стандартизованы, и разработчики Joomla 4 подошли к ним консервативно, несмотря на всю критику.
В результате мы получили шаблон админки, которым смогут пользоваться все, независимо от физических ограничений. Как по мне, это очень похвально.
Если ваши глаза и чувство прекрасного всё равно испытывают ужасную боль и страдания, то есть небольшой лайфхак: вы можете зайди в настройки стилей шаблона админки:
Система –> Стили панели управления –> Atum –> Вкладка «Параметры цвета»
И там подкрутить некоторые цвета под себя. Здесь же есть возможность вообще перевести Joomla монохромный режим.
Другой неприятностью стало общее изменения расположения некоторых элементов в админке.
Например, разработчики перенесли основное меню в левую часть, создали страницу «Система» с большим количеством разделов, куда попали, в том числе плагины, шаблоны, модули, и другие элементы, которые мы привыкли видеть в основном меню.
Удобно ли это? Для старичков – вряд ли. Для новичков – думаю, да. Всё-таки проще найти нужный раздел в большом списке на одной странице, чем выискивать его где-то в недрах меню или менеджеров.
В общем, админка получилась интересной. Думаю, в обновлениях ее еще причешут.
2. Упрощенный процесс установки
В Joomla 4 обновили установку. Она стала иметь меньше шагов. Всё лишнее из нее убрали (а было ли оно там?). Скорость установки также увеличилась.
В целом процесс практически не изменился: вводим название сайта, данные админа, данные для подключения к базе данных, удаляем директорию после.
Возможно, новый процесс установки позволит проще пройти этот шаг новичкам, что, несомненно, будет способствовать популяризации Joomla 4.
3. Новый медиа-менеджер
В Joomla 4 обновили, наконец, медиа-менеджер. Это место, где вы можете крутить-вертеть все изображения сайта.
Медиа-менеджер в Joomla 3 представлял собой жалкое, жалкое зрелище. Пользоваться им было можно, но это мало кто делал. Лично я использовал или менеджер от редактора JCE или стороннее расширение Quantum Manager.
Чем же может похвастаться обновленный медиа-менеджер Joomla? Он умеет:
- Массово загружать изображения
- Массово выделять изображения
- Более удобно ходить-бродить по папкам
- Показывать всплывающее увеличенное изображение
- Редактировать изображение (поворачивать, обрезать)
- Показывать информацию об изображении (тип, даты, размер и др.)
- Имеет несколько видов отображения
- Имеет поиск по изображениям (правда в рамках одного каталога)
В общем, ничего необычного.
Самой полезной функцией нового Медиа Менеджера, на мой взгляд, является подготовка для легкой интеграции облачных файловых систем. Т.е. с помощью дополнительного плагина можно будет интегрировать в него, например, свой Дропбокс или Яндекс.Диск. Вот это может быть действительно удобно и круто. Но это должно быть создано отдельно.
4. Publishing Workflow – Процессы
А вот это уже действительно полезная для многих функция, которой, в настоящее время, не может похвастаться ни одна другая популярная CMS. В оригинале она называется Workflow, в локализации – Процессы.
Что же представляют собой эти «Процессы»? Если в двух словах – это возможность создания премодерации материалов.
В лучших традициях Joomla функция эта разрабатывалась очень долго, настраивается довольно сложно, но творит чудеса.
Вы можете иметь любое количество групп пользователей, для каждой группы могут быть назначены свои права на работу с материалами, появляется так называемый жизненный цикл материала, когда он создается первым пользователем, корректируется вторым, проверяется и публикуется третьим. Также может быть четвертый, пятый, шестой – всё зависит от того, как вы это настроите.
Это супер-полезная функция для различных СМИ, где есть много авторов, и есть редактор. Теперь авторы могут добавлять тексты на сайт. После этого тексты будут идти от группы к группе, в каждой группе с текстом будут работать пользователи со своими правами, они смогут гонять текст вперед или назад по его жизненному пути.
Как вы понимаете, такой функционал по определению сложно настраивается. Но сам факт его существования – уже очень радует.
По процессам будет отдельная, большая статья. Пока вы можете поиграть с ними самостоятельно, следуя инструкциям из документации.
P.S. По умолчанию функционал Процессов отключен. Для его активации нужно зайти в:
Материалы –> Настройки –> Вкладка «Интеграция» –> Опция «Процессы»
И активировать Процессы.
5. Шаблоны писем
Также очень, очень полезная функция.
Теперь в Joomla 4 есть отдельный менеджер шаблонов писем, в котором вы можете настроить текст каждого письма, отправляемого на каждую задачу.
Те, кто работал с Joomla 3 и более ранними версиями, знают, сколько кровушки могла попить эта настройка раньше.
Теперь вы можете легко редактировать каждое письмо через специальный менеджер. Кроме того, в письмах поддерживаются различные переменные, как например, имя пользователя, дата, название сайта и др. Просто посмотрите на эту красоту:
Как по мне, это действительно полезная штука, для всех, без исключения.
6. Улучшенное управление переопределениями
Это я мог представить только в мечтах. Хотя и там оно было расплывчато =).
В Joomla существует механизм переопределений. Он нужен, чтобы внести изменения в макеты отображения, не создав при этом хаки, которые будут потеряны при обновлении. Чтобы решить эту проблему, практически любой макет любого расширения можно переопределить в используемый вами шаблон Joomla и там уже редактировать как душе угодно.
Но у такого подхода есть и обратная сторона – переопределенные макеты больше не обновляются вместе с основным расширением. Может случиться так, что разработчики расширения внесли в обновлении новый функционал, который потребовал изменений и в макете отображения. Расширение обновится, но использоваться будет именно ваш переопределенный макет из шаблона, а значит, новый функционал будет потерян.
В Joomla 4 появилась возможность отслеживать изменения между основными макетами и их переопределениями и буквально видеть разницу в них. Это поможет вносить нужные исправления и обновления в переопределенные макеты гораздо проще.
Как это работает?
Во-первых, если при обновлении расширения Joomla (или, собственно, Joomla) изменились файлы в ядре, которые были переопределены в шаблон ранее, то Joomla покажет информацию об этом в соответствующем блоке на главной странице админки, вот здесь:
При клике по этой иконке, вы увидите подробную информацию о файлах с измененными макетами, которые были переопределены в ваш шаблон. Воспроизвести это не так просто, а потому позволю себе показать вам картинку из официальной документации, для общего представления:
Ну и во-вторых, если вы зайдете в:
Система –> Шаблоны сайта –> Редактировать [Ваш_шаблон] –> Вкладка «Редактор»
и откроете в файлах слева любой ваш переопределенный файл, то сможете увидеть различия в оригинальном и измененном файлах, которые будут подсвечены (для этого нужно активировать опцию «Показать различия» на этой же странице):
Здорово, удобно. Но, опять же, эта функция будет полезна в первую очередь для разработчиков.
7. Web Services API
В Joomla 4, наконец, появилось полноценное Web API. Что это и как это может быть полезно?
Если говорить простым языком, теперь можно управлять Joomla через сторонние сервисы/приложения. Joomla 4 может принимать запросы извне на управление практически всем контентом.
К примеру, теперь можно удаленно:
- Получить список статей/категорий/пользователей и др.
- Добавить новую статью/категорию/пользователя и др.
- Удалить их же
- Обновить их же
Кто-то может спросить: «Зачем это нужно, если можно делать всё из админки»?
Первый пример: Теперь можно создать для управления Joomla мобильное приложение. При этом его разработчикам не придется вникать в то, как устроен код CMS.
Второй пример: Теперь можно создать сеть сайтов на Joomla, которая будет управляться централизованно, из одного места. Там же можно будет видеть всю статистику по всей сети: общее кол-во пользователей на всех сайтах. Количество статей, сообщения и т.п.
Третий пример: Теперь вы легко можете создать модуль, скажем, анонсов новостей для первого вашего сайта, которые появляются на втором вашем сайте. Достаточно просто получать их по Web API.
В общем, можно придумать очень много всего весьма и весьма впечатляющего. Но это, опять же, в первую очередь для разработчиков.
Для тех, кто хочет ознакомиться с Web API Joomla подробнее, советую посмотреть его описание на Постмэне. Там всё удобно показано.
8. CLI (Command Line Interface)
Это сложно описать простым языком. Есть в работе с сайтами задачи, которые выполняются долго, или очень долго. Например, создание или развертывание резервной копии большого сайта. Когда вы выполняете эти задачи через браузер (через админку Joomla), то ограничены множеством лимитов, которые использует сервер, чтобы предотвратить неприятные ситуации, вроде зависания от одной большой задачи. CLI – это консоль. В ней вы можете также запускать на выполнение тяжелые PHP-скрипты, но при этом не будете сталкиваться с некоторыми базовыми серверными ограничениями.
В Joomla 4 вы можете быстрее и проще создать приложение, который будет выполнять подобные задачи через консоль.
Если вы далеки от программирования и мало что поняли из описания выше, просто проигнорируйте этот пункт, он не для вас. Если же вы близки к разработке, то можете посмотреть:
- Пример использования консоли для экспорта и импорта базы данных
- Пример создания приложения для консоли
9. Веб-ассеты
Очень полезная возможность, призванная навести в Joomla 4 порядок с JS и CSS файлами.
Кто работал с Joomla 3, знает, что в шаблоне, макете, да и любом, по большому счету, файле, можно подключать JS и CSS файлы или прямо куски JS/CSS-кода.
Всё это, конечно, прекрасно, но превращается в огромную боль, когда нужно, например, внести изменения в JS-файл определенного компонента. Или, если нужно отключить какой-то файл/кусок кода, который выводится в шаблон через head.
В Joomla 4 используется принцип веб-ассетов. Если говорить простым языком, появляется:
- Единый файл asset.json (для каждого отдельного расширения) с описанием подключаемых JS/CSS-файлов
- Единая база (реестр), в которой регистрируются все подключенные JS/CSS-файлы, но не активируются по умолчанию
- Возможность на любой странице подключать и отключать любые файлы или наборы файлов (пресеты) из этой базы
- Возможность переопределять любые файлы из этой базы
Слезы счастья будут течь из глаз разработчиков расширений, шаблонов, сайтов Joomla, после ознакомления с этой новой возможностью.
Штука очень полезная. Подробнее почитать о том, как она работает, можно здесь.
10. Настраиваемый дашборд панели управления
В админке Joomla 4 появился более простой способ настроить дашборд под себя. Оно было и в Joomla 3, но почти никто не изменял там главную страницу админки, поскольку это слегка нетривиально. В Joomla 4 всё стало проще.
Во-первых, у всех блоков дашборда вы можете видеть иконку настройки, через которую легко изменить параметры блока или отключить его:
Во-вторых, в нижней части дашборда появился блок «Добавить модуль в панель управления». Он не делает ничего необычного – просто позволяет выбрать модуль админки и добавить его на дашборд:
Не могу сказать, что это шибко полезное нововведение, но своих почитателей, определенно найдет. Особенно, если разработчики добавят возможность перетаскивание блоков дашборда мышкой.
11. Управление заголовками HTTP
В Joomla 4 появился новый плагин, который позволяет управлять заголовками HTTP. Называется он HTTP Headers. Легко ищется в менеджере плагинов по этому названию.
Задача плагина, выдавать те или иные параметры в заголовке страниц, которые генерирует Joomla. Параметров таких нынче стало довольно много. Вот настройки плагина:
Вы можете включить/выключить как базовые заголовки, так дополнительные.
Даже если вы не являетесь веб-разработчиком, а просто имеете сайт на Joomla, советую, все-таки, ознакомится с основным набором HTTP-заголовков. Возможно, некоторые из них окажутся вам полезными.
12. Использование Bootstrap 5
В Joomla 4 включили Bootstrap 5. Вы вовсе не обязаны его использовать, но если вам нужно быстро набросать интерфейс, то этот CSS-фреймворк может оказаться полезным.
В Joomla 4 вы можете легко подключить Bootstrap 5 в ваш шаблон (если, конечно, это еще не сделано), а дальше использовать всю мощь его встроенных компонентов, которые, обычно, вызываются в одну строчку кода.
Подробнее о вызове компонентов Bootstrap в Joomla 4 можно почитать здесь (статья писалась еще для Bootstrap 4, который планировалось использовать в Joomla 4, но по большей части она будет актуальна и для Bootstrap 5, который, в итоге, добавили).
Эпилог
Кроме описанных выше нововведений, Joomla 4 несет в себе и много других, гораздо менее заметных глазу – это и большое обновление API и улучшенная безопасность, а также бесчисленное множество мелких улучшений.
Joomla 4 делали долго. Я бы сказал, очень долго. Но если вспомнить, чем была Joomla 3 в момент выхода и что она представляет собой сейчас, на момент выпуска Joomla 4 – это две большие разницы.
В процессе жизненного цикла Joomla 3 постепенно обрастала новыми функциями и полезными возможностями. Думаю, что и с Joomla 4 будет также. Поэтому не судите строго первую версию. В ней есть большой задел для разработчиков, так что всё лучшее еще впереди.
Новые возможности, добавленные в Joomla 4.1
Дочерние шаблоны
В Joomla переопределялось многое, но не всё. Ранее нельзя было переопределить шаблон, который вы использовали на сайте. Оно и понятно - как переопределить то, во что вносятся переопределения расширений.
Шаблоны Joomla становятся все сложнее и зачастую мы можем хотеть использовать готовый шаблон, но внести в него какие-то свои изменения.
В Joomla 4.1 появились дочерние шаблоны. По-сути, это переопределение шаблона родительского. Используя такой шаблон вы можете переопределить отдельные файлы родительского шаблона, добавив в них свои изменения. И при обновлении Joomla эти изменения не будут потеряны.
Планировщик задач
Это своего рода web-CRON, встроенный в Joomla. Вы можете выполнять те или иные скрипты по расписанию, не используя CRON на хостинге. Заполнить задания планировщика теперь можно в админке Joomla.
Но, если вы все-таки понимаете, что такое CRON и он доступен у вас на хостинге, то лучше использовать его. Web-планировщик всё равно имеет некоторые ограничения в силу своей природы. Хотя иногда может быть полезен.
Система проверки доступности
В Joomla 4.1, в редакторе, появилась возможность посмотреть как будет выглядеть ваш контент и увидет подсказки о том, что стоит исправить, чтобы сделать его доступным для людей с ограниченными возможностями. Весьма полезная штука, особенно если вы должны учитывать вопросы доступности на сайте.
Возможность включать и отключать подсказки полей настроек
В Joomla 4 разработчики перемудрили с интерфейсом, как по мне... Одним из нововведений стало удаление всплывающих подсказок описаний полей в админке, при наведении курсора на название поля. Это было весьма неприятно, т.к. не всегода из названия понятно, что именно то или иное поле настроек делает.
В 4.1 это досадное недоразумение было исправлено. На панели управления теперь появилась кнопка, которая включает и выключает подсказки полей. Действует она на все поля одновременно, а подсказки появляются снизу, под каждым полем. Не буду судить об удобстве данного решения, но оно точно лучше, чем ничего.
Подсветка синтаксиса в стандартном редакторе Joomla
Теперь html-код в редакторе TinyMCE подсвечивается. Это удобно.
Новые возможности, добавленные в Joomla 4.2
Многофакторная авторизация
Теперь в Joomla появились дополнительные способы проверки при авторизации. Вы можете настроить удобные вам и повысить тем самым безопасность сайта. Как по мне, одиним из наиболее проистых и интересных способов стало подтверждение с вводом кода, отправленного emai.
Также следует отменить, что второй эпап авторизации доступен только после прохождения классического ввода логина и пароля.
Горячие клавиши
Некоторые частые действия на сайте теперь можно выполнять с помощью сочетаний клавиш на клавиатуре. Например, сохранить редоктируемый материал или другой объект с помощью сочетания J + S.
Всего доступно 9 встроенных сочетаний, а сторонние расширения могут добавлять свои сочетания в этот список.
Скрытие столбцов в таблицах списков
Шаблон админки Joomla 4 выгдядит иногда так, как будто сделан исключительно для людей с ограниченными возможностями (громоздкие и не всегда удобные элементы интерфейса). Это очень спорное решение, на мой взгляд.
Создание такого шаблона привело к некоторым неприятным последствиям, как например, ужасному оформению страниц со списками в админке (списки - это, к примеру, список статей, список категорий, список пунктов меню в админке, и т.п.). Если в списке много колонок, то излищняя расточительность свободным местом страницы, присущая шаблону Joomla 4, приводит к тому, что, например, на заголовок статьи этого места остается совсем немного и он выстраивается в несколько строк, сильно расширяя высоту блока элемента списка. Получается не очень хорошо, особенно на экранах, меньших, чем ваш стол (например, на ноутбуках).
Решение нашли интересное. Теперь прямо в списках вы можете скрывать лишние столбцы с информацией. Честно говоря, ваш покорный слуга считает, что это какой-то костыль для исправления неудобного интерфейса, дабы не признавать первоначальных просчетов. Но имеем то, что имеем.
Новое настраиваемое поле - пункт меню
Довольно полезная штука. Теперь вы можете добавить настраиваемое поле, позволяющее выбрать любой пункт меню, из уже созданных на сайте. Это может быть особенно удобно, если пунктов меню у вас много и нужно проставлять их ссылки, например, в статьях, как похожие.
Улучшен умный поиск
В умный поиск добавили возможность поиска по настраиваемым полям, а также нечеткое сопоставление слов. Редко пользуютсь этим поиском, но рад, что он развивается.
Также в Joomla 4.2 было добавлено множество других небольших улучшений и исправлений.
В данный момент я бы не стал обновлять сайт до J4, т.к. J3 будет поддерживаться еще довольно долго. Где-нибудь через полгода-год, когда разработчики сторонних расширений уже выпустят обновления с поддержкой J4, переходить будет можно.
Если делаете новый сайт и не планируете особо использовать сторонние расширения, можно уже брать J4. Заодно и освоитесь.
Я на своем сайте создал раздел Joomla-4. По ходу изучения и сотворения новых сайтов буду публиковать разные плюшки для простых юзеров. В первой статье дал ссылку на твою статью. Когда напишу несколько примеров - сделаю пост в телеграм канале.
Искала статью, где было бы просто и понятно описаны различия!!
И кстати, в Joomla 4 появилась нормальная возможность предпросмотра статей. Соответствующую кнопку можно увидеть при редактировании статьи рядом с кнопками сохранения и отмены.
Прочитал статью - все понял.
А нормальным клиентам без разницы какой движок, лишь бы заказы были и работало все хорошо ))
Вчера потренировался с Joomla 4.2.6 и нашел баг. При пакетной обработке, а именно при перемещении категории или нескольких категорий выдает следующую ошибку: "Пакетная обработка прервана: Другая категория в родительской категории уже использует такой алиас.."
Категории одного уровня вложенности не могут иметь одинаковые алиасы. В противном случае могло бы получиться так, что 2 разные категории имеют один и тот же адрес на сайте.
Но при этом одинаковые алиасы могут иметь категории, находящиеся на разных уровнях вложенности. В адресе страницы они будут перечислены через слэш. Это допускается.
Что получилось у вас. Изначально у вас были категории на разных уровнях вложенности, имеющие одинаковые алиасы. Затем вы решили переместить категории через пакетную обработку. В результате такой обработки получалось, что на одном уровне оказывались категории с одинаковыми алиасами, а потому скрипт вернул ошибку вместо выполнения задачи.
Про алиасы знаю конечно же, они естественно уникальные.
В подтверждение тому, если вручную переношу категорию, то всё прекрасно, туда же, где при пакетной обработке выдает проблему, мал одинаковые алиасы.
Предварительно тест лучше провести на чистой J с базовым шаблоном, и, по возможности, на категории из демо-данных.
на запрос, например "Созда " (фамилия), выводится "создан", "создание" ( ну это ладно, так и должно быть, это бы я вытерпела) но еще и "со зданием". Т.е пробелы как бы не учитываются, и в результате первые 10 материалов правильные, и еще тысяча неподходящие...
такое ощущение, что я пропускаю какую-то настройку...