• Home
  • Services
  • Profile
  • Portfolio
  • Contact
  • Links
  • Blog
  • Archives
  • Sitemap
Subscribe: Posts | Comments | E-mail
  • Ajax
  • Design
  • Development
  • Freebies
  • IT News
  • Miscellaneous
  • Programming
  • Tutorials
  • Web 2.0

Bali Web Design

404 - Page Not Found

There is known permalink issue after server migration.
Please try to search or navigate from the category instead

Perhaps the links below might help you find what you are after:

Posted on September 24, 2009 - by webmaster

PHP Class Create Short URL via TinyURL, Is.gd, Hex.io, Tr.im & Bit.ly API

Featured Programming Tutorials

Short URL is commonly used today for several reasons: avoid url garbling, take smallest space especially for long url which need to be posted at limited space format eg: twitter, also often used to manipulate user for specific purposes eg: hiding orginal url for phising and ads/affiliation links.

There are many websites that provide shortening url services, tinyurl, bit.ly, hex.io are some of them, and as addition to my simple twitter, plurk and facebook api implementation, i have created a PHP script to create short url on the fly, currently support: tinyURL, bit.ly, is.gd, tr.im and hex.io, but you can easily add other providers.


PHP Class

<?php
/*
** Title: Shortening URL Class
** Author: chazzuka <ariel@chazzuka.com>
** Author URL: http://www.chazzuka.com
** Latest Updated: September 24 2009
*/
class ShortUrl {

	public static function create($url,$provider='tinyurl',$user='',$key='') {
		$api_url = sprintf(self::api($provider),urlencode($url),$user,$key);
		return self::inspect($provider,self::execute($api_url));
	}

	private static function execute($url) {
		$ch = curl_init();
		curl_setopt ($ch, CURLOPT_URL, $url);
		curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
		$text = curl_exec($ch);
		curl_close($ch);
		return $text;
	}

	private static function inspect($provider,$xml) {
		if(!empty($xml)) {
			switch(strtolower(trim($provider))){
				case "bitly":
					$o = new SimpleXMLElement($xml);
					return (string)$o->results->nodeKeyVal->shortUrl;
					break;
				case "trim":
					$o = new SimpleXMLElement($xml);
					return (string)$o->url;
					break;
				case "isgd":
				case "hexio":
				default:
					return $xml;
			}
		}
		return false;
	}

	private static function api($provider) {
		switch(strtolower(trim($provider))){
			case "bitly":
				$return = "http://api.bit.ly/shorten?version=2.0.1&format=xml&longUrl=%s&login=%s&apiKey=%s";
				break;
			case "isgd":
				$return = "http://is.gd/api.php?longurl=%s";
				break;
			case "hexio":
				$return = "http://hex.io/api-create.php?url=%s";
				break;
			case "digg":
				$return = "http://services.digg.com/url/short/create?url=%s&appkey=%s&type=xml";
				break;
			case "trim":
				$return = "http://api.tr.im/v1/trim_url.xml?url=%s";
				break;
			default:
				$return = "http://tinyurl.com/api-create.php?url=%s";
		}
		return $return;
	}
}
?>

Sample of usage:

<?php
$url = 'http://www.chazzuka.com/blog/?p=192';
echo ShortUrl::create($url,'trim');
echo '<hr />';
echo ShortUrl::create($url,'tinyurl');
echo '<hr />';
echo ShortUrl::create($url,'isgd');
echo '<hr />';
echo ShortUrl::create($url,'hexio');
echo '<hr />';
echo ShortUrl::create($url,'bitly','your_user_name','your_api_key');
?>
Posted on September 12, 2009 - by ruby

How to embed plurk status in wordpress blog

Featured Programming Tutorials

I had signup with plurk a year ago but haven’t “plurking” since i use twitter a lot, and for me both of them were created for same purpose, microblogging, sharing what you’re up to in few sentences and follow what your friends up to. Today i had re-theming my personal blog and use free seven five wordpress theme by press75 which is very simple and already integrated with twitter status, delicious bookmarks, and external RSS feed, then i thinks its good to add plurk also.

Theres a wordpress plugin to achieve this purpose already, but here i only need to fetch status update, and dont need any widget or possibility to update my status from my blog, and here we go,

// fetch plurk messages
function plurk_messages(
	$username = '',
	$num = 1,
	$list = true,
	$show_username = false,
	$show_moods = true,
	$encode_utf8 = false)
{
	$plurk_url = 'http://www.plurk.com';

	$plurk_moods = array('loves','likes','shares','gives','hates','wants','wishes','needs','will','hopes','asks','has','was','wonders','feels','thinks','says','is');
	array_walk($plurk_moods, 'plurk_addspace');

	$plurk_mood_replace = array();
	$plurk_mood_replacer = array();

	include_once(ABSPATH . WPINC . '/rss.php');

	$messages = fetch_rss('http://www.plurk.com/user/' . $username . '.xml');

	if ($list) echo '<ul class="plurk">';

	if ($username == '')
	{
		if ($list) echo '<li>';
		echo 'RSS not configured';
		if ($list) echo '</li>';
	}
	else
	{
			if ( empty($messages->items) )
			{
				if ($list) echo '<li>';
				echo 'No public plurk messages.';
				if ($list) echo '</li>';
			}
			else
			{
				// start fetching
				$i = 0;
				foreach ( $messages->items as $message )
				{
					$msg = $message['atom_content'];
					$author_name = $message['author_name'];
					$link = $plurk_url.$message['link_'];
					$time = strtotime($message['published']);

					if(!$show_moods) { $msg = str_replace($plurk_moods,'',$msg); }
					else {
						if(empty($plurk_mood_replace)||empty($plurk_moods_replacer)){
							list($plurk_mood_replace,$plurk_mood_replacer) = plurk_moods_format($plurk_moods,$author_name);
						}
						$msg = str_replace($plurk_mood_replace,$plurk_mood_replacer,$msg);
					}

					if(!$show_username) { $msg = str_replace($author_name.' ','',$msg); }
					else { $msg = str_replace($author_name,'<a class="plurk_username" href="'.$plurk_url.'/'.$username.'">'.$author_name.'</a>',$msg); }

					if($encode_utf8) $msg = utf8_encode($msg);

					if ($list) { echo '<li class="plurk-item">'; } else { echo '<p class="plurk-message">'; }

					$msg = preg_replace("/<a href=[\"' ]?([^\"' >]+)[\"' ]?[^>]*>(.*?)<\/a>/i",'$1',$msg);
					$msg = plurk_hyperlinks($msg);
					$msg = plurk_users($msg);

					echo $msg;

					if ( ( abs( time() - $time) ) < 86400 ) {  $h_time = sprintf( __('%s ago'), human_time_diff( $time ) ); }
					else{ $h_time = date(__('Y/m/d'), $time); }

					echo '<span class="plurk-timestamp"><abbr title="' . date(__('Y/m/d H:i:s'), $time) . '">' . $h_time . '</abbr></span>';

					if ($list) { echo '</li>'; } else { echo '</p>'; }

					$i++;
					if ( $i >= $num ) break;
				}
				// end fetching -->
			}
	}
	if ($list) echo '</ul>';
}
// set pattern + replacement for message prefix (says, is etc.)
function plurk_moods_format($plurk_moods,$user){
	$plurk_moods_replace = $plurk_moods_replacer = array();
	foreach($plurk_moods as $mood){
		$plurk_moods_replace[] = "$user $mood";
		$plurk_moods_replacer[] = $user.' <span class="plurk-'.trim($mood).'">'.trim($mood).'</span> ';
	}
	return array($plurk_moods_replace,$plurk_moods_replacer);
}
// add spaces into moods
function plurk_addspace(&$item,$key) { $item = "$item "; }

And couple of functions below taken from Twitter for Wordpress plugin by Ricardo Gonzalez to format autolink and in-reply message.

// format autolink
function plurk_hyperlinks($text) {
    // Props to Allen Shaw & webmancers.com
    // match protocol://address/path/file.extension?some=variable&another=asf%
    //$text = preg_replace("/\b([a-zA-Z]+:\/\/[a-z][a-z0-9\_\.\-]*[a-z]{2,6}[a-zA-Z0-9\/\*\-\?\&\%]*)\b/i","<a href=\"$1\" class=\"plurk-link\">$1</a>", $text);
    $text = preg_replace('/\b([a-zA-Z]+:\/\/[\w_.\-]+\.[a-zA-Z]{2,6}[\/\w\-~.?=&%#+$*!]*)\b/i',"<a href=\"$1\" class=\"plurk-link\">$1</a>", $text);
    // match www.something.domain/path/file.extension?some=variable&another=asf%
    //$text = preg_replace("/\b(www\.[a-z][a-z0-9\_\.\-]*[a-z]{2,6}[a-zA-Z0-9\/\*\-\?\&\%]*)\b/i","<a href=\"http://$1\" class=\"plurk-link\">$1</a>", $text);
    $text = preg_replace('/\b(?<!:\/\/)(www\.[\w_.\-]+\.[a-zA-Z]{2,6}[\/\w\-~.?=&%#+$*!]*)\b/i',"<a href=\"http://$1\" class=\"plurk-link\">$1</a>", $text);    

    // match name@address
    $text = preg_replace("/\b([a-zA-Z][a-zA-Z0-9\_\.\-]*[a-zA-Z]*\@[a-zA-Z][a-zA-Z0-9\_\.\-]*[a-zA-Z]{2,6})\b/i","<a href=\"mailto://$1\" class=\"plurk-link\">$1</a>", $text);
        //mach #trendingtopics. Props to Michael Voigt
    $text = preg_replace('/([\.|\,|\:|\¡|\¿|\>|\{|\(]?)#{1}(\w*)([\.|\,|\:|\!|\?|\>|\}|\)]?)\s/i', "$1<a href=\"http://plurk.com/#search?q=$2\" class=\"plurk-link\">#$2</a>$3 ", $text);
    return $text;
}
// in-reply to
function plurk_users($text) {
       $text = preg_replace('/([\.|\,|\:|\¡|\¿|\>|\{|\(]?)@{1}(\w*)([\.|\,|\:|\!|\?|\>|\}|\)]?)\s/i', "$1<a href=\"http://plurk.com/$2\" class=\"plurk-user\">@$2</a>$3 ", $text);
       return $text;
}

Copy those functions in your functions.php at your active theme folder, or you can put it in separate file then include it in your functions.php file.

The implementation is simple, just call the function in your file where you need your plurk status to be placed.

plurk_messages('username',10) ;

The function tahe few parameters in sequential order as follow:

  1. Username
  2. Number of status to be displayed
  3. Flag true/false Use unordinal list or note (ul li or p)
  4. Flag true/false show your username in the message
  5. Flag true/false show the message prefix or not
  6. Flag true/false Encode the message in UTF8 or not

How to styling? you need to add CSS for few class of the HTML tag which are auto generated by the function

ul.plurk, li.plurk-item. p.plurk-message, a.plurk_username, span.plurk-timestamp, a.plurk-link, a.pluk-user, also series of span with classes prefix by plurk- and followed by message prefix eg: span.plurk-says, span.plurk-loves etc.

Do you plurking? add me!

Thas it, hopely it usefull for you.

Posted on June 29, 2009 - by ruby

Scripty2 the successor of script.aculo.us

IT News Programming

Thomas Fuchs has announced the alpha release of scripty2, the successor of well known, powerful and flexible javascript library script.aculo.us. scripty2 is designed to help you write your own delicious visual effects & user interfaces.

Check out the demo to see the possibilities scripty2 can do, however as it is still in alpha version which means there will be tweaking and rewrite into the library and it is not yet recommended for production use.

Social Network Icon Pack
by ruby on June 29, 2009
jQuery validation engine, jquery inline form validation
by ruby on June 12, 2009
Js.Class Ruby style javascript
by ruby on June 12, 2009
Javascript Infovis Toolkit
by ruby on June 12, 2009
Wordpress 2.8 available for download
by ruby on June 11, 2009
Website Optimization Best Practices, speed up your website load
by ruby on May 21, 2009
Free Icons flavour & twitter icons
by ruby on May 20, 2009
« Older Entries
Featured Programming Tutorials

PHP Class Create Short URL via TinyURL, Is.gd, Hex.io, Tr.im & Bit.ly API

Short URL is commonly used today for several reasons: avoid url garbling, take smallest space especially for long url which need to be posted at limited space format eg: twitter, also often used to manipulate user for specific purposes eg: hiding orginal url for phising and ads/affiliation links.
There are many websites that provide shortening url [...]

Featured Programming Tutorials

How to embed plurk status in wordpress blog

I had signup with plurk a year ago but haven’t “plurking” since i use twitter a lot, and for me both of them were created for same purpose, microblogging, sharing what you’re up to in few sentences and follow what your friends up to. Today i had re-theming my personal blog and use free seven [...]

Ajax Tutorials

Gmail/Facebook Style jQuery Chat

jQuery chat module enables you to seamlessly integrate Gmail/Facebook style chat into your existing website.

Programming Tutorials

Autolink with classic asp & regular expression

Simple implementation of regular expression in Classic ASP script to create link from text (autolink), this is useful when you need to turn a bunch of text to be a clickable link when it is in a valid url format. Uses Regexp replace method.

Programming Tutorials

Classic ASP (VBscript) class create short url

Classic ASP class to shortenize URL via TinyURL, bit.ly, is.gd service. Here you will learn also how to use microsoft XMLHTTP object, access remote page via Classic ASP script.

View The Archives
  • Ad Ad Ad Ad
  • Recommended Links

  • Featured News

    • PHP Class Create Short URL via TinyURL, Is.gd, Hex.io, Tr.im & Bit.ly API by webmaster on September 24, 2009
    • How to embed plurk status in wordpress blog by ruby on September 12, 2009
    • Website Optimization Best Practices, speed up your website load by ruby on May 21, 2009
    • Prism Firefox Extension, bring your web apps to the desktop by ruby on May 11, 2009
    • Troubleshoots During Migration by webmaster on March 7, 2009
  • Latest Entry

    • PHP Class Create Short URL via TinyURL, Is.gd, Hex.io, Tr.im & Bit.ly API
    • How to embed plurk status in wordpress blog
    • Scripty2 the successor of script.aculo.us
    • Social Network Icon Pack
    • jQuery validation engine, jquery inline form validation
  • Tag Cloud

    • Actionscript advertorial Ajax API best practices chat Classic ASP CMS CSS Design Development facebook firefox Flash flickr Freebies gmail HTML icons Javascript Jobs jQuery jQuery Plugins Library Lightbox Mootools news Personal PHP plurk prism Prototype regex regular expression Scriptaculous SEO Tutorial twitter Web 2.0 Wordpress Works YUI
  • Most Popular Posts

    • { 80 } ResponsesPHP ajax login form using Jquery
    • { 79 } Responsesphp ajax tutorial create ajax based login form using jquery
    • { 57 } ResponsesASP Classic Programming Still Alive
    • { 50 } Responses63+ best practice to optimize PHP code performances
    • { 37 } ResponsesVideobox: Lightbox for videos
© 2007 - 2010 Bali Web Design all rights reserved
Powered by wordpress Theme by woothemes