You are here

user_stats.author-pane.inc in User Stats 7

Same filename and directory in other branches
  1. 6 user_stats.author-pane.inc

Provides a preprocess function for the author pane used by Advanced Forum and Advanced Profile Kit.

File

user_stats.author-pane.inc
View source
<?php

/**
 * @file
 * Provides a preprocess function for the author pane used by
 * Advanced Forum and Advanced Profile Kit.
 */

/**
 * Implements hook_preprocess_author_pane().
 */
function user_stats_preprocess_author_pane(&$variables) {
  if (function_exists('author_pane_api') && author_pane_api() == "2") {

    // Check if this preprocess needs to be run given who's calling it.
    if (!author_pane_run_preprocess('user_stats', $variables['caller'])) {
      return;
    }
  }
  $account_id = $variables['account']->uid;
  if ($account_id != 0) {
    static $cached_stats = array();
    if (isset($cached_stats[$account_id])) {

      // Pull the values from the cache
      if ($cached_stats[$account_id]['posts'] !== FALSE) {

        // We don't want the variable to be created if the user doesn't have
        // access to see them to avoid printing the label.
        $variables['user_stats_posts'] = $cached_stats[$account_id]['posts'];
      }
      if ($cached_stats[$account_id]['ip'] !== FALSE) {
        $variables['user_stats_ip'] = $cached_stats[$account_id]['ip'];
      }
    }
    else {

      // No cached values for this user. Fetch them.
      $posts = user_stats_get_stats('post_count', $account_id);
      if ($posts !== FALSE) {
        $variables['user_stats_posts'] = $posts;
      }
      $ip = user_stats_get_stats('ip_address', $account_id);
      if ($ip !== FALSE) {
        $variables['user_stats_ip'] = $ip;
      }

      // Write to the cache variable. We do this even if it's FALSE because
      // we check for that before using it.
      $cached_stats[$account_id]['posts'] = $posts;
      $cached_stats[$account_id]['ip'] = $ip;
    }
  }
}

/**
 * Implements hook_author_pane_allow_preprocess_disable().
 */
function user_stats_author_pane_allow_preprocess_disable() {
  return array(
    'user_stats' => 'User Stats',
  );
}

Functions

Namesort descending Description
user_stats_author_pane_allow_preprocess_disable Implements hook_author_pane_allow_preprocess_disable().
user_stats_preprocess_author_pane Implements hook_preprocess_author_pane().