Наверх

Удаление, удаление в корзину

При удалении элемента или нескольких элементов модуля подключается функция 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: номер записи в корзине, с которой связано удаление

Ваши комментарии и дополнения

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.