function nodequeue_save in Nodequeue 5
Same name and namespace in other branches
- 5.2 nodequeue.module \nodequeue_save()
- 6.2 nodequeue.module \nodequeue_save()
- 7.3 nodequeue.module \nodequeue_save()
- 7.2 nodequeue.module \nodequeue_save()
2 calls to nodequeue_save()
- nodequeue_queue_form_submit in ./
nodequeue.module - Submit function for the nodequeue_queue form.
- _nodequeue_save in ./
nodequeue.module
File
- ./
nodequeue.module, line 717
Code
function nodequeue_save($queue, $nodes = false) {
$queue->size = intval($queue->size);
$title = db_escape_string($queue->title);
if (!$queue->qid) {
$queue->qid = db_next_id("{nodequeue_queue}_qid");
db_query("INSERT INTO {nodequeue_queue} (qid, title, size, link, link_remove) VALUES (%d, '%s', %d, '%s', '%s')", $queue->qid, $title, $queue->size, $queue->link, $queue->link_remove);
if (function_exists('views_invalidate_cache')) {
views_invalidate_cache();
}
}
else {
$queue->qid = intval($queue->qid);
db_query("UPDATE {nodequeue_queue} set size = %d, title = '%s', link = '%s', link_remove = '%s' WHERE qid = %d", $queue->size, $title, $queue->link, $queue->link_remove, $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 ($nodes) {
db_query("DELETE FROM {nodequeue_nodes} 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);
}
}
if ($nodes && is_array($queue->nodes)) {
foreach ($queue->nodes as $nid) {
db_query("INSERT INTO {nodequeue_roles} (qid, nid, position) VALUES (%d, %d, %d)", $queue->qid, $nid, ++$position);
// Stop if we somehow have more nodes in the queue than are allowed.
if ($queue->size && $position >= $queue->size) {
break;
}
}
}
// 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);
}
return $queue->qid;
}