Menambahkan sidebar widget untuk status Facebook dengan menggunakan wordbook

status_widgetBerawal dari penggunaan plugin wordbook yang bermasalah, saya menemukan di forum diskusi wordbook sebuah pengembangan berupa penambahan widgets pada sidebar yang berfungsi untuk memunculkan status facebook kita di halaman depan blog. Pengembangan ini dilakukan oleh Stephen Atty dan diskusi lengkap mengenai pengembangan ini dapat anda lihat di forum diskusi wordbook.

Stephen Atty menuliskan bahwa, jika anda menginginkan memiliki sebuah widget sidebar yang berisi status facebook anda hanya tinggal memanfaatkan database wordbook yang sudah terinstal di plugin manager anda. Langkah pertama yang harus anda lakukan adalah memastikan bahwa plugin wordbook anda telah berfungsi dengan baik. Caranya adalah dengan melihatnya di menu setting – wordbook. Jika di segmen setting tersebut sistem mengatakan bahwa wordbook bekerja dengan baik anda bisa melakukan penambahan script dibawah ini :

register_sidebar_widget(array(“FaceBook Status”, ‘widgets’), ‘widget_facebook’);
register_widget_control(‘FaceBook Status’, ‘fb_widget_control’, ‘500’, ‘500’);

function nicetime($date)
{

$periods         = array(“second”, “minute”, “hour”, “day”, “week”, “month”, “year”, “decade”);
$lengths         = array(“60″,”60″,”24″,”7″,”4.35″,”12″,”10”);

$now             = time();
$unix_date         = $date;

// is it future date or past date
if($now > $unix_date) {
$difference     = $now – $unix_date;
$tense         = “ago”;

} else {
$difference     = $unix_date – $now;
$tense         = “from now”;
}

for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];
}

$difference = round($difference);

if($difference != 1) {
$periods[$j].= “s”;
}

return “$difference $periods[$j] {$tense}”;
}

function widget_facebook($args) {
extract($args);
$fb_widget_options = unserialize(get_option(‘fb_widget_options’));
$title = stripslashes($fb_widget_options[‘title’]);
$dispname = stripslashes($fb_widget_options[‘dispname’]);
$dformat=$fb_widget_options[‘df’];
echo $before_widget . $before_title . $title . $after_title;
global $wpdb;
// We need to get the user_id from the userdata table for this blog.
$sql=”Select user_id from “.WORDBOOK_USERDATA;
$result = $wpdb->get_results($sql);
$wbuser = wordbook_get_userdata($result[0]->user_id);
$fbclient = wordbook_fbclient($wbuser);
list($fbuid, $users, $error_code, $error_msg) =
wordbook_fbclient_getinfo($fbclient, array(
‘is_app_user’,
‘first_name’,
‘name’,
‘status’,
‘pic’,
));
$profile_url = “http://www.facebook.com/profile.php?id=$fbuid”;
if ($fbuid) {
if (is_array($users)) {
$user = $users[0];
if ($user[‘pic’]) {
echo ‘<div align=”center”>’;
echo ‘<a href=”‘.$profile_url.'” target=”facebook”>’;
echo ‘<img src=”‘.$user[‘pic’].'” width=”125″/></a>’;
echo ‘</div>’;
}
if (!($name = $user[‘first_name’]))  $name = $user[‘name’];
if (strlen($dispname)>0) $name=$dispname;
if ($user[‘status’][‘message’]) {
echo ‘<p><a href=”‘.$profile_url.'”>’.$name.'</a>’;
echo ‘ <i>’.$user[‘status’][‘message’].'</i><br> ‘;
if ($dformat==’fbt’) {
echo ‘(‘.nicetime($user[‘status’][‘time’]).’).’; }
else {echo ‘(‘.date($dformat, $user[‘status’][‘time’]).’).’;}
echo ‘</p>’;
}
}
}
echo $after_widget;

}

function fb_widget_control() {
// Check if the option for this widget exists – if it doesnt, set some default values
// and create the option.
if(!get_option(‘fb_widget_options’))
{
add_option(‘fb_widget_options’, serialize(array(‘title’=>’Facebook Status’, ‘dispname’=>”, ‘df’=>’D M j, g:i a’)));
}
$fb_widget_options = $fb_widget_newoptions = unserialize(get_option(‘fb_widget_options’));

// Check if new widget options have been posted from the form below –
// if they have, we’ll update the option values.
if ($_POST[‘fb_widget_title’]){
$fb_widget_newoptions[‘title’] = $_POST[‘fb_widget_title’];
}
$fb_widget_newoptions[‘dispname’] = $_POST[‘fb_widget_dispname’];
$fb_widget_newoptions[‘df’] = $_POST[‘fb_widget_dformat’];

if($fb_widget_options != $fb_widget_newoptions){
$fb_widget_options = $fb_widget_newoptions;
update_option(‘fb_widget_options’, serialize($fb_widget_options));
}
// Display html for widget form
?>

<p>
<label for=”fb_widget_title”>Widget Title:<br />
<input
id=”fb_widget_title”
name=”fb_widget_title”
type=”text”
value=”<?php echo stripslashes($fb_widget_options[‘title’]); ?>”/>
</label>
</p>
<p>
<label for=”fb_widget_dispname”>Display this name instead of your Facebook name :<br />
<input
id=”fb_widget_dispname”
name=”fb_widget_dispname”
type=”text”
value=”<?php echo stripslashes($fb_widget_options[‘dispname’]); ?>”/>
</label>
</p>
<p>
<label for=”fb_widget_dformat”>Date Format :<br />
<select id=”fb_widget_dformat” name=”fb_widget_dformat” >
<?php
$ds12=date(‘D M j, g:i a’);
$dl12=date(‘l F j, g:i a’);
$dl24=date(‘l F j, h:i’);
$ds24=date(‘D M j, h:i’);
$drfc=date(‘r’);
$arr = array(‘D M j, g:i a’=> “Short 12 (“.$ds12.”) – Default”,  ‘l F j, g:i a’=> “Long 12 (“.$dl12.”) “, ‘D M j, h:i’=>”Short 24 (“.$ds24.”) “, ‘l F j, h:i’=>”Long 24 (“.$dl24.”)”,fbt=>”Facebook Text style”, r => “RFC 822 (“.$drfc.” ) “);
foreach ($arr as $i => $value) {
if ($i==$fb_widget_options[‘df’]){ print ‘<option selected=”yes” value=”‘.$i.'” >’.$arr[$i].'</option>’;}
else {print ‘<option value=”‘.$i.'” >’.$arr[$i].'</option>’;}

}
?>
</select>
</label>
</p>
<?php
}

Script tersebut diletakkan pada bagian bawah file wordbook.php yang berada di folder plugin sebelum tanda “?>” atao tanda akhir script PHP. Selanjutnya anda harus mengaktifkan widget tersebut melalui halaman pengaturan widget di bagian appearance. Selamat Mencoba.

2 thoughts on “Menambahkan sidebar widget untuk status Facebook dengan menggunakan wordbook

    1. wordbook itu plugin WP bos, kombinasi sama aplikasi FB. tapi yang ini dah gak kepake, sekarang pake bikinan steve atty wordbooker. pengembangan dari wordbook

Leave a Reply

Your email address will not be published. Required fields are marked *