Joomla Extensions

CLUB

RokTwittieLatest Version: J1.5 2.7 / J2.5 1.6

RokTwittie
Joomla 1.5Joomla 2.5

Versatile Real Time Twitter RokTwittie is a module that integrates Twitter into your Joomla site. Display tweets of any username, or even by search terms, as well as your profile information and various other elements from Twitter itself. RokTwittie is the perfect compliment to any Social site, or Business site that uses Twitter.

The extension is highly configurable with everything being entirely collapsible and segmented. Only show what you want, whether that is just a twitter feed, or something more substantial with search times and profile information. RokTwittie also uses Twitter's App Authentication service.

NOTICE: If you experience the Fatal error: Call to undefined function curl_init() error then you need to have CURL enabled on your server. You can ask your hosting provider to activate this.

List of Features

  • Real Time Tweets: Tweets update live from Twitter
  • Search: Use the inbuilt search to scan for usernames or keywords
  • Profile information: Show your profile details, such as name, avatar and bio
  • Fast Loading: Written from the ground up for greater performance
  • Highly configurable: Options to control every aspect of RokTwittie
  • Twitter Authentication: Choose between Anonymous and App Authentication
  • Retweet Support: http://support.twitter.com/forums/10711/entries/77606-what-is-retweet-rt
  • Caching: Use of Joomla Cache for greater stability
  • Friendly Errors: If Twitter is down, or CURL is not installed, RokTwittie will fail gracefully

Screenshots

RokTwittie is a standalone module with individual styling, allowing it to be deployed into any template. Below is an example of RokTwittie:

RokTwittie

History

RokTwittie first made an appearance with the June 2009 Joomla Template Release, the Refraction template. You can see its various configurations in action on the demo (link previous).

Installation - Joomla 1.5


Downloading the Extension Files

  • RokTwittie Module (mod_roktwittie.zip) This file is the module package you will use to install RokTwittie into Joomla.

Using the Joomla Installer

From the Menu in your Joomla Administrator, go to Extensions → Install/Uninstall.

Next, browse for your mod_roktwittie.zip file you downloaded and then click Upload File & Install.


installation


Accessing the Module Page

Next, go to Extensions → Module Manager. From the list, find RokTwittie and open it to be brought to the RokTwittie Module Manager page, which lists all the available options for the module.


Requirements

RokTwittie has the following requirements in order to operate:-
  • Joomla 1.5x - ensure you are using the latest version.
  • CURL - this needs to be enabled on your server for the module to work. You can contact your hosting provider to activate this for you.

How Does it Work?

RokTwittie is entirely reliant on the Twitter API. Both status and updates use the REST API methods while the search uses Search API methods.

Rate Limiting

One example of a limitation is the rate limits, that affects only the status section. Due to the ever increasing popularity of Twitter and the applications that rely on it, Twitter has recently restricted the API to be hit 150 times only, per IP, per hour. It is low because the status and updates are built via PHP by the extension (while the searches are built via JavaScript), so even if you have 100 different users loading your site, the requests to the API for the status will always come from the server hosting this extension, which means the IP is always the same and would be very easy to reach the 100 limit in no time.

On the other hand though, the statuses are not something that gets updated very often. This forced us to introduce a RokTwittie cache system, that we really encourage you to keep enabled. At the first retrieval of the data, all the statuses info are stored in a cache and for the amount of time you have set in the parameters option, the cache will be read and served as if it was fresh data. If the cache time is exceed, the data will be gathered again from Twitter and cached again. Not only was this the solution for the rate limits, but it increases, exponentially, the site's speed. Updates are also stored in cache, so when Twitter is down extension is still display data.

The search section of RokTwittie rely on the Twitter Search API. There is also a rate limit, but it is much higher than the 150 of the REST API. Moreover this section (and status updates) have its data retrieved by the client so that they do not rely on the server hosting the extension and consequently, hitting the rate limit is a hard task to accomplish. We then opted to not include any sort of cache system for it due to search requiring almost constant fresh data.

The updates and search sections of RokTwittie rely on the Twitter Search API. There is also a rate limit, but it is much higher than the 100 of the REST API. Moreover these two sections have their data retrieved by the client so that they do not rely on the server hosting the extension and consequently, hitting the rate limit is a hard task to accomplish. We then opted to not include any sort of cache system for it due to updates and search requiring almost constant fresh data.

If you already have RokTwittie installed, you will see there is a option named “Use OAuth”. This is optional, RokTwittie will function correctly even if it's set to no, but very much recommended. The reason you would use this option is because it increases Rate Limit to 350 hits per hour, tied to the account and not the IP. if you know your site is going to require more than 150 hits per hour or you have multiple sites running from same IP, we suggest you enable it. This requires registering your website as Twitter application and then authenticating the website with Twitter, but we have it covered in registration (LINK) section.

More details about Rate Limiting (source: twitter.com).

API requests

Another example are the requests to obtain the fresh data. Due to the way the Twitter API works, we could not provide all the bits by a single request. Taking an example, the screenshot above, which shows everything enabled, there are 3 API requests. However, in that screenshot the 'following' count is 0, if it was higher and the option to show 'following' icons was enabled, that would have cost two more requests, for a total of 5. So a simple account with all options enabled and having one or more 'following' icons showing, costs the total of 5 requests.

Consider also that 5 requests for status and 'following' icons are to be considered per user. If you are going to show more than one user, you have to double the requests count.

Search Queries

Thanks to the search section of RokTwittie, you can specify a query of terms that will be processed and filtered by the Twitter Search API. The API allows also operators to be used within the search query, below a list of operators and examples.

Operator Find tweets...
rockettheme joomla Containing both "rockettheme" and "joomla". This is the default operator.
\"rockettheme joomla\" containing the exact phrase "rockettheme joomla". You need to use escaped quotes (\").
from:rockettheme sent from person "rockettheme".
to:rockettheme sent to person "rockettheme" (tweet starts with @rockettheme).
@rockettheme referencing person "rockettheme" (tweet contains @rockettheme).
#rockettheme containing the hashtag "rockettheme".
rockettheme source:tweetie containing "rockettheme" and entered via Tweetie application (limited to 7 days).
rockettheme OR joomla containing either "rockettheme" or "joomla" (or both).
rockettheme -joomla containing "rockettheme" but not "joomla".

Note that a query string is limited to 140 chrs.

Configuration

RokTwittie is a highly configurable module that allows you to control the various aspects of its appearance and functions. Details of each options are as follows:-

Load Built-in CSS: Choose whether to load the standalone styling or to load the CSS from the template. You should disable this option only if you wish to use your own styling which you have already created.

Output Caching: As the name suggests, if this is enabled, the module will enable caching in order to save on performance and prevent the 100 Twitter API limit being met.

Cache Time: If caching is enable, set, in minutes, the time you wish before it is cleared and new data is called.

Twitter Login: If you wish to load your own profile, then enter your username into this field. As Twitter has a 100 hit limit on its API, this field was created to subvert that issue. If you are going to experience high traffic, fill this field then the 100 hit limit does not apply.

Twitter Password: Enter your Twitter password here if you wish to subvert the Twitter API limit of 100 hits. See explanation for Twitter Login.

Usernames: You do not need to fill out the Twitter login or password for RokTwittie to function. You can insert your username or multiple usernames (separated by a comma) here and the module will load them.

Show default avatars: When enabled, your profile picture from Twitter will appear in the module, alongside your other profile information.

Enable username statuses: This option controls whether the statuses from each username appears in the module.

Open links in new window: A self explanatory parameter, basically, all links in RokTwittie can be set to either open in a new window (will default to a new tab in certain browsers) or load in the page you are viewing.

Show RSS feed link: This parameter controls whether the RSS feed link for your profile appears in the module, it is accompanied by the RSS feed icon.

Show Follow Updates Link: Set to show if you wish to show the updates link.

Show the Bio Description: Set to show if you wish to show your Twitter Bio in the module.

Show the URL: If you have a website address in your profile, this option allows you to show it.

Show the location: Again, if this is set in your twitter profile, you can set it to appear.

Show user updates count: Show the number of updates of the user.

Show user followers count: Show the number of those who are following the user.

Show user following count: Show the number of those who the user is following.

Show following icons: Set to show if you wish to show the icons/avatars of the users who are following the user.

Icon Count: If icons are enabled, this option controls the number that are actually displayed.

Show View all after Icons: When enabled, an additional link will be placed below the icons to view all of the following twitter users.

Inactive user opacity: This sets the opacity of the inactive user tab, if you have multiple users set to show in RokTwittie.

Tweet Options

Enable usernames tweets: This parameter allows you to show the tweets from the user set above.

Show usernames avatar: Set to show if you wish to show the avatar next to each tweet.

Size in pixel of the avatar: If you set the username avatars to show, this controls the size in pixels.

Tweet count: This sets the number of tweets to show if enabled.

Open links in new window: A self explanatory parameter, basically, all links in RokTwittie can be set to either open in a new window (will default to a new tab in certain browsers) or load in the page you are viewing.

Show tweets sources: When enabled, the sources of each tweet will be shown.

Show username as preopened text: If set to show, the username of the tweeter will appear before each tweet.

Search Options

Enable search tweets: This parameter allows you to show the tweets from the search option.

Search string: Enter the value you wish to search for in Twitter.

Show search avatar: Set to show if you wish to show the avatar next to each search tweet.

Size in pixel of the avatar: If you set the search avatars to show, this controls the size in pixels.

Tweet count: This sets the number of tweets to show if enabled.

Open links in new window: A self explanatory parameter, basically, all links in RokTwittie can be set to either open in a new window (will default to a new tab in certain browsers) or load in the page you are viewing.

Show tweets sources: When enabled, the sources of each tweet will be shown.

Show username as preopened text: If set to show, the username of the tweeter will appear before each tweet.

App Registration

Steps:

  • Change Use OAauth to Yes
  • Register your website as Twitter application
  • After successful registration copy&paste consumer key and consumer secret to corresponding fields in admin.
  • Click Apply button
  • Authenticate with Twitter by click blue Sign in with Twitter button

Twitter App Registration

Registration website: http://twitter.com/apps/new

Field's Comments:

  • Application name: Website name
  • Description: Website description
  • Application website: Website full url
  • Organization: Organization maintaining/owning the website
  • Website: Organization website
  • Application type: Choose Browser
  • Callback URL: Same as Application website
  • Default Access type: Choose Read-only
  • Use Twitter for login: Choose Yes

Example Registration:

  • Application name: Gantry Framework website
  • Description: The Gantry Framework is a powerful templating framework for Joomla that makes building websites easier. The feature set includes 960 grid system, full override capability, custom functionality via features and more.
  • Application website: http://www.gantry-framework.org/
  • Organization: RocketTheme, LLC
  • Website: http://www.rockettheme.com/
  • Application type: Browser
  • Callback URL: http://www.gantry-framework.org/
  • Default Access type: Read-only
  • Use Twitter for login: Yes

RokTwittie

Once application has been created, Twitter will display consumer key and secret. Copy those to fields in admin screen.

RokTwittie

Changelog

This is a changelog for RokTwittie, inclusive of alpha, beta and release candidate versions.

Joomla 1.5.x

Legend:

* -> Security Fix
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note

----------- 2.7 Release [06-Oct-2011] -----------

11-Sep-2011 Steph Schmidt 
# Fixed catchable fatal error

----------- 2.6 Release [13-Jul-2011] -----------

13-Jul-2011 Djamil Legato
# Added some checks in case of bad data

----------- 2.5 Release [13-Jun-2011] -----------

09-Jun-2011 Djamil Legato
# Fixed issue when OAuth is already loaded

----------- 2.4 Release [31-May-2011] -----------

31-May-2011 Djamil Legato
# Fixed time not linking to the proper tweet

----------- 2.3 Release [31-Mar-2011] -----------

31-Mar-2011 Djamil Legato
# Switching between margin-left and margin-right on the avatar based on RTL
# Fixed deprecated ereg_replace in IE browser check
# Fixed search when no users tweet was enabled

----------- 2.2 Release [14-Feb-2011] -----------

14-Feb-2011 Djamil Legato
# Fixed wrong counting of Users Tweets in no cache and no merge mode

----------- 2.1 Release [25-Sep-2010] -----------

25-Nov-2010 Juozas Kaziukenas
^ Renamed exception to TwitterOAuthException to support PECL installed twitter oauth

----------- 2.0 Release [29-Sep-2010] -----------

29-Sep-2010 Juozas Kaziukenas
+ ReTweets support
+ Enabled CURL extension checks
^ Changed authentication to use OAuth
^ Caching using JCache
^ Prepopulating status updates using cache
! Refactored class

----------- 1.0 Release [16-Aug-2009] -----------

16-Aug-2010 Djamil Legato
+ MooTools 1.2 compatibility

----------- 0.9 Release [15-Jan-2009] -----------

14-Jan-2010 Andy Miller
# Reverted $doc->baseurl to JURI::base(root) for CSS and JS

14-Jan-2010 Djamil Legato
# Rewrote the Search handler to work again with the latest Twitter Search API changes
# Rewrote the date handler for IE to work again with the latest Twitter Search API changes
# Fixed merged results for users tweets
# Updated "View All" link from the old "/friends" to the new "/following".

----------- 0.8 Release [08-Dec-2009] -----------

08-Dec-2009 Djamil Legato
^ New way to gather users tweets. Not relying on Twitter Search API anymore but directly on Twitter API. This new way guarantee a more reliable output.
+ Added "Merge" options. Based on the tweets count you want to show, if you have more than 1 user you can either merge the tweets so the global count is the one you have set or not merge, so every user is going to show as many tweets as your count setting.

----------- 0.7 Release [30-Nov-2009] -----------

30-Nov-2009 Djamil Legato
# Fixed the missing ABOUT language translation
# Fixed an issue that didn't let you show only the tweets, without statuses
# Modified the way the addStyleSheet and Script are output

----------- 0.6 Release [18-Nov-2009] -----------

18-Nov-2009 Brian Towles
# Added bug fix for PHP 5.3

----------- 0.5 Release [18-June-2009] -----------

18-Jun-2009 Djamil Legato
# Optional timeout when reaching Twitter.com (with low timeout, 5s)
# Removed escaped double quotes from the searching query
# Fixed parsing issue when user tweets disabled and search enabled

----------- 0.4 Release [09-June-2009] -----------

09-Jun-2009 Djamil Legato
# HTTPS fix

----------- 0.3 Release [05-June-2009] -----------

05-Jun-2009 Djamil Legato
# Bio containing amps caused RokTwittie to not validate.
# Clicking on avatars in updates and search took always to the same page, instead of taking in consideration the "Open in new window" option.
# Several CSS tweaks
+ You can now choose between a Light and Dark header style.
+ Improved caching

----------- 0.2 Release [02-June-2009] -----------

02-Jun-2009 Andy Miller
# Fixed XML error related to caching option

----------- 0.1 Release [31-May-2009] -----------

31-May-2009 Djamil Legato
! Initial release.

----------- Initial Changelog Creation -----------

Joomla 1.7.x

Legend:

* -> Security Fix
# -> Bug Fix
+ -> Addition
^ -> Change
- -> Removed
! -> Note

----------- 1.5 Release [06-Oct-2011] -----------

30-Sept-2011 Steph Schmidt
# Fixed catchable fatal error
# Fixed oauth fatal error

----------- 1.4 Release [13-Jul-2011] -----------

13-Jul-2011 Djamil Legato
# Fixed issues with Internet Explorer not showing up tweets sometimes
# Added some checks in case of bad data

----------- 1.3 Release [13-Jun-2011] -----------

09-Jun-2011 Djamil Legato
# Fixed issue when OAuth is already loaded

----------- 1.2 Release [31-May-2011] -----------

31-May-2011 Djamil Legato
# Fixed time not linking to the proper tweet

----------- 1.1 Release [31-Mar-2011] -----------

31-Mar-2011 Djamil Legato
# Switching between margin-left and margin-right on the avatar based on RTL
# Fixed deprecated ereg_replace in IE browser check

----------- 1.0 Release [24-Mar-2011] -----------

! Initial release.

----------- Initial Changelog Creation -----------