forked from GNUsocial/gnu-social
		
	Merge branch '0.8.x' of git@gitorious.org:+laconica-developers/laconica/dev into 0.8.x
This commit is contained in:
		| @@ -45,6 +45,12 @@ require_once INSTALLDIR.'/actions/attachment.php'; | |||||||
|  |  | ||||||
| class Attachment_thumbnailAction extends AttachmentAction | class Attachment_thumbnailAction extends AttachmentAction | ||||||
| { | { | ||||||
|  |  | ||||||
|  |     function handle($args) | ||||||
|  |     { | ||||||
|  |         $this->showPage(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Show page, a template method. |      * Show page, a template method. | ||||||
|      * |      * | ||||||
| @@ -74,45 +80,5 @@ class Attachment_thumbnailAction extends AttachmentAction | |||||||
|         $this->element('img', array('src' => $file_thumbnail->url, 'alt' => 'Thumbnail')); |         $this->element('img', array('src' => $file_thumbnail->url, 'alt' => 'Thumbnail')); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * Last-modified date for page |  | ||||||
|      * |  | ||||||
|      * When was the content of this page last modified? Based on notice, |  | ||||||
|      * profile, avatar. |  | ||||||
|      * |  | ||||||
|      * @return int last-modified date as unix timestamp |  | ||||||
|      */ |  | ||||||
| /* |  | ||||||
|     function lastModified() |  | ||||||
|     { |  | ||||||
|         return max(strtotime($this->notice->created), |  | ||||||
|                    strtotime($this->profile->modified), |  | ||||||
|                    ($this->avatar) ? strtotime($this->avatar->modified) : 0); |  | ||||||
|     } |  | ||||||
| */ |  | ||||||
|  |  | ||||||
|     /** |  | ||||||
|      * An entity tag for this page |  | ||||||
|      * |  | ||||||
|      * Shows the ETag for the page, based on the notice ID and timestamps |  | ||||||
|      * for the notice, profile, and avatar. It's weak, since we change |  | ||||||
|      * the date text "one hour ago", etc. |  | ||||||
|      * |  | ||||||
|      * @return string etag |  | ||||||
|      */ |  | ||||||
| /* |  | ||||||
|     function etag() |  | ||||||
|     { |  | ||||||
|         $avtime = ($this->avatar) ? |  | ||||||
|           strtotime($this->avatar->modified) : 0; |  | ||||||
|  |  | ||||||
|         return 'W/"' . implode(':', array($this->arg('action'), |  | ||||||
|                                           common_language(), |  | ||||||
|                                           $this->notice->id, |  | ||||||
|                                           strtotime($this->notice->created), |  | ||||||
|                                           strtotime($this->profile->modified), |  | ||||||
|                                           $avtime)) . '"'; |  | ||||||
|     } |  | ||||||
| */ |  | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -272,7 +272,7 @@ function NoticeAttachments() { | |||||||
|         color : '#000', |         color : '#000', | ||||||
|         opacity : '0.6', |         opacity : '0.6', | ||||||
|         zIndex : 99, |         zIndex : 99, | ||||||
|         center : true, |         center : false, | ||||||
|         imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif', |         imgLoading : $('address .url')[0].href+'theme/base/images/illustrations/illu_progress_loading-01.gif', | ||||||
|         bgClickToClose : true, |         bgClickToClose : true, | ||||||
|         success : function() { |         success : function() { | ||||||
| @@ -281,7 +281,7 @@ function NoticeAttachments() { | |||||||
|         }, |         }, | ||||||
|         timeout : 0, |         timeout : 0, | ||||||
|         autoHide : true, |         autoHide : true, | ||||||
|         css : {'max-width':'502px'} |         css : {'max-width':'502px', 'top':'22.5%', 'left':'32.5%'} | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     $('#content .notice a.attachment').click(function() { |     $('#content .notice a.attachment').click(function() { | ||||||
| @@ -298,7 +298,7 @@ function NoticeAttachments() { | |||||||
|  |  | ||||||
|             if (anchor.children('img').length == 0) { |             if (anchor.children('img').length == 0) { | ||||||
|                 t = setTimeout(function() { |                 t = setTimeout(function() { | ||||||
|                     $.get($('address .url')[0].href+'/attachment/' + (anchor.attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) { |                     $.get($('address .url')[0].href+'attachment/' + (anchor.attr('id').substring('attachment'.length + 1)) + '/thumbnail', null, function(data) { | ||||||
|                         anchor.append(data); |                         anchor.append(data); | ||||||
|                     }); |                     }); | ||||||
|                 }, 500); |                 }, 500); | ||||||
|   | |||||||
| @@ -108,7 +108,9 @@ class ProfileAction extends OwnerDesignAction | |||||||
|  |  | ||||||
|         $this->element('h2', null, _('Subscriptions')); |         $this->element('h2', null, _('Subscriptions')); | ||||||
|  |  | ||||||
|         if ($profile) { |         $cnt = 0; | ||||||
|  |  | ||||||
|  |         if (!empty($profile)) { | ||||||
|             $pml = new ProfileMiniList($profile, $this); |             $pml = new ProfileMiniList($profile, $this); | ||||||
|             $cnt = $pml->show(); |             $cnt = $pml->show(); | ||||||
|             if ($cnt == 0) { |             if ($cnt == 0) { | ||||||
| @@ -137,7 +139,9 @@ class ProfileAction extends OwnerDesignAction | |||||||
|  |  | ||||||
|         $this->element('h2', null, _('Subscribers')); |         $this->element('h2', null, _('Subscribers')); | ||||||
|  |  | ||||||
|         if ($profile) { |         $cnt = 0; | ||||||
|  |  | ||||||
|  |         if (!empty($profile)) { | ||||||
|             $pml = new ProfileMiniList($profile, $this); |             $pml = new ProfileMiniList($profile, $this); | ||||||
|             $cnt = $pml->show(); |             $cnt = $pml->show(); | ||||||
|             if ($cnt == 0) { |             if ($cnt == 0) { | ||||||
|   | |||||||
| @@ -47,6 +47,7 @@ define('PROFILES_PER_MINILIST', 27); | |||||||
|  |  | ||||||
| class ProfileMiniList extends ProfileList | class ProfileMiniList extends ProfileList | ||||||
| { | { | ||||||
|  |  | ||||||
|     function startList() |     function startList() | ||||||
|     { |     { | ||||||
|         $this->out->elementStart('ul', 'entities users xoxo'); |         $this->out->elementStart('ul', 'entities users xoxo'); | ||||||
| @@ -56,6 +57,23 @@ class ProfileMiniList extends ProfileList | |||||||
|     { |     { | ||||||
|         return new ProfileMiniListItem($profile, $this->action); |         return new ProfileMiniListItem($profile, $this->action); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     function showProfiles() | ||||||
|  |     { | ||||||
|  |         $cnt = 0; | ||||||
|  |  | ||||||
|  |         while ($this->profile->fetch()) { | ||||||
|  |             $cnt++; | ||||||
|  |             if ($cnt > PROFILES_PER_MINILIST) { | ||||||
|  |                 break; | ||||||
|  |             } | ||||||
|  |             $pli = $this->newListItem($this->profile); | ||||||
|  |             $pli->show(); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         return $cnt; | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
| class ProfileMiniListItem extends ProfileListItem | class ProfileMiniListItem extends ProfileListItem | ||||||
|   | |||||||
| @@ -66,7 +66,7 @@ class FBConnectauthAction extends Action | |||||||
|             // User is already logged in.  Does she already have a linked Facebook acct? |             // User is already logged in.  Does she already have a linked Facebook acct? | ||||||
|             $flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_CONNECT_SERVICE); |             $flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_CONNECT_SERVICE); | ||||||
|  |  | ||||||
|             if ($flink) { |             if (!empty($flink)) { | ||||||
|  |  | ||||||
|                 // User already has a linked Facebook account and shouldn't be here |                 // User already has a linked Facebook account and shouldn't be here | ||||||
|                 common_debug('There is already a local user (' . $flink->user_id . |                 common_debug('There is already a local user (' . $flink->user_id . | ||||||
| @@ -337,7 +337,7 @@ class FBConnectauthAction extends Action | |||||||
|         if ($flink) { |         if ($flink) { | ||||||
|             $user = $flink->getUser(); |             $user = $flink->getUser(); | ||||||
|  |  | ||||||
|             if ($user) { |             if (!empty($user)) { | ||||||
|  |  | ||||||
|                 common_debug("Logged in Facebook user $flink->foreign_id as user $user->id ($user->nickname)"); |                 common_debug("Logged in Facebook user $flink->foreign_id as user $user->id ($user->nickname)"); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,7 +12,7 @@ position:relative; | |||||||
| margin-left:18px; | margin-left:18px; | ||||||
| } | } | ||||||
|  |  | ||||||
| #nav_fb .fb_profile_pic_rendered img { | #nav_fb #fbc_profile-pic { | ||||||
| position:absolute; | position:absolute; | ||||||
| top:-3px; | top:-3px; | ||||||
| left:-18px; | left:-18px; | ||||||
| @@ -21,7 +21,7 @@ border:1px solid #3B5998; | |||||||
| padding:1px; | padding:1px; | ||||||
| } | } | ||||||
|  |  | ||||||
| #nav_fb img { | #nav_fb #fb_favicon { | ||||||
| position:absolute; | position:absolute; | ||||||
| top:-13px; | top:-13px; | ||||||
| left:-25px; | left:-25px; | ||||||
|   | |||||||
| @@ -70,7 +70,7 @@ class FBConnectPlugin extends Plugin | |||||||
|     function onStartShowHTML($action) |     function onStartShowHTML($action) | ||||||
|     { |     { | ||||||
|  |  | ||||||
|         if ($this->requiresFB($action)) { |         if ($this->reqFbScripts($action)) { | ||||||
|  |  | ||||||
|             // XXX: Horrible hack to make Safari, FF2, and Chrome work with |             // XXX: Horrible hack to make Safari, FF2, and Chrome work with | ||||||
|             // Facebook Connect. These browser cannot use Facebook's |             // Facebook Connect. These browser cannot use Facebook's | ||||||
| @@ -106,7 +106,7 @@ class FBConnectPlugin extends Plugin | |||||||
|  |  | ||||||
|     function onStartShowHeader($action) |     function onStartShowHeader($action) | ||||||
|     { |     { | ||||||
|         if ($this->requiresFB($action)) { |         if ($this->reqFbScripts($action)) { | ||||||
|  |  | ||||||
|             $apikey = common_config('facebook', 'apikey'); |             $apikey = common_config('facebook', 'apikey'); | ||||||
|             $plugin_path = common_path('plugins/FBConnect'); |             $plugin_path = common_path('plugins/FBConnect'); | ||||||
| @@ -145,7 +145,7 @@ class FBConnectPlugin extends Plugin | |||||||
|  |  | ||||||
|     function onEndShowFooter($action) |     function onEndShowFooter($action) | ||||||
|     { |     { | ||||||
|         if ($this->requiresFB($action)) { |         if ($this->reqFbScripts($action)) { | ||||||
|  |  | ||||||
|             $action->element('script', |             $action->element('script', | ||||||
|                 array('type' => 'text/javascript', |                 array('type' => 'text/javascript', | ||||||
| @@ -157,7 +157,7 @@ class FBConnectPlugin extends Plugin | |||||||
|     function onEndShowLaconicaStyles($action) |     function onEndShowLaconicaStyles($action) | ||||||
|     { |     { | ||||||
|  |  | ||||||
|         if ($this->requiresFB($action)) { |         if ($this->reqFbScripts($action)) { | ||||||
|  |  | ||||||
|             $action->element('link', array('rel' => 'stylesheet', |             $action->element('link', array('rel' => 'stylesheet', | ||||||
|                 'type' => 'text/css', |                 'type' => 'text/css', | ||||||
| @@ -175,7 +175,7 @@ class FBConnectPlugin extends Plugin | |||||||
|      * @return boolean true |      * @return boolean true | ||||||
|      */ |      */ | ||||||
|  |  | ||||||
|     function requiresFB($action) { |     function reqFbScripts($action) { | ||||||
|  |  | ||||||
|         // If you're logged in w/FB Connect, you always need the FB stuff |         // If you're logged in w/FB Connect, you always need the FB stuff | ||||||
|  |  | ||||||
| @@ -220,7 +220,7 @@ class FBConnectPlugin extends Plugin | |||||||
|                 try { |                 try { | ||||||
|  |  | ||||||
|                     $facebook = getFacebook(); |                     $facebook = getFacebook(); | ||||||
|                     $fbuid = getFacebook()->get_loggedin_user(); |                     $fbuid    = getFacebook()->get_loggedin_user(); | ||||||
|  |  | ||||||
|                 } catch (Exception $e) { |                 } catch (Exception $e) { | ||||||
|                     common_log(LOG_WARNING, |                     common_log(LOG_WARNING, | ||||||
| @@ -248,15 +248,24 @@ class FBConnectPlugin extends Plugin | |||||||
|  |  | ||||||
|             if (!empty($fbuid)) { |             if (!empty($fbuid)) { | ||||||
|  |  | ||||||
|                 $action->elementStart('li', array('id' => 'nav_fb')); |                 /* Default FB silhouette pic for FB users who haven't | ||||||
|                 $action->elementStart('fb:profile-pic', array('uid' => $fbuid, |                    uploaded a profile pic yet. */ | ||||||
|                     'linked' => 'false', |  | ||||||
|                     'width' => 16, |  | ||||||
|                     'height' => 16)); |  | ||||||
|                 $action->elementEnd('fb:profile-pic'); |  | ||||||
|  |  | ||||||
|                 $iconurl =  common_path('/plugins/FBConnect/fbfavicon.ico'); |                 $silhouetteUrl = | ||||||
|                 $action->element('img', array('src' => $iconurl)); |                     'http://static.ak.fbcdn.net/pics/q_silhouette.gif'; | ||||||
|  |  | ||||||
|  |                 $url = $this->getProfilePicURL($fbuid); | ||||||
|  |  | ||||||
|  |                 $action->elementStart('li', array('id' => 'nav_fb')); | ||||||
|  |  | ||||||
|  |                 $action->element('img', array('id' => 'fbc_profile-pic', | ||||||
|  |                     'src' => (!empty($url)) ? $url : $silhouetteUrl, | ||||||
|  |                     'alt' => 'Facebook Connect User', | ||||||
|  |                     'width' => '16'), ''); | ||||||
|  |  | ||||||
|  |                 $iconurl =  common_path('plugins/FBConnect/fbfavicon.ico'); | ||||||
|  |                 $action->element('img', array('id' => 'fb_favicon', | ||||||
|  |                     'src' => $iconurl)); | ||||||
|  |  | ||||||
|                 $action->elementEnd('li'); |                 $action->elementEnd('li'); | ||||||
|  |  | ||||||
| @@ -320,7 +329,7 @@ class FBConnectPlugin extends Plugin | |||||||
|  |  | ||||||
|     function onStartShowLocalNavBlock($action) |     function onStartShowLocalNavBlock($action) | ||||||
|     { |     { | ||||||
|         $action_name = get_class($action); |         $action_name   = get_class($action); | ||||||
|  |  | ||||||
|         $login_actions = array('LoginAction', 'RegisterAction', |         $login_actions = array('LoginAction', 'RegisterAction', | ||||||
|             'OpenidloginAction', 'FBConnectLoginAction'); |             'OpenidloginAction', 'FBConnectLoginAction'); | ||||||
| @@ -361,4 +370,28 @@ class FBConnectPlugin extends Plugin | |||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     function getProfilePicURL($fbuid) | ||||||
|  |     { | ||||||
|  |  | ||||||
|  |         $facebook = getFacebook(); | ||||||
|  |         $url      = null; | ||||||
|  |  | ||||||
|  |         try { | ||||||
|  |  | ||||||
|  |             $fqry = 'SELECT pic_square FROM user WHERE uid = %s'; | ||||||
|  |  | ||||||
|  |             $result = $facebook->api_client->fql_query(sprintf($fqry, $fbuid)); | ||||||
|  |  | ||||||
|  |             if (!empty($result)) { | ||||||
|  |                 $url = $result[0]['pic_square']; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |         } catch (Exception $e) { | ||||||
|  |             common_log(LOG_WARNING, "Facebook client failure requesting profile pic!"); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |        return $url; | ||||||
|  |  | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1030,6 +1030,10 @@ border-radius:7px; | |||||||
| #jOverlayContent #content img { | #jOverlayContent #content img { | ||||||
| max-width:480px; | max-width:480px; | ||||||
| } | } | ||||||
|  | #jOverlayLoading { | ||||||
|  | top:22.5%; | ||||||
|  | left:40%; | ||||||
|  | } | ||||||
| #attachment_view #oembed_info { | #attachment_view #oembed_info { | ||||||
| margin-top:11px; | margin-top:11px; | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user