[c6551d9] | 1 | <?php |
---|
| 2 | |
---|
| 3 | /** |
---|
| 4 | * @file |
---|
| 5 | * Implementations of token module hooks for the core comment module. |
---|
| 6 | * |
---|
| 7 | * The token module requires specific hooks to be added to modules |
---|
| 8 | * so that those modules can return data about their objects to the |
---|
| 9 | * token API. Until and unless token becomes a part of core, the |
---|
| 10 | * implementations of the token hooks for core modules are provided |
---|
| 11 | * in the token module itself. |
---|
| 12 | * @ingroup token |
---|
| 13 | */ |
---|
| 14 | |
---|
| 15 | /** |
---|
| 16 | * Implementation of hook_token_values(). |
---|
| 17 | */ |
---|
| 18 | function comment_token_values($type, $object = NULL, $options = array()) { |
---|
| 19 | $values = array(); |
---|
| 20 | switch ($type) { |
---|
| 21 | case 'comment': |
---|
| 22 | |
---|
| 23 | // Cast to an object just in case fussy Drupal gave us an array |
---|
| 24 | $comment = (object)$object; |
---|
| 25 | |
---|
| 26 | $values['comment-cid'] = $comment->cid; |
---|
| 27 | $values['comment-nid'] = $comment->nid; |
---|
| 28 | $values['comment-title'] = check_plain($comment->subject); |
---|
| 29 | $values['comment-body'] = check_markup($comment->comment, $comment->format, FALSE); |
---|
| 30 | $values['comment-author-name'] = check_plain($comment->name); |
---|
| 31 | $values['comment-author-uid'] = $comment->uid; |
---|
| 32 | $values['comment-author-homepage'] = check_url($comment->homepage); |
---|
| 33 | |
---|
| 34 | // Raw counterparts of user supplied data. |
---|
| 35 | $values['comment-title-raw'] = $comment->subject; |
---|
| 36 | $values['comment-body-raw'] = $comment->comment; |
---|
| 37 | $values['comment-author-name-raw'] = $comment->name; |
---|
| 38 | |
---|
| 39 | if (!empty($comment->mail)) { |
---|
| 40 | $account_mail = $comment->mail; |
---|
| 41 | } |
---|
| 42 | elseif (!empty($comment->uid)) { |
---|
| 43 | $account_mail = db_result(db_query("SELECT mail FROM {users} WHERE uid = %d", $comment->uid)); |
---|
| 44 | } |
---|
| 45 | else { |
---|
| 46 | $account_mail = ''; |
---|
| 47 | } |
---|
| 48 | $values['comment-author-mail'] = check_plain($account_mail); |
---|
| 49 | $values['comment-author-mail-raw'] = $account_mail; |
---|
| 50 | |
---|
| 51 | // Included in case a consuming module wants to format the body |
---|
| 52 | $values['comment-body-format'] = $comment->format; |
---|
| 53 | |
---|
| 54 | $values += token_get_date_token_values($comment->timestamp, 'comment-'); |
---|
| 55 | |
---|
| 56 | $values['comment-node-title-raw'] = db_result(db_query("SELECT title FROM {node} WHERE nid = %d", $comment->nid)); |
---|
| 57 | $values['comment-node-title'] = check_plain($values['comment-node-title-raw']); |
---|
| 58 | break; |
---|
| 59 | } |
---|
| 60 | |
---|
| 61 | return $values; |
---|
| 62 | } |
---|
| 63 | |
---|
| 64 | /** |
---|
| 65 | * Implementation of hook_token_list(). |
---|
| 66 | */ |
---|
| 67 | function comment_token_list($type = 'all') { |
---|
| 68 | if ($type == 'comment' || $type == 'all') { |
---|
| 69 | $tokens['comment']['comment-cid'] = t('The unique ID of the comment.'); |
---|
| 70 | $tokens['comment']['comment-nid'] = t('The unique ID of the node the comment was posted to.'); |
---|
| 71 | $tokens['comment']['comment-title'] = t('The title of the comment.'); |
---|
| 72 | $tokens['comment']['comment-title-raw'] = t('The title of the comment.'); |
---|
| 73 | $tokens['comment']['comment-body'] = t('The formatted content of the comment itself.'); |
---|
| 74 | $tokens['comment']['comment-body-raw'] = t('The formatted content of the comment itself.'); |
---|
| 75 | |
---|
| 76 | $tokens['comment']['comment-author-uid'] = t('The unique ID of the author of the comment.'); |
---|
| 77 | $tokens['comment']['comment-author-name'] = t('The name left by the comment author.'); |
---|
| 78 | $tokens['comment']['comment-author-name-raw'] = t('The name left by the comment author.'); |
---|
| 79 | $tokens['comment']['comment-author-homepage'] = t('The home page URL left by the comment author.'); |
---|
| 80 | |
---|
| 81 | $tokens['comment']['comment-author-mail'] = t('The email address left by the comment author.'); |
---|
| 82 | $tokens['comment']['comment-author-mail-raw'] = t('The email address left by the comment author.'); |
---|
| 83 | |
---|
| 84 | $tokens['comment'] += token_get_date_token_info(t('Comment creation'), 'comment-'); |
---|
| 85 | |
---|
| 86 | $tokens['comment']['comment-node-title'] = t('The title of the node the comment was posted to.'); |
---|
| 87 | $tokens['comment']['comment-node-title-raw'] = t('The title of the node the comment was posted to.'); |
---|
| 88 | |
---|
| 89 | return $tokens; |
---|
| 90 | } |
---|
| 91 | } |
---|