- Patch #1164226 by TR: token_find_with_prefix() has typos, token.inc not up to doc standards.

8.0.x
Dries Buytaert 2011-05-23 20:59:07 -04:00
parent 5178f00be9
commit a32cf6422c
1 changed files with 37 additions and 29 deletions

View File

@ -4,16 +4,16 @@
* @file * @file
* Drupal placeholder/token replacement system. * Drupal placeholder/token replacement system.
* *
* Provides a set of extensible API functions for replacing placeholders in text * API functions for replacing placeholders in text with meaningful values.
* with meaningful values.
* *
* For example: When configuring automated emails, an administrator enters standard * For example: When configuring automated emails, an administrator enters
* text for the email. Variables like the title of a node and the date the email * standard text for the email. Variables like the title of a node and the date
* was sent can be entered as placeholders like [node:title] and [date:short]. * the email was sent can be entered as placeholders like [node:title] and
* When a Drupal module prepares to send the email, it can call the token_replace() * [date:short]. When a Drupal module prepares to send the email, it can call
* function, passing in the text. The token system will scan the text for placeholder * the token_replace() function, passing in the text. The token system will
* tokens, give other modules an opportunity to replace them with meaningful text, * scan the text for placeholder tokens, give other modules an opportunity to
* then return the final product to the original module. * replace them with meaningful text, then return the final product to the
* original module.
* *
* Tokens follow the form: [$type:$name], where $type is a general class of * Tokens follow the form: [$type:$name], where $type is a general class of
* tokens like 'node', 'user', or 'comment' and $name is the name of a given * tokens like 'node', 'user', or 'comment' and $name is the name of a given
@ -37,8 +37,8 @@
* Some tokens may be chained in the form of [$type:$pointer:$name], where $type * Some tokens may be chained in the form of [$type:$pointer:$name], where $type
* is a normal token type, $pointer is a reference to another token type, and * is a normal token type, $pointer is a reference to another token type, and
* $name is the name of a given placeholder. For example, [node:author:mail]. In * $name is the name of a given placeholder. For example, [node:author:mail]. In
* that example, 'author' is a pointer to the 'user' account that created the node, * that example, 'author' is a pointer to the 'user' account that created the
* and 'mail' is a placeholder available for any 'user'. * node, and 'mail' is a placeholder available for any 'user'.
* *
* @see token_replace() * @see token_replace()
* @see hook_tokens() * @see hook_tokens()
@ -46,7 +46,7 @@
*/ */
/** /**
* Replace all tokens in a given string with appropriate values. * Replaces all tokens in a given string with appropriate values.
* *
* @param $text * @param $text
* A string potentially containing replaceable tokens. * A string potentially containing replaceable tokens.
@ -54,22 +54,25 @@
* (optional) An array of keyed objects. For simple replacement scenarios * (optional) An array of keyed objects. For simple replacement scenarios
* 'node', 'user', and others are common keys, with an accompanying node or * 'node', 'user', and others are common keys, with an accompanying node or
* user object being the value. Some token types, like 'site', do not require * user object being the value. Some token types, like 'site', do not require
* any explicit information from $data and can be replaced even if it is empty. * any explicit information from $data and can be replaced even if it is
* empty.
* @param $options * @param $options
* (optional) A keyed array of settings and flags to control the token * (optional) A keyed array of settings and flags to control the token
* replacement process. Supported options are: * replacement process. Supported options are:
* - language: A language object to be used when generating locale-sensitive * - language: A language object to be used when generating locale-sensitive
* tokens. * tokens.
* - callback: A callback function that will be used to post-process the array * - callback: A callback function that will be used to post-process the array
* of token replacements after they are generated. For example, a module using * of token replacements after they are generated. For example, a module
* tokens in a text-only email might provide a callback to strip HTML * using tokens in a text-only email might provide a callback to strip HTML
* entities from token values before they are inserted into the final text. * entities from token values before they are inserted into the final text.
* - clear: A boolean flag indicating that tokens should be removed from the * - clear: A boolean flag indicating that tokens should be removed from the
* final text if no replacement value can be generated. * final text if no replacement value can be generated.
* - sanitize: A boolean flag indicating that tokens should be sanitized for * - sanitize: A boolean flag indicating that tokens should be sanitized for
* display to a web browser. Defaults to TRUE. Developers who set this option * display to a web browser. Defaults to TRUE. Developers who set this
* to FALSE assume responsibility for running filter_xss(), check_plain() or * option to FALSE assume responsibility for running filter_xss(),
* other appropriate scrubbing functions before displaying data to users. * check_plain() or other appropriate scrubbing functions before displaying
* data to users.
*
* @return * @return
* Text with tokens replaced. * Text with tokens replaced.
*/ */
@ -95,10 +98,11 @@ function token_replace($text, array $data = array(), array $options = array()) {
} }
/** /**
* Build a list of all token-like patterns that appear in the text. * Builds a list of all token-like patterns that appear in the text.
* *
* @param $text * @param $text
* The text to be scanned for possible tokens. * The text to be scanned for possible tokens.
*
* @return * @return
* An associative array of discovered tokens, grouped by type. * An associative array of discovered tokens, grouped by type.
*/ */
@ -129,7 +133,7 @@ function token_scan($text) {
} }
/** /**
* Generate replacement values for a list of tokens. * Generates replacement values for a list of tokens.
* *
* @param $type * @param $type
* The type of token being replaced. 'node', 'user', and 'date' are common. * The type of token being replaced. 'node', 'user', and 'date' are common.
@ -140,20 +144,22 @@ function token_scan($text) {
* (optional) An array of keyed objects. For simple replacement scenarios * (optional) An array of keyed objects. For simple replacement scenarios
* 'node', 'user', and others are common keys, with an accompanying node or * 'node', 'user', and others are common keys, with an accompanying node or
* user object being the value. Some token types, like 'site', do not require * user object being the value. Some token types, like 'site', do not require
* any explicit information from $data and can be replaced even if it is empty. * any explicit information from $data and can be replaced even if it is
* empty.
* @param $options * @param $options
* (optional) A keyed array of settings and flags to control the token * (optional) A keyed array of settings and flags to control the token
* replacement process. Supported options are: * replacement process. Supported options are:
* - 'language' A language object to be used when generating locale-sensitive * - language: A language object to be used when generating locale-sensitive
* tokens. * tokens.
* - 'callback' A callback function that will be used to post-process the array * - callback: A callback function that will be used to post-process the
* of token replacements after they are generated. Can be used when modules * array of token replacements after they are generated. Can be used when
* require special formatting of token text, for example URL encoding or * modules require special formatting of token text, for example URL
* truncation to a specific length. * encoding or truncation to a specific length.
* - 'sanitize' A boolean flag indicating that tokens should be sanitized for * - sanitize: A boolean flag indicating that tokens should be sanitized for
* display to a web browser. Developers who set this option to FALSE assume * display to a web browser. Developers who set this option to FALSE assume
* responsibility for running filter_xss(), check_plain() or other * responsibility for running filter_xss(), check_plain() or other
* appropriate scrubbing functions before displaying data to users. * appropriate scrubbing functions before displaying data to users.
*
* @return * @return
* An associative array of replacement values, keyed by the original 'raw' * An associative array of replacement values, keyed by the original 'raw'
* tokens that were found in the source text. For example: * tokens that were found in the source text. For example:
@ -179,7 +185,7 @@ function token_generate($type, array $tokens, array $data = array(), array $opti
} }
/** /**
* Given a list of tokens, return those that begin with a specific prefix. * Given a list of tokens, returns those that begin with a specific prefix.
* *
* Used to extract a group of 'chained' tokens (such as [node:author:name]) from * Used to extract a group of 'chained' tokens (such as [node:author:name]) from
* the full list of tokens found in text. For example: * the full list of tokens found in text. For example:
@ -187,7 +193,7 @@ function token_generate($type, array $tokens, array $data = array(), array $opti
* $data = array( * $data = array(
* 'author:name' => '[node:author:name]', * 'author:name' => '[node:author:name]',
* 'title' => '[node:title]', * 'title' => '[node:title]',
* 'created' => '[node:author:name]', * 'created' => '[node:created]',
* ); * );
* $results = token_find_with_prefix($data, 'author'); * $results = token_find_with_prefix($data, 'author');
* $results == array('name' => '[node:author:name]'); * $results == array('name' => '[node:author:name]');
@ -200,6 +206,7 @@ function token_generate($type, array $tokens, array $data = array(), array $opti
* @param $delimiter * @param $delimiter
* An optional string containing the character that separates the prefix from * An optional string containing the character that separates the prefix from
* the rest of the token. Defaults to ':'. * the rest of the token. Defaults to ':'.
*
* @return * @return
* An associative array of discovered tokens, with the prefix and delimiter * An associative array of discovered tokens, with the prefix and delimiter
* stripped from the key. * stripped from the key.
@ -236,6 +243,7 @@ function token_find_with_prefix(array $tokens, $prefix, $delimiter = ':') {
* 'type' => 'user', * 'type' => 'user',
* ); * );
* @endcode * @endcode
*
* @return * @return
* An associative array of token information, grouped by token type. * An associative array of token information, grouped by token type.
*/ */