Skip to content

Commit b51219f

Browse files
committed
Merge branch 'feature/drush-cleanup-function'
2 parents 48916c3 + dda6856 commit b51219f

File tree

2 files changed

+20
-18
lines changed

2 files changed

+20
-18
lines changed

os2web_cp_service.drush.inc

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function os2web_cp_service_drush_command() {
1616
'aliases' => array('cp-up'),
1717
);
1818
$items['cp-cleanup'] = array(
19-
'description' => 'Delete all refenreces which are broken to a Stub.',
19+
'description' => 'Delete all documents with a broken reference.',
2020
'arguments' => array(),
2121
'aliases' => array('cp-cl'),
2222
);
@@ -64,17 +64,17 @@ function drush_os2web_cp_service_cp_update_ref() {
6464
*/
6565
function drush_os2web_cp_service_cp_cleanup() {
6666

67+
// Find all documents which has no references from a case.
6768
$nodes = db_query("SELECT *
68-
FROM node n
69-
WHERE n.type = 'os2web_cp_service_cp_document'
70-
AND n.title = 'Stub'
71-
AND n.nid IN (
72-
SELECT field_os2web_cp_service_doc_ref_target_id
73-
FROM field_data_field_os2web_cp_service_doc_ref
74-
)");
69+
FROM node n
70+
WHERE n.type = 'os2web_cp_service_cp_document'
71+
AND n.nid NOT IN (
72+
SELECT field_os2web_cp_service_doc_ref_target_id
73+
FROM field_data_field_os2web_cp_service_doc_ref
74+
)");
7575

7676
foreach ($nodes as $node) {
7777
node_delete($node->nid);
78-
drush_log(t('Deleted stub: :node', array(':node' => $node->nid)), 'success');
78+
drush_log(t('Deleted document: !node', array('!node' => $node->nid)), 'success');
7979
}
8080
}

os2web_cp_service.module

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -677,17 +677,19 @@ function os2web_cp_service_node_delete($node) {
677677
->propertyCondition('status', 1)
678678
->fieldCondition('field_os2web_cp_service_doc_ref', 'target_id', $node->nid, '=')
679679
->execute();
680-
$nids = array_keys($result['node']);
681-
$new_nids = array();
682-
foreach ($nids as $nid) {
683-
$cnode = node_load($nid);
684-
foreach ($cnode->field_os2web_cp_service_doc_ref[LANGUAGE_NONE] as $value) {
685-
if ($value['target_id'] != $node->nid) {
686-
$new_nids[] = $value;
680+
if (!empty($result['node'])) {
681+
$nids = array_keys($result['node']);
682+
$new_nids = array();
683+
foreach ($nids as $nid) {
684+
$cnode = node_load($nid);
685+
foreach ($cnode->field_os2web_cp_service_doc_ref[LANGUAGE_NONE] as $value) {
686+
if ($value['target_id'] != $node->nid) {
687+
$new_nids[] = $value;
688+
}
687689
}
690+
$cnode->field_os2web_cp_service_doc_ref[LANGUAGE_NONE] = $new_nids;
691+
node_save($cnode);
688692
}
689-
$cnode->field_os2web_cp_service_doc_ref[LANGUAGE_NONE] = $new_nids;
690-
node_save($cnode);
691693
}
692694
}
693695
}

0 commit comments

Comments
 (0)