You are here

function fasttoggle_form_alter in Fasttoggle 6

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

Implementation of hook_form_alter().

File

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

Code

function fasttoggle_form_alter(&$form, $form_state, $form_id) {
  switch ($form_id) {
    case 'node_admin_content':

      // Add published/unpublished toggle links to the node overview page.
      if (variable_get('fasttoggle_enhance_node_overview_page', 0) && isset($form['admin']['nodes']['#options']) && user_access('moderate posts')) {
        $labels = _fasttoggle_get_label('node_status');
        foreach ($form['admin']['status'] as $key => $detail) {
          $node = node_load($key);
          if (node_access('update', $node)) {
            $status = intval($detail['#value'] == t('published'));

            // Get an array with all enabled fast toggle links
            $settings = variable_get('fasttoggle_togglable_options_' . $node->type, array());
            if (in_array('status', $settings) && user_access('moderate posts')) {
              $form['admin']['status'][$key]['#value'] = fasttoggle($labels[$status], 'node/' . $key . '/toggle/status/status', FASTTOGGLE_FORMAT_HTML, 'status_status_' . $key, 'fasttoggle-status-node-' . $key . '-status-status', 'fasttoggle-status-node-status-status-' . $status);
            }
          }
        }
      }
      break;
    case 'user_admin_account':

      // Add blocked/unblocked toggle links to the user overview page.
      $settings = variable_get('fasttoggle_user_settings', array(
        'status' => TRUE,
      ));
      if (variable_get('fasttoggle_enhance_user_overview_page', 0) && $settings['status'] !== 0 && isset($form['status']) && (user_access('administer users') || user_access('moderate users'))) {
        $allow_u1 = variable_get('fasttoggle_allow_block_user1', 0);
        $labels = _fasttoggle_get_label('user_status');
        foreach ($form['status'] as $key => $data) {
          if ($key != 1 || $allow_u1) {
            $status = intval($data['#value'] == t('active'));
            $form['status'][$key]['#value'] = fasttoggle($labels[$status], 'user/' . $key . '/toggle/status/status', FASTTOGGLE_FORMAT_HTML, 'status_status_' . $key, 'fasttoggle-status-user-status-' . $key . '-status-status', 'fasttoggle-status-user-status-status-' . $status);
          }
        }
      }
      break;
  }
}