You are here

class ConnectedHeartbeat in Heartbeat 6.4

Same name and namespace in other branches
  1. 6.3 includes/connectedheartbeat.inc \ConnectedHeartbeat

Class ConnectedHeartbeat Concrete class to prepare messages for the current user and all of his/her relations.

Hierarchy

Expanded class hierarchy of ConnectedHeartbeat

1 string reference to 'ConnectedHeartbeat'
friendlist_activity_heartbeat_register_access_types in modules/friendlist_activity/friendlist_activity.module
Implementation of hook_heartbeat_register_access_types().

File

modules/friendlist_activity/connectedheartbeat.inc, line 16

View source
class ConnectedHeartbeat extends HeartbeatAccess {

  /**
   * proctected fuinction whoIsActor
   *   Add the heartbeat relations for the stream's active user.
   */
  protected function whoIsActor($account = NULL) {
    parent::whoIsActor($account);
    $this->stream->heartbeat_relations = heartbeat_get_related_uids($this->stream->uid);
  }

  /**
   * Override dressupMessages to change the query.
   * @see HeartbeatAccess::dressUpMessages().
   */
  public function dressUpMessages(HeartbeatParser $heartbeat) {
    if (!empty($this->stream->heartbeat_relations)) {

      // filter activity for related users and activity that was addressed to the current user.
      $sql = " AND ((ua.uid in( %s ) AND ua.access >= 0) OR (ua.uid_target = %d AND ua.nid <> 0))";
      $heartbeat->raw_messages = $this
        ->resultSql($sql, array(
        implode(',', $this->stream->heartbeat_relations),
        $this->stream->uid,
      ));
    }
    else {
      $heartbeat->raw_messages = array();
    }
    return $heartbeat;
  }

  /**
   * Function to add a part of a sql to a query built by views UI
   *
   * @param object $view The view handler object by reference to add our part to the query
   */
  public function addViewQuery(&$view) {

    // Make the sql limited to the access
    $field = "{$view->table_alias}.{$view->real_field}";
    if (!empty($this->stream->heartbeat_relations)) {
      $view->query
        ->set_where_group('OR', 'orgroup');
      $sql = "{$field} in( " . implode(',', $this->stream->heartbeat_relations) . " ) AND {$view->table_alias}.access >= 0 ";
      $view->query
        ->add_where('orgroup', $sql);
      $sql = "{$view->table_alias}.uid_target = %d AND {$view->table_alias}.nid <> 0";
      $view->query
        ->add_where('orgroup', $sql, $this->_uid);
    }
    else {
      $view->query
        ->add_where('deny', "{$view->table_alias}.access < 0");
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConnectedHeartbeat::addViewQuery public function Function to add a part of a sql to a query built by views UI Overrides HeartbeatAccess::addViewQuery
ConnectedHeartbeat::dressUpMessages public function Override dressupMessages to change the query. Overrides HeartbeatAccess::dressUpMessages
ConnectedHeartbeat::whoIsActor protected function proctected fuinction whoIsActor Add the heartbeat relations for the stream's active user. Overrides HeartbeatAccess::whoIsActor
HeartbeatAccess::$stream public property
HeartbeatAccess::$_actor protected property
HeartbeatAccess::$_errors protected property
HeartbeatAccess::$_has_errors protected property
HeartbeatAccess::$_offset_sql protected property
HeartbeatAccess::$_page protected property
HeartbeatAccess::$_uid protected property
HeartbeatAccess::$_whoisuser_type protected property
HeartbeatAccess::$_whoisuser_types protected property
HeartbeatAccess::checkDeniedMessages protected function Check denied messages
HeartbeatAccess::configurationForm public function ConfigurationForm Basic configuration form for streams.
HeartbeatAccess::construct public function Fake constructor to hook this method instead of the constructor. 2
HeartbeatAccess::createHeartbeatParser protected function createHeartbeatParser
HeartbeatAccess::fetchMessages public function
HeartbeatAccess::finishMessages protected function finishMessages
HeartbeatAccess::getAccess final public function getAccess
HeartbeatAccess::getActiveUser public function Function to retrieve the active user.
HeartbeatAccess::getErrors public function
HeartbeatAccess::getOffsetSql final public function getOffsetSql
HeartbeatAccess::getStream public function Get HeartbeatStream object with all configurations
HeartbeatAccess::hasAccess protected function hasAccess 4
HeartbeatAccess::hasErrors public function hasErrors
HeartbeatAccess::isPage public function Getter function for heartbeat page/blocks
HeartbeatAccess::prepareStream protected function prepareStream 2
HeartbeatAccess::resultSql protected function resultSql 1
HeartbeatAccess::setError protected function setError
HeartbeatAccess::setOffsetSql final public function setOffsetSql
HeartbeatAccess::skipActiveUser public function Skip active user. Return whether you want to skip the active user (being the logged-in user and NOT the displayed user) from display. Typical private will not skip this one ofcourse where most other will skip active user since you don't want to… 5
HeartbeatAccess::TYPE_ACTOR constant
HeartbeatAccess::TYPE_USER_PROFILE constant
HeartbeatAccess::__construct public function Constructor