diff --git a/metatag_twitter_cards/metatag_twitter_cards.info b/metatag_twitter_cards/metatag_twitter_cards.info new file mode 100644 index 0000000..64298c6 --- /dev/null +++ b/metatag_twitter_cards/metatag_twitter_cards.info @@ -0,0 +1,5 @@ +name = Metatag Twitter Cards +description = Provides support for twitter card meta tags. +package = Meta tags +core = 7.x +dependencies[] = metatag \ No newline at end of file diff --git a/metatag_twitter_cards/metatag_twitter_cards.metatag.inc b/metatag_twitter_cards/metatag_twitter_cards.metatag.inc new file mode 100644 index 0000000..b22303b --- /dev/null +++ b/metatag_twitter_cards/metatag_twitter_cards.metatag.inc @@ -0,0 +1,134 @@ +instance) { + case 'global': + $config->config += array( + 'twitter:card' => array('value' => 'summary'), + 'twitter:image' => array('value' => ''), + 'twitter:site' => array('value' => ''), + 'twitter:description' => array('value' => '[site:slogan]'), + 'twitter:url' => array('value' => '[current-page:url:absolute]'), + 'twitter:title'=> array('value' => '[site:name]'), + ); + break; + case 'global:frontpage': + $config->config += array( + 'twitter:description' => array('value' => ''), + ); + break; + case 'node': + $config->config += array( + 'twitter:creator' => array('value' => ''), + 'twitter:card' => array('value' => 'summary'), + 'twitter:description' => array('value' => '[node:summary]'), + 'twitter:title'=> array('value' => '[node:title]'), + ); + break; + case 'taxonomy_term': + $config->config += array( + 'twitter:title'=> array('value' => '[term:name]'), + 'twitter:card' => array('value' => 'summary'), + ); + break; + } + } +} + +/** + * Implements hook_metatag_info(). + */ +function metatag_twitter_cards_metatag_info() { + $info['groups']['twitter-cards'] = array( + 'label' => t('Twitter card'), + ); + + $info['tags']['twitter:site'] = array( + 'label' => t('Twitter site'), + 'description' => t('username for the website used in the card footer.'), + 'class' => 'DrupalTextMetaTag', + 'group' => 'twitter-cards', + 'element' => array( + '#theme' => 'metatag_twitter_cards', + ), + ); + $info['tags']['twitter:creator'] = array( + 'label' => t('Twitter creator'), + 'description' => t('@username for the content creator / author..'), + 'class' => 'DrupalTextMetaTag', + 'group' => 'twitter-cards', + 'element' => array( + '#theme' => 'metatag_twittercard', + ), + ); + $info['tags']['twitter:url'] = array( + 'label' => t('Twitter url'), + 'description' => t('The permalink of the current page.'), + 'class' => 'DrupalTextMetaTag', + 'group' => 'twitter-cards', + 'element' => array( + '#theme' => 'metatag_twittercard', + ), + ); + $info['tags']['twitter:title'] = array( + 'label' => t('Twitter title'), + 'description' => t('The title of the page.'), + 'class' => 'DrupalTextMetaTag', + 'group' => 'twitter-cards', + 'element' => array( + '#theme' => 'metatag_twittercard', + ), + ); + $info['tags']['twitter:image'] = array( + 'label' => t('Twitter image'), + 'description' => t('An image representing the item.'), + 'class' => 'DrupalTextMetaTag', + 'group' => 'twitter-cards', + 'element' => array( + '#theme' => 'metatag_twitter_cards', + ), + ); + $info['tags']['twitter:description'] = array( + 'label' => t('Twitter description'), + 'description' => t('A description of the content in a maximum of 200 characters..'), + 'class' => 'DrupalTextMetaTag', + 'group' => 'twitter-cards', + 'element' => array( + '#theme' => 'metatag_twitter_cards', + ), + ); + $info['tags']['twitter:card'] = array( + 'label' => t('Twitter card type'), + 'description' => t('The type of your object, e.g., movie.'), + 'class' => 'DrupalTextMetaTag', + 'group' => 'twitter-cards', + 'form' => array( + '#type' => 'select', + '#options' => _metatag_twitter_cards_card_options(), + '#empty_option' => t('- None -'), + ), + 'element' => array( + '#theme' => 'metatag_twitter_cards', + ), + ); + return $info; +} + +function _metatag_twitter_cards_card_options() { + $options = array( + t('Summary') => 'summary', + t('Photo') => 'photo', + t('Player') => 'player', + ); + + return $options; +} diff --git a/metatag_twitter_cards/metatag_twitter_cards.module b/metatag_twitter_cards/metatag_twitter_cards.module new file mode 100644 index 0000000..6d94fbb --- /dev/null +++ b/metatag_twitter_cards/metatag_twitter_cards.module @@ -0,0 +1,31 @@ + 1); + } +} + +/** + * Implements hook_theme(). + */ +function metatag_twitter_cards_theme() { + $info['metatag_twittercard'] = array( + 'render element' => 'element', + ); + + return $info; +} + +/** + * Theme callback for an twittercard meta tag. + */ +function theme_metatag_twitter_cards($variables) { + $element = &$variables['element']; + element_set_attributes($element, array('#name' => 'property', '#value' => 'content')); + unset($element['#value']); + return theme('html_tag', $variables); +} \ No newline at end of file