Здравствуйте, дорогие коллеги, клиенты и партнёры. Долгожданный релиз 2.8.5 наконец-то опубликован. В этом посте я расскажу об основных изменениях в системе, которые достаточно серьёзны и интересны.
В первую очередь - значительное изменение структуры шаблонов. Основная цель этого изменения - сосредоточить функционал и оформление каждого шаблона в его отдельном каталоге.
Такой способ хранения файлов на порядок упрощает работу с различными шаблонами. Так как весь дизайн, изображения, стили, скрипты (js и php) сосредоточены в одном месте, шаблон очень легко хранить, передавать и продавать. Если вы создаёте и развиваете свои шаблоны под системой контроля версий, то теперь и хронологию изменений будет гораздо проще вести.
И конечно же, когда каталог с шаблоном и всей его функциональностью можно просто заархивировать и переслать по почте, - это большой шаг в развитии будущего магазина готовых решений UMI.CMS.
Мы постарались сохранить полную обратную совместимость, чтобы владельцам старых сайтов не пришлось ничего менять. Файлы шаблонов старых сайтов остаются на своих местах и автоматически не переносятся. Однако мы настоятельно рекомендуем разрабатывать новые сайты в новом формате.
Подробнее: http://help-dev.umi-cms.ru/chapter.newTemplates.html
Если вы хотите "перейти" на новую структуру, вам нужно вручную переместить файлы вашего шаблона в соответствующие каталоги, руководствуясь документацией. Не забудьте указать имя шаблона (название каталога) и его тип (xslt/tpl) в свойствах соответствующего шаблона в настройках модуля Структура.
Вторая интересная “фича” - это автовыбор мобильного шаблона. С версии 2.8.5 разработчик сайта может верстать мобильные шаблоны дизайна для сайта, которые будут автоматически показаны посетителям с мобильных устройств.
По публичной статистике, с каждым днём мобильных пользователей становится всё больше. Предоставляя мобильную версию вашего сайта, вы приобретаете больше лояльных пользователей и клиентов.
В дистрибутиве 2.8.5 мы предоставили один простой пример мобильного сайта на примере интернет-магазина (“demodizzy”). Но разумеется, мобильная версия сайта на UMI.CMS полностью функциональна и ничем не ограничена по сравнению с “десктопной” - вы можете использовать в ней любой функционал системы.
Подробнее: http://help-dev.umi-cms.ru/chapter.mobileTemplates.html
Мобильная версия сайта не возникает сама по себе, её нужно верстать так же, как вы верстаете обычные шаблоны. Никакой технологической разницы нет - это тот же самый XSLT (или TPL), но мы рекомендуем придерживаться сложившихся традиций в сфере вёрстки мобильных сайтов (крупные шрифты, ссылки-кнопки и так далее).
В-третьих, в UMI.CMS теперь интегрирована Яндекс.Метрика, и вы можете смотреть практически все основные отчёты по своему сайту не выходя из “админки”.
Хочу сказать о ряде небольших улучшений в “админке”. Это и общий лог изменений контента по сайту в модуле “Резервирование”, чтобы не приходилось заглядывать в каждую страницу отдельно. Это и удобный переход из редактирования объекта к редактированию соответствующего типа данных, чтобы добавить какое-то необходимое свойство. Это и возможность указать несколько email-ов для уведомления о новых заказах.
Всего в версии 2.8.5 несколько десятков улучшений, полный список как всегда в ченжлоге и в новостях с картинками и подробностями.
P.S. по сложившейся традиции - пара слов о том, что вас ждёт в следующем релизе 2.8.5.1: модный инфо-бар для браузера, виртуальные свойства у объектов (прежде всего товаров каталога), новая капча для борьбы со спамерами и обновлённая база GeoIP. Оставайтесь с нами :)

Комментирование доступно только авторизованным пользователям.
Пожалуйста, зарегистрируйтесь или войдите на сайт.
Из нововведений хотелось бы увидеть поддержку нескольких меню (создаваемых визуально с возможностью менять порядок элементов независимо, так же как основное в модуле Структура) и универсальный редактор данных для собственных типов (по аналогии как редактируются дополнительные группы полей в модуле Структура: т.е. функционал есть, его только нужно как-то вынести и оформить).
Еще было бы удобно для изучения стандартных шаблонов иметь возможность при установке устанавливать их все сразу в папку ~/templates, а затем обновлять при выходе новой версии (сейчас кроме установки новой триальной версии можно как-то скачать мобильные шаблоны?).
— изменению структуры шаблонов;
— о изменениях в управление выводом фотоальбомов в дереве страниц;
Планируется ли в обозримом будущем статьи по этим изменениям или обучающее видео?
Спасибо.
http://api.umi-cms.ru/module_dev.newTemplates.html
http://help-dev.umi-cms.ru/photoalbum.albums.html
Обучением у нас занимается СЗ, добро пожаловать к ним :)
Алексей, во-первых в вашем примере нужно указать модуль (classes/modules/name), во-вторых название файла не custom.php, а уже class.php custom.php должен работать и на старом месте - мы это специально оставляли для обратной совместимости. Документация: http://api.umi-cms.ru/module_dev.newTemplates.html Вы можете смело обращаться с такими вопросами в Службу Заботы, они в отличие от меня работают по выходным :)
Главное, что не могу понять: я действительно не могу использовать в своих классах $this или как?
создаю class.php. Пишу в конструкторе $this->a = 5;
создаю метод, пишу в нем echo $this->a;exit;
получаю Notice: Undefined property: users::$a in ****
Нелогично получается и неудобно.
И системные методы нельзя переопределить( Какой-то не совсем extend.
посмотрите обсуждение http://umihelp.ru/forum/index.php/topic,1016.0.html
Шаблонизатор тут не при чём, это историческая особенность Юми.
Notice появляется, потому что переменная должна быть определена в классе явно и с типом доступа (private, protected).
При множественном наследовании есть определённые ограничения: если переменная определена в class.php, то в подключённом classPart.php она не будет доступна.
Методы переопределять также нельзя. В Юми нет экстенда.
Всё это есть проблемы текущей архитектуры, от которых мы уходим переписывая продукт на полноценное ООП - версию 3.0
Шаблонизатор тут не при чём, это историческая особенность Юми.
Да я и не в претензии на шаблонизатор) Так было всегда сколько я помню в кастомных классах. Просто увидев class.php и ... extends я загорелся надеждами... Ладно, обойдемся и self
Notice появляется, потому что переменная должна быть определена в классе явно и с типом доступа (private, protected).
При множественном наследовании есть определённые ограничения: если переменная определена в class.php, то в подключённом classPart.php она не будет доступна.
В моем примере выше переменная была явно определена и все операции происходили в пределах class.php. Объявление ничего не меняет. Причина в недоступности $this. Соответственно, замена на self::$a решает проблему.
А вот что нерешаемо на уровне кастомов, так это наследование класса users, потому что там определяются две константы, и, естествено, при наследовании пытаются определиться вторично.
Методы переопределять также нельзя. В Юми нет экстенда.
Всё это есть проблемы текущей архитектуры, от которых мы уходим переписывая продукт на полноценное ООП - версию 3.0
Не могу удержаться не спросить: а чех плох нынешний ООП и чем будет лучше будет новый? Просто интересно.
А tpl-шаблоны в новой версии останутся?
Тогда перечислю, чего мне не хватает, чтобы считать юми идеальной системой:
- самое главное, возможность переопределять системные методы.
- упростить классы административного интерфейса.Сейчас, например, совершенно непонятно как можно вывести на страницу админки своего модуля призвольный код. Например, я собираю статистику по пользователяем, как-то ее группирую и строю график с помощью Google Chart Tools. Как вывести картинку на страницу админки? Данные, которые я получаю в результате работы своего скрипта - они могут быть произвольного формата.
Сейчас все данные уходят в непонятный $this->setData($data) и что там делается и, главное, что ему скормить - одному аллаху известно. Хочется получить данные в удобной для себя форме, сформировать свой собственный xml, с теми тегами, какие мне нужны (ну, какие-то системные, конечно, неизбежны), наложить на него свой xslt и получить страницу.
если вдруг это возможно сейчас, то мне непонятно как. Если невозможно - прошу учесть в будущей версии.
Эти два пункта в совокупности позволят разработчику реализовывать любой кастомный функционал, и даже вам можно будет сконцентрироваться только на ядре, а разработки модулей отдать на откуп сообществу.
- третье, чисто эстетическое, интерфейс бы не такой красочный...
- последнее, тоже эстетическое; я был удивлен, что в качестве js-фреймворка в свое время был выбран jquery; мне искрене кажется, что синтаксис mootools намного более ООП-подобный и логичный и гораздо более похож на синтаксис php-классов ЮМИ
Как видите, из 4-х пожеланий важных только первые два, поэтому вы уже почти достигли идеала. Поздравляю и желаю успехов с новой версией!