danielebarchiesi@0: t('Current date')); danielebarchiesi@0: $form['default_argument_type']['#options'] += array('node_created' => t("Current node's creation time")); danielebarchiesi@0: $form['default_argument_type']['#options'] += array('node_changed' => t("Current node's update time")); } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Set the empty argument value to the current date, danielebarchiesi@0: * formatted appropriately for this argument. danielebarchiesi@0: */ danielebarchiesi@0: function get_default_argument($raw = FALSE) { danielebarchiesi@0: if (!$raw && $this->options['default_argument_type'] == 'date') { danielebarchiesi@0: return date($this->arg_format, REQUEST_TIME); danielebarchiesi@0: } danielebarchiesi@0: else if (!$raw && in_array($this->options['default_argument_type'], array('node_created', 'node_changed'))) { danielebarchiesi@0: foreach (range(1, 3) as $i) { danielebarchiesi@0: $node = menu_get_object('node', $i); danielebarchiesi@0: if (!empty($node)) { danielebarchiesi@0: continue; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: if (arg(0) == 'node' && is_numeric(arg(1))) { danielebarchiesi@0: $node = node_load(arg(1)); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: if (empty($node)) { danielebarchiesi@0: return parent::get_default_argument(); danielebarchiesi@0: } danielebarchiesi@0: elseif ($this->options['default_argument_type'] == 'node_created') { danielebarchiesi@0: return date($this->arg_format, $node->created); danielebarchiesi@0: } danielebarchiesi@0: elseif ($this->options['default_argument_type'] == 'node_changed') { danielebarchiesi@0: return date($this->arg_format, $node->changed); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: return parent::get_default_argument($raw); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * The date handler provides some default argument types, which aren't argument default plugins, danielebarchiesi@0: * so addapt the export mechanism. danielebarchiesi@0: */ danielebarchiesi@0: function export_plugin($indent, $prefix, $storage, $option, $definition, $parents) { danielebarchiesi@0: danielebarchiesi@0: // Only use a special behaviour for the special argument types, else just danielebarchiesi@0: // use the default behaviour. danielebarchiesi@0: if ($option == 'default_argument_type') { danielebarchiesi@0: $type = 'argument default'; danielebarchiesi@0: $option_name = 'default_argument_options'; danielebarchiesi@0: danielebarchiesi@0: $plugin = $this->get_plugin($type); danielebarchiesi@0: $name = $this->options[$option]; danielebarchiesi@0: if (in_array($name, array('date', 'node_created', 'node_changed'))) { danielebarchiesi@0: danielebarchiesi@0: // Write which plugin to use. danielebarchiesi@0: $output = $indent . $prefix . "['$option'] = '$name';\n"; danielebarchiesi@0: return $output; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: return parent::export_plugin($indent, $prefix, $storage, $option, $definition, $parents); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: danielebarchiesi@0: function get_sort_name() { danielebarchiesi@0: return t('Date', array(), array('context' => 'Sort order')); danielebarchiesi@0: } danielebarchiesi@0: }