Skip to content

Commit 5403815

Browse files
committed
Merge branch 'feature/drush-update-references' into develop
2 parents 1bc0ea2 + 92e29c6 commit 5403815

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

os2web_cp_service.drush.inc

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
3+
/**
4+
* @file
5+
* This file implements drush functions for CP Service
6+
*/
7+
8+
/**
9+
* Implements hook_drush_command().
10+
*/
11+
function os2web_cp_service_drush_command() {
12+
$items = array();
13+
$items['cp-update-ref'] = array(
14+
'description' => 'Update references in CP cases',
15+
'arguments' => array(),
16+
'aliases' => array('cp-up'),
17+
);
18+
return $items;
19+
}
20+
21+
/**
22+
* Implements drush_COMMAND().
23+
*/
24+
function drush_os2web_cp_service_cp_update_ref() {
25+
$nodes = db_query("SELECT *
26+
FROM {node} n
27+
WHERE n.type = 'os2web_cp_service_cp_document'
28+
AND n.nid NOT IN (SELECT field_os2web_cp_service_doc_ref_target_id FROM field_data_field_os2web_cp_service_doc_ref)")->fetchAllAssoc('nid');
29+
30+
$field_name = 'field_os2web_cp_service_case_id';
31+
$field_info = field_info_field($field_name);
32+
$field_id = $field_info['id'];
33+
field_attach_load('node', $nodes, FIELD_LOAD_CURRENT, array('field_id' => $field_id));
34+
35+
foreach ($nodes as $node) {
36+
37+
if (!empty($node->field_os2web_cp_service_case_id['und'][0]['value'])) {
38+
$nid = db_query(
39+
"SELECT entity_id FROM field_data_field_os2web_cp_service_case_id WHERE bundle = 'os2web_cp_service_cp_case' AND field_os2web_cp_service_case_id_value = :id",
40+
array(':id' => $node->field_os2web_cp_service_case_id['und'][0]['value'])
41+
)->fetchColumn();
42+
43+
if (!$nid) {
44+
drush_log(t('Cannot find case with id: :id', array(':id' => $node->field_os2web_cp_service_case_id['und'][0]['value'])), 'warning');
45+
continue;
46+
}
47+
48+
$ref_node = node_load($nid);
49+
$ref_node->field_os2web_cp_service_doc_ref['und'][]['target_id'] = $node->nid;
50+
node_save($ref_node);
51+
drush_log(t('Saved new reference to: :ref in :node', array(':ref' => $ref_node->nid, ':node' => $node->nid)), 'success');
52+
53+
}
54+
}
55+
}

0 commit comments

Comments
 (0)