Commit b8d24429 authored by Nigel Cunningham's avatar Nigel Cunningham Committed by Vladimir Roudakov
Browse files

Issue #1384006 by NigelCunningham, kevinquillen, SocialNicheGuru, deanflory,...

Issue #1384006 by NigelCunningham, kevinquillen, SocialNicheGuru, deanflory, Summit, VladimirAus: Does this integrate with the fast toggle module?
parent 5992700d
Loading
Loading
Loading
Loading
+67 −1
Original line number Diff line number Diff line
@@ -597,3 +597,69 @@ function custom_pub_preprocess_node(&$variables) {
    }
  }
}

/**
 * Access check function for custom_pub items.
 *
 * Checks for node access etc are already taken care of.
 * @param $group
 * @param $instance
 * @param null $object
 * @return array
 */
function custom_pub_fasttoggle_access($object, $type, $group, $instance)
{
    $access = user_access('edit_custom_pub_' . $instance);
    if ($access) {
        return fasttoggle_allow_access_if($access);
    } else {
        return fasttoggle_deny_access_if(!$access);
    }
}

/**
 * Implementation of hook_fasttoggle_available_links().
 */
function custom_pub_fasttoggle_available_links($type = NULL, $obj = NULL) {
  $result = array();

  if (!is_null($type) && $type != "node")
    return $result;

  if (!is_null($type) && !is_null($obj)) {
    $custom_publish_options = custom_pub_by_node_type($obj->type);
  } else {
    $custom_publish_options = variable_get('custom_pub_types', array());
  }

  if (empty($custom_publish_options))
    return $result;

  $result['node'] = array(
      'fields' => array(
        'custom_pub' => array(
          'instances' => array(
            )
          )
        )
      );

  foreach ($custom_publish_options as $machine_name => $data) {
      $result['node']['fields']['custom_pub']['instances'][$machine_name] = array(
              'description' => t("Toggle the '{$data['name']}' custom publishing option."),
              'default' => TRUE,
              'access' => array('custom_pub_fasttoggle_access'),
              'labels' => array(
                FASTTOGGLE_LABEL_ACTION => array(
                  0 => t('set @option status', array('@option' => $data['name'])),
                  1 => t('unset @option status', array('@option' => $data['name']))
                  ),
                FASTTOGGLE_LABEL_STATUS => array(
                  0 => t('@option not set', array('@option' => $data['name'])),
                  1 => t('@option set', array('@option' => $data['name'])))
                )
          );
  }

  return $result;
}