Как обработать событие уделения записи своей таблицы в админке?

Аватар пользователя archerl archerl 15 января в 13:04

Прилагаю скриншот http://prntscr.com/qny78y . Я бы хотел после удаления записи удалить картинку, связанную с ней (в коде обработки мне понадобиться id записи)

Комментарии

Аватар пользователя archerl archerl 15 января в 17:25

А где в приведённом примере обработка события удаления? Какое условие нужно прописать? Спасибо.

Аватар пользователя archerl archerl 15 января в 17:32

Мне удалить запись в форме. Куда вставлять код, чтобы сделать дополнительное действие после удаления? И id удаленной записи при этом нужно.

Аватар пользователя archerl archerl 15 января в 17:39

В function hook_entity_delete($entity, $type) я не вижу где я могу id записи найти, а по второй не понимаю, где обработка удаления будет

Аватар пользователя bumble bumble 15 января в 17:46
1

Давайте я за Вас посмотрю:

<?php
function hook_entity_delete($entity$type) {

  

// Delete the entity's entry from a fictional table of all entities.
  
$info entity_get_info($type);
  list(
$id) = entity_extract_ids($type$entity);
  
db_delete('example_entity')
    ->
condition('type'$type)
    ->
condition('id'$id// Вот как тут появился ID?
    
->execute();
}
?>

А если еще набраться смелости, можно попробовать продебажить данные, и обнаружить что-то подобное:

<?php
function hook_entity_delete($entity$type) {
  
dpm($entity); // дебаг-дебаг, где мой ай-ди!?
  // ... смотрим что там к чему ...
  
$id $entity->nid// Для ноды, к примеру
}
?>
Аватар пользователя archerl archerl 16 января в 11:15

Большое спасибо, получилось:

<?php

<code lang="php">function magiclab_portfolio_entity_delete($entity$type)
{
  
$info entity_get_info($type);
  
$ids entity_extract_ids($type$entity);
  
$id $ids[0];

  if (

file_exists('themes/magiclab/img/portfolio/'.$id.'.jpg'))
    
unlink($_SERVER['DOCUMENT_ROOT'].'/themes/magiclab/img/portfolio/'.$id.'.jpg');
}
?>

Не могу только понять, что за запись list($id) = ...