From 7bc764fdc0b2bfc2f74df1174f9369c98bc9605b Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 5 Feb 2009 07:07:36 +0000 Subject: Facebook profile box CSS and a link back to the app page. --- lib/facebookaction.php | 140 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 127 insertions(+), 13 deletions(-) (limited to 'lib') diff --git a/lib/facebookaction.php b/lib/facebookaction.php index d369cc385..043a078cd 100644 --- a/lib/facebookaction.php +++ b/lib/facebookaction.php @@ -336,42 +336,70 @@ class FacebookAction extends Action // Need to include inline CSS for styling the Profile box + $app_props = $this->facebook->api_client->Admin_getAppProperties(array('icon_url')); + $icon_url = $app_props['icon_url']; + $style = ''; $this->xw->openMemory(); - $item = new FacebookNoticeListItem($notice, $this); + $item = new FacebookProfileBoxNotice($notice, $this); $item->show(); $fbml = "$style " . $this->xw->outputMemory(false) . ""; @@ -454,8 +482,6 @@ class FacebookAction extends Action $content_shortened = common_shorten_links($content); if (mb_strlen($content_shortened) > 140) { - common_debug("Content = '$content_shortened'", __FILE__); - common_debug("mb_strlen(\$content) = " . mb_strlen($content_shortened), __FILE__); $this->showPage(_('That\'s too long. Max notice size is 140 chars.')); return; } @@ -528,6 +554,18 @@ class FacebookNoticeForm extends NoticeForm class FacebookNoticeList extends NoticeList { + + /** + * constructor + * + * @param Notice $notice stream of notices from DB_DataObject + */ + + function __construct($notice, $out=null) + { + parent::__construct($notice, $out); + } + /** * show the list of notices * @@ -582,6 +620,20 @@ class FacebookNoticeList extends NoticeList class FacebookNoticeListItem extends NoticeListItem { + + /** + * constructor + * + * Also initializes the profile attribute. + * + * @param Notice $notice The notice we'll display + */ + + function __construct($notice, $out=null) + { + parent::__construct($notice, $out); + } + /** * recipe function for displaying a single notice in the Facebook App. * @@ -634,3 +686,65 @@ class FacebookNoticeListItem extends NoticeListItem } } + + +class FacebookProfileBoxNotice extends FacebookNoticeListItem +{ + + /** + * constructor + * + * Also initializes the profile attribute. + * + * @param Notice $notice The notice we'll display + */ + + function __construct($notice, $out=null) + { + parent::__construct($notice, $out); + } + + /** + * Recipe function for displaying a single notice in the + * Facebook App's Profile + * + * @return void + */ + + function show() + { + + $this->out->elementStart('div', 'entry-title'); + $this->showAuthor(); + $this->showContent(); + $this->out->elementEnd('div'); + + $this->out->elementStart('div', 'entry-content'); + + $this->showNoticeLink(); + $this->showNoticeSource(); + $this->showReplyTo(); + $this->out->elementEnd('div'); + + $this->showAppLink(); + + } + + function showAppLink() + { + + $this->facebook = getFacebook(); + + $app_props = $this->facebook->api_client->Admin_getAppProperties( + array('canvas_name', 'application_name')); + + $this->app_uri = 'http://apps.facebook.com/' . $app_props['canvas_name']; + $this->app_name = $app_props['application_name']; + + $this->out->elementStart('a', array('id' => 'facebook_laconica_app', + 'href' => $this->app_uri)); + $this->out->text($this->app_name); + $this->out->elementEnd('a'); + } + +} -- cgit v1.2.3-54-g00ecf