<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/*
Новая запись
- проверяем POST, если есть, то это данные для новой записи
- готовим данные в переменных $f_ для формы отображения см. forms.php
- подключаем редактор
*/
$id = 0; // поскольку это новая запись
// дефолтные настройки новой записи
$f_content = $f_header = $f_tags = $f_slug = $f_page_parent = $f_password = '';
$f_status = $f_page_type = $f_comment_allow = $f_ping_allow = $f_feed_allow = '1';
$page_menu_order = '0';
$f_cat = array();
$f_user_id = $MSO->data['session']['users_id'];
// $CI = & get_instance();
// файл функций
require_once(getinfo('admin_plugins_dir') . 'admin_page/post-edit-functions.php');
if ( $post = mso_check_post(array('f_session_id', 'f_submit', 'f_content')) )
{
mso_checkreferer(); // проверка на реферер
// подготовка данных из POST
$data = post_prepare($post);
// функции редактирования
require_once( getinfo('common_dir') . 'functions-edit.php' );
// добавление
$result = mso_new_page($data);
// pr($result);
// результат
if (isset($result['result']) and $result['result'])
{
if (isset($result['result'][0]))
{
$url = '<a href="'
. mso_get_permalink_page($result['result'][0])
. '" target="_blank">' . t('Посмотреть запись') . '</a> | '
. '<a href="' . $MSO->config['site_admin_url'] . 'page_edit/'
. $result['result'][0] . '">' . t('Изменить') . '</a>';
}
else
{
$url = '';
}
echo '<div class="update">' . t('Запись добавлена!') . ' ' . $url . '</div>';
if ($url and isset($post['f_return'])) // редирект на edit?
{
mso_redirect($MSO->config['site_admin_url'] . 'page_edit/' . $result['result'][0], true);
}
// дефолтные настройки новой записи
$f_content = $f_header = $f_tags = $f_slug = $f_page_parent = $f_password = '';
$f_status = $f_page_type = $f_comment_allow = $f_ping_allow = $f_feed_allow = '1';
$page_menu_order = '0';
$f_cat = array();
$f_user_id = $MSO->data['session']['users_id'];
// еще дата опубликования
// и дата удаления
}
else
{
if (isset($result['description']) and $result['description'] == 'Existing page')
echo '<div class="error">' . t('Такая запись уже существует') . '</div>';
else
echo '<div class="error">' . t('Ошибка создания страницы') . '</div>';
}
}
echo '<h1>' . t('Новая запись') . ' <a class="t100" href="' . getinfo('site_admin_url') . 'auto_post">или AutoPost</a></h1>';
// получим все опции редактора
$editor_options = mso_get_option('editor_options', 'admin', array());
$f_all_tags = post_all_tags($editor_options); // все метки
// $fses = mso_form_session('f_session_id'); // сессия
// получаем типы страниц
$post_all_post_types = post_all_post_types($f_page_type);
$all_post_types = $post_all_post_types['all_post_types'];
$page_type_js_obj = $post_all_post_types['page_type_js_obj'];
// получаем все рубрики чекбоксами
// require_once($MSO->config['common_dir'] . 'category.php');
$all_cat = mso_cat_ul('<label><input name="f_cat[]" type="checkbox" %CHECKED% value="%ID%" title="id = %ID%"> %NAME%</label>', true, $f_cat, $f_cat);
// опция по-умолчанию разрешение комментирования отмечать или нет
if (isset($editor_options['comment_allow_checked']))
$comment_allow_checked = ($editor_options['comment_allow_checked'] == 0) ? '' : 'checked="checked"';
else
$comment_allow_checked = 'checked="checked"';
$f_comment_allow = ($f_comment_allow) ? $comment_allow_checked : '';
// опция по-умолчанию разрешение rss отмечать или нет
if (isset($editor_options['feed_allow_checked']))
$feed_allow_checked = ($editor_options['feed_allow_checked'] == 0) ? '' : 'checked="checked"';
else
$feed_allow_checked = 'checked="checked"';
$f_feed_allow = ($f_feed_allow) ? $feed_allow_checked : '';
// не используется
$f_ping_allow = ($f_ping_allow) ? 'checked="checked"' : '';
$all_users = post_all_users($f_user_id); // получаем список юзеров
$name_submit = 'f_submit';
// дата публикации
$f_date_change = ''; // сменить дату не нужно - будет время автоматом поставлено текущее
$date_time = t('Текущее время:') . ' ' . date('Y-m-d H:i:s');
$td = post_date_time();
$date_y = $td['date_y'];
$date_m = $td['date_m'];
$date_d = $td['date_d'];
$time_h = $td['time_h'];
$time_m = $td['time_m'];
$time_s = $td['time_s'];
// получаем все страницы, для того чтобы отобразить их в паренте
$all_pages = post_all_pages($editor_options, $f_page_parent);
// мета большие,вынесена в отдельный файл
// из неё получается $all_meta = '<p>Нет</p>';
require($MSO->config['admin_plugins_dir'] . 'admin_page/all_meta.php');
// закладка файлы вынесена отдельно
// её результат — переменная $all_files
require($MSO->config['admin_plugins_dir'] . 'admin_page/all-files.php');
// начальный статус записи зависит от опции
$page_status_default = mso_get_option('page_status_default', 'templates', 'publish');
$f_status_publish = $f_status_draft = $f_status_private = '';
if ($page_status_default == 'draft') $f_status_draft = 'checked';
elseif ($page_status_default == 'private') $f_status_private = 'checked';
else $f_status_publish = 'checked';
$f_return = '<input name="f_return" type="checkbox" checked="checked" title="' . t('После сохранения вернуться к редактированию') . '">';
// быстрое сохранение только в режиме редактирования
$f_bsave = '';
// быстрая загрузка только в режиме редактирования
$f_bfiles_upload = '';
// форма вынесена в отдельный файл, поскольку она одна и таже для new и edit
// из неё получается $do и $posle
require($MSO->config['admin_plugins_dir'] . 'admin_page/form.php');
$ad_config = array(
'action'=> '',
'content' => $f_content,
'do' => $do,
'do_script' => $do_script,
'posle' => $posle,
);
// отображаем редактор
// есть ли хук на редактор: если да, то получаем эту функцию
// если нет, то отображаем стандартный editor_markitup
if (mso_hook_present('editor_custom'))
mso_hook('editor_custom', $ad_config);
else
editor_markitup($ad_config);
# end of file