views_handler_filter_is_online.inc 984 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. /**
  3. * @file
  4. * User Stats is user online sort handler.
  5. */
  6. /**
  7. * Is user online sort handler.
  8. */
  9. class views_handler_filter_is_online extends views_handler_filter_boolean_operator {
  10. function query() {
  11. $this->ensure_my_table();
  12. $join = new views_join;
  13. $join->construct('sessions', $this->table_alias, 'uid', 'uid', array());
  14. $session = $this->query->ensure_table('sessions', NULL, $join);
  15. // We have to make sure this field is in the query, and Views knows to
  16. // create GROUP BY's.
  17. $sql_if_part = "IF((" . REQUEST_TIME . " - $session.timestamp) < " . variable_get('user_block_seconds_online', 900) . ", 1, 0)";
  18. $sql = $sql_if_part . " = :value";
  19. $this->query->add_where_expression($this->options['group'], $sql, array(':value' => $this->value));
  20. }
  21. /**
  22. * Override default True/False options.
  23. */
  24. function get_value_options() {
  25. $this->value_options = array(
  26. 1 => t('Online'),
  27. 0 => t('Offline'),
  28. );
  29. }
  30. }