save the notice title when the notice is saved

This commit is contained in:
Evan Prodromou 2010-08-13 11:29:18 -07:00
parent 7dd46222a8
commit e2128b2019
2 changed files with 34 additions and 1 deletions

View File

@ -70,7 +70,7 @@ class NoticeTitlePlugin extends Plugin
$schema->ensureTable('notice_title', $schema->ensureTable('notice_title',
array(new ColumnDef('notice_id', 'integer', null, true, 'PRI'), array(new ColumnDef('notice_id', 'integer', null, true, 'PRI'),
new ColumnDef('title', 'varchar', 255, false))); new ColumnDef('title', 'varchar', Notice_title::MAXCHARS, false)));
return true; return true;
} }
@ -114,11 +114,42 @@ class NoticeTitlePlugin extends Plugin
'id' => 'notice_title', 'id' => 'notice_title',
'name' => 'notice_title', 'name' => 'notice_title',
'size' => 40, 'size' => 40,
'maxlength' => Notice_title::MAXCHARS,
'value' => _m('Title'), 'value' => _m('Title'),
'style' => 'color: 333333', 'style' => 'color: 333333',
'onFocus' => 'this.value = ""; this.style = \'color: black\';')); 'onFocus' => 'this.value = ""; this.style = \'color: black\';'));
return true; return true;
} }
function onStartNoticeSaveWeb($action, &$authorId, &$text, &$options)
{
$title = $action->trimmed('notice_title');
if (!empty($title)) {
if (mb_strlen($title) > Notice_title::MAXCHARS) {
throw new Exception(sprintf(_m("Notice title too long (max %d chars)", Notice_title::MAXCHARS)));
}
}
return true;
}
function onEndNoticeSaveWeb($action, $notice)
{
if (!empty($notice)) {
$title = $action->trimmed('notice_title');
if (!empty($title)) {
$nt = new Notice_title();
$nt->notice_id = $notice->id;
$nt->title = $title;
$nt->insert();
}
}
return true;
}
} }

View File

@ -47,6 +47,8 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
class Notice_title extends Memcached_DataObject class Notice_title extends Memcached_DataObject
{ {
const MAXCHARS = 255;
public $__table = 'notice_title'; // table name public $__table = 'notice_title'; // table name
public $notice_id; // int(4) primary_key not_null public $notice_id; // int(4) primary_key not_null
public $title; // varchar(255) public $title; // varchar(255)