You are here

function fasttoggle_link in Fasttoggle 6

Same name and namespace in other branches
  1. 5 fasttoggle.module \fasttoggle_link()
  2. 7 fasttoggle.module \fasttoggle_link()

Implementation of hook_link().

1 call to fasttoggle_link()
fasttoggle_user in ./fasttoggle.module
Implementation of hook_user().

File

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

Code

function fasttoggle_link($type, $obj = NULL, $teaser = FALSE) {
  $links = array();
  $options = fasttoggle_get_options($type, $obj);
  if (!empty($options)) {
    switch ($type) {
      case 'node':
        foreach ($options as $group => $flags) {
          foreach ($flags as $key => $data) {
            $links['fasttoggle_' . $key] = fasttoggle($data['label'][intval($obj->{$key})], 'node/' . $obj->nid . '/toggle/status/' . $key, FASTTOGGLE_FORMAT_LINK_ARRAY, $group . '_' . $key . '_' . $obj->nid, 'fasttoggle-status-node-status-' . $key . '-' . intval($obj->{$key}));
          }
        }
        break;
      case 'comment':
        fasttoggle_load_comment($obj);
        foreach ($options as $group => $flags) {
          foreach ($flags as $key => $data) {
            $links['fasttoggle_' . $key] = fasttoggle($data['label'][intval($obj->{$key})], 'comment/' . $obj->cid . '/toggle/status/' . $key, FASTTOGGLE_FORMAT_LINK_ARRAY, $group . '_' . $key . '_' . $obj->cid, 'fasttoggle-status-comment-status-' . $key . '-' . (1 - intval($obj->{$key})));
          }
        }
        break;

      // User is not one of the standard types for hook_link(). This
      // use enables adding of user links to a user profile.
      case 'user':
        foreach ($options as $group => $flags) {
          foreach ($flags as $key => $data) {
            if ($group == "role") {
              $rolename = $data['role'];
              $current_roles = array_flip($obj->roles);
              $current_state = isset($current_roles[$rolename]) ? 1 : 0;
              $links[$data['value_key']] = fasttoggle($data['label'][$current_state], 'user/' . $obj->uid . '/toggle/role/' . $data['value_key'], FASTTOGGLE_FORMAT_LINK_ARRAY, $group . '_' . $data['value_key'] . '_' . $obj->uid, 'fasttoggle-status-user-role-' . $data['value_key'] . '-' . $current_state);
            }
            else {
              $links['fasttoggle_' . $key] = fasttoggle($data['label'][intval($obj->{$key})], 'user/' . $obj->uid . '/toggle/' . $group . '/' . $key, FASTTOGGLE_FORMAT_LINK_ARRAY, $group . '_' . $key . '_' . $obj->uid, 'fasttoggle-status-user-status-' . $key . '-' . $obj->{$key});
            }
          }
        }
        break;
    }
  }
  return $links;
}