class _datex_views_handler_field_date in Datex 7.3
Hierarchy
- class \views_object
- class \views_handler
- class \views_handler_field
- class \views_handler_field_date
- class \views_handler_field
- class \views_handler
Expanded class hierarchy of _datex_views_handler_field_date
File
- ./
datex.views.inc, line 252 - Datex views integration.
View source
class _datex_views_handler_field_date extends views_handler_field_date {
// In this cases, Everything will be handled properly by parent and there
// is no need for datex to interfere with views original handler.
private static $parent_handled = [
'raw time ago',
'time ago',
'raw time hence',
'time hence',
'raw time span',
'inverse time span',
'time span',
];
/**
* Datex specific options added to date fields.
*/
function option_definition() {
// Default option is to follow default global schema.
$options = parent::option_definition();
$options['datex_schema'] = [
'default' => 'default',
];
// views_date_format_sql module compatibility.
$options['datex_format_date_sql'] = [
'default' => FALSE,
];
return $options;
}
/**
* Schema to use for the displayed date.
*/
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['datex_schema'] = [
'#type' => 'select',
'#title' => t('Datex schema'),
'#options' => _datex_schema_form_options(),
'#default_value' => isset($this->options['datex_schema']) ? $this->options['datex_schema'] : 'default',
];
$form['datex_format_date_sql'] = [
'#type' => 'checkbox',
'#title' => t('Use SQL to format date (views_date_format_sql module compatibility)'),
'#description' => t('Use the SQL database to format the date. This enables date values to be used in grouping aggregation.' . ' This option is also provided by views_date_format_sql too, but since datex overrides this module, this option is also provided here.' . " There won't be any issue activating both modules (probably through a dependency)."),
'#default_value' => isset($this->options['datex_format_date_sql']) ? $this->options['datex_format_date_sql'] : FALSE,
];
}
/**
* Mimic the functionality of views_date_format_sql module.
*/
private function _sql_or_delegate_render_to_parent($values) {
return !$this
->_datex_is_views_date_format_sql() ? parent::query() : $this
->get_value($values);
}
/**
* Render the date, if it should be localized. Otherwise let parent handle it.
*/
public function render($values) {
$schema = _datex_element_schema($this);
if (in_array($this->options['date_format'], self::$parent_handled) || $schema === 'disabled') {
return $this
->_sql_or_delegate_render_to_parent($values);
}
$value = $this
->get_value($values);
if (!$value) {
return $this
->_sql_or_delegate_render_to_parent($values);
}
$tz = empty($this->options['timezone']) ? drupal_get_user_timezone() : $this->options['timezone'];
$calendar = datex_factory($tz, _datex_language_calendar_name($schema));
if (!$calendar) {
return $this
->_sql_or_delegate_render_to_parent($values);
}
$format = '';
switch ($this->options['date_format']) {
case 'short':
$format = variable_get('date_format_short', 'm/d/Y - H:i');
break;
case 'long':
$format = variable_get('date_format_long', 'l, F j, Y - H:i');
break;
case 'custom':
$format = $this->options['custom_date_format'];
break;
case 'medium':
$format = variable_get('date_format_medium', 'D, m/d/Y - H:i');
break;
default:
$format = variable_get('date_format_' . $this->options['date_format'], '');
break;
}
if (empty($format)) {
$format = variable_get('date_format_medium', 'D, m/d/Y - H:i');
}
if ($this
->_datex_is_views_date_format_sql()) {
$en = datex_factory($tz, 'gregorian', 'en');
if (!$en || !$en
->parse($value, $format)) {
return '?';
}
$calendar
->setTimestamp($en
->getTimestamp());
return $calendar
->format($format);
}
else {
$calendar
->setTimestamp($value);
return $calendar
->format($format);
}
}
public function query() {
if (!isset($this->options['datex_format_date_sql']) || !$this->options['datex_format_date_sql']) {
return parent::query();
}
$this
->ensure_my_table();
// Add the field.
$params = $this->options['group_type'] != 'group' ? [
'function' => $this->options['group_type'],
] : [];
$format = $this->options['date_format'];
$custom_format = $this->options['custom_date_format'];
$format_string = $this
->_datex_views_date_format_sql_get_date_format($format, $custom_format);
$formula = views_date_sql_format($format_string, "{$this->table_alias}.{$this->real_field}");
$this->field_alias = $this->query
->add_field(NULL, $formula, "{$this->table_alias}_{$this->real_field}", $params);
$this->query
->add_groupby($this->field_alias);
$this
->add_additional_fields();
}
/**
* From views_date_format_sql:
*
* Helper to retrieve the format to a given date format name.
* see includes/common.inc:function format_date()
*/
private function _datex_views_date_format_sql_get_date_format($type = 'medium', $format = '') {
switch ($type) {
case 'short':
$format = variable_get('date_format_short', 'm/d/Y - H:i');
break;
case 'long':
$format = variable_get('date_format_long', 'l, F j, Y - H:i');
break;
case 'custom':
// No change to format.
break;
case 'medium':
default:
// Retrieve the format of the custom $type passed.
if ($type != 'medium') {
$format = variable_get('date_format_' . $type, '');
}
// Fall back to 'medium'.
if ($format === '') {
$format = variable_get('date_format_medium', 'D, m/d/Y - H:i');
}
break;
}
return $format;
}
private function _datex_is_views_date_format_sql() {
return isset($this->options['datex_format_date_sql']) && $this->options['datex_format_date_sql'];
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
views_handler:: |
public | property | The type of the handler, for example filter/footer/field. | |
views_handler:: |
public | property | Where the $query object will reside:. | 1 |
views_handler:: |
public | property | The actual field in the database table, maybe different on other kind of query plugins/special handlers. | |
views_handler:: |
public | property | The relationship used for this field. | |
views_handler:: |
public | property | The alias of the table of this handler which is used in the query. | |
views_handler:: |
public | property |
The top object of a view. Overrides views_object:: |
|
views_handler:: |
public | function | Take input from exposed handlers and assign to this handler, if necessary. | 1 |
views_handler:: |
public | function | Check whether current user has access to this handler. | 10 |
views_handler:: |
public | function | Determine if the handler is considered 'broken'. | 6 |
views_handler:: |
public | function | Determine if a handler can be exposed. | 2 |
views_handler:: |
public | function | Transform a string by a certain method. | |
views_handler:: |
public | function | Ensure the main table for this handler is in the query. This is used a lot. | 8 |
views_handler:: |
public | function | Render our chunk of the exposed handler form when selecting. | 1 |
views_handler:: |
public | function | Get information about the exposed form for the form renderer. | 1 |
views_handler:: |
public | function | Submit the exposed handler form. | |
views_handler:: |
public | function | Validate the exposed handler form. | 4 |
views_handler:: |
public | function | Form for exposed handler options. | 2 |
views_handler:: |
public | function | Set new exposed option defaults when exposed setting is flipped on. | 2 |
views_handler:: |
public | function | Perform any necessary changes to the form exposes prior to storage. There is no need for this function to actually store the data. | |
views_handler:: |
public | function | Validate the options form. | 1 |
views_handler:: |
public | function | Provide defaults for the handler. | |
views_handler:: |
public | function | Provide a form for setting options. | 1 |
views_handler:: |
public | function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. | |
views_handler:: |
public | function | Validate the options form. | |
views_handler:: |
public | function | Shortcut to get a handler's raw field value. | |
views_handler:: |
public | function | Get the join object that should be used for this handler. | |
views_handler:: |
public | function | Provide a form for aggregation settings. | 1 |
views_handler:: |
public | function | Perform any necessary changes to the form values prior to storage. There is no need for this function to actually store the data. | 1 |
views_handler:: |
public | function | If a handler has 'extra options' it will get a little settings widget and another form called extra_options. | 1 |
views_handler:: |
public | function | Returns TRUE if the exposed filter works like a grouped filter. | 1 |
views_handler:: |
public | function | Determine if this item is 'exposed', meaning it provides form elements to let users modify the view. | |
views_handler:: |
public | function | Define if the exposed input has to be submitted multiple times. This is TRUE when exposed filters grouped are using checkboxes as widgets. | 1 |
views_handler:: |
public | function | Determine if the argument needs a style plugin. | 1 |
views_handler:: |
public | function | Validate the options form. | 4 |
views_handler:: |
public | function | Provides a unique placeholders for handlers. | |
views_handler:: |
public | function | Run after the view is executed, before the result is cached. | 1 |
views_handler:: |
public | function | Run before the view is built. | 1 |
views_handler:: |
public | function | Sanitize the value for output. | |
views_handler:: |
public | function | Called just prior to query(), this lets a handler set up any relationship it needs. | |
views_handler:: |
public | function | Shortcut to display the expose/hide button. | 2 |
views_handler:: |
public | function | Shortcut to display the exposed options form. | |
views_handler:: |
public | function | If set to remember exposed input in the session, store it there. | 1 |
views_handler:: |
public | function | Provides the handler some groupby. | 2 |
views_handler:: |
public | function | Validates the handler against the complete View. | 1 |
views_handler_field:: |
public | property | Stores additional fields which get added to the query. The generated aliases are stored in $aliases. | |
views_handler_field:: |
public | property | ||
views_handler_field:: |
public | property | ||
views_handler_field:: |
protected | property | Keeps track of the last render index. | |
views_handler_field:: |
public | property | The field value prior to any rewriting. | |
views_handler_field:: |
public | function | Add 'additional' fields to the query. | |
views_handler_field:: |
public | function | Add any special tokens this field might use for itself. | 4 |
views_handler_field:: |
public | function |
Provide extra data to the administration form Overrides views_handler:: |
|
views_handler_field:: |
public | function | Render a field using advanced settings. | |
views_handler_field:: |
public | function | Determine if this field can allow advanced rendering. | 1 |
views_handler_field:: |
public | function | Called to determine what to tell the clicksorter. | 1 |
views_handler_field:: |
public | function | Determine if this field is click sortable. | 1 |
views_handler_field:: |
public | function |
Construct a new field handler. Overrides views_object:: |
17 |
views_handler_field:: |
public | function | Document any special tokens this field might use for itself. | 4 |
views_handler_field:: |
public | function | Return the class of the field. | |
views_handler_field:: |
public | function | Return the class of the field's label. | |
views_handler_field:: |
public | function | Return an HTML element for the label based upon the field's element type. | |
views_handler_field:: |
public | function | Return an HTML element based upon the field's element type. | 2 |
views_handler_field:: |
public | function | Return the class of the field's wrapper. | |
views_handler_field:: |
public | function | Return an HTML element for the wrapper based upon the field's element type. | |
views_handler_field:: |
public | function | Provide a list of elements valid for field HTML. | |
views_handler_field:: |
public | function | Get the 'render' tokens to use for advanced rendering. | |
views_handler_field:: |
public | function | Recursive function to add replacements for nested query string parameters. | |
views_handler_field:: |
public | function | Get the value that's supposed to be rendered. | 3 |
views_handler_field:: |
public | function |
Init the handler with necessary data. Overrides views_handler:: |
11 |
views_handler_field:: |
public | function | Checks if a field value is empty. | |
views_handler_field:: |
public | function | Get this field's label. | |
views_handler_field:: |
public | function |
Performs some cleanup tasks on the options array before saving it. Overrides views_handler:: |
1 |
views_handler_field:: |
public | function | Run before any fields are rendered. | 8 |
views_handler_field:: |
public | function | Render this field as altered text, from a fieldset set by the user. | |
views_handler_field:: |
public | function | Render this field as a link, with info from a fieldset set by the user. | |
views_handler_field:: |
public | function | Perform an advanced text render for the item. | |
views_handler_field:: |
public | function | Trim the field down to the specified length. | |
views_handler_field:: |
public | function | Call out to the theme() function. | |
views_handler_field:: |
public | function | Build a list of suitable theme functions for this view. | |
views_handler_field:: |
public | function | Replace a value with tokens from the last field. | |
views_handler_field:: |
public | function |
Return a string representing this handler's name in the UI. Overrides views_handler:: |
1 |
views_handler_field:: |
public | function | Determines if this field will be available as an option to group the result by in the style settings. | |
views_handler_field_date:: |
private | function | Provide a list of all of the supported standard date types. | |
views_object:: |
public | property | Handler's definition. | |
views_object:: |
public | property | Except for displays, options for the object will be held here. | 1 |
views_object:: |
function | Collect this handler's option definition and alter them, ready for use. | ||
views_object:: |
public | function | Destructor. | 2 |
views_object:: |
public | function | 1 | |
views_object:: |
public | function | ||
views_object:: |
public | function | Always exports the option, regardless of the default value. | |
views_object:: |
public | function | Set default options on this object. | 1 |
views_object:: |
public | function | Set default options. | |
views_object:: |
public | function | Let the handler know what its full definition is. | |
views_object:: |
public | function | Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away. | |
views_object:: |
public | function | Unpack a single option definition. | |
views_object:: |
public | function | Unpacks each handler to store translatable texts. | |
views_object:: |
public | function | ||
_datex_views_handler_field_date:: |
private static | property | ||
_datex_views_handler_field_date:: |
function |
Schema to use for the displayed date. Overrides views_handler_field_date:: |
||
_datex_views_handler_field_date:: |
function |
Datex specific options added to date fields. Overrides views_handler_field_date:: |
||
_datex_views_handler_field_date:: |
public | function |
Called to add the field to a query. Overrides views_handler_field:: |
|
_datex_views_handler_field_date:: |
public | function |
Render the date, if it should be localized. Otherwise let parent handle it. Overrides views_handler_field_date:: |
|
_datex_views_handler_field_date:: |
private | function | ||
_datex_views_handler_field_date:: |
private | function | From views_date_format_sql: | |
_datex_views_handler_field_date:: |
private | function | Mimic the functionality of views_date_format_sql module. |