cvs diff: Diffing modules/nodequeue Index: modules/nodequeue/nodequeue.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/nodequeue/nodequeue.install,v retrieving revision 1.3.2.9 diff -u -p -r1.3.2.9 nodequeue.install --- modules/nodequeue/nodequeue.install 19 Jun 2007 20:33:32 -0000 1.3.2.9 +++ modules/nodequeue/nodequeue.install 19 Jun 2007 20:38:38 -0000 @@ -32,6 +32,7 @@ function nodequeue_install() { qid int(10) unsigned NOT NULL, nid int(10) unsigned, position int(3) unsigned, + timestamp int unsigned NOT NULL default '0', KEY {nodequeue_nodes}_qid_idx (qid, position), KEY {nodequeue_nodes}_nid_idx (nid) )/*!40100 DEFAULT CHARACTER SET utf8 */"); @@ -63,7 +64,8 @@ function nodequeue_install() { db_query("CREATE TABLE {nodequeue_nodes} ( qid integer NOT NULL, nid integer, - position integer + position integer, + timestamp integer NOT NULL default '0', )"); db_query("CREATE INDEX {nodequeue_nodes}_qid_idx ON {nodequeue_nodes} (qid, position)"); db_query("CREATE INDEX {nodequeue_nodes}_nid_idx ON {nodequeue_nodes} (nid)"); @@ -101,7 +103,7 @@ function nodequeue_update_1() { } } -function nodequeue_update_1000() { +function nodequeue_update_5000() { $ret = array(); $ret[] = t(array('success' => TRUE, 'query' => 'Some of the following queries may appear to fail. This is not a problem.')); @@ -117,3 +119,17 @@ function nodequeue_update_1000() { $ret[] = _system_update_utf8(array('nodequeue_queue', 'nodequeue_roles', 'nodequeue_types', 'nodequeue_nodes')); return $ret; } + +function nodequeue_update_5001() { + $ret = array(); + switch ($GLOBALS['db_type']) { + case 'mysql': + case 'mysqli': + $ret[] = update_sql("ALTER TABLE {nodequeue_nodes} ADD COLUMN timestamp int DEFAULT '0' NOT NULL"); + break; + case 'pgsql': + db_add_column($ret, 'nodequeue_nodes', 'timestamp', 'integer', array('default' => 0, 'not null' => TRUE)); + break; + } + return $ret; +} Index: modules/nodequeue/nodequeue.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/nodequeue/nodequeue.module,v retrieving revision 1.39.2.22 diff -u -p -r1.39.2.22 nodequeue.module --- modules/nodequeue/nodequeue.module 19 Jun 2007 20:19:50 -0000 1.39.2.22 +++ modules/nodequeue/nodequeue.module 19 Jun 2007 20:38:39 -0000 @@ -538,8 +538,9 @@ function nodequeue_queue_admin_submit($f db_query("DELETE FROM {nodequeue_nodes} WHERE qid = %d", $form_values['qid']); if ($form_values['op'] == t('Save') && $form_values['order']) { $counter = 1; + $now = time(); foreach (explode(',', $form_values['order']) as $nid) { - db_query("INSERT INTO {nodequeue_nodes} (qid, nid, position) VALUES (%d, %d, %d)", $form_values['qid'], $nid, $counter++); + db_query("INSERT INTO {nodequeue_nodes} (qid, nid, position, timestamp) VALUES (%d, %d, %d, %d)", $form_values['qid'], $nid, $counter++, $now); } } drupal_set_message(t('The queue has been updated')); @@ -781,7 +782,7 @@ function nodequeue_queue_front($queue, $ $entry = db_fetch_object(db_query("SELECT * FROM {nodequeue_nodes} WHERE qid= %d AND position = %d", $queue->qid, $position)); db_query("DELETE FROM {nodequeue_nodes} WHERE qid = %d AND position = %d", $queue->qid, $position); db_query("UPDATE {nodequeue_nodes} SET position = position + 1 WHERE qid= %d AND position < %d", $queue->qid, $position); - db_query("INSERT INTO {nodequeue_nodes} (qid, nid, position) VALUES (%d, %d, 1)", $queue->qid, $entry->nid); + db_query("INSERT INTO {nodequeue_nodes} (qid, nid, position, timestamp) VALUES (%d, %d, 1, %d)", $queue->qid, $entry->nid, $entry->timestamp); } function nodequeue_queue_back($queue, $position) { @@ -790,7 +791,7 @@ function nodequeue_queue_back($queue, $p $entry = db_fetch_object(db_query("SELECT * FROM {nodequeue_nodes} WHERE qid = %d AND position = %d", $queue->qid, $position)); db_query("DELETE FROM {nodequeue_nodes} WHERE qid = %d AND position = %d", $queue->qid, $position); db_query("UPDATE {nodequeue_nodes} SET position = position - 1 WHERE qid = %d AND position > %d", $queue->qid, $position); - db_query("INSERT INTO {nodequeue_nodes} (qid, nid, position) VALUES (%d, %d, %d)", $queue->qid, $entry->nid, $queue->count); + db_query("INSERT INTO {nodequeue_nodes} (qid, nid, position, timestamp) VALUES (%d, %d, %d, %d)", $queue->qid, $entry->nid, $queue->count, $entry->timestamp); } function _nodequeue_queue_remove(&$queue, $start, $end = 0) { @@ -817,7 +818,7 @@ function _nodequeue_queue_add(&$queue, $ $nid = intval($nid); $queue->count++; - db_query("INSERT INTO {nodequeue_nodes} (qid, nid, position) VALUES (%d, %d, %d)", $queue->qid, $nid, $queue->count); + db_query("INSERT INTO {nodequeue_nodes} (qid, nid, position, timestamp) VALUES (%d, %d, %d, %d)", $queue->qid, $nid, $queue->count, time()); } function nodequeue_queue_clear($qid) { @@ -1018,6 +1019,16 @@ function nodequeue_views_tables() { "field" => "nid" ), ), + "fields" => array( + 'timestamp' => array( + 'name' => t('NodeQueue: Timestamp'), + 'sortable' => true, + 'handler' => views_handler_field_dates(), + 'option' => 'string', + 'help' => t('Display the time the node was added to a given node queue.').' '. + t('The option field may be used to specify the custom date format as it\'s required by the date() function or if "as time ago" has been chosen to customize the granularity of the time interval.'), + ), + ), "filters" => array( "qid" => array( 'name' => "NodeQueue: Queue", @@ -1031,6 +1042,14 @@ function nodequeue_views_tables() { 'operator' => 'views_handler_operator_gtlt', 'help' => t('Filter by where in the queue an item is.'), ), + "timestamp" => array( + 'name' => t('NodeQueue: Queue Timestamp'), + 'operator' => 'views_handler_operator_gtlt', + 'value' => views_handler_filter_date_value_form(), + 'handler' => 'views_handler_filter_timestamp', + 'option' => 'string', + 'help' => t('This filter allows nodes to be filtered by the time they were added to a given NodeQueue.') .' '. views_t_strings('filter date'), + ), ), "sorts" => array( "position" => array( @@ -1038,6 +1057,12 @@ function nodequeue_views_tables() { 'field' => 'position', 'help' => t('When sorting by queue position, be sure the view is filtered to a single queue or the sort will not work very well.'), ), + 'timestamp' => array( + 'name' => t('NodeQueue: Timestamp'), + 'handler' => 'views_handler_sort_date', + 'option' => views_handler_sort_date_options(), + 'help' => t('Sort by the time the node was added to a node queue.'), + ), ), ); $tables['nodequeue_queue'] = array(