function smartqueue_taxonomy in Nodequeue 6.2
Same name and namespace in other branches
- 5.2 smartqueue.module \smartqueue_taxonomy()
Implementation of hook_taxonomy.
2 string references to 'smartqueue_taxonomy'
- nodequeue_generate_form_submit in ./
nodequeue_generate.module - nodequeue_generate_rehash in ./
nodequeue_generate.module - Rebuild all smartqueue_taxonomy queues. Useful after a data migration has wiped your terms. When more smartqueue modules arrive, revisit this function.
File
- ./
smartqueue.module, line 237
Code
function smartqueue_taxonomy($op, $type, $array = NULL) {
switch ($type) {
case 'term':
switch ($op) {
// If a term was updated, we need to update any relevant nodequeue titles.
case 'update':
$tid = $array['tid'];
// Find subqueues that contain this term.
$result = db_query("SELECT nq.reference AS reference, sq.reference AS sqref, sq.sqid\n FROM {nodequeue_queue} nq\n INNER JOIN {nodequeue_subqueue} sq ON nq.qid = sq.qid\n WHERE nq.owner = 'smartqueue_taxonomy'\n AND (sq.reference = '%d'\n OR sq.reference LIKE '%%-%d'\n OR sq.reference LIKE '%d-%%'\n OR sq.reference LIKE '%%-%d-%%')", $tid, $tid, $tid, $tid);
while ($row = db_fetch_object($result)) {
// Note that $row already contains the needed $row->reference.
$title = smartqueue_taxonomy_nodequeue_subqueue_title($row, $row->sqref);
nodequeue_subqueue_update_title($row->sqid, $title);
}
break;
// If a term was deleted, we need to delete any subqueues containing it.
case 'delete':
$tid = $array['tid'];
if (empty($tid)) {
// Don't proceed and delete all subqueues.
return;
}
// Find subqueues that contain this term.
$result = db_query("SELECT sq.sqid FROM {nodequeue_subqueue} sq\n INNER JOIN {nodequeue_queue} nq ON sq.qid = nq.qid\n WHERE nq.owner = 'smartqueue_taxonomy'\n AND (sq.reference = '%d'\n OR sq.reference LIKE '%%-%d'\n OR sq.reference LIKE '%d-%%'\n OR sq.reference LIKE '%%-%d-%%')", $tid, $tid, $tid, $tid);
while ($row = db_fetch_object($result)) {
nodequeue_remove_subqueue($row->sqid);
}
break;
}
case 'vocabulary':
break;
}
}