X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fnewnotice.php;h=0045d6c745e01b087966e0000f6907897de1ab0c;hb=91af9de7e4e477da422880fe9b7f3a49617dc77e;hp=a3ba4c9ccf77570a98eb182ff7e9ab2303ada249;hpb=50c7e4c722a39582c185eafe452f0b321dd39e7e;p=quix0rs-gnu-social.git diff --git a/actions/newnotice.php b/actions/newnotice.php index a3ba4c9ccf..0045d6c745 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -36,6 +36,12 @@ class NewnoticeAction extends Action { function save_new_notice() { + #remember the current notice + $current_notice = DB_DataObject::factory('notice'); + $current_notice->limit(1); + $current_notice->orderBy('created DESC'); + $current_notice->find(1); + $user = common_current_user(); assert($user); # XXX: maybe an error instead... $notice = DB_DataObject::factory('notice'); @@ -49,26 +55,28 @@ class NewnoticeAction extends Action { $this->show_form(_t('No content!')); return; } else if (strlen($notice->content) > 140) { - $this->show_form(_t('Notice content too long.')); + $this->show_form(_t('That\'s too long. Max notice size is 140 chars.')); return; } $id = $notice->insert(); - + if (!$id) { common_server_error(_t('Problem saving notice.')); return; } $orig = clone($notice); - $notice->uri = common_mint_tag('notice:' . $id); - + $notice->uri = common_notice_uri($notice); + if (!$notice->update($orig)) { common_server_error(_t('Problem saving notice.')); return; } - + + common_save_replies($notice); common_broadcast_notice($notice); + $returnto = $this->trimmed('returnto'); if ($returnto) { $url = common_local_url($returnto, @@ -80,15 +88,17 @@ class NewnoticeAction extends Action { common_redirect($url, 303); } - function show_top($msg=NULL) { - if ($msg) { - common_element('div', 'error', $msg); - } + function show_top($content=NULL) { + common_notice_form(NULL, $content); } - + function show_form($msg=NULL) { - common_show_header(_t('New notice'), NULL, $msg, array($this, 'show_top')); - common_notice_form(); + $content = $this->trimmed('status_textarea'); + common_show_header(_t('New notice'), NULL, $content, + array($this, 'show_top')); + if ($msg) { + common_element('p', 'error', $msg); + } common_show_footer(); } -} \ No newline at end of file +}