You are here

function subscriptions_token_info in Subscriptions 7

Same name and namespace in other branches
  1. 2.0.x subscriptions.tokens.old.php \subscriptions_token_info()

Implements hook_token_info().

Return value

array

File

./subscriptions.tokens.inc, line 13
Token callbacks for the subscriptions module.

Code

function subscriptions_token_info() {
  $variables = array(
    '%TYPE' => 'TYPE',
    '!TYPE' => 'TYPE',
  );
  $info = array(
    'types' => array(
      'subs' => array(
        'name' => t('Subscriptions information'),
        'description' => t('Tokens related to the %Subscriptions module.', array(
          '%Subscriptions' => 'Subscriptions',
        )),
        'needs-data' => 'subs',
      ),
      'subs_item' => array(
        'name' => t('Subscriptions item'),
        'description' => t('Tokens related to the %Subscriptions module for building a digest.', array(
          '%Subscriptions' => 'Subscriptions',
        )),
        'needs-data' => 'subs_item',
      ),
    ),
    'tokens' => array(
      'subs' => array(
        'type' => array(
          'name' => t('Type'),
          'description' => t('The type of the subscription.'),
        ),
        'manage-url' => array(
          'name' => t('Manage URL'),
          'description' => t("The URL of the user's @Subscriptions page (requires log-in).", array(
            '@Subscriptions' => t('Subscriptions'),
          )),
          'type' => 'url',
        ),
        'unsubscribe-url' => array(
          'name' => t('Unsubscribe URL'),
          'description' => t('The URL for immediate canceling of the subscription that caused this notification.'),
          'type' => 'url',
        ),
        'is-new' => array(
          'name' => t('Is new'),
          'description' => t('Whether the item is new.'),
        ),
        'is-updated' => array(
          'name' => t('Is updated'),
          'description' => t('Whether the item is updated (or new and subsequently updated).'),
        ),
        'is-old' => array(
          'name' => t('Is old'),
          'description' => t('Whether the item is not new nor updated.'),
        ),
        'is-published' => array(
          'name' => t('Is published'),
          'description' => t('Whether the item is published.'),
        ),
        'has-distinct-summary' => array(
          'name' => t('Has distinct summary'),
          'description' => t('Whether the item has a non-empty summary that is distinct from the body.'),
        ),
        'forum' => array(
          'name' => t('Forum'),
          'description' => t('The forum (taxonomy term), if the item is in a forum.'),
          'type' => 'term',
        ),
        'comments' => array(
          'name' => t('Comments'),
          'description' => t('The array of formatted comments that have not been sent yet (for inclusion in a node).'),
          'type' => 'array',
        ),
        'items' => array(
          'name' => t('Digest Items'),
          'description' => t('The array of formatted items to send to one recipient (for building a digest).'),
          'type' => 'subs_list<subs_item>',
        ),
        'subs-module' => array(
          'name' => t('Subscription module'),
          'description' => t('The module of the item that triggered the notification.'),
        ),
        'subs-field' => array(
          'name' => t('Subscription field'),
          'description' => t('The field (property) of the item that triggered the notification.'),
        ),
        'subs-value' => array(
          'name' => t('Subscription value'),
          'description' => t('The value of the field of the item that triggered the notification.'),
        ),
        // The following tokens need to be implemented for each entity type
        // that can be subscribed to, if they are applicable.
        'view' => array(
          'name' => t('View'),
          'description' => t('The item rendered using the %Subscriptions view mode.', array(
            '%Subscriptions' => t('Subscriptions'),
          )),
        ),
      ),
      'subs_item' => array(
        'as-TYPE' => array(
          'name' => t('Cast to %TYPE', $variables),
          'description' => t("Makes the !TYPE  tokens available for use (e.g. '!example').", $variables + array(
            '!example' => 'as-node:?',
          )),
        ),
        'is-TYPE' => array(
          'name' => t('Is %TYPE', $variables),
          'description' => t("Whether the item is of type !TYPE (e.g. '!example').", $variables + array(
            '!example' => 'is-node',
          )),
        ),
        'formatted' => array(
          'name' => t('Formatted'),
          'description' => t("Formatted string representation of the item, processed by its own template in the !DIGEST context.", $variables + array(
            '!DIGEST' => 'DIGEST',
          )),
        ),
        'subs' => array(
          'name' => t('Item information'),
          'description' => t('The Subscriptions information of the digest item.'),
          'type' => 'subs',
        ),
      ),
    ),
  );
  if (module_exists('date')) {
    $info['tokens']['subs']['dates'] = array(
      'name' => t('Dates'),
      'description' => t('The array of dates in the specified !Date field.', array(
        '!Date' => t('Date'),
      )),
      'type' => 'subs_list<date>',
      'dynamic' => TRUE,
    );
  }
  if (module_exists('file')) {
    $info['tokens']['subs']['files'] = array(
      'name' => t('Files'),
      'description' => t('The array of attached files in the specified !File field.', array(
        '!File' => t('File'),
      )),
      'type' => 'subs_list<file>',
      'dynamic' => TRUE,
    );
  }
  if (module_exists('taxonomy')) {
    $info['tokens']['subs']['terms'] = array(
      'name' => t('Terms'),
      'description' => t('The array of taxonomy terms in the specified !Term_reference field.', array(
        '!Term_reference' => t('Term reference'),
      )),
      'type' => 'subs_list<term>',
      'dynamic' => TRUE,
    );
  }
  $info['tokens']['subs']['texts'] = array(
    'name' => t('Texts'),
    'description' => t('The single value or array of values in the specified field, represented as text.'),
    'type' => 'array',
    'dynamic' => TRUE,
  );
  $info['tokens']['subs']['users'] = array(
    'name' => t('Users'),
    'description' => t('The array of users in the specified !User_reference field.', array(
      '!User_reference' => t('User reference'),
    )),
    'type' => 'subs_list<user>',
    'dynamic' => TRUE,
  );
  return $info;
}