You are here

function subscriptions_ui_link in Subscriptions 6

Same name and namespace in other branches
  1. 5.2 subscriptions_ui.module \subscriptions_ui_link()

Implementation of hook_link().

Add a Subscribe link to node pages (depending on the Display Settings).

File

./subscriptions_ui.module, line 79
Provides a user interface for Subscriptions.

Code

function subscriptions_ui_link($type, $node = NULL, $teaser = NULL) {
  global $user;
  if ($type == 'node' && subscriptions_ui_can_subscribe() && empty($teaser)) {
    subscriptions_suspended($user->uid, TRUE);
    $arg2 = subscriptions_arg(2);
    if (variable_get('subscriptions_form_link_only', 0) && $arg2 != 'subscribe' && (!variable_get('subscriptions_avoid_empty_subscribe_links', 0) || module_invoke_all('subscriptions', 'node_options', $user, $node))) {
      $blocked_types = variable_get('subscriptions_blocked_content_types', array());
      if (in_array($node->type, $blocked_types) && !user_access('subscribe to all content types')) {
        return;
      }
      return array(
        'subscriptions-subscribe' => array(
          'href' => $_GET['q'] . '/subscribe',
          'title' => t('Subscribe') . (in_array($node->type, $blocked_types) ? SUBSCRIPTIONS_UNAVAILABLE : ''),
          'html' => TRUE,
          'fragment' => 'subscribe',
          'attributes' => array(
            'title' => t('Receive notifications about changes and/or comments to this page (and possibly similar pages).'),
          ),
        ),
      );
    }
    elseif (variable_get('subscriptions_form_in_block', 0) && $arg2 == 'subscribe') {

      // Make sure the block is visible
      global $theme;
      if (!isset($theme)) {
        init_theme();
      }
      $regions = system_region_list($theme);
      foreach (array_keys($regions) as $region) {
        $blocks = block_list($region);
        foreach (array_keys($blocks) as $block) {
          if ($block == 'subscriptions_ui_0') {
            $subscriptions_ui_block_visible = TRUE;
          }
        }
      }
      if (empty($subscriptions_ui_block_visible)) {
        drupal_set_message(t('Enable the !module block <!link_tag_begin>here<!link_tag_end>!', array(
          '!module' => 'Subscriptions',
          '!link_tag_begin' => 'a href="' . url('admin/build/block') . '"',
          '!link_tag_end' => '/a',
        )), 'error');
      }
    }
  }
}