public function action_save() { global $context, $txt; require_once SUBSDIR . '/Post.subs.php'; if (empty($_POST['expire_alt'])) { $expire = strtotime($_POST['expire']); } else { // This is the case date-picker doesn't kick in and the format is still an unix timestamp if (is_numeric($_POST['expire_alt'])) { $expire = $_POST['expire_alt']; } else { $expire = strtotime($_POST['expire_alt']); } } $expire = (int) $expire; $id = isset($_REQUEST['idnotice']) ? (int) $_REQUEST['idnotice'] : 0; $body = isset($_REQUEST['body']) ? Util::htmlspecialchars($_REQUEST['body']) : ''; $class = isset($_REQUEST['class']) ? Util::htmlspecialchars($_REQUEST['class']) : 'success'; preparsecode($body); $groups = json_encode(array_map('intval', array_keys($_POST['default_groups_list']))); $positioning = array('element' => $this->validPositioning(isset($_REQUEST['positioning']) ? $_REQUEST['positioning'] : null), 'element_name' => isset($_REQUEST['element_name']) ? Util::htmlspecialchars($_REQUEST['element_name']) : '', 'position' => isset($_REQUEST['position']) ? (int) $_REQUEST['position'] : 0); require_once SUBSDIR . '/DismissibleNotices.class.php'; $notice = new Dismissible_Notices(); $new = $notice->save($id, $expire, $body, $class, $groups, $positioning); loadTemplate('Json'); $context['sub_template'] = 'send_json'; $context['json_data'] = array('id' => $new['id_notice'], 'added' => standardTime($new['added']), 'expire' => Dismissible_Notices_Integrate::formatExpireCol($expire), 'body' => un_htmlspecialchars($body), 'class' => $new['class'], 'groups' => $new['show_to'], 'edit' => '<a data-idnotice="' . $new['id_notice'] . '" class="dismissnotice_editable" href="#">' . $txt['modify'] . '</a>'); }