2008-12-06 03:01:32 +00:00
|
|
|
<?php
|
|
|
|
/*
|
|
|
|
* Laconica - a distributed open-source microblogging tool
|
|
|
|
* Copyright (C) 2008, Controlez-Vous, Inc.
|
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2008-12-23 19:19:07 +00:00
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
2008-12-06 03:01:32 +00:00
|
|
|
* GNU Affero General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
2008-12-23 19:19:07 +00:00
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2008-12-06 03:01:32 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
if (!defined('LACONICA')) { exit(1); }
|
|
|
|
|
|
|
|
require_once(INSTALLDIR.'/lib/facebookaction.php');
|
|
|
|
|
2008-12-23 19:49:23 +00:00
|
|
|
class FacebooksettingsAction extends FacebookAction
|
|
|
|
{
|
2008-12-06 03:01:32 +00:00
|
|
|
|
2008-12-23 19:33:23 +00:00
|
|
|
function handle($args)
|
|
|
|
{
|
2008-12-23 19:19:07 +00:00
|
|
|
parent::handle($args);
|
2008-12-06 03:01:32 +00:00
|
|
|
|
2009-01-05 04:02:12 +00:00
|
|
|
if ($this->arg('save')) {
|
|
|
|
$this->save_settings();
|
|
|
|
} else {
|
|
|
|
$this->show_form();
|
|
|
|
}
|
2008-12-23 19:19:07 +00:00
|
|
|
}
|
2008-12-06 03:01:32 +00:00
|
|
|
|
2009-01-05 04:02:12 +00:00
|
|
|
|
|
|
|
function save_settings() {
|
|
|
|
|
|
|
|
$noticesync = $this->arg('noticesync');
|
|
|
|
$replysync = $this->arg('replysync');
|
2008-12-06 03:01:32 +00:00
|
|
|
|
2009-01-05 01:04:07 +00:00
|
|
|
$facebook = get_facebook();
|
2009-01-05 04:02:12 +00:00
|
|
|
$fbuid = $facebook->require_login();
|
|
|
|
|
|
|
|
$flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook
|
|
|
|
|
|
|
|
$original = clone($flink);
|
|
|
|
$flink->set_flags($noticesync, $replysync, false);
|
|
|
|
$result = $flink->update($original);
|
|
|
|
|
|
|
|
if ($result) {
|
|
|
|
echo '<fb:success message="Sync preferences saved." />';
|
|
|
|
}
|
|
|
|
|
|
|
|
$this->show_form();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function show_form() {
|
2008-12-06 03:01:32 +00:00
|
|
|
|
2009-01-05 04:02:12 +00:00
|
|
|
$facebook = get_facebook();
|
2008-12-23 19:19:07 +00:00
|
|
|
$fbuid = $facebook->require_login();
|
2008-12-06 03:01:32 +00:00
|
|
|
|
2009-01-05 04:02:12 +00:00
|
|
|
$flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook
|
|
|
|
|
|
|
|
$this->show_header('Settings');
|
|
|
|
|
2008-12-23 19:19:07 +00:00
|
|
|
$fbml = '<fb:if-section-not-added section="profile">'
|
2009-01-05 04:02:12 +00:00
|
|
|
.'<h2>Add an Identi.ca box to my profile</h2>'
|
2009-01-06 20:57:38 +00:00
|
|
|
.'<p><fb:add-section-button section="profile"/></p>'
|
2008-12-23 19:19:07 +00:00
|
|
|
.'</fb:if-section-not-added>';
|
2008-12-07 23:59:25 +00:00
|
|
|
|
2009-01-06 20:57:38 +00:00
|
|
|
$fbml .= '<p><fb:prompt-permission perms="status_update"><h2>Allow Identi.ca to update my Facebook status</h2></fb:prompt-permission></p>';
|
|
|
|
|
|
|
|
if ($facebook->api_client->users_hasAppPermission('status_update')) {
|
2009-01-05 01:04:07 +00:00
|
|
|
|
2009-01-05 04:02:12 +00:00
|
|
|
$fbml .= '<form method="post" id="facebook_settings">'
|
|
|
|
.'<h2>Sync preferences</h2>'
|
|
|
|
.'<p>';
|
|
|
|
|
|
|
|
if ($flink->noticesync & FOREIGN_NOTICE_SEND) {
|
|
|
|
$fbml .= '<input name="noticesync" type="checkbox" class="checkbox" id="noticesync" checked="checked"/>';
|
|
|
|
} else {
|
|
|
|
$fbml .= '<input name="noticesync" type="checkbox" class="checkbox" id="noticesync">';
|
|
|
|
}
|
|
|
|
|
|
|
|
$fbml .= '<label class="checkbox_label" for="noticesync">Automatically update my Facebook status with my notices.</label>'
|
|
|
|
.'</p>'
|
|
|
|
.'<p>';
|
|
|
|
|
|
|
|
if ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) {
|
|
|
|
$fbml .= '<input name="replysync" type="checkbox" class="checkbox" id="replysync" checked="checked"/>';
|
|
|
|
} else {
|
|
|
|
$fbml .= '<input name="replysync" type="checkbox" class="checkbox" id="replysync"/>';
|
|
|
|
}
|
|
|
|
|
|
|
|
$fbml .= '<label class="checkbox_label" for="replysync">Send "@" replies to Facebook.</label>'
|
|
|
|
.'</p>'
|
|
|
|
.'<p>'
|
|
|
|
.'<input type="submit" id="save" name="save" class="submit" value="Save"/>'
|
|
|
|
.'</p>'
|
|
|
|
.'</form>';
|
2008-12-06 03:01:32 +00:00
|
|
|
|
2009-01-06 20:57:38 +00:00
|
|
|
}
|
|
|
|
|
2008-12-23 19:19:07 +00:00
|
|
|
echo $fbml;
|
2008-12-06 03:01:32 +00:00
|
|
|
|
2008-12-23 19:19:07 +00:00
|
|
|
$this->show_footer();
|
|
|
|
}
|
2008-12-06 03:01:32 +00:00
|
|
|
|
|
|
|
}
|