diff --git a/metatag_twittercard/metatag_twittercard.info b/metatag_twittercard/metatag_twittercard.info new file mode 100644 index 0000000..5fc63de --- /dev/null +++ b/metatag_twittercard/metatag_twittercard.info @@ -0,0 +1 @@ +name = metatag_twittercard diff --git a/metatag_twittercard/metatag_twittercard.metatag.inc b/metatag_twittercard/metatag_twittercard.metatag.inc new file mode 100644 index 0000000..71a351a --- /dev/null +++ b/metatag_twittercard/metatag_twittercard.metatag.inc @@ -0,0 +1,108 @@ +instance) { + case 'global': + $config->config += array( + 'og:type' => array('value' => 'article'), + 'og:title' => array('value' => '[current-page:title]'), + 'og:site_name' => array('value' => '[site:name]'), + 'og:url' => array('value' => '[current-page:url]'), + ); + break; + case 'global:frontpage': + $config->config += array( + 'og:type' => array('value' => 'website'), + 'og:title' => array('value' => '[site:name]'), + 'og:url' => array('value' => '[site:url]'), + ); + break; + case 'node': + $config->config += array( + 'og:title' => array('value' => '[node:title]'), + 'og:description' => array('value' => '[node:summary]'), + ); + break; + case 'taxonomy_term': + $config->config += array( + 'og:title' => array('value' => '[term:name]'), + 'og:description' => array('value' => '[term:description]'), + ); + break; + case 'user': + $config->config += array( + 'og:type' => array('value' => 'profile'), + 'og:title' => array('value' => '[user:name]'), + ); + if (variable_get('user_pictures')) { + $config->config += array( + 'og:image' => array('value' => '[user:picture:url]'), + ); + } + + break; + } + } +} +*/ + +/** + * Implements hook_metatag_info(). + */ +function metatag_twittercard_metatag_info() { + + $info['groups']['twitter-card'] = array( + 'label' => t('Twitter Card'), + 'description' => t('For now, use the open graph url / title / description / image as explain here https://dev.twitter.com/docs/cards'), + ); + + $info['tags']['twitter:card'] = array( + 'label' => t('Twitter card type'), + 'description' => t('- Minimum required for a valid Twitter Card -
+ Summary: The default card, which includes a title, description, thumbnail image, and Twitter account attribution.
+ Photo: A Tweet sized photo card.
+ Player: A Tweet sized video/audio/media player card.'), + 'group' => 'twitter-card', + 'class' => 'DrupalTextMetaTag', + 'form' => array( + '#type' => 'select', + '#options' => array('summary'=>t('Summary'),'photo'=>t('Photo - not yet implemented'),'player'=>t('Player - not yet implemented')), + '#empty_option' => t('- None -'), + ), + 'element' => array( + '#theme' => 'metatag_opengraph', + ), + ); + + $info['tags']['twitter:site'] = array( + 'label' => t('Site owner'), + 'description' => t('@username for the website used in the card footer. Optional.'), + 'group' => 'twitter-card', + 'class' => 'DrupalTextMetaTag', + 'element' => array( + '#theme' => 'metatag_opengraph', + ), + ); + + $info['tags']['twitter:creator'] = array( + 'label' => t('Content creator'), + 'description' => t('@username for the content creator / author. Optional.'), + 'group' => 'twitter-card', + 'class' => 'DrupalTextMetaTag', + 'element' => array( + '#theme' => 'metatag_opengraph', + ), + ); + + return $info; +} diff --git a/metatag_twittercard/metatag_twittercard.module b/metatag_twittercard/metatag_twittercard.module new file mode 100644 index 0000000..971063d --- /dev/null +++ b/metatag_twittercard/metatag_twittercard.module @@ -0,0 +1,37 @@ + 1); + } +} + +/** + * Implements hook_theme(). + */ +function metatag_twittercard_theme() { + $info['metatag_opengraph'] = array( + 'render element' => 'element', + ); + + return $info; +} + +/** + * Theme callback for an OpenGraph meta tag. + */ +function theme_metatag_twittercard($variables) { + $element = &$variables['element']; + element_set_attributes($element, array('#name' => 'property', '#value' => 'content')); + unset($element['#value']); + return theme('html_tag', $variables); +} + +/* +twitter:card = +twitter:site = +twitter:creator = +*/