You are here

function _signature_forum_get_default in Signatures for Forums 7

Get the default per-post display setting.

Parameters

$user: Use the defaults of this user. Give a uid for lazy loading.

$bundle = NULL: If given, use this bundle.

$object = NULL: If given, get the setting of that existing node or comment.

Return value

TRUE means signatures should be used.

3 calls to _signature_forum_get_default()
signature_forum_form_alter in ./signature_forum.module
Implementation of hook_form_alter().
signature_forum_form_user_profile_form_alter in ./signature_forum.module
Alter the user form.
_signature_forum_object_load in ./signature_forum.module
Load nodes or comments.

File

./signature_forum.module, line 812
Tweaks signatures in ways inspired by other traditional forum software:

Code

function _signature_forum_get_default($user, $bundle = NULL, $object = NULL) {
  $mode = variable_get('signature_forum_defaults_mode', SIGNATURE_FORUM_PER_POST_DISABLED);

  // Fast return, if the property is set.
  if ($mode != SIGNATURE_FORUM_PER_POST_DISABLED && $object && isset($object->signature_forum_status)) {
    return $object->signature_forum_status;
  }

  // Get global or user settings.
  switch ($mode) {
    case SIGNATURE_FORUM_PER_POST_DISABLED:
      return TRUE;
    case SIGNATURE_FORUM_PER_POST_USER:
      if (!$user) {
        return TRUE;
      }
      if (is_int($user)) {
        $user = user_load($user);
      }
      if (!isset($user->data) || !isset($user->data['signature_forum_default'])) {
        return TRUE;
      }
      return !!$user->data['signature_forum_default'];
    case SIGNATURE_FORUM_PER_POST_GLOBAL:
      $settings = variable_get('signature_forum_defaults_global', array());
      return !empty($settings[$bundle]);
  }
}