Simply flag a profile for review
Instead of trying to have lots of different flags on different objects, cut to the core of this functionality: flag a profile for moderator review.
This commit is contained in:
parent
d9cde0ef80
commit
55c7c943e7
|
@ -1,53 +0,0 @@
|
|||
<?php
|
||||
/*
|
||||
* StatusNet - the distributed open-source microblogging tool
|
||||
* Copyright (C) 2009, StatusNet, 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('STATUSNET')) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
|
||||
|
||||
class Notice_flag extends Memcached_DataObject
|
||||
{
|
||||
###START_AUTOCODE
|
||||
/* the code below is auto generated do not remove the above tag */
|
||||
|
||||
public $__table = 'notice_flag'; // table name
|
||||
public $flag; // varchar(8) primary_key not_null
|
||||
public $display; // varchar(255)
|
||||
public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
|
||||
|
||||
/* Static get */
|
||||
function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Notice_flag',$k,$v); }
|
||||
|
||||
/* the code above is auto generated do not remove the tag below */
|
||||
###END_AUTOCODE
|
||||
|
||||
function table() {
|
||||
return array(
|
||||
'flag' => DB_DATAOBJECT_STR,
|
||||
'display' => DB_DATAOBJECT_STR,
|
||||
'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
|
||||
);
|
||||
}
|
||||
|
||||
function keys() {
|
||||
return array('flag');
|
||||
}
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
<?php
|
||||
/*
|
||||
* StatusNet - the distributed open-source microblogging tool
|
||||
* Copyright (C) 2009, StatusNet, 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('STATUSNET')) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
|
||||
|
||||
class Profile_flag extends Memcached_DataObject
|
||||
{
|
||||
###START_AUTOCODE
|
||||
/* the code below is auto generated do not remove the above tag */
|
||||
|
||||
public $__table = 'profile_flag'; // table name
|
||||
public $flag; // varchar(8) primary_key not_null
|
||||
public $display; // varchar(255)
|
||||
public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
|
||||
|
||||
/* Static get */
|
||||
function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Profile_flag',$k,$v); }
|
||||
|
||||
/* the code above is auto generated do not remove the tag below */
|
||||
###END_AUTOCODE
|
||||
|
||||
const DEFAULTFLAG = 'review'; // default flag
|
||||
|
||||
function table() {
|
||||
return array(
|
||||
'flag' => DB_DATAOBJECT_STR,
|
||||
'display' => DB_DATAOBJECT_STR,
|
||||
'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
|
||||
);
|
||||
}
|
||||
|
||||
function keys() {
|
||||
return array('flag');
|
||||
}
|
||||
}
|
|
@ -47,22 +47,6 @@ class UserFlagPlugin extends Plugin
|
|||
{
|
||||
$schema = Schema::get();
|
||||
|
||||
// For storing user-submitted flags on notices
|
||||
|
||||
$schema->ensureTable('user_flag_notice',
|
||||
array(new ColumnDef('notice_id', 'integer', null, null, 'PRI'),
|
||||
new ColumnDef('user_id', 'integer', null, null, 'PRI'),
|
||||
new ColumnDef('flag', 'varchar', '8'),
|
||||
new ColumnDef('created', 'datetime', null,
|
||||
null, 'MUL')));
|
||||
|
||||
// Allowable values for user_flag_notice
|
||||
|
||||
$schema->ensureTable('notice_flag',
|
||||
array(new ColumnDef('flag', 'varchar', '8', null, 'PRI'),
|
||||
new ColumnDef('display', 'varchar', '255'),
|
||||
new ColumnDef('created', 'datetime', null, null, 'MUL')));
|
||||
|
||||
// For storing user-submitted flags on profiles
|
||||
|
||||
$schema->ensureTable('user_flag_profile',
|
||||
|
@ -70,17 +54,11 @@ class UserFlagPlugin extends Plugin
|
|||
null, 'PRI'),
|
||||
new ColumnDef('user_id', 'integer', null,
|
||||
null, 'PRI'),
|
||||
new ColumnDef('flag', 'varchar', '8'),
|
||||
new ColumnDef('created', 'datetime', null,
|
||||
null, 'MUL'),
|
||||
new ColumnDef('cleared', 'datetime', null,
|
||||
null, 'MUL')));
|
||||
|
||||
// Allowable values for user_flag_notice
|
||||
|
||||
$schema->ensureTable('profile_flag',
|
||||
array(new ColumnDef('flag', 'varchar', '8', null, 'PRI'),
|
||||
new ColumnDef('display', 'varchar', '255'),
|
||||
new ColumnDef('created', 'datetime', null,
|
||||
null, 'MUL')));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -91,9 +69,7 @@ class UserFlagPlugin extends Plugin
|
|||
}
|
||||
|
||||
function onRouterInitialized(&$m) {
|
||||
$m->connect('main/flag/notice', array('action' => 'flagnotice'));
|
||||
$m->connect('main/flag/profile', array('action' => 'flagprofile'));
|
||||
$m->connect('admin/notice/flag', array('action' => 'adminnoticeflag'));
|
||||
$m->connect('admin/profile/flag', array('action' => 'adminprofileflag'));
|
||||
return true;
|
||||
}
|
||||
|
@ -102,19 +78,14 @@ class UserFlagPlugin extends Plugin
|
|||
{
|
||||
switch ($cls)
|
||||
{
|
||||
case 'FlagnoticeAction':
|
||||
case 'FlagprofileAction':
|
||||
case 'AdminnoticeflagAction':
|
||||
case 'AdminprofileflagAction':
|
||||
require_once(INSTALLDIR.'/plugins/UserFlag/' . strtolower(mb_substr($cls, 0, -6)) . '.php');
|
||||
return false;
|
||||
case 'FlagProfileForm':
|
||||
require_once(INSTALLDIR.'/plugins/UserFlag/' . strtolower($cls . '.php'));
|
||||
return false;
|
||||
case 'User_flag_notice':
|
||||
case 'Notice_flag':
|
||||
case 'User_flag_profile':
|
||||
case 'Profile_flag':
|
||||
require_once(INSTALLDIR.'/plugins/UserFlag/'.$cls.'.php');
|
||||
return false;
|
||||
default:
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
<?php
|
||||
/*
|
||||
* StatusNet - the distributed open-source microblogging tool
|
||||
* Copyright (C) 2009, StatusNet, 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('STATUSNET')) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
|
||||
|
||||
class User_flag_notice extends Memcached_DataObject
|
||||
{
|
||||
###START_AUTOCODE
|
||||
/* the code below is auto generated do not remove the above tag */
|
||||
|
||||
public $__table = 'user_flag_notice'; // table name
|
||||
public $notice_id; // int(4) primary_key not_null
|
||||
public $user_id; // int(4) primary_key not_null
|
||||
public $flag; // varchar(8)
|
||||
public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
|
||||
|
||||
/* Static get */
|
||||
function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User_flag_notice',$k,$v); }
|
||||
|
||||
/* the code above is auto generated do not remove the tag below */
|
||||
###END_AUTOCODE
|
||||
|
||||
function table() {
|
||||
return array(
|
||||
'notice_id' => DB_DATAOBJECT_INT,
|
||||
'user_id' => DB_DATAOBJECT_INT,
|
||||
'flag' => DB_DATAOBJECT_STR,
|
||||
'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
|
||||
);
|
||||
}
|
||||
|
||||
function keys() {
|
||||
return array('notice_id', 'user_id');
|
||||
}
|
||||
|
||||
function &pkeyGet($kv)
|
||||
{
|
||||
return Memcached_DataObject::pkeyGet('User_flag_notice', $kv);
|
||||
}
|
||||
}
|
|
@ -31,8 +31,8 @@ class User_flag_profile extends Memcached_DataObject
|
|||
public $__table = 'user_flag_profile'; // table name
|
||||
public $profile_id; // int(4) primary_key not_null
|
||||
public $user_id; // int(4) primary_key not_null
|
||||
public $flag; // varchar(8)
|
||||
public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00
|
||||
public $cleared; // datetime not_null default_0000-00-00%2000%3A00%3A00
|
||||
|
||||
/* Static get */
|
||||
function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User_flag_profile',$k,$v); }
|
||||
|
@ -44,8 +44,8 @@ class User_flag_profile extends Memcached_DataObject
|
|||
return array(
|
||||
'profile_id' => DB_DATAOBJECT_INT,
|
||||
'user_id' => DB_DATAOBJECT_INT,
|
||||
'flag' => DB_DATAOBJECT_STR,
|
||||
'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
|
||||
'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME,
|
||||
'cleared' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ class User_flag_profile extends Memcached_DataObject
|
|||
return Memcached_DataObject::pkeyGet('User_flag_profile', $kv);
|
||||
}
|
||||
|
||||
static function exists($profile_id, $user_id, $flag)
|
||||
static function exists($profile_id, $user_id)
|
||||
{
|
||||
$ufp = User_flag_profile::pkeyGet(array('profile_id' => $profile_id,
|
||||
'user_id' => $user_id));
|
||||
|
|
|
@ -1,88 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Show latest and greatest notice flags
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* @category Action
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*
|
||||
* StatusNet - the distributed open-source microblogging tool
|
||||
* Copyright (C) 2009, StatusNet, 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('STATUSNET')) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the latest and greatest notice flags
|
||||
*
|
||||
* @category Action
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class AdminnoticeflagAction extends Action
|
||||
{
|
||||
/**
|
||||
* Take arguments for running
|
||||
*
|
||||
* @param array $args $_REQUEST args
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle request
|
||||
*
|
||||
* @param array $args $_REQUEST args; handled in prepare()
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
parent::handle($args);
|
||||
|
||||
$this->showPage();
|
||||
}
|
||||
|
||||
function title() {
|
||||
return _('Flagged notices');
|
||||
}
|
||||
|
||||
/**
|
||||
* save the notice flag
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function showContent()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Add a flag to a notice
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* @category Action
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*
|
||||
* StatusNet - the distributed open-source microblogging tool
|
||||
* Copyright (C) 2009, StatusNet, 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('STATUSNET')) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Action to flag a notice.
|
||||
*
|
||||
* @category Action
|
||||
* @package StatusNet
|
||||
* @author Evan Prodromou <evan@status.net>
|
||||
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
|
||||
* @link http://status.net/
|
||||
*/
|
||||
|
||||
class FlagnoticeAction extends Action
|
||||
{
|
||||
var $notice = null;
|
||||
|
||||
/**
|
||||
* Take arguments for running
|
||||
*
|
||||
* @param array $args $_REQUEST args
|
||||
*
|
||||
* @return boolean success flag
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
|
||||
throw new ClientException(_('Action only accepts POST'));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle request
|
||||
*
|
||||
* Shows a page with list of favorite notices
|
||||
*
|
||||
* @param array $args $_REQUEST args; handled in prepare()
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function handle($args)
|
||||
{
|
||||
parent::handle($args);
|
||||
|
||||
$this->flagNotice();
|
||||
$this->returnTo();
|
||||
}
|
||||
|
||||
function title() {
|
||||
return _('Flag notice');
|
||||
}
|
||||
|
||||
/**
|
||||
* save the notice flag
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
|
||||
function flagNotice()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -115,7 +115,7 @@ class FlagProfileForm extends Form
|
|||
*/
|
||||
function formLegend()
|
||||
{
|
||||
$this->out->element('legend', null, _('Flag this profile'));
|
||||
$this->out->element('legend', null, _('Flag profile for review'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -147,6 +147,6 @@ class FlagProfileForm extends Form
|
|||
|
||||
function formActions()
|
||||
{
|
||||
$this->out->submit('submit', _('Flag'), 'submit', null, _('Flag this profile'));
|
||||
$this->out->submit('submit', _('Flag'), 'submit', null, _('Flag profile for review'));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user