Mercurial > hg > rr-repo
annotate sites/all/modules/ctools/plugins/contexts/token.inc @ 0:ff03f76ab3fe
initial version
author | danieleb <danielebarchiesi@me.com> |
---|---|
date | Wed, 21 Aug 2013 18:51:11 +0100 |
parents | |
children |
rev | line source |
---|---|
danielebarchiesi@0 | 1 <?php |
danielebarchiesi@0 | 2 |
danielebarchiesi@0 | 3 /** |
danielebarchiesi@0 | 4 * @file |
danielebarchiesi@0 | 5 * Provide a global context to allow for token support. |
danielebarchiesi@0 | 6 */ |
danielebarchiesi@0 | 7 |
danielebarchiesi@0 | 8 $plugin = array( |
danielebarchiesi@0 | 9 'title' => t('Token'), |
danielebarchiesi@0 | 10 'description' => t('A context that contains token replacements from token.module.'), |
danielebarchiesi@0 | 11 'context' => 'ctools_context_create_token', // func to create context |
danielebarchiesi@0 | 12 'context name' => 'token', |
danielebarchiesi@0 | 13 'keyword' => 'token', |
danielebarchiesi@0 | 14 'convert list' => 'ctools_context_token_convert_list', |
danielebarchiesi@0 | 15 'convert' => 'ctools_context_token_convert', |
danielebarchiesi@0 | 16 ); |
danielebarchiesi@0 | 17 |
danielebarchiesi@0 | 18 /** |
danielebarchiesi@0 | 19 * Create a context from manual configuration. |
danielebarchiesi@0 | 20 */ |
danielebarchiesi@0 | 21 function ctools_context_create_token($empty, $data = NULL, $conf = FALSE) { |
danielebarchiesi@0 | 22 $context = new ctools_context('token'); |
danielebarchiesi@0 | 23 $context->plugin = 'token'; |
danielebarchiesi@0 | 24 |
danielebarchiesi@0 | 25 return $context; |
danielebarchiesi@0 | 26 } |
danielebarchiesi@0 | 27 |
danielebarchiesi@0 | 28 /** |
danielebarchiesi@0 | 29 * Implementation of hook_ctools_context_convert_list(). |
danielebarchiesi@0 | 30 */ |
danielebarchiesi@0 | 31 function ctools_context_token_convert_list() { |
danielebarchiesi@0 | 32 $tokens = token_info(); |
danielebarchiesi@0 | 33 foreach ($tokens['types'] as $type => $type_info) { |
danielebarchiesi@0 | 34 if (empty($type_info['needs-data'])) { |
danielebarchiesi@0 | 35 $real_type = isset($type_info['type']) ? $type_info['type'] : $type; |
danielebarchiesi@0 | 36 foreach ($tokens['tokens'][$real_type] as $id => $info) { |
danielebarchiesi@0 | 37 $key = "$type:$id"; |
danielebarchiesi@0 | 38 if (!isset($list[$key])) { |
danielebarchiesi@0 | 39 $list[$key] = $type_info['name'] . ': ' . $info['name']; |
danielebarchiesi@0 | 40 } |
danielebarchiesi@0 | 41 } |
danielebarchiesi@0 | 42 } |
danielebarchiesi@0 | 43 } |
danielebarchiesi@0 | 44 |
danielebarchiesi@0 | 45 return $list; |
danielebarchiesi@0 | 46 } |
danielebarchiesi@0 | 47 |
danielebarchiesi@0 | 48 /** |
danielebarchiesi@0 | 49 * Implementation of hook_ctools_context_converter_alter(). |
danielebarchiesi@0 | 50 */ |
danielebarchiesi@0 | 51 function ctools_context_token_convert($context, $token) { |
danielebarchiesi@0 | 52 $tokens = token_info(); |
danielebarchiesi@0 | 53 list($type, $token) = explode(':', $token, 2); |
danielebarchiesi@0 | 54 $real_type = isset($tokens['types'][$type]['type']) ? $tokens['types'][$type]['type'] : $type; |
danielebarchiesi@0 | 55 if (isset($tokens['tokens'][$real_type][$token])) { |
danielebarchiesi@0 | 56 $values = token_generate($type, array($token => $token)); |
danielebarchiesi@0 | 57 if (isset($values[$token])) { |
danielebarchiesi@0 | 58 return $values[$token]; |
danielebarchiesi@0 | 59 } |
danielebarchiesi@0 | 60 } |
danielebarchiesi@0 | 61 } |