2
// $Id: views_handler_argument_date.inc,v 1.3 2009/03/24 22:28:26 merlinofchaos Exp $
4
* Abstract argument handler for dates.
6
* Adds an option to set a default argument based on the current date.
9
* The format string to use on the current time when
10
* creating a default date argument.
13
* - many to one: If true, the "many to one" helper will be used.
14
* - invalid input: A string to give to the user for obviously invalid input.
15
* This is deprecated in favor of argument validators.
16
* @see views_many_to_one_helper
18
* @ingroup views_argument_handlers
20
class views_handler_argument_date extends views_handler_argument_formula {
21
var $option_name = 'default_argument_date';
22
var $arg_format = 'Y-m-d';
25
* Add an option to set the default value to the current date.
27
function default_argument_form(&$form, &$form_state) {
28
parent::default_argument_form($form, $form_state);
29
$form['default_argument_type']['#options'] += array('date' => t('Current date'));
30
$form['default_argument_type']['#options'] += array('node_created' => t("Current node's creation time"));
31
$form['default_argument_type']['#options'] += array('node_changed' => t("Current node's update time")); }
34
* Set the empty argument value to the current date,
35
* formatted appropriately for this argument.
37
function get_default_argument($raw = FALSE) {
38
if (!$raw && $this->options['default_argument_type'] == 'date') {
39
return date($this->arg_format, time());
42
foreach (range(1, 3) as $i) {
43
$node = menu_get_object('node', $i);
49
if (arg(0) == 'node' && is_numeric(arg(1))) {
50
$node = node_load(arg(1));
54
return parent::get_default_argument();
56
else if ($this->options['default_argument_type'] == 'node_created') {
57
return date($this->arg_format, $node->created);
59
else if ($this->options['default_argument_type'] == 'node_changed') {
60
return date($this->arg_format, $node->changed);
64
return parent::get_default_argument($raw);