Новости и анонсы

Joomla! GSoC 2013 – обзор возможных новинок Joomla

Joomla
Добавление в избранное
Сохранить

Joomla! GSoC 2013 – обзор возможных новинок Joomla

Очередной год подряд Joomla! принимает участие в проекте Google Summer of Code 2013. В этом году было акцептовано восемь различных проектов, и каждый из них имеет шанс быть реализованным в будущих версиях Joomla. Шесть из них относятся непосредственно к Joomla CMS и еще два к Joomla Framework. Ниже вы найдете информацию по каждому их этих проектов.

Joomla CMS

Новый медиа менеджер

Текущий медиа менеджер устарел и сильно ограничен. Необходимо создать новый медиа менеджер с лучшим пользовательским интерфейсом, более продвинутым функционалом и отличной интеграцией с расширениями. Возможные улучшения:

  • Хранение медиа информации в базе данных (включая стандартную информацию свойств файла, дату, создателя, права и другие различные мета-данные)
  • Возможность переименовывать файлы
  • Автоматическое создание превьюшек до расширений, указанных администратором
  • Создание контроллеров для возможности манипуляций над медиа, таких как: обрезка, изменение размера, фильтрация и т.п.
  • Использование вложения для управления и отображения настроек медиа
  • Управление как локальным, так и удаленным медиа
  • Поддержка создания коллекции медиа, например, для отображения в карусели в качестве отдельного типа контента

Конвертировать JavaScript из MooTools в jQuery

В Joomla 3 появились Twitter Bootstrap и jQuery. Предыдущие версии CMS использовали MooTools в качестве предпочтительной JavaScript библиотеки. На данный момент обе библиотеки поставляются и используются в CMS, что довольно часто приводит к конфликтам. Необходимо уменьшить зависимость от MooTools, конвертируя весь базовый JavaScript из MooTools в jQuery.

Улучшения в менеджере шаблонов

Шаблоны являются одним из самых важных элементов в Joomla, но кроме добавления стилей шаблонов и копирования, функционал менеджера шаблонов не менялся еще со времен версии 1.5. На данный момент пользователи должны выходить за пределы менеджера шаблонов для добавления CSS, для добавления/модификации файлов переопределения или для управления LESS. Проект позволит работать с шаблонами более дружелюбно.

Возможные улучшения:

  • Отображение списка переопределений
  • Редактирование переопределений шаблона
  • Создание нового переопределения шаблона (в идеале копирование базовых файлов разметки для создания стартовой точки)
  • Добавление нового CSS файла в шаблон
  • Редактирование и компиляция LESS файлов
  • Предоставить метод для простого взаимодействия с веб-шрифтами.

Создание com_services для администрирования веб-сайта с фронтэнда

Необходимо создать компонент, который поможет выполнять основные действия по администрированию веб-сайта с фронтэнда: обновление названия сайта и мета-данных, чистку кэша, установку настроек компонентов, базовые операции по управлению пользователям и т.п. Необходимо создать RESTful сервис и фронтэнд интерфейс для этого сервиса. Сервис должен расширяться для возможности добавления различных задач в будущем. Проект не включает в себя контент, а только задачи по администрированию.

Модернизация модулей

Многие модули не обновлялись годами и не используют преимущества JImage или JQuery, JLayouts или PHP 5. Кроме того, необходимо провести рефакторинг и улучшения функционала loadposition/loadmodule, а также пользовательского интерфейса компонента com_modules. Проект позволит подтянуть модули до уровня остальной CMS. Возможные улучшения:

  • Просмотреть все модули и подтянуть до стандарта PHP 5.4
  • Внедрить JImage, например, встраивая картинку вступительного текста в модулях материалов
  • Внедрить или добавить новые модули, использующие такие возможности JQuery, как карусели
  • Добавить новые модули для безусловно упущенных возможностей, например отображение контактной информации
  • Использование JLayouts в модулях для стандартизации
  • Обновить обработку loadposition.
  • Сделать так, чтобы модули выступали в виде контента и трактовались как ассеты (например, предоставить контроль уровней доступа модулей)

Системные тесты для веб-обработки

Автоматизированные тесты позволяют тестировать CMS, автоматически запуская Joomla из браузера, выбирая опции меню и оценивая полученный результат. В настоящее время большинство системных тестов написаны на устаревшей программе Selenium RC. Малое количество тестов на данный момент используют новую технологию Selenium Webdriver и паттерны Page Objects для разделения объектов страниц и объектов тестирования. Проект должен создать основу для Webdriver тестов и расширить тесты на всю CMS. Ожидаемые результаты:

  1. Создать стратегию и план выпуска системных тестов для Joomla. Включает в себя такие вопросы как организация тестов и покрытие тестами критического функционала как бекэнда так и фронтэнда.
  2. Написать повторно используемые классы для расширения тестов. Эти классы будут использоваться для создания классов объектов страниц и тестовых классов для различных частей CMS.
  3. Начать реализацию плана выпуска.

Улучшение семантики и доступности фронтэнда

Проект принесет большие изменения для тех, кто хочет получить семантически правильный веб-сайт с валидным HTML, и для тех, кто хочет получить стандартный и простой путь для генерации конкретной семантики для таких сторонних веб-сайтов как Facebook и Google Rich Snippets.

Этот проект включает в себя значительные исследования веб-стандартов и поддержку валидного HTML. Для реализации проекта планируется внести изменения в различные базовые компоненты (такие как com_content, com_contact) и базовые шаблоны.

Пример:

  • Category Blog → Blog scope
  • Single Article → Article scope
  • Single Contact → Person scope
  • Default Template → Webpage scope

Будет создана новая опция во всех расширениях (в настройках мета-данных), которая позволит включать/выключать эти новые возможности. Пример:

Content → Article Manager → Edit → Metadata Options → Microdata semantics (enable/disable)

Возможно, на фронтэнд также будут добавлены некоторые WAI-ARIA роли.

Joomla Framework

Облачные хранилища (Cloud storage)

Необходимо добавить поддержку облачных хранилищ в пакет Filesystem. Проект Molajo предоставил для Фреймворка новый пакет Filesystem, поэтому необходимо для него создать облачные адаптеры. Предложенные API: Amazon S3, Dropbox, Google Cloud Storage и Rackspace Cloudfiles.

Улучшенные поля формы

Необходимо добавить множество новых HTML5 атрибутов и входящих типов для элементов формы (form, input, textarea,...). Если есть какие-то атрибуты, которые не поддерживаются в HTML5, необходимо удалить их.

Оригинальная статья: Joomla Community
Dmitry Rekun
Работаю в банковской сфере, а с веб-разработкой (непосредственно с Joomla) столкнулся в 2007 году. Теперь это моё хобби, а в редких случаях и вторая работа. Какое-то время вёл свой блог, но решил попробовать работать в команде. И вот c 2012 года я здесь :)

Подпишитесь на рассылку новостей CMScafe