You are here

function _homebox_get_user_settings in Homebox 6.3

Same name and namespace in other branches
  1. 6.2 homebox.module \_homebox_get_user_settings()
  2. 7.3 homebox.module \_homebox_get_user_settings()
  3. 7.2 homebox.module \_homebox_get_user_settings()

Fetch user page settings, if they exist.

Parameters

$page: A page object

$init: Make sure the user object is fully initialized, not FALSE. Needed for adding/editing a single block.

$_reset: Reload settings from the database.

Return value

An object representing the user's page settings, or FALSE.

5 calls to _homebox_get_user_settings()
homebox_add_block in ./homebox.module
Add a custom block to a user's page.
homebox_block_edit_form_builder_submit in ./homebox.module
Save settings for the block and render a replacement with the updated settings.
homebox_build in ./homebox.module
Responsible for firing the hook_theme()
homebox_prepare_block in ./homebox.module
Prepare a block for rendering with theme('homebox_block').
_homebox_save_user_settings in ./homebox.module
Save the user's page settings

File

./homebox.module, line 1357
Homebox main file, takes care of global functions settings constants, etc.

Code

function _homebox_get_user_settings($page, $init = FALSE, $_reset = FALSE) {
  global $user;
  static $cache = array();
  $key = $user->uid . ':' . $page->name;
  if ($_reset) {
    unset($cache[$key]);
  }
  if (!isset($cache[$key]) || $init && $cache[$key] === FALSE) {
    $settings = db_result(db_query("SELECT settings FROM {homebox_users} WHERE uid = %d AND name = '%s'", $user->uid, $page->name));
    $cache[$key] = $settings ? unserialize($settings) : FALSE;
    if ($cache[$key] === FALSE && $init) {
      _homebox_save_user_settings($page, $page->settings['blocks']);
      $cache[$key] = _homebox_get_user_settings($page);
    }
  }
  return $cache[$key];
}