function nodequeue_save in Nodequeue 6.2
Same name and namespace in other branches
- 5.2 nodequeue.module \nodequeue_save()
- 5 nodequeue.module \nodequeue_save()
- 7.3 nodequeue.module \nodequeue_save()
- 7.2 nodequeue.module \nodequeue_save()
Save a nodequeue. This does not save subqueues; those must be added separately.
3 calls to nodequeue_save()
- NodequeueAPICRUDUnitTest::testNodequeueModify in tests/
nodequeue.test - NodequeueWebTestCase::createNodequeue in tests/
nodequeue.test - nodequeue_edit_queue_form_submit in includes/
nodequeue.admin.inc - Submit function for the nodequeue_queue form.
File
- ./
nodequeue.module, line 905 - Maintains queues of nodes in arbitrary order.
Code
function nodequeue_save(&$queue) {
if (!isset($queue->qid)) {
db_query("INSERT INTO {nodequeue_queue} (title, name, subqueue_title, size, link, link_remove, owner, show_in_links, show_in_tab, show_in_ui, i18n, reverse, reference) VALUES ('%s', '%s', '%s', %d, '%s', '%s', '%s', %d, %d, %d, %d, %d, '%s')", $queue->title, $queue->name, $queue->subqueue_title, $queue->size, $queue->link, $queue->link_remove, $queue->owner, $queue->show_in_links, $queue->show_in_tab, $queue->show_in_ui, $queue->i18n, $queue->reverse, $queue->reference);
$queue->qid = db_last_insert_id('nodequeue_queue', 'qid');
if (function_exists('views_invalidate_cache')) {
views_invalidate_cache();
}
}
else {
// Allow nodequeue to save and not update the name unless supplied
if (isset($queue->name) && !empty($queue->name)) {
db_query("UPDATE {nodequeue_queue} SET size = %d, title = '%s', subqueue_title = '%s', link = '%s', link_remove = '%s', owner = '%s', show_in_links = %d, show_in_tab = %d, show_in_ui = %d, i18n = %d, reverse = %d, reference = '%s' WHERE qid = %d", $queue->size, $queue->title, $queue->subqueue_title, $queue->link, $queue->link_remove, $queue->owner, $queue->show_in_links, $queue->show_in_tab, $queue->show_in_ui, $queue->i18n, $queue->reverse, $queue->reference, $queue->qid);
}
else {
db_query("UPDATE {nodequeue_queue} SET size = %d, title = '%s', name = '%s', subqueue_title = '%s', link = '%s', link_remove = '%s', owner = '%s', show_in_links = %d, show_in_tab = %d, show_in_ui = %d, i18n = %d, reverse = %d, reference = '%s' WHERE qid = %d", $queue->size, $queue->title, $queue->name, $queue->subqueue_title, $queue->link, $queue->link_remove, $queue->owner, $queue->show_in_links, $queue->show_in_tab, $queue->show_in_ui, $queue->i18n, $queue->reverse, $queue->reference, $queue->qid);
}
db_query("DELETE FROM {nodequeue_roles} WHERE qid = %d", $queue->qid);
db_query("DELETE FROM {nodequeue_types} WHERE qid = %d", $queue->qid);
}
if (is_array($queue->roles)) {
foreach ($queue->roles as $rid) {
db_query("INSERT INTO {nodequeue_roles} (qid, rid) VALUES (%d, %d)", $queue->qid, $rid);
}
}
if (is_array($queue->types)) {
foreach ($queue->types as $type) {
db_query("INSERT INTO {nodequeue_types} (qid, type) VALUES (%d, '%s')", $queue->qid, $type);
}
}
// set our global that tells us whether or not we need to activate hook_link
if (db_result(db_query("SELECT COUNT(*) FROM {nodequeue_queue} WHERE link <> ''"))) {
variable_set('nodequeue_links', TRUE);
}
else {
variable_set('nodequeue_links', FALSE);
}
if (isset($queue->add_subqueue) && is_array($queue->add_subqueue)) {
foreach ($queue->add_subqueue as $reference => $title) {
// If reference is unset it should be set to the qid; this is generally
// used for a single subqueue; setting the reference to the qid makes
// it easy to find that one subqueue.
if ($reference == 0) {
$reference = $queue->qid;
}
nodequeue_add_subqueue($queue, $title, $reference);
}
}
return $queue->qid;
}