Importált képek törlése

aruna képe

Egy 'pic' tartalomtípusban képeket tárolok (egy node-hoz egy kép csatolható).

Szeretném programból törölni az összes 'pic' tartalomtípusba tartozó node-ot törölni és a hozzá tartozó csatolt fájlokat is.

function delete_pic_nodes() {
  $sql = 'SELECT nid FROM {node} n WHERE n.type = :type';
  $result = db_query($sql, array(':type' => 'pic'));
  $nids = array();
  foreach ($result as $row) {
    $nids[] = $row->nid;
  }
  node_delete_multiple($nids);
 
  // TO DO - Delete files as well, but how?
}

A fenti kód törli a node-okat de nem törli a hozzájuk csatolt fájlokat.

Már googliztam egy fél órát, de még nem találom. Hogy érdemes törölni a node-okkal együtt a fájlokat is kódból?

Drupal verzió: 
aboros képe

drush genc 0 0 --kill --types pic

így?
1
0

-
clear: both;

aruna képe

module kódjába, ők (is) így oldják meg a 'Kill content' funkciót.

devel_generate.inc:

function devel_generate_content_kill($values) {
  $results = db_select('node', 'n')
              ->fields('n', array('nid'))
              ->condition('type', $values['node_types'], 'IN')
              ->execute();
  foreach ($results as $result) {
    $nids[] = $result->nid;
  }
 
  if (!empty($nids)) {
    node_delete_multiple($nids);
    drupal_set_message(t('Deleted %count nodes.', array('%count' => count($nids))));
  }
}
0
0
aruna képe

drush genc 0 0 --kill --types pic
0 tartalom létrehozása befejeződött                              [status]
Generated 0 nodes, 0 comments (or less) per node.                    [success]

Ez ^^^ nem segített.

Ez a kézi takarítás így ok drupal 7 esetében?

- Kitörlöm a node-okat kódból (ez megy).
- A file_managed táblában mindent törlök, amit admin user-el hoztam létre az utolsó pl. fél órában (az import ideje alatt).
- A fájlrendszeren pedig törlöm a képeket (ebben a tartalomtípusban nincs korábbi, megőrizendő tartalom):
./files/styles/large/public/pic-image/*.jpg
./files/styles/thumbnail/public/pic-image/*.jpg
./files/pic-image/*.jpg

0
0
szantog képe

Nem véletlenül nem megy az a fálj törlés. Nézz szét a file_usage táblában is, sztem más nodehoz kapcsolódóan is van a kérdéses fáljhoz bejegyzés hozzá bejegyzés.
Ha így sem megy, akkor a booba féle quickdebug eredményét mutasd meg: Localhoston drush sql-dump > dump1 - felveszel egy új nodeot egy új fáljlal, drush sql-dump > dump2 majd diff dump1 dump2.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.