<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

$id = mso_segment(3); // номер страницы по сегменту url

// проверим, чтобы это было число
if (!is_numeric($id)) 
	$id = false; // не число
else 
	$id = (int) $id;

if (!$id) // id - ошибочный
{
	echo '<div class="error">' . t('Ошибочный запрос') . '</div>'; 
	return;
}

$permalink_page = mso_get_permalink_page($id);

// id="permalink_page1" и id="permalink_page2" нужны, чтобы при обновлении сразу поменять
// на новую ссылку через post-edit.php
?>



<form method="post" action="<?= getinfo('site_admin_url') ?>page"><?= mso_form_session('f_session_id') ?><input type="hidden" name="f_page_delete" value="<?= $id ?>"><input type="hidden" name="f_submit" value=""><h1><a id="permalink_page1" href="<?= $permalink_page ?>" title="<?= t('Посмотреть на сайте') ?>"><?= t('Редактирование записи') ?></a> <a id="permalink_page2" class="i-external-link t110 icon0" href="<?= $permalink_page ?>" target="_blank" title="<?= t('Открыть в новом окне') ?>"></a><span class="b-inline b-right t80"><button type="submit" name="f_delete" class="button i-remove icon0 pad10 bg-gray hover-bg-red600 " title="<?= t('Удалить запись') ?>" onclick="if(confirm('Удалить страницу?')) {return true;} else {return false;}"></button></span></h1></form>

<?php
	
// файл функций
require_once(getinfo('admin_plugins_dir') . 'admin_page/post-edit-functions.php'); 

$CI = & get_instance();

// проверим текущего юзера и его разрешение на правку чужих страниц
// если admin_page_edit=1, то есть разрешено редактировать в принципе (уже проверили раньше!),
// то смотрим admin_page_edit_other. Если стоит 1, то все разрешено
// если false, значит смотрим автора страницы и если он не равен юзеру, рубим доступ

if ( !mso_check_allow('admin_page_edit_other') )
{
	$current_users_id = getinfo('session');
	$current_users_id = $current_users_id['users_id'];
	
	// получаем данные страницы
	$CI->db->select('page_id');
	$CI->db->from('page');
	$CI->db->where(array('page_id'=>$id, 'page_id_autor'=>$current_users_id));
	$query = $CI->db->get();
	if ($query->num_rows() == 0) // не автор
	{
		echo '<div class="error">' . t('Вам не разрешено редактировать чужие записи!') . '</div>';
		return;
	}
}

// этот код почти полностью повторяет код из new.php
// разница только в том, что указан id
if ( $post = mso_check_post(array('f_session_id', 'f_submit', 'f_content')) )
{
	mso_checkreferer();
	
	// прием данных вынесен в post-edit.php
	// он используется и для фонового сохранения
	require(getinfo('admin_plugins_dir') . 'admin_page/post-edit.php'); 
	
}
else 
{
	// echo ' | <a href="' . mso_get_permalink_page($id) . '">' . t('Посмотреть запись') . '</a> (<a target="_blank" href="' . mso_get_permalink_page($id) . '">' . t('в новом окне') . '</a>)</p>';
	
	// очистим кэш БД
	$CI->db->cache_delete_all();
	
	// получаем данные записи
	$CI->db->select('*');
	$CI->db->where(array('page_id' => $id));
	$query = $CI->db->get('page');
	if ($query->num_rows() > 0)
	{
		foreach ($query->result_array() as $row)
		{
			// pr($row);
			$f_content = $row['page_content'];
			$f_header = $row['page_title'];
			$f_slug = $row['page_slug'];
			$f_status = $row['page_status'];
			$f_page_type = $row['page_type_id'];
			$f_password = $row['page_password'];
			$f_comment_allow = $row['page_comment_allow'];
			$f_ping_allow = $row['page_ping_allow'];
			$f_feed_allow = $row['page_feed_allow'];
			$f_page_parent = $row['page_id_parent'];
			$f_user_id = $row['page_id_autor'];
			$page_date_publish = $row['page_date_publish'];
			$page_menu_order = $row['page_menu_order'];
		}
		
		$f_cat = mso_get_cat_page($id); // рубрики в виде массива
		$f_tags = implode(', ', mso_get_tags_page($id)); // метки страницы в виде массива			
	}
	else
	{
		echo '<div class="error">' . t('Ошибочная страница (нет такой страницы)') . '</div>';
		return;
	}

}

// получим все опции редактора
$editor_options = mso_get_option('editor_options', 'admin', array());

$f_header = htmlspecialchars($f_header);
$f_tags = htmlspecialchars($f_tags);
$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) ? 'checked="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); // получаем список юзеров


$f_status_draft = $f_status_private = $f_status_publish = '';

if ($f_status == 'draft') 
	$f_status_draft = 'checked';
elseif ($f_status == 'private') 
	$f_status_private = 'checked';
else 
	$f_status_publish = 'checked'; // ($f_status == 'publish') 

$name_submit = 'f_submit[' . $id . ']';


// дата публикации
$f_date_change = ''; // сменить дату не нужно - будет время автоматом поставлено текущее

$date_cur = strtotime($page_date_publish);

$date_time = t('Сохранено:') . ' ' . $page_date_publish;

$date_time .= '<br>' . t('На сайте как:') . ' ' . mso_date_convert('Y-m-d H:i:s', $page_date_publish);
$date_time .= '<br>' . t('Текущее время:') . ' ' . date('Y-m-d H:i:s');

$td = post_date_time($page_date_publish);

// pr($td);
$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');

$f_return = '';

// быстрое сохранение только в режиме редактирования
$f_bsave = ' <button id="bsave" type="button" class="button i-save">' . t('Сохранить в фоне') . '</button>';

// быстрая загрузка
$f_bfiles_upload = ' <button type="text" id="all-files-upload" class="all-files-upload button i-upload">' . t('Быстрая загрузка') . '</button>';

// форма вынесена в отдельный файл, поскольку она одна и таже для new и edit
// из неё получается $do и $posle
require($MSO->config['admin_plugins_dir'] . 'admin_page/form.php');

$f_content = htmlspecialchars($f_content);

$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