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

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

1. Изменение в системе распределения прав доступа
В функцию расширения распределения прав доступа (right_access_manager)
PHP код:
setObjectRights($id, $rights, $table, $object_key_field=false, $child_key_field=false, $child_table=false, $parent_key_field=false, $parent_table=false, $child_parent_key=false, $recursive=false)

добавлена переменная $recursive, если она установлена в true, права для объектов в рамках одной таблицы БД будут применены рекурсивно.

Пример:
Есть модуль каталог, неограниченным уровнем вложенности категорий, необходимо от корневой категории применить права ко всем вложенным.


В БД таблица catalogue_cats содержит поля: Применяем права:
PHP код:
$this->right_access_manager->setObjectRights($cat_id, $_POST['handy_object'], 'catalogue_cats', 'cat_id', 'cat_id', 'catalogue_cats', $parent_key_field, $parent_table, 'cat_parent_id', true);


2. Обновлена библиотека утилит.
В библиотеку утилит (lib.utils) добавлена функция для провеки типа файла:



PHP код:
checkFileType($ext, $type=false, $other=false)
, где
В настоящий момент доступно 2 типа: Пример использования:
PHP код:
private $utils;
// ...

$this->utils = handyCore::loadExtension('lib.utils');
// Файл - изображение?
if($this->utils->checkFileType('jpg', "image")) {
// Действия при прохождении проверки
}
// Пользовательский тип
$array = array('doc', 'xls', 'txt');
if(
$this->utils->checkFileType('txt', $array)) {
// Действия при прохождении проверки
}


3. Обновление обертки для шаблонизатора smarty
Теперь в шаблонах smarty можно использовать встроенную переменную {$handy_hash}, хранящую уникальное значение.
Это полезно для предотвращения кеширования броузером обновляемых изображений.

Пример использования:
Код HTML:
<img src="some_image.jpg?{$handy_hash}" />


4. Автоматическая генерация META поля title
Если для страницы, не заданы meta-тег title, то он будет автоматически заполнен:
Таким образом это поможет сэкономить время, а также исключить дублирование meta-тега title на страницах, что бывает достаточно критично при продвижении сайта.


5. Добавлен модуль "Индексатор сайта"
Модуль позволяет индексировать сайт, задавая в настройках различные параметры. Возможно также указать:


6. Добавление и удаление настроек модуля
Добавлены функции:

1) удаление настройки

PHP код:
remExtSettings($name, $ext=false)

2) добавление настройки

PHP код:
addExtSettings($name, $title, $value, $dim, $position=0, $ext=false)

, где



7. Автоматизированный вывод и сохранение настроек модуля
Добавлена функция

 

PHP код:
showExtSettings($ext=false, $settings_not_alone=false)

, которая выводит все настройки модуля. Функция также отвечает за сохранение настроек.

Пример использования:

PHP код:
public function onExecute($param_str){
if(
$param_str['page']=="spider_settings") {
return
$this->extmanager->showExtSettings();
}
}


Результат выполнения:



8. Обновлена функция getExtSettings()


Теперь функция getExtSettings([$full=false, $ext=false]) может отдавать настройки в двух форматах:
Пример #1:
PHP код:
// Находимся в модуле photogallery
$settings = $this->getExtSettings();
в $settings:
Код HTML:
  Array (
       [param_1] => 0 
       [param_2] => 1 
   )
Пример #2:
PHP код:
// Находимся в модуле photogallery
$settings = $this->getExtSettings(true);
в $settings:
Код HTML:
 
  [0] => Array ( 
      [extension_settings_id] => 193 
      [extension_sysname] => photogallery 
      [setting_name] => param_1 
      [setting_title] => Описание параметра 
      [setting_value] => 0 
      [setting_dim] => 
      [setting_position] => 0 
  ) 
  [1] => Array ( 
      [extension_settings_id] => 194 
      [extension_sysname] => photogallery 
      [setting_name] => param_2 
      [setting_title] => Описание параметра 
      [setting_value] => 0 
      [setting_dim] => 
      [setting_position] => 0 
  )


9. Генерация Sitemap
Теперь при индексации сайта будет автоматически генерироваться sitemap.xml, а в robots.txt заноситься данные о расположении sitemap.

 
10. Обновлен модуль "Группы новостей"
На странице редактирования новости откорректирована возможность загрузки изображения из вложенной папки.
 
11. Обновление ядра Handy
Внутреннее обновление ядра Handy.CMS. Изменен принцип наименования класса для административного интерфейса, теперь все административные классы именуются по следующему правилу:
$class_name_admin, где $class_name - имя класса

Внимание! Все старые дополнительные модули не совместимы с текущим билдом. Для работы модулей следует сначала обновить билд до 2006, а затем обновить модули.
 
12. Добавлен метод setLink()
Добавлен метод setLink($node_id[, $view=false, $object_id=false]), где

Метод создан для более удобного проставления ссылок на объекты модуля.
Метод используется при прикреплении блока модуля к странице (метод onLink()), для того, чтобы в дальнейшем можно было получить ссылку на страницу, куда прикреплен данный вид модуля.

Пример: при прикреплении архива новостей, нам в последствии может потребоваться информация о ссылке (URL) на страницу, где он находится, например, для формирования ссылки на архив, с последних новостей. Для этого, при прикреплении архива к странице, мы в методе onLink() вызываем метод setLink().

PHP код:
// Вызывается при прицеплении модуля к странице
public function onLink($node_id, &$install_data) {
if(@
$install_data['params']['view'] == 'producers_list')
$this->setLink($node_id, $install_data['params']['view']);
}
13. Добавлены функции для работы с сессиями
Добавлены ф-ции: где: Пример:
PHP код:
// Устанавливаем нужное значение
$this->setSession('some_var', 25);
//..
// Если значение есть
if($this->getSession('some_var')!=NULL) {
//..
}
// Удаляем переменную
$this->unsetSession('some_var');
Переменные хранятся в специальном системном массиве сессии, для удобства вызова и отсутствия случайного затирания похожих названий.
 
14. Добавлена функция для получения имени класса, кто вызвал модуль
wasCalledFrom() возвращает системное имя класса, который вызвал модуль.


Пример:
PHP код:
if($this->wasCalledFrom()!="newsgroups") {
//...
}
15. Изменение в библиотеке utils
Изменена функция textToTranslite($text, $delimiter="-"), где Результирующий текст получаем в нижнем регистре.
 
Статус: выпущен.

Пользователи Handy.CMS 3.1 build 2005 могут обновиться до текущего билда через автоматическую систему обновлений.