forked from GNUsocial/gnu-social
Merge branch '0.7.x' of git@gitorious.org:laconica/dev into 0.7.x
This commit is contained in:
commit
43feee783b
@ -148,14 +148,11 @@ class FacebookhomeAction extends FacebookAction
|
|||||||
|
|
||||||
function showNoticeForm()
|
function showNoticeForm()
|
||||||
{
|
{
|
||||||
|
|
||||||
$post_action = "$this->app_uri/index.php";
|
$post_action = "$this->app_uri/index.php";
|
||||||
|
|
||||||
$notice_form = new FacebookNoticeForm($this, $post_action, null,
|
$notice_form = new FacebookNoticeForm($this, $post_action, null,
|
||||||
$post_action, $this->user);
|
$post_action, $this->user);
|
||||||
$notice_form->show();
|
$notice_form->show();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function title()
|
function title()
|
||||||
@ -169,7 +166,6 @@ class FacebookhomeAction extends FacebookAction
|
|||||||
|
|
||||||
function showContent()
|
function showContent()
|
||||||
{
|
{
|
||||||
|
|
||||||
$notice = $this->user->noticesWithFriends(($this->page-1) *
|
$notice = $this->user->noticesWithFriends(($this->page-1) *
|
||||||
NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
|
||||||
|
|
||||||
@ -179,7 +175,6 @@ class FacebookhomeAction extends FacebookAction
|
|||||||
|
|
||||||
$this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE,
|
$this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE,
|
||||||
$this->page, 'index.php', array('nickname' => $this->user->nickname));
|
$this->page, 'index.php', array('nickname' => $this->user->nickname));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function showNoticeList($notice)
|
function showNoticeList($notice)
|
||||||
|
@ -73,7 +73,7 @@ class FacebookinviteAction extends FacebookAction
|
|||||||
|
|
||||||
$friend_ids = $_POST['ids']; // XXX: Hmm... is this the best way to acces the list?
|
$friend_ids = $_POST['ids']; // XXX: Hmm... is this the best way to acces the list?
|
||||||
|
|
||||||
$this->elementStart("ul");
|
$this->elementStart('ul', array('id' => 'facebook-friends'));
|
||||||
|
|
||||||
foreach ($friend_ids as $friend) {
|
foreach ($friend_ids as $friend) {
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
@ -112,11 +112,11 @@ class FacebookinviteAction extends FacebookAction
|
|||||||
|
|
||||||
$this->element('h2', null, sprintf(_('Friends already using %s:'),
|
$this->element('h2', null, sprintf(_('Friends already using %s:'),
|
||||||
common_config('site', 'name')));
|
common_config('site', 'name')));
|
||||||
$this->elementStart("ul");
|
$this->elementStart('ul', array('id' => 'facebook-friends'));
|
||||||
|
|
||||||
foreach ($exclude_ids as $friend) {
|
foreach ($exclude_ids as $friend) {
|
||||||
$this->elementStart('li');
|
$this->elementStart('li');
|
||||||
$this->element('fb:profile-pic', array('uid' => $friend));
|
$this->element('fb:profile-pic', array('uid' => $friend, 'size' => 'square'));
|
||||||
$this->element('fb:name', array('uid' => $friend,
|
$this->element('fb:name', array('uid' => $friend,
|
||||||
'capitalize' => 'true'));
|
'capitalize' => 'true'));
|
||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
|
@ -129,7 +129,7 @@ class FacebookAction extends Action
|
|||||||
* Start an Facebook ready HTML document
|
* Start an Facebook ready HTML document
|
||||||
*
|
*
|
||||||
* For Facebook we don't want to actually output any headers,
|
* For Facebook we don't want to actually output any headers,
|
||||||
* DTD info, etc.
|
* DTD info, etc. Just Stylesheet and JavaScript links.
|
||||||
*
|
*
|
||||||
* If $type isn't specified, will attempt to do content negotiation.
|
* If $type isn't specified, will attempt to do content negotiation.
|
||||||
*
|
*
|
||||||
@ -140,6 +140,9 @@ class FacebookAction extends Action
|
|||||||
|
|
||||||
function startHTML($type=null)
|
function startHTML($type=null)
|
||||||
{
|
{
|
||||||
|
$this->showStylesheets();
|
||||||
|
$this->showScripts();
|
||||||
|
|
||||||
$this->elementStart('div', array('class' => 'facebook-page'));
|
$this->elementStart('div', array('class' => 'facebook-page'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,8 +184,6 @@ class FacebookAction extends Action
|
|||||||
|
|
||||||
function showHead($error, $success)
|
function showHead($error, $success)
|
||||||
{
|
{
|
||||||
$this->showStylesheets();
|
|
||||||
$this->showScripts();
|
|
||||||
|
|
||||||
if ($error) {
|
if ($error) {
|
||||||
$this->element("h1", null, $error);
|
$this->element("h1", null, $error);
|
||||||
@ -204,7 +205,6 @@ class FacebookAction extends Action
|
|||||||
// Make this into a widget later
|
// Make this into a widget later
|
||||||
function showLocalNav()
|
function showLocalNav()
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->elementStart('ul', array('class' => 'nav'));
|
$this->elementStart('ul', array('class' => 'nav'));
|
||||||
|
|
||||||
$this->elementStart('li', array('class' =>
|
$this->elementStart('li', array('class' =>
|
||||||
@ -229,18 +229,7 @@ class FacebookAction extends Action
|
|||||||
$this->elementEnd('li');
|
$this->elementEnd('li');
|
||||||
|
|
||||||
$this->elementEnd('ul');
|
$this->elementEnd('ul');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Show primary navigation.
|
|
||||||
*
|
|
||||||
* @return nothing
|
|
||||||
*/
|
|
||||||
function showPrimaryNav()
|
|
||||||
{
|
|
||||||
// we don't want to show anything for this
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show header of the page.
|
* Show header of the page.
|
||||||
@ -254,7 +243,6 @@ class FacebookAction extends Action
|
|||||||
$this->elementStart('div', array('id' => 'header'));
|
$this->elementStart('div', array('id' => 'header'));
|
||||||
$this->showLogo();
|
$this->showLogo();
|
||||||
$this->showNoticeForm();
|
$this->showNoticeForm();
|
||||||
$this->showPrimaryNav();
|
|
||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,7 +270,6 @@ class FacebookAction extends Action
|
|||||||
|
|
||||||
$loginmsg_part1 = _('To use the %s Facebook Application you need to login ' .
|
$loginmsg_part1 = _('To use the %s Facebook Application you need to login ' .
|
||||||
'with your username and password. Don\'t have a username yet? ');
|
'with your username and password. Don\'t have a username yet? ');
|
||||||
|
|
||||||
$loginmsg_part2 = _(' a new account.');
|
$loginmsg_part2 = _(' a new account.');
|
||||||
|
|
||||||
$this->elementStart('dd');
|
$this->elementStart('dd');
|
||||||
@ -291,18 +278,18 @@ class FacebookAction extends Action
|
|||||||
$this->element('a',
|
$this->element('a',
|
||||||
array('href' => common_local_url('register')), _('Register'));
|
array('href' => common_local_url('register')), _('Register'));
|
||||||
$this->text($loginmsg_part2);
|
$this->text($loginmsg_part2);
|
||||||
|
$this->elementEnd('p');
|
||||||
$this->elementEnd('dd');
|
$this->elementEnd('dd');
|
||||||
|
|
||||||
$this->elementEnd('dl');
|
$this->elementEnd('dl');
|
||||||
|
|
||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function showLoginForm($msg = null)
|
function showLoginForm($msg = null)
|
||||||
{
|
{
|
||||||
|
|
||||||
$this->elementStart('div', array('class' => 'content'));
|
$this->elementStart('div', array('id' => 'content'));
|
||||||
$this->element('h1', null, _('Login'));
|
$this->element('h1', null, _('Login'));
|
||||||
|
|
||||||
if ($msg) {
|
if ($msg) {
|
||||||
@ -330,6 +317,7 @@ class FacebookAction extends Action
|
|||||||
$this->elementEnd('ul');
|
$this->elementEnd('ul');
|
||||||
|
|
||||||
$this->submit('submit', _('Login'));
|
$this->submit('submit', _('Login'));
|
||||||
|
$this->elementEnd('fieldset');
|
||||||
$this->elementEnd('form');
|
$this->elementEnd('form');
|
||||||
|
|
||||||
$this->elementStart('p');
|
$this->elementStart('p');
|
||||||
@ -338,6 +326,7 @@ class FacebookAction extends Action
|
|||||||
$this->elementEnd('p');
|
$this->elementEnd('p');
|
||||||
|
|
||||||
$this->elementEnd('div');
|
$this->elementEnd('div');
|
||||||
|
$this->elementEnd('div');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,42 +336,70 @@ class FacebookAction extends Action
|
|||||||
|
|
||||||
// Need to include inline CSS for styling the Profile box
|
// 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 = '<style>
|
$style = '<style>
|
||||||
|
.entry-title *,
|
||||||
|
.entry-content * {
|
||||||
|
font-size:14px;
|
||||||
|
font-family:"Lucida Sans Unicode", "Lucida Grande", sans-serif;
|
||||||
|
}
|
||||||
|
.entry-title a,
|
||||||
|
.entry-content a {
|
||||||
|
color:#002E6E;
|
||||||
|
}
|
||||||
|
|
||||||
.entry-title .vcard .photo {
|
.entry-title .vcard .photo {
|
||||||
float:left;
|
float:left;
|
||||||
display:inline;
|
display:inline;
|
||||||
|
margin-right:11px;
|
||||||
|
margin-bottom:11px
|
||||||
}
|
}
|
||||||
.entry-title .vcard .nickname {
|
.entry-title {
|
||||||
margin-left:5px;
|
margin-bottom:11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry-title p.entry-content {
|
.entry-title p.entry-content {
|
||||||
display:inline;
|
display:inline;
|
||||||
margin-left:5px;
|
margin-left:5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.entry-content {
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
div.entry-content dl,
|
div.entry-content dl,
|
||||||
div.entry-content dt,
|
div.entry-content dt,
|
||||||
div.entry-content dd {
|
div.entry-content dd {
|
||||||
display:inline;
|
display:inline;
|
||||||
|
text-transform:lowercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.entry-content dt,
|
div.entry-content dd,
|
||||||
div.entry-content dd {
|
div.entry-content .device dt {
|
||||||
display:inline;
|
margin-left:0;
|
||||||
margin-left:5px;
|
margin-right:5px;
|
||||||
}
|
}
|
||||||
div.entry-content dl.timestamp dt {
|
div.entry-content dl.timestamp dt,
|
||||||
|
div.entry-content dl.response dt {
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
||||||
div.entry-content dd a {
|
div.entry-content dd a {
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#facebook_laconica_app {
|
||||||
|
text-indent:-9999px;
|
||||||
|
height:16px;
|
||||||
|
width:16px;
|
||||||
|
display:block;
|
||||||
|
background:url('.$icon_url.') no-repeat 0 0;
|
||||||
|
float:right;
|
||||||
|
}
|
||||||
</style>';
|
</style>';
|
||||||
|
|
||||||
$this->xw->openMemory();
|
$this->xw->openMemory();
|
||||||
|
|
||||||
$item = new FacebookNoticeListItem($notice, $this);
|
$item = new FacebookProfileBoxNotice($notice, $this);
|
||||||
$item->show();
|
$item->show();
|
||||||
|
|
||||||
$fbml = "<fb:wide>$style " . $this->xw->outputMemory(false) . "</fb:wide>";
|
$fbml = "<fb:wide>$style " . $this->xw->outputMemory(false) . "</fb:wide>";
|
||||||
@ -465,8 +482,6 @@ class FacebookAction extends Action
|
|||||||
$content_shortened = common_shorten_links($content);
|
$content_shortened = common_shorten_links($content);
|
||||||
|
|
||||||
if (mb_strlen($content_shortened) > 140) {
|
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.'));
|
$this->showPage(_('That\'s too long. Max notice size is 140 chars.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -539,6 +554,18 @@ class FacebookNoticeForm extends NoticeForm
|
|||||||
|
|
||||||
class FacebookNoticeList extends NoticeList
|
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
|
* show the list of notices
|
||||||
*
|
*
|
||||||
@ -593,6 +620,20 @@ class FacebookNoticeList extends NoticeList
|
|||||||
|
|
||||||
class FacebookNoticeListItem extends NoticeListItem
|
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.
|
* recipe function for displaying a single notice in the Facebook App.
|
||||||
*
|
*
|
||||||
@ -645,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');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -1,10 +1,86 @@
|
|||||||
@import url("display.css");
|
@import url("display.css");
|
||||||
@import url("../../identica/css/display.css");
|
@import url("../../identica/css/display.css");
|
||||||
|
|
||||||
span.facebook-button { border: 2px solid #777; padding: 5px; display: block; float: left; margin-right: 20px; -moz-border-radius: 4px; border-radius:4px; -webkit-border-radius:4px; font-weight: bold; background-color:#A9BF4F; color:#fff; font-size:1.2em }
|
* {
|
||||||
|
font-size:14px;
|
||||||
|
font-family:"Lucida Sans Unicode", "Lucida Grande", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrap {
|
||||||
|
background-color:#F0F2F5;
|
||||||
|
padding-left:18px;
|
||||||
|
padding-right:18px;
|
||||||
|
width:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,label,
|
||||||
|
h1,h2,h3,h4,h5,h6 {
|
||||||
|
color:#000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
width:95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#site_nav_local_views a {
|
||||||
|
background-color:#D0DFE7;
|
||||||
|
}
|
||||||
|
#site_nav_local_views a:hover {
|
||||||
|
background-color:#FAFBFC;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.facebook-button {
|
||||||
|
border: 2px solid #aaa;
|
||||||
|
padding: 3px;
|
||||||
|
display: block;
|
||||||
|
float: left;
|
||||||
|
margin-right: 20px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius:4px;
|
||||||
|
-webkit-border-radius:4px;
|
||||||
|
font-weight: bold;
|
||||||
|
background-color:#A9BF4F;
|
||||||
|
color:#fff;
|
||||||
|
font-size:1.2em
|
||||||
|
}
|
||||||
|
|
||||||
span.facebook-button a { color:#fff }
|
span.facebook-button a { color:#fff }
|
||||||
|
|
||||||
|
.facebook_guide {
|
||||||
|
margin-bottom:18px;
|
||||||
|
}
|
||||||
|
.facebook_guide p {
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
input {
|
||||||
|
height:auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#facebook-friends {
|
||||||
|
float:left;
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#facebook-friends li {
|
||||||
|
float:left;
|
||||||
|
margin-right:2%;
|
||||||
|
margin-bottom:11px;
|
||||||
|
width:18%;
|
||||||
|
height:115px;
|
||||||
|
}
|
||||||
|
#facebook-friends li a {
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#add_to_profile {
|
||||||
|
position:absolute;
|
||||||
|
right:18px;
|
||||||
|
top:10px;
|
||||||
|
z-index:2;
|
||||||
|
}
|
||||||
|
|
||||||
.notice div.entry-content dl,
|
.notice div.entry-content dl,
|
||||||
.notice div.entry-content dt,
|
.notice div.entry-content dt,
|
||||||
.notice div.entry-content dd {
|
.notice div.entry-content dd {
|
||||||
@ -19,12 +95,6 @@ margin-bottom:18px;
|
|||||||
list-style-type:none;
|
list-style-type:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.facebook_guide p {
|
|
||||||
margin-bottom:18px;
|
|
||||||
font-size:1.3em;
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form_settings label {
|
.form_settings label {
|
||||||
margin-right:18px;
|
margin-right:18px;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user