Twitter Widget 1.2

July 16th, 2009

The Twitter Widget now caches tweets using the PEAR package Cache_Lite. Follow the instructions in the link below.

http://www.ronakpatel.net/2009/04/05/twitter-widget-that-streams-multiple-accounts/

Movie Ratings HTML Problem – Updated – 1.4.7 is available.

June 8th, 2009

Many people have noted that for the past week HTML code is displayed instead of movie ratings. This is because RottenTomatoes.com made a slight modification to their layout which threw off my parser. I have fixed the issue and the next version (1.4.7) is going through Mozilla’s approval process. It should hopefully be up soon. Thanks for your patience.

In the meantime you can install the fixed version without going through Firefox’s add-on updates.

Steps:

  1. Download Movie Ratings 1.4.6 with Hot Fix.
  2. Uninstall your current version of Movie Ratings from the Add-Ons window.
  3. Drag the downloaded file on to the Add-Ons window to install it.
  4. Restart Firefox.

Version 1.4.7 was approved by Mozilla. If you already have Movie Ratings you will receive a notification for an update. If not, download it here: https://addons.mozilla.org/en-US/firefox/addon/9279.

Twitter Widget 1.1

May 25th, 2009

I updated my javascript Twitter Widget to give you the option to display user images and also fixed the bug where an error is thrown if the html or user attributes are missing.

http://www.ronakpatel.net/2009/04/05/twitter-widget-that-streams-multiple-accounts/

Movie Ratings 1.4.5 out now.

May 18th, 2009

Version 1.4.5 of Movie Ratings has been released. The only change in this update is a fix for text appearing white in certain Personas themes. Many people have requested IMDB ratings so I’ve started some preliminary work on it, but my life has been busy lately so I can’t give an eta on when it will be finished. Rest assured, it’s coming.

https://addons.mozilla.org/en-US/firefox/addon/9279

Twitter widget that streams multiple accounts

April 5th, 2009

I created a PHP/JavaScript widget that will stream multiple Twitter accounts for a friends website (see it in action at Brown Girl Magazine). It’s simple to setup. As of version 1.2.2 you will need to setup the widget again.

Requirements

  • PHP 5.0
  • PEAR – Cache_Lite 1.7.7 (It might work with newer or older versions but I haven’t tested it.)
  • Javascript turned on

Instructions

  1. Install the PEAR package Cache_Lite. Most web hosts have an easy way of installing new PEAR packages. If you have issues with PEAR, create a directory called Cache within the directory you create in step 4, download Cache_Lite and put the contents (Lite.php and Lite directory) of Cache_Lite in it. Post any questions in the comments.
  2. Download TwitterWidget_1_2_3.zip. Unzip the contents to a temporary directory.
  3. Open Config.php and edit the configuration parameters. There is an explanation for each parameter.
  4. Create a directory where ever you like on your web server and upload all the files.
  5. Copy the following html and javascript into your website right before where the body tag (</body>) is closed.
    <script type="text/javascript"><!--
     var RPNetTwitterAttrs = {
      url: 'http://localhost/TwitterWidget/reboot/TwitterWidget.php'
     };
    // --></script>
    <script type="text/javascript" src="TwitterWidget.js"></script>

    Update the url attribute to the path where you uploaded TwitterWidget.php.

    You will also need to update the src=”TwitterWidget.js” attribute to point to where you uploaded the javascript file. For example, src=”http://yourwebsite.com/uploads/TwitterWidget.js”.

  6. Copy the following html into your website where you would like the widget to appear.
    <div id='rpnetTWContainer'></div>

Editing the Look and Feel

There are two ways to change how the widget looks. The first is to add the CSS ids below to your stylesheet. The outline of the widget is as follows:

<div id="rpnetTWContainer">
 <div id="rpnetTW">
  <h2 id="rpnetTWTitle"></h2>
  <ul id="rpnetTWList"></ul>
 </div>
</div>

The second way is to go into the createWidget() function in the RPNetTWView class in TwitterWidget.php and edit the html of the widget. Post any questions in the comments.

Remember

If you make changes to how the widget looks or you modify the Config.php after setting up the widget you will either need to wait until the cache expires or you will need to go into your cache directory and delete the cache file for changes to take effect.

Upgade Instructions

From 1.2.1 to 1.2.2.

  1. Record the changes made to Config.php.
  2. Start with Step 2 of the 1.2.2 instructions.

From 1.2.2 to 1.2.3.

  1. Overwrite all PHP, JavaScript, and text files except Config.php.

What it will not do

This widget will not worked on locked Twitter accounts.

Below is a screen shot of the widget with no formatting and with the Arthemia WordPress theme. If using WordPress the widget will conform to whatever theme you have unless you modify the CSS.  Enjoy!

Change Log

Version 1.2.3

  • Fixed issue with special characters.

Version 1.2.2

  • Completely rewritten. Should make the widget load faster.
  • Handle errors more gracefully.
  • Filter by multiple hashtags.
  • As of this version the widget is under the LGPL v3 License.

Version 1.2.1

  • Fixed bug with unescaped characters.

Version 1.2

  • Tweets are now cached.

Version 1.1

  • Added an option for displaying user images.

Version 1.0

  • Displays list of tweets from multiple users.

Old Versions

NLU BodyGuardz skin for the iPhone 3G Redux

April 4th, 2009

About six months ago I applied the NLU BodyGuardz skin for my iPhone. You can read my review and installation guide here. Six months in and it’s still staying strong. If you apply the skin correctly and let it dry properly then this thing will only come off when you decide to. My only complaint is the lint that accumulates around the top and bottom corner pieces. It’s starting to slightly get under the skin. I think that’s unavoidable and since it’s not on the screen piece of the skin it doesn’t matter to me. All in all, I highly recommend the NLU BodyGuardz skin for the iPhone 3G.

UPDATE - The dust, lint, and grime started to get further into the corners and they started lifting up, so i decided to take the skin off. My phone is currently going commando. Any suggestions on a good case? I still recommend the skin if applied properly and if you don’t mind some accumulation of lint around the edges.

Movie Ratings is public!

April 2nd, 2009

Movie Ratings is finally out of the Mozilla sand box as version 1.4.4. Thanks to everyone who tested it!

Download it here: https://addons.mozilla.org/en-US/firefox/addon/9279

Grinds My Gears: Facebook login page tab order

March 29th, 2009

“You know what really grinds my gears”, the tab order on Facebooks login page. Most web 2.0 sites I use have the tab order or natural progression of login form elements as such:

  • On page load, focus is on the user name field.
  • On first tab, the password field is given focus.
  • On second tab, the “Remember Me” checkbox is given focus.
  • On third tab, the login button is given focus.

Example of the above:

Twitter

twitter_login

Facebook on the other hand has a tab order as follows:

  • On page load, focus is on the user name field.
  • On first tab, the password field is given focus.
  • On second tab, the login button is given focus.

The “Remember Me” check box is skipped, which means I have to resort to using the mouse. Ugh.

Facebook Login

facebook_login

Facebook could have the check box auto checked, but it might be a safety precaution as a good number of Facebook users access their accounts from public computers. From looking at its html Facebook does not use the tabindex DOM property for setting tab order. The “Remember Me” check box appears before the text fields in the html and since the email field is in focus first, the checkbox is skipped unless you shift-tab back twice.

Sure, logging in only has to be done once, but I run CCleaner once a week to keep my laptop clean so it’s irritating that I can’t “tab, type, tab, type, tab, hit space, enter”.

Maybe I’ll write a simple grease monkey script to change the tab order.

Movie Ratings 1.4.3 out.

March 29th, 2009

Version 1.4.3 of Movie Ratings is out. There are not any major changes. The extension was rejected by Mozilla because the code was not in it’s own namespace. I had completely overlooked that. I have resubmitted the extension for public status. Back to the end of their long nomination queue…

https://addons.mozilla.org/en-US/firefox/addon/9279/

How to: Add a text and date field to WP-PHPList

March 22nd, 2009

WP-PHPList is a great plugin for WordPress that integrates PHPList with WordPress. It allows you to add a newsletter subscription form to any WordPress page. Currently the plugin only supports one text and email field in the form. I needed extra functionality for a friends website so I decided to make additions to the plugin. The following guide and code will show you how to add another text field and a date field. This is not a straight forward guide. I will explain the changes I made to each function, but you must look at the code to understand it. An understanding of PHP code is recommended. My comments for the changes are in the code and are prefixed with “ronak”.

Changes are made to version 1.5 of the plugin.

Also, the code disables the subpanel created in WordPress and all configuration is done through the code. You can change this if you like.

Download Code

Design

  • The design is fairly simple. User input is taken in, validation is done on the input, and cURL is used to POST the input to the same page that the PHPList subscription page POSTs to.
  • The code comprises of some global variables and functions. I don’t necessarily agree with the design of the plugin, but it works great.

Variables (Note: These are not all the variables used, only the one I edited.)

  • $phplist_strings - This global variable  is an array that holds the html for each field in the form. Just follow the code to add more fields.

Functions (Note: These are not all the functions used, only the ones I edited or created)

  • generate_date_input($o, $day, $month, $year) – I created this function to create the html for the date fields. It takes an array of options ($o) returned by phplist_get_options() which I will get to soon and $day, $month, $year (ranges: 1-31, 01-12, and 1925 – current year respectively). If any of those three variables are set then that field will be selected with that value. If any of the three variables are equal to an empty string, then that part of todays date is used. This is used for keeping the values you selected persistant when an error or invalid input is triggered.
  • phplist_subscribe($input_data) – This function takes in the data from the subscription form POST, formats the data, and performs the cURL POST. I made modifications to how array data is formatted in the POST since the original code did not deal with dates.
  • phplist_get_options() – This function returns the options for the form. The changes made to this function add options for new fields and also disables the loading of options from the subpanel page.
  • phplist_check_input() – This function validates user input. I added validation for the added text field and I’ve also added persistence for the date field since the page is reloaded when invalid input is entered.
  • phplist_construct_form() – This function creates the newsletter subscription form. The form has been redesigned.

The changes I made are not complicated and I feel that they are easily decipherable. Post any questions in the comments.

Download Code