PDA

Просмотр полной версии : Выпущен Handy.CMS 3.1. build 2006


Handy.CMS
07.02.2010, 01:27
1. Изменение в системе распределения прав доступа
В функцию расширения распределения прав доступа (right_access_manager)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 содержит поля:

cat_id - ID категории
cat_parent_id - ID родительской категории
Применяем права:
$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);

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



checkFileType($ext, $type=false, $other=false), где

$ext - проверяемое расширение;
$type - тип, к которому должен относиться файл, по-умолчанию image
$other - массив с пользовательскими расширениями.
В настоящий момент доступно 2 типа:

image (jpg, jpeg, gif, png, bmp)
user (пользовательский тип, при его установке, параметр $other должен содержать массив с разрешенными типами файлов).
Пример использования:

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)) {
// Действия при прохождении проверки
}

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

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

Handy.CMS
08.02.2010, 20:36
4. Автоматическая генерация META поля title
Если для страницы, не заданы meta-тег title, то он будет автоматически заполнен:

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

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

Индексировать или нет директории, запрещенные в robots.txt
Указать неиндексируемые части шаблона <!--handy_spider_noindex-->Код, который не нужно индексировать<!--/handy_spider_noindex-->

Переиндексировать проиндексированные страницы сайта или только индексировать новые
Устанавливать вес для различных элементов страницы, в которых встречаются индексируемые слова.

Handy.CMS
10.02.2010, 03:57
6. Добавление и удаление настроек модуля
Добавлены функции:
1) удаление настройки
remExtSettings($name, $ext=false)
2) добавление настройки

addExtSettings($name, $title, $value, $dim, $position=0, $ext=false), где

$name - значение поля setting_name таблицы extensions_settings БД;
$title - значение поля setting_title таблицы extensions_settings БД;
$value - значение поля setting_value таблицы extensions_settings БД;
$dim - значение поля setting_dim таблицы extensions_settings БД;
$position - значение поля setting_position таблицы extensions_settings БД;
$ext - системное имя модуля, вызвавшего метод (если не указано, текущий модуль).

Handy.CMS
10.02.2010, 05:11
7. Автоматизированный вывод и сохранение настроек модуля
Добавлена функция showExtSettings($ext=false, $settings_not_alone=false), которая выводит все настройки модуля. Функция также отвечает за сохранение настроек.

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

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


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

Handy.CMS
11.02.2010, 18:54
8. Обновлена функция getExtSettings()


Теперь функция getExtSettings([$full=false, $ext=false]) может отдавать настройки в двух форматах:

При запуске по-умолчанию: массив, где ключ - наименование свойства, а значение - значение свойства;
При указании переменной $full в true: массив с полным списком свойств для каждой наствойки.
$ext - системное имя модуля, чьи свойства мы хотим
Пример #1:

// Находимся в модуле photogallery
$settings = $this->getExtSettings();

в $settings:

Array
(
[param_1] => 0
[param_2] => 1
)


Пример #2:

// Находимся в модуле photogallery
$settings = $this->getExtSettings(true);

в $settings:
[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
)

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

Handy.CMS
12.02.2010, 02:18
10. Обновлен модуль "Группы новостей"
На странице редактирования новости откорректирована возможность загрузки изображения из вложенной папки.

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

Внимание! Все старые дополнительные модули не совместимы с текущим билдом. Для работы модулей следует сначала обновить билд до 2006, а затем обновить модули.

Handy.CMS
15.02.2010, 16:44
12. Добавлен метод setLink()


Добавлен метод setLink($node_id[, $view=false, $object_id=false]), где

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

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


// Вызывается при прицеплении модуля к странице
public function onLink($node_id, &$install_data) {
if(@$install_data['params']['view'] == 'producers_list')
$this->setLink($node_id, $install_data['params']['view']);
}

Handy.CMS
16.02.2010, 19:47
13. Добавлены функции для работы с сессиями


Добавлены ф-ции:

setSession ($param, $value [, $ext = false]) - установка значения параметра;
getSession ($param [, $ext = false]) - получение значения параметра;
unsetSession ($param [, $ext = false]) - удаление параметра из сессии.
где:

$param - системное название параметра на английском языке;
$value - значение параметра;
$ext - модуль, которую принадлежит параметр (по-умолчанию, тот, что вызывает ф-цию).
Пример:

// Устанавливаем нужное значение
$this->setSession('some_var', 25);
//..
// Если значение есть
if($this->getSession('some_var')!=NULL) {
//..
}
// Удаляем переменную
$this->unsetSession('some_var');


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

Handy.CMS
16.02.2010, 19:49
14. Добавлена функция для получения имени класса, кто вызвал модуль
wasCalledFrom() возвращает системное имя класса, который вызвал модуль.


Пример:

if($this->wasCalledFrom()!="newsgroups") {
//...
}

Handy.CMS
16.02.2010, 19:58
15. Изменение в библиотеке utils


Изменена функция textToTranslite($text, $delimiter="-"), где

$text - исходный текст, который нужно перевести в транслит;
$delimiter - разделитель, на который заменяются пробелы в тексте (по-умолчанию дефис).
Результирующий текст получаем в нижнем регистре.

Handy.CMS
25.02.2010, 23:40
Статус: выпущен.

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