Система управления сайтом Handy.CMS 3.1. build 2003

Список изменений в билде

1. Добавлены функции преобразования дат

Во вспомогательную библиотеку утилит (lib.utils) добавлены функции для преобрабозования дат: русских в английские и наоборот.
PHP код:
// Создаем экземпляр класса утилит
$this -> utils = handyCore::loadExtension ('lib.utils');
// Перевод русской даты в английскую
$this -> utils ->dateToRus ("2010-01-20"); // 20.01.2010
$this -> utils ->dateToRus ("2010-02-20", "-"); // 20-01-2010

// Перевод английской даты в русскую
$this -> utils ->dateToEng ("20.01.2010"); // 2010-01-20
2. Добавлена возможность установки настроек модуля при создании инсталлятора модуля
В файл package.xml добавлена секция <extension_settings>, которая выглядит следующим образом:

Код:
 <settings> <setting> <setting_name>photogallery_image_middle_width</setting_name> <setting_title>Ширина уменьшенного среднего фотографии в фотогалереи</setting_title> <setting_value>250</setting_value> <setting_dim>пикселей</setting_dim> </setting> </settings>
, где: 3. Изменен принцип построение установочного пакета модуля
В следствии введения тем для дизайнов, изменен принцип построения пакета модуля: шаблоны модуля необходимо класть в папку /frontend/templates/default/, это папка темы по-умолчанию, если тема будет отсутствовать в дистрибутиве, она будет создана.

При установке шаблоны также будут скопированы в текущую используемую сайтом тему.
 
4. Установка типа события для модулей
В связи с добалением параметра "тип события модуля"(admin- событие административной части модуля, users- событие публичной части модуля), в package.xml - файл с описанием пакета устанавливаемого модуля для событий добавлено поле <type>:
Код:
<events> <event> <sys_name>photogallery_add</sys_name> <display_name>Добавление фотогалерей</display_name> <type>admin</type> </event> </events>
5. Редактирования кода страниц
Добавлена возможность редактирования кода страниц из административной части системы.
 
6. Изменение в функции getObjectRights()
В функцию getObjectRights() модуля разделения прав right_access_manager добавлен еще один параметр $not_alone.

Существует 2 варианта использования данной функции:
  1. в рамках шаблона модуля, например, когда Вам нужно прикрепить табличку с вариантами прав в шаблоне вывода редактирования элемента. В этом случае, необходимо установить параметр $not_alone в true, во избежании конфликта вложенности форм.
  2. максимально просто создать отдельную страницу для редактирования прав элеметна, при переходе из списка. В этомм случае функция используется с значением $not_alone, заданным по-умолчанию (false).
Полный вид функции:

PHP код:
getObjectRights ($id, $table_name, $key_field, $parent_id=false, $parent_table=false, $rights_not_alone=false)
, где
  • $id - ID элемента, для которого получаются права (пустой для нового элемента)
  • $table_name - наименование таблицы БД элемента
  • $key_field - название поля идентификатора элемента в БД
  • $parent_id - ID родительского элемента, для которого получаются права (по-умолчанию false)
  • $parent_table - наименование таблицы БД родительского элемента, если задан $parent_id (по-умолчанию false)
Пример использования ф-ции, когда у элемента существует шаблон и мы создаем новый элемент (который еще не сохранен в базу).
PHP код:
// Добавление фотогалереи
if ($param_str['page'] == 'photogallery_add') {
// по результату выполнения ф-ции переменная smarty $rights
// будет содержать табличку с правами, вывод переменной нужно установить
// в нужном месте нашего шаблона
$this -> right_access_manager->getObjectRights ('','photogallery','photogallery_id', false, false, true);
return
$this->smarty->fetch('photogallery_edit.tpl');
}
Пример использования ф-ции, когда у элемента нет самостоятельного шаблона редактирования (пример использования: список новостей, список текстовых блоков):
PHP код:
/* Права группы*/
if($param_str['page']=='group_rights') {
// .. остальная часть кода ..
$rights = $this -> right_access_manager->getObjectRights ($param_str [ 'group_id' ], 'news_groups', 'group_id');
}