. */ if (!defined('LACONICA')) { exit(1); } class NewnoticeAction extends Action { function handle($args) { parent::handle($args); # XXX: Ajax! if (!common_logged_in()) { common_user_error(_t('Not logged in.')); } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { $id = $this->save_new_notice(); if ($id) { common_broadcast_notices($id); common_redirect(common_local_url('shownotice', array('notice' => $id)), 303); } else { common_server_error(_t('Problem saving notice.')); } } else { $this->show_form(); } } function save_new_notice() { $user = common_current_user(); assert($user); # XXX: maybe an error instead... $notice = DB_DataObject::factory('notice'); assert($notice); $notice->profile_id = $user->id; # user id *is* profile id $notice->created = DB_DataObject_Cast::dateTime(); # Default theme uses 'content' for something else $notice->content = trim($this->arg('noticecontent')); $val = $notice->validate(); if ($val === TRUE) { return $notice->insert(); } else { // XXX: display some info return NULL; } } function show_form() { common_show_header(_t('New notice')); common_notice_form(); common_show_footer(); } }