Joomla 3.7: чего ждать от новой версии?
Joomla 3.5 вышла в конце марта 2016 и представила множество новых функций, большинство из которых довольно трудно заметить невооруженным глазом, например поддержка PHP 7 значительно увеличило производительность и скорость загрузки страниц. Несмотря на успехи уже вышедших релизов, команда разработчиков жаждет вывода новой версии. Мало кто не согласится, что Joomla! 3.5 имела довольно тяжелое обновление, с точки зрения изменений и улучшений самого ядра платформы. Изменения в Joomla 3.7, по всей видимости, будет более скромным и, с большей долей уверенности, можно сказать, что в настоящее время основные усилия разработчиков направлены именно на улучшение гибкости системы.
Многие зададут закономерный вопрос, почему мы говорим о Joomla 3.7, а не о Joomla 3.6, неужели настолько в тренде политика Miscrosoft?! (Речь о переходе Windows 8 -> Windows 10) Тут немного другая ситуация. Команда разработчиков всегда прислушивается к мнению сообщества, которое желает как можно скорее получить доступ к обновлению компонентов Joomla! Речь идет об опции повторной установки файлов ядра в Joomla в одно нажатие, которое крайне быстро позволяет вернуть исходное состояния ядра, например после хакерских атак или заражений. Если коротко, сообщество смогло убедить разработчиков, что данный компонент обновления необходимо выпустить как можно скорее и, согласно текущей политике версионности, изменения должны быть включены именно в минорной версии, а не в виде отдельного патча. Таким образом, вместо ожидаемой Joomla! 3.5.2 вышел отдельный выпуск Joomla! 3.6.
Итак, так как речь идет о Joomla! 3.7, это не означает, что произойдет двойной прыжок, это всего лишь техническая необходимость, чтобы сохранить систему управления версиями в понятном формате. Следует понимать, что те доработки, которые будут выполнены для Joomla! 3.6 по факту появятся только в Joomla! 3.7. Крис Дэвенпорт лично взял ответственность за выпуск версии 3.7 и, хотя новый функционал еще не был официально утвержден, в настоящее время идут жаркие обсуждения среди разработчиков касательно выпуска релиза. Сам код доступен на открытом репозитории GitHub, что позволяет заглянуть внутрь платформы и понять чем же нас хотят удивить.
Важно понимать, что обзор представленный в рамках данной статьи не может дать точное описание функционала будещей версии Joomla! 3.7, резил находится на раннем этапе разработки и его развитие часто уходит в непредсказуемое русло. Продукты с открытым исходным кодом, к которым относиться и CMS Joomla!, очень часто растут бессистемно и крайне трудно проследить конкретную тенденцию развития. Так же часто возникает большое количество нюансов, которые могут вызывать задержки выпуска продукта, изменение его функционала и в целом влиять на конечный результат. Не спешите строить планы пока не будет официального анонса. С учетом этих оговорок предлагаем ознакомиться с аналитикой, которая может раскрыть функционал будущей версии Joomla! 3.7.
Пользовательские поля
Есть довольно высокая уверенность, примерно 99,99%, того, что в Joomla! 3.7 будут добавлены пользовательские поля (custom fields). Дело в том, что в репозитории видно, что в этом направление проделана колоссальная работа и код ожидает тестирования, после чего несомненно будет включен в релиз ядра. На самом деле уже сейчас любой желающий может протестировать эту функции просто загрузив соответствующую ветку Joomla!, которая доступна в репозитории GitHub.
Что такое пользовательские поля?
Пользовательские поля - это совершенно новый тип данных, который может быть использован в Joomla! при написании статей. Крайне часто возникает необходимость реализовать нестандартный элемент и, обычно, недостающий функционал компенсируется сторонним решением, который включается с помощью модуля или расширения, либо в дело вступает разработчик и пишет некоторое количество PHP-кода. Использование пользовательских полей значительно упрощает задачу разработчика, а результат его работы становится более понятен для пользователей, которым не придется вносить правки в написанный скрипт, достаточно просто задать необходимые значения через привычный интерфейс. Возможно добавить любое количество настраиваемых полей, которые будут отображены в меню редактирования статьи, рядом с элементами "Автор", "Категория", "Опубликовано" и т.д.
Пользовательские метки полей (custom field labels) должны быть заданы раньше чем они будут использованы в статье (иначе могут возникнуть трудности в работе мультиязычных сайтов). Через Менеджер материалов (Articles) в левом меню можно найти новый элемент под названием Fields (Поле). Здесь можно выполнить необходимые настройки, такие как задать заголовок, метку, тип поля, значение по-умолчанию. После публикации статьи, настраиваемое поле будет автоматически отображено при редактировании. Новая вкладка Fields показывает созданное пользовательское поле и позволяет задать его значения.
Новый менеджер медиа-файлов
Среди списка ожидаемых функций Joomla! 3.7, согласно дискуссиям в группах Google, значится обновленный менеджер медиа-файлов, который ждали еще в версии 3.5. Ожидается, что в новом менеджере будет более удобный интерфейс с точки зрения редактирования изображений, который позволит выполнять изменения непосредственно в видимой части редактора. Фактически в редакторе открываются такие функции работы с изображениями, которые позволяют обрезать, менять размер, поворачивать и применять различные фильтры. Редактирование происходит с уже загруженным изображением, то есть не потребуется повторно перезаливать файл после редактирования, как если бы вы работали со сторонним графическим редактором. Так же будет возможность создавать эскизы определенного размера и задавать метки для изображений и прочих медиа-файлов и улучшен функционал drug&drop (загрузка файлов путем перетаскивания в окно браузера), который уже был представлен в Joomla! 3.5.
Улучшенный Joomla-роутер или новый роутер
Роутер является неотъемлемой частью Joomla!, который приводит URL-адреса к красивому виду, к которому более лояльно относят не только рядовые пользователи, но и приветствуют поисковые системы. Новый Joomla-роутер должен решить множество вопросов, которые были замечены в более ранних версиях, например удаление ненужных идентификаторов (ID) и верное отображение модулей (иногда встречаются ложные адреса, которые указывают на совершенно разные страницы, так как не имеют назначенного элемента меню). На будущее обновление возложены большие надежды и мы ожидаем увидеть новый взгляд на формирование красивых SEF URL-адресов (search engines friendly url).
Сервисный уровень модели ядра
Данное новшество вряд ли будет понятно конечным пользователем, но несомненно его оценят разработчики. Очень трудно найти слова, чтобы дать определение, что же это за новый уровень модели ядра? цитируем Криса Дэвенпорт:
Проблема с которой постоянно сталкиваются сторонние разработчики заключаются в том, что Joomla! до сих пор не имеет четко определенной API. Например, если стоит задача получить какие-то данные статьи из компонента под названием "Компонент", я мог бы попробовать создать экземпляр одного из контроллеров или классов модели "Компонент", но часто это бывает неудобно и могут возникать различные побочные эффекты, которые в последствии бывает трудно преодолеть. Иногда разработчики вынуждены прибегать к приемам чтения и записи данных непосредственно в таблицы базы данных.
Мартин Фаулер визуализировал сервисный уровень, можете ознакомиться с изображением ниже:
Для сторонних пользователей это дополнительный абстрактный уровень, который упрощает управление доступом к данным независимо от того, используют ли они Joomla! API, Joomla! Framework или вовсе выполняют команды из консоли. Данное нововведение призвано навести порядок в хаосе который сейчас царит, ведь каждый разработчик придумывает свой метод для доступа к данным и их обработке внутри Joomla!, которые не всегда является оптимальными. Теперь за это будет отвечать уровень сервиса, который имеет конкретный набор правил, они будут все-так же позволять получать доступ к данным и производить манипуляции с ними, но уже более стандартизованным способом, что облегчит жизнь разработчикам. Это так же может помочь в задачах интеграции Joomla! с другими платформами и, один из ключевых моментов, появится возможность легко создавать веб-приложения внутри Joomla! Одна из основных идей заключается в обеспечении быстро и простого подключения к компонентам и модулям с помощью REST- или SOAP-архитектур.
Эта функция так же связана с другой не менее интересной функцией, которой так не хватало в Joomla! - это веб-сервисы. Довольно не простой является задача выполнения CRUD (создание, чтение, обновление, удаление) операций. Конечно, есть класс JResponseJSON, но он больше подходит для извлечения данных, но никак не операций обновлений или удаления. Согласитесь, это большой недостаток платформы Joomla!, когда есть необходимость использовать современные фрейворки, такие как Angular, Backbone или React.js, входная точка для которых является именно REST-архитектура, подключение стороних библиотек так же становится трудной задачей. Есть сомнения, что сервисный уровень будет реализован именно в Joomla! 3.7, но данная доработка уже включена шорт-лист предлагаемых обновлений и, надеемся, нас не заставят долго ждать.
В заключение
Полный список потенциальных новых возможностей активно обсуждается в Google Group. Можно заметить, что в список так же включено мобильное приложение и администратор шаблонов, но, как видно из обсуждений, эти направления были заморожены до выпуска релиза Joomla! 3.7, возможно эти проекты будут продолжены в будущих версиях. На данный момент, с большей долей уверенности можно сказать, что в ближайшем релизе будут добавлены:
- Пользовательские поля;
- Новый менеджер медиа-файлов;
- Новый роутер;
- Сервисный уровень модели ядра.
Мы верим, что команда разработчиков Joomla! способна осуществить задуманное, но помните, что каждый из нас может внести свой вклад в развитие платформы путем тестирования и устранения ошибок. Для этого достаточно загрузить код из открытых репозиториев, например GitHub. Внесенные исправления несомненно будут приняты и добавлены в ядро, что ускорит процесс выпуска новых версий.
Соседние материалы | ||||
Создаём уведомления на jQuery | Joomla! 3.6 уже здесь! |
Комментарии