<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class AllAction extends ShowstreamAction {
// XXX: push this up to a common function.
-
+
function show_notices($profile) {
$notice = DB_DataObject::factory('notice');
-
+
# XXX: chokety and bad
$notice->whereAdd('EXISTS (SELECT subscribed from subscription where subscriber = '.$profile->id.' and subscribed = notice.profile_id)', 'OR');
$notice->whereAdd('profile_id = ' . $profile->id, 'OR');
-
+
$notice->orderBy('created DESC');
-
+
$page = $this->arg('page') || 1;
-
+
$notice->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE);
-
+
$notice->find();
-
+
common_element_start('div', 'notices');
common_element('h2', 'notices', _t('Notices'));
while ($notice->fetch()) {
$this->show_notice($notice);
}
-
+
# XXX: show a link for the next page
common_element_end('div');
}
$avatar->created = DB_DataObject_Cast::dateTime(); # current time
$val = $avatar->validate();
-
+
if ($val !== TRUE) {
$err = '';
foreach ($val as $k=>$v) {
return;
}
}
-
+
foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
$scaled[] = $this->scale_avatar($user, $avatar, $size);
}
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('LACONICA')) { exit(1); }
class LoginAction extends Action {
-
+
function handle($args) {
parent::handle($args);
if (common_logged_in()) {
common_server_error(_t('Error setting user.'));
return;
}
- # success!
+ # success!
common_redirect(common_local_url('all',
array('nickname' =>
$nickname)));
$this->show_form(_t('Incorrect username or password.'));
}
}
-
+
function show_form($error=NULL) {
-
+
common_show_header(_t('Login'));
if (!is_null($error)) {
common_element('div', array('class' => 'error'), $msg);
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('LACONICA')) { exit(1); }
class NewnoticeAction extends Action {
-
+
function handle($args) {
parent::handle($args);
# XXX: Ajax!
$this->show_form();
}
}
-
+
function save_new_notice() {
$user = common_current_user();
assert($user); # XXX: maybe an error instead...
$notice->profile_id = $user->id; # user id *is* profile id
$notice->created = DB_DataObject_Cast::dateTime();
$notice->content = trim($this->arg('content'));
-
+
$val = $notice->validate();
if ($val === TRUE) {
return $notice->insert();
return NULL;
}
}
-
+
function show_form() {
common_show_header(_t('New notice'));
common_element_start('form', array('id' => 'newnotice', 'method' => 'POST',
$this->show_form(_t('Error saving user; invalid.'));
return;
}
-
+
if (!$user->update($original)) {
common_server_error(_t('Can\'t save new password.'));
return;
$this->show_form(_t('Error saving user; invalid.'));
return;
}
-
+
if (!$user->update($original)) {
common_server_error(_t('Couldnt update user.'));
return;
$this->show_form(_t('Error saving profile; invalid.'));
return;
}
-
+
if (!$profile->update($orig_profile)) {
common_server_error(_t('Couldnt save profile.'));
return;
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('LACONICA')) { exit(1); }
class RegisterAction extends Action {
-
+
function handle($args) {
parent::handle($args);
-
+
if (common_logged_in()) {
common_user_error(_t('Already logged in.'));
} else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$email = $this->arg('email');
# Input scrubbing
-
+
$nickname = common_canonical_nickname($nickname);
$email = common_canonical_email($email);
-
+
if ($this->nickname_exists($nickname)) {
$this->show_form(_t('Username already exists.'));
} else if ($this->email_exists($email)) {
}
# checks if *CANONICAL* nickname exists
-
+
function nickname_exists($nickname) {
$user = User::staticGet('nickname', $nickname);
return ($user !== false);
}
# checks if *CANONICAL* email exists
-
+
function email_exists($email) {
$email = common_canonical_email($email);
$user = User::staticGet('email', $email);
$profile->nickname = $nickname;
$profile->profileurl = common_profile_url($nickname);
$profile->created = DB_DataObject_Cast::dateTime(); # current time
-
+
$val = $profile->validate();
if ($val !== TRUE) {
# XXX: some feedback here, please!
$user->password = common_munge_password($password, $id);
$user->email = $email;
$user->created = DB_DataObject_Cast::dateTime(); # current time
-
+
$val = $user->validate();
if ($val !== TRUE) {
# XXX: some feedback here, please!
$profile->delete();
return FALSE;
}
-
+
$result = $user->insert();
if (!$result) {
# Try to clean up...
}
return $result;
}
-
+
function show_form($error=NULL) {
-
+
common_show_header(_t('Register'));
common_element_start('form', array('method' => 'POST',
'id' => 'login',
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!$notice->getProfile()) {
$this->no_such_notice();
}
-
+
# Looks like we're good; show the header
-
+
common_show_header($profile->nickname." status on ".$notice->created);
-
+
$this->show_notice($notice);
-
+
common_show_footer();
}
-
+
function no_such_notice() {
common_user_error('No such notice.');
}
-
+
function show_notice($notice) {
$profile = $notice->getProfile();
# XXX: RDFa
'class' => 'avatar profile',
'width' => AVATAR_PROFILE_SIZE,
'height' => AVATAR_PROFILE_SIZE,
- 'alt' =>
- ($profile->fullname) ? $profile->fullname :
+ 'alt' =>
+ ($profile->fullname) ? $profile->fullname :
$profile->nickname));
}
common_element('a', array('href' => $profile->profileurl,
'class' => 'nickname',
- 'title' =>
+ 'title' =>
($profile->fullname) ? $profile->fullname :
$profile->nickname),
$profile->nickname);
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class SubscribeAction extends Action {
function handle($args) {
parent::handle($args);
-
+
if (!common_logged_in()) {
common_user_error(_t('Not logged in.'));
return;
}
-
+
$other_nickname = $this->arg('subscribeto');
$other = User::staticGet('nickname', $other_nickname);
-
+
if (!$other) {
common_user_error(_t('No such user.'));
return;
}
-
+
$user = common_current_user();
if ($user->isSubscribed($other)) {
common_user_error(_t('Already subscribed!.'));
return;
}
-
+
$sub = new Subscription();
$sub->subscriber = $user->id;
$sub->subscribed = $other->id;
-
+
$sub->created = DB_DataObject_Cast::dateTime(); # current time
$val = $sub->validate();
-
+
if ($val !== TRUE) {
# XXX: give some error notice
common_server_error(_t('Subscription did not validate.'));
return;
}
-
+
if (!$sub->insert()) {
common_server_error(_t('Couldn\'t create subscription.'));
return;
}
-
+
common_redirect(common_local_url('all', array('nickname' =>
$user->nickname)));
}
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class SubscribedAction extends Action {
# Who is subscribed to a given user?
-
+
function handle($args) {
parent::handle($args);
$nickname = $this->arg('nickname');
if (!$user) {
$this->no_such_user();
}
-
+
$page = $this->arg('page') || 1;
common_show_header($profile->nickname . ": " . _t('Subscribers'));
$this->show_subscribed($profile, $page);
$subs = DB_DataObject::factory('subscription');
$subs->subscribed = $profile->id;
-
+
# We ask for an extra one to know if we need to do another page
-
+
$subs->limit((($page-1)*SUBSCRIPTIONS_PER_PAGE)+1, SUBSCRIPTIONS_PER_PAGE + 1);
$subs_count = $subs->find();
-
+
common_element_start('div', 'subscriptions');
-
+
$idx = 0;
-
+
while ($subs->fetch()) {
$idx++;
if ($idx % SUBSCRIPTIONS_PER_ROW == 1) {
common_element_end('a');
# XXX: subscribe form here
-
+
if ($idx % SUBSCRIPTIONS_PER_ROW == 0) {
common_element_end('div');
}
-
+
if ($idx == SUBSCRIPTIONS_PER_PAGE) {
break;
}
}
if ($page > 1) {
- common_element('a', array('href' =>
+ common_element('a', array('href' =>
common_local_url('subscriptions',
array('nickname' => $profile->nickname,
'page' => $page - 1)),
'class' => 'prev'),
_t('Previous'));
}
-
+
if ($subs_count > SUBSCRIPTIONS_PER_PAGE) {
- common_element('a', array('href' =>
+ common_element('a', array('href' =>
common_local_url('subscriptions',
array('nickname' => $profile->nickname,
'page' => $page + 1)),
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('LACONICA')) { exit(1); }
class SubscriptionsAction extends Action {
-
+
function handle($args) {
parent::handle($args);
$nickname = $this->arg('nickname');
$subs = DB_DataObject::factory('subscription');
$subs->subscriber = $profile->id;
-
+
# We ask for an extra one to know if we need to do another page
-
+
$subs->limit((($page-1)*SUBSCRIPTIONS_PER_PAGE)+1, SUBSCRIPTIONS_PER_PAGE + 1);
$subs_count = $subs->find();
-
+
common_element_start('div', 'subscriptions');
-
+
$idx = 0;
-
+
while ($subs->fetch()) {
$idx++;
if ($idx % SUBSCRIPTIONS_PER_ROW == 1) {
common_element_end('a');
# XXX: subscribe form here
-
+
if ($idx % SUBSCRIPTIONS_PER_ROW == 0) {
common_element_end('div');
}
-
+
if ($idx == SUBSCRIPTIONS_PER_PAGE) {
break;
}
}
if ($page > 1) {
- common_element('a', array('href' =>
+ common_element('a', array('href' =>
common_local_url('subscriptions',
array('nickname' => $profile->nickname,
'page' => $page - 1)),
'class' => 'prev'),
_t('Previous'));
}
-
+
if ($subs_count > SUBSCRIPTIONS_PER_PAGE) {
- common_element('a', array('href' =>
+ common_element('a', array('href' =>
common_local_url('subscriptions',
array('nickname' => $profile->nickname,
'page' => $page + 1)),
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
common_user_error(_t('No such user.'));
return;
}
-
+
$user = common_current_user();
if (!$user->isSubscribed($other)) {
common_server_error(_t('Not subscribed!.'));
}
-
+
$sub = new Subscription();
$sub->subscriber = $user->id;
$sub->subscribed = $other->id;
-
+
if (!$sub->delete()) {
common_server_error(_t('Couldn\'t delete subscription.'));
return;
}
-
+
common_redirect(common_local_url('all', array('nickname' =>
$user->nickname)));
}
*/
require_once 'DB/DataObject.php';
-class Avatar extends DB_DataObject
+class Avatar extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $__table = 'avatar'; // table name
public $profile_id; // int(4) primary_key not_null
- public $original; // tinyint(1)
+ public $original; // tinyint(1)
public $width; // int(4) primary_key not_null
public $height; // int(4) primary_key not_null
public $mediatype; // varchar(32) not_null
- public $filename; // varchar(255)
+ public $filename; // varchar(255)
public $url; // varchar(255) unique_key
public $created; // datetime() not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
-
+
function validateMediatype() {
return Validate::string($this->mediatype, array('min_length' => 1, 'max_length' => 32));
}
-
+
function validateFilename() {
return Validate::string($this->filename, array('min_length' => 1, 'max_length' => 255));
}
-
+
function validateUrl() {
return Validate::uri($this->url, array('allowed_schemes' => array('http', 'https')));
}
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
require_once 'DB/DataObject.php';
-class Notice extends DB_DataObject
+class Notice extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $__table = 'notice'; // table name
public $id; // int(4) primary_key not_null
public $profile_id; // int(4) not_null
- public $content; // varchar(140)
- public $url; // varchar(255)
+ public $content; // varchar(140)
+ public $url; // varchar(255)
public $created; // datetime() not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
// XXX: if profile_id changes, this goes invalid. To be fair, that's a very edge case
static $profile;
-
+
function getProfile() {
if (!$this->profile) {
$this->profile = Profile::staticGet($this->profile_id);
}
return $this->profile;
}
-
+
function validateContent() {
return Validate::string($this->content, array('min_length' => 1, 'max_length' => 140));
}
-
+
function validateUrl() {
return is_null($this->url) ||
Validate::uri($this->url, array('allowed_schemes' => array('http', 'https')));
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
require_once 'DB/DataObject.php';
-class Profile extends DB_DataObject
+class Profile extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $__table = 'profile'; // table name
public $id; // int(4) primary_key not_null
public $nickname; // varchar(64) not_null
- public $fullname; // varchar(255)
- public $profileurl; // varchar(255)
- public $homepage; // varchar(255)
- public $bio; // varchar(140)
- public $location; // varchar(255)
+ public $fullname; // varchar(255)
+ public $profileurl; // varchar(255)
+ public $homepage; // varchar(255)
+ public $bio; // varchar(140)
+ public $location; // varchar(255)
public $created; // datetime() not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
-
+
function getAvatar($width, $height=NULL) {
$avatar = DB_DataObject::factory('avatar');
$avatar->profile_id = $this->id;
return NULL;
}
}
-
+
function getOriginalAvatar() {
$avatar = DB_DataObject::factory('avatar');
$avatar->profile_id = $this->id;
return NULL;
}
}
-
+
function validateNickname() {
return Validate::string($this->nickname, array('min_length' => 1, 'max_length' => 64,
'format' => VALIDATE_ALPHA_LOWER . VALIDATE_NUM));
}
-
+
function validateProfileurl() {
return Validate::uri($this->profileurl, array('allowed_schemes' => array('http', 'https')));
}
-
+
function validateHomepage() {
return (is_null($this->homepage) ||
Validate::uri($this->homepage, array('allowed_schemes' => array('http', 'https'))));
}
-
+
function validateBio() {
- return is_null($this->bio) ||
+ return is_null($this->bio) ||
Validate::string($this->bio, array('min_length' => 1, 'max_length' => 140));
}
-
+
function validateLocation() {
return is_null($this->location) ||
Validate::string($this->location, array('min_length' => 1, 'max_length' => 255));
}
-
+
function validateFullname() {
return is_null($this->fullname) ||
Validate::string($this->fullname, array('min_length' => 1, 'max_length' => 255));
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
require_once 'DB/DataObject.php';
-class Remote_profile extends DB_DataObject
+class Remote_profile extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
-
+
function validateUrl() {
return is_null($this->url) ||
Validate::uri($this->url, array('allowed_schemes' => array('http', 'https')));
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
require_once 'DB/DataObject.php';
-class Subscription extends DB_DataObject
+class Subscription extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $__table = 'subscription'; // table name
public $subscriber; // int(4) primary_key not_null
public $subscribed; // int(4) primary_key not_null
- public $token; // varchar(255)
+ public $token; // varchar(255)
public $created; // datetime() not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
require_once 'DB/DataObject.php';
require_once 'Validate.php';
-class User extends DB_DataObject
+class User extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
public $__table = 'user'; // table name
public $id; // int(4) primary_key not_null
public $nickname; // varchar(64) unique_key
- public $password; // varchar(255)
+ public $password; // varchar(255)
public $email; // varchar(255) unique_key
public $created; // datetime() not_null
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
-
+
function getProfile() {
$profile = DB_DataObject::factory('profile');
$profile->id = $this->id;
}
return NULL;
}
-
+
function isSubscribed($other) {
assert(!is_null($other));
$sub = DB_DataObject::factory('subscription');
$sub->subscribed = $other->id;
return $sub->find();
}
-
+
function validateEmail() {
return Validate::email($this->email, true);
}
-
+
function validateNickname() {
return Validate::string($this->nickname, array('min_length' => 1, 'max_length' => 64,
'format' => VALIDATE_ALPHA_LOWER . VALIDATE_NUM));
$config['db']['database'] = 'mysql://laconica:microblog@localhost/laconica';
-
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class Action { // lawsuit
var $args;
-
+
function Action() {
}
-
+
function arg($key) {
if (array_key_exists($key, $this->args)) {
return $this->args[$key];
return NULL;
}
}
-
+
function handle($argarray) {
$this->args = array();
foreach ($argarray as $k => $v) {
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* XXX: break up into separate modules (HTTP, HTML, user, files) */
-
if (!defined('LACONICA')) { exit(1); }
define('AVATAR_PROFILE_SIZE', 96);
$config['db'] = &PEAR::getStaticProperty('DB_DataObject','options');
-$config['db'] =
+$config['db'] =
array('database' => 'YOU HAVE TO SET THIS IN config.php',
'schema_location' => INSTALLDIR . '/classes',
'class_location' => INSTALLDIR . '/classes',
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
+
if (!defined('LACONICA')) { exit(1); }
class SettingsAction extends Action {
function handle_post() {
return false;
}
-
+
function show_form($msg=NULL, $success=false) {
return false;
}
$msg);
}
}
-
+
function settings_menu() {
common_element_start('ul', 'headmenu');
common_menu_item(common_local_url('profilesettings'),
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
+
if (!defined('LACONICA')) { exit(1); }
define('NOTICES_PER_PAGE', 20);
'class' => 'avatar stream',
'width' => AVATAR_STREAM_SIZE,
'height' => AVATAR_STREAM_SIZE,
- 'alt' =>
- ($profile->fullname) ? $profile->fullname :
+ 'alt' =>
+ ($profile->fullname) ? $profile->fullname :
$profile->nickname));
common_element_end('a');
common_element('a', array('href' => $profile->profileurl,
<?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
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
global $config, $xw;
header('Content-Type: application/xhtml+xml');
-
+
$xw = new XMLWriter();
$xw->openURI('php://output');
$xw->setIndent(true);
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd');
# FIXME: correct language for interface
-
+
common_element_start('html', array('xmlns' => 'http://www.w3.org/1999/xhtml',
'xml:lang' => 'en',
'lang' => 'en'));
-
+
common_element_start('head');
- common_element('title', NULL,
+ common_element('title', NULL,
$pagetitle . " - " . $config['site']['name']);
common_element('link', array('rel' => 'stylesheet',
'type' => 'text/css',
common_element_start('body');
common_element_start('div', array('id' => 'wrapper'));
common_element_start('div', array('id' => 'content'));
- common_element_start('div', array('id' => 'header'));
+ common_element_start('div', array('id' => 'header'));
common_element('h1', 'title', $pagetitle);
common_element('h2', 'subtitle', $config['site']['name']);
common_element_end('div');
common_menu_item(common_local_url('doc', array('title' => 'help')),
_t('Help'));
if ($user) {
- common_menu_item(common_local_url('all', array('nickname' =>
+ common_menu_item(common_local_url('all', array('nickname' =>
$user->nickname)),
_t('Home'));
common_menu_item(common_local_url('showstream', array('nickname' =>
if (is_null($user)) {
return false;
} else {
- return (0 == strcmp(common_munge_password($password, $user->id),
+ return (0 == strcmp(common_munge_password($password, $user->id),
$user->password));
}
}
// XXX: set up gettext
-function _t($str) {
+function _t($str) {
return $str;
}