Удаление, удаление в корзину
При удалении элемента или нескольких элементов модуля подключается функция del() из файла adm/includes/del.php.
Эту функцию можно переопределить в классе модуля.
Кроме того, если в классе модуля определена функция delete($del_id, $trash_id)
, то помимо заложенных в ядре действий она выполняется для каждого удаляемого элемента.
Надо учитывать, что если элементы удаляются в корзину, то сопутствующие им элементы тоже должны быть удалены в корзину. Поэтому вместо прямого SQL запроса на удаление лучше использовать функцию del_or_trash_where, определенную в файле adm/includes/del.php.
Пример:
/* При удалении товара нужно удалять его цены. Для этого в классе Shop_admin файла modules/shop/admin/shop.admin.php определяем функцию: */
public function delete($del_id, $trash_id)
{
$this->del_or_trash_where("shop_price", "good_id=".$del_id, $trash_id);
}
Некоторые модули агрегируют информацию об элементах других модулей, и при их удалении нужно чтобы связанная информация также удалялась. Например, при удалении товара нужно удалять ссылку в меню на него и комментарии о товаре.
Для этого в модулях-подключениях нужно создать файл modules/модуль/admin/модуль.admin.inc.php. В файле должен быть определен класс Модуль_admin_inc с функцией delete.
string delete (integer $element_id, string $module_name, string $element_type, [integer $trash_id = 0]) – удаляет элементы модуля, связанные с другими элементами.
- integer $element_id: номер удаляемого элемента
- string $module_name: название модуля, элемент которого удаляется
- string $element_type: тип данных
- integer $trash_id: номер записи в корзине, с которой связано удаление
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.
Ваш комментарий будет первым.