weboftalent/twitter-tools

Embed tweets using shortcodes. Optionally add Twitter cards to pages.

Installs: 244

Dependents: 1

Suggesters: 0

Security: 0

Stars: 3

Watchers: 1

Forks: 1

Open Issues: 5

Type:silverstripe-vendormodule

3.0.0 2019-05-31 22:12 UTC

This package is auto-updated.

Last update: 2024-03-05 11:17:28 UTC


README

#Twitter Utilities Build Status Scrutinizer Code Quality Code Coverage Build Status codecov.io

Latest Stable Version Latest Unstable Version Total Downloads License Monthly Downloads Daily Downloads

Dependency Status Reference Status

codecov.io

##Introduction This module provides the following functionality

  • Embed tweets using a shortcode
  • Optionally include a script to enlarge images in embedded tweets so that you can have them larger than Twitter's normal minimum width
  • Twitter cards can be any type extending Page, provided an interface is implemented.

Incorporate Twitter

<% require javascript("weboftalent/twitter_tools: javascript/render-twitter-embeds.js") %>

##Embedding Tweets
Tweets can be embedded into content using a shortcode like the following - the id parameter is the id of the tweet.

    [tweet id='537136515445710848']

## Enlarging Embedded Images

**** THIS NEEDS RETESTED ****

A script is included that you can include in your theme (either using require_javascript or a direct
 script include in the template) called twitteruril.js - include this and larger (at source size, 
 perhaps not theme size) embedded images will render on your site.

## Twitter Cards
In order for a page to render an title, description and image when included as a link in a tweet, it needs provide metadata known as a Twitter Card.  There are two steps to take in order to achieve this:

### Implement RenderableAsTwitterCard Interface
A  minimal example of a class implementing a Twitter card is shown below.

class PageWithImage extends Page implements RenderableAsTwitterCard { private static $db = array( 'ImageAttribution' => 'Varchar(255)', 'BriefIntroduction' => 'Text' );

static $has_one = array( 'MainImage' => 'Image' );

// implement the twitter card interface public function getTwitterTitle() { return $this->Title; }

public function getTwitterImage() { return $this->MainImage(); }

public function getTwitterDescription() { return $this->BriefIntroduction; }

}


### Template Changes
In your page template, add the following to inside <head></head> section of your page:

```txt
<% include TwitterSummaryCardLargeImage %>

This will check if the current page implements the RenderableAsTwitterCard interface. If so it will produce the relevant metadata for Twitter to render a Twitter Card.

Test With Card Validator

Test out your twitter card using the Card Validator, https://cards-dev.twitter.com/validator on a publicly accessible version of your site - this will highlight any issues. It should also be noted that your site will probably need whitelisted.

TODO

  • ShortCode for follow button allowing content editors to add them inline.
  • Allow different types of TwitterCard and make this configurable.