Révision 136a805a
Ajouté par Assos Assos il y a plus de 7 ans
drupal7/sites/all/modules/panels/panels_node/panels_node.install | ||
---|---|---|
56 | 56 |
drupal_uninstall_schema('panels_node'); |
57 | 57 |
} |
58 | 58 |
|
59 |
/** |
|
60 |
* Implements hook_update_dependencies(). |
|
61 |
*/ |
|
62 |
function panels_node_update_dependencies() { |
|
63 |
// Update 7301 requires panels storage support |
|
64 |
$dependencies['panels_node'][7301] = array( |
|
65 |
'panels' => 7305, |
|
66 |
); |
|
67 |
|
|
68 |
return $dependencies; |
|
69 |
} |
|
70 |
|
|
59 | 71 |
/** |
60 | 72 |
* Implementation of hook_update to handle adding a pipeline |
61 | 73 |
*/ |
... | ... | |
69 | 81 |
db_add_field('panels_node', 'pipeline', $field); |
70 | 82 |
return $ret; |
71 | 83 |
} |
84 |
|
|
85 |
/** |
|
86 |
* Migrate legacy Drupal 6 permissions to Drupal 7. |
|
87 |
*/ |
|
88 |
function panels_node_update_7301() { |
|
89 |
$permissions = array( |
|
90 |
'create panel-nodes' => 'create panel content', |
|
91 |
'edit any panel-nodes' => 'edit any panel content', |
|
92 |
'edit own panel-nodes' => 'edit own panel content', |
|
93 |
'delete any panel-nodes' => 'delete any panel content', |
|
94 |
'delete own panel-nodes' => 'delete own panel content', |
|
95 |
); |
|
96 |
foreach ($permissions as $legacy_permission => $new_permission) { |
|
97 |
$query = db_select('role_permission', 'p') |
|
98 |
->fields('p', array('rid')) |
|
99 |
->condition('permission', $legacy_permission); |
|
100 |
$rids = $query->execute()->fetchCol(); |
|
101 |
foreach ($rids as $rid) { |
|
102 |
// Insert the new permission if it doesn't already exist. |
|
103 |
db_merge('role_permission') |
|
104 |
->key(array( |
|
105 |
'rid' => $rid, |
|
106 |
'permission' => $new_permission, |
|
107 |
)) |
|
108 |
->insertFields(array( |
|
109 |
'rid' => $rid, |
|
110 |
'permission' => $new_permission, |
|
111 |
'module' => 'node', |
|
112 |
)) |
|
113 |
->execute(); |
|
114 |
} |
|
115 |
|
|
116 |
// Delete the legacy permission. |
|
117 |
db_delete('role_permission') |
|
118 |
->condition('permission', $legacy_permission) |
|
119 |
->execute(); |
|
120 |
} |
|
121 |
} |
|
122 |
|
|
123 |
/* |
|
124 |
* Set the storage type and id on existing panels nodes. |
|
125 |
*/ |
|
126 |
function panels_node_update_7302() { |
|
127 |
if (!isset($sandbox['progress'])) { |
|
128 |
// Initialize batch update information. |
|
129 |
$sandbox['progress'] = (float)0; |
|
130 |
$sandbox['current_did'] = -1; |
|
131 |
$sandbox['max'] = db_query("SELECT COUNT(pd.did) |
|
132 |
FROM {panels_display} pd |
|
133 |
JOIN {panels_node} pn ON pn.did = pd.did |
|
134 |
WHERE pd.storage_type = ''")->fetchField(); |
|
135 |
} |
|
136 |
|
|
137 |
// Set a limit of how many rows to process per batch. |
|
138 |
$limit = 1000; |
|
139 |
|
|
140 |
// Run the query |
|
141 |
$result = db_query_range("SELECT pd.did, pn.nid |
|
142 |
FROM {panels_display} pd |
|
143 |
JOIN {panels_node} pn ON pn.did = pd.did |
|
144 |
WHERE pd.storage_type = '' AND pd.did > :current_did", 0, $limit, array(':current_did' => $sandbox['current_did'])); |
|
145 |
|
|
146 |
foreach ($result as $row) { |
|
147 |
db_update('panels_display') |
|
148 |
->fields(array( |
|
149 |
'storage_type' => 'panels_node', |
|
150 |
'storage_id' => $row->nid, |
|
151 |
)) |
|
152 |
->condition('did', $row->did) |
|
153 |
->execute(); |
|
154 |
|
|
155 |
// Update our progress information. |
|
156 |
$sandbox['progress']++; |
|
157 |
$sandbox['current_did'] = $row->did; |
|
158 |
} |
|
159 |
|
|
160 |
// Set the "finished" status, to tell batch engine whether this function |
|
161 |
// needs to run again. |
|
162 |
$sandbox['#finished'] = ($sandbox['progress'] >= $sandbox['max']) ? TRUE : ($sandbox['progress'] / $sandbox['max']); |
|
163 |
|
|
164 |
if ($sandbox['#finished']) { |
|
165 |
return t('Added the storage type for panels_node to relevant panels displays'); |
|
166 |
} |
|
167 |
} |
Formats disponibles : Unified diff
Weekly update of contrib modules