You are here

function fasttoggle_fasttoggle_options in Fasttoggle 6

Same name and namespace in other branches
  1. 5 fasttoggle.module \fasttoggle_fasttoggle_options()

Implementation of hook_fasttoggle_options().

File

./fasttoggle.module, line 260
Enables fast toggling of binary or not so binary settings.

Code

function fasttoggle_fasttoggle_options($type, $obj) {
  $return = array();
  switch ($type) {
    case 'node':

      // $obj = node
      $allow = node_access('update', $obj);

      // Get an array with all enabled fast toggle links
      $settings = variable_get('fasttoggle_togglable_options_' . $obj->type, array());
      if (in_array('status', $settings) && $allow && user_access('moderate posts')) {
        $return['status']['status']['label'] = _fasttoggle_get_label('node_status');
      }
      if (in_array('sticky', $settings) && $allow && user_access('make posts sticky')) {
        $return['status']['sticky']['label'] = _fasttoggle_get_label('node_sticky');
      }
      if (in_array('promote', $settings) && $allow && user_access('promote posts')) {
        $return['status']['promote']['label'] = _fasttoggle_get_label('node_promote');
      }
      if (in_array('comment', $settings) && $allow && module_exists('comment') && user_access('administer comments') && user_access('moderate comments')) {
        $return['status']['comment']['label'] = _fasttoggle_get_label('node_comment');
      }
      break;
    case 'user':

      // $obj = user
      // Get an array with all enabled fast toggle links
      $settings = variable_get('fasttoggle_user_settings', array(
        'status' => TRUE,
      ));
      $allow_u1 = variable_get('fasttoggle_allow_block_user1', 0);
      if (($obj->uid != 1 || $allow_u1) && $settings['status'] && (user_access('administer users') || user_access('moderate users'))) {
        $return['status']['status']['label'] = _fasttoggle_get_label('user_status');
      }

      // Roles
      $available_roles = fasttoggle_user_toggleable_roles();
      $role_labels = _fasttoggle_get_label('role');
      foreach ($available_roles as $roleid => $rolename) {
        foreach ($role_labels as $key => $value) {
          $labels[$key] = $role_labels[$key] . $rolename;
        }
        $return['role'][$roleid]['label'] = $labels;
        $return['role'][$roleid]['role'] = $rolename;
        $return['role'][$roleid]['value_fn'] = 'fasttoggle_get_user_role_option_value';
        $return['role'][$roleid]['value_key'] = $roleid;
        $return['role'][$roleid]['array_fn'] = 'fasttoggle_get_user_role_array';
      }
      break;
    case 'comment':

      // $obj = comment
      // Get an array with all enabled fast toggle links
      $settings = variable_get('fasttoggle_comment_settings', array(
        'status' => TRUE,
      ));
      if ($settings['status'] && user_access('administer comments') && user_access('moderate comments')) {
        $return['status']['status']['label'] = _fasttoggle_get_label('comment_status');
      }
      break;
  }
  return $return;
}