summaryrefslogtreecommitdiff
path: root/plugins/NoticeTitle/NoticeTitlePlugin.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/NoticeTitle/NoticeTitlePlugin.php')
-rw-r--r--plugins/NoticeTitle/NoticeTitlePlugin.php33
1 files changed, 32 insertions, 1 deletions
diff --git a/plugins/NoticeTitle/NoticeTitlePlugin.php b/plugins/NoticeTitle/NoticeTitlePlugin.php
index 524faef3a..86a74a4da 100644
--- a/plugins/NoticeTitle/NoticeTitlePlugin.php
+++ b/plugins/NoticeTitle/NoticeTitlePlugin.php
@@ -70,7 +70,7 @@ class NoticeTitlePlugin extends Plugin
$schema->ensureTable('notice_title',
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;
}
@@ -114,11 +114,42 @@ class NoticeTitlePlugin extends Plugin
'id' => 'notice_title',
'name' => 'notice_title',
'size' => 40,
+ 'maxlength' => Notice_title::MAXCHARS,
'value' => _m('Title'),
'style' => 'color: 333333',
'onFocus' => 'this.value = ""; this.style = \'color: black\';'));
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;
+ }
}