Блокирование, разблокирование
При блокировании/разблокировании элемента или нескольких элементов модуля подключается функция act()
из файла adm/includes/act.php.
Эту функцию можно переопределить в классе модуля.
Некоторые модули агрегируют информацию об элементах других модулей, и при их блокировании нужно чтобы связанная информация также блокировалась.
Для этого в модулях-подключениях нужно создать файл modules/модуль/admin/модуль.admin.inc.php. В файле должен быть определен класс Модуль_admin_inc с функцией act()
.
string act (string $table, array $element_ids, integer $act) – блокирует / разблокирует элементы модуля, связанные с другими элементами.
- string $table: таблица
- array $element_ids: номера блокируемого / разблокируемого элементов
- integer $act: блокировать/разблокировать
Пример:
/* modules/tags/admin/tags.admin.inc.php
Переопределение блокировки/разблокировки для модуля «Теги»
*/
public function act($table, $element_ids, $act)
{
if (! $this->diafan->configmodules("tags"))
{
return;
}
if ($this->diafan->config('category'))
{
$table = str_replace('_category', '', $table);
$element_ids = DB::query_fetch_value("SELECT id FROM {".$table."} WHERE cat_id IN (%h)", implode(',', $element_ids), "id");
if($element_ids)
{
DB::query("UPDATE {tags} SET [act]='%d' WHERE module_name='%h' AND element_id IN (%h)", $act, $table, implode(',', $element_ids));
}
}
else
{
DB::query("UPDATE {tags} SET [act]='%d' WHERE module_name='%h' AND element_id IN (%h)", $act, $table, implode(',', $element_ids));
}
}
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.
Ваш комментарий будет первым.