class views_handler_field_is_online in User Stats 6
Same name and namespace in other branches
- 7 views/views_handler_field_is_online.inc \views_handler_field_is_online
Is user online handler.
Hierarchy
- class \views_handler_field_is_online extends \views_handler_field_boolean
Expanded class hierarchy of views_handler_field_is_online
1 string reference to 'views_handler_field_is_online'
- user_stats_views_data in views/
user_stats.views.inc - Implementation of hook_views_data().
File
- views/
views_handler_field_is_online.inc, line 11 - User Stats is user online handler.
View source
class views_handler_field_is_online extends views_handler_field_boolean {
function query() {
$this
->ensure_my_table();
// Currently Views has no support for/information on the {sessions} table.
$join = new views_join();
$join
->construct('sessions', $this->table_alias, 'uid', 'uid', array());
$session = $this->query
->ensure_table('sessions', NULL, $join);
$this->query->distinct = TRUE;
// We use an IF for MySQL/PostgreSQL compatibility. Otherwise PostgreSQL
// would return 'f' and 't'.
$sql = "IF((" . time() . " - MAX({$session}.timestamp)) < " . variable_get('user_block_seconds_online', 900) . ", 1, 0)";
// We liberally steal from views_handler_sort_formula and
// views_handler_filter_search here.
$this->field_alias = $this->query
->add_field(NULL, $sql, $this->table_alias . '_' . $this->field, array(
'aggregate' => TRUE,
));
}
function option_definition() {
$options = parent::option_definition();
$options['type'] = array(
'default' => 'online-offline',
);
return $options;
}
/**
* Add the online-offline type to options form.
*/
function options_form(&$form, &$form_state) {
parent::options_form($form, $form_state);
$form['type']['#options']['online-offline'] = t('Online/Offline');
}
function render($values) {
$value = $values->{$this->field_alias};
if (!empty($this->options['not'])) {
$value = !$value;
}
if ($this->options['type'] == 'online-offline') {
return $value ? '<span class="user-stat-online">' . t('Online') . '</span>' : '<span class="user-stat-offline">' . t('Offline') . '</span>';
}
else {
return parent::render($values);
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
views_handler_field_is_online:: |
function | Add the online-offline type to options form. | ||
views_handler_field_is_online:: |
function | |||
views_handler_field_is_online:: |
function | |||
views_handler_field_is_online:: |
function |