Перейти к содержимому

Урок 8 Создание простого сайта Часть 5

 Разработка скриптов управления сайтом: работа со страницами.

Создание интерфейсов добавления, изменения и удаления страниц сайта.

Создание общего интерфейса административной части работы со страницами.

Страницы


По аналогии файла menu.php построен и файл pages.php за исключением некоторых изменений. Изменили рабочую таблицу и файл

if (isset($_GET['des'])){
	if ($_GET['des'] == 'edit') echo edit_table($_GET['id']);
	if ($_GET['des'] == 'add') echo edit_table();
}else{
	if (isset($_POST['edit'])) {
		$id = $_POST['id'];
		$id_menu = $_POST['id_menu'];
		$name = addslashes($_POST['name']);
		$text_f = addslashes($_POST['text_f']);
		$data_c = mktime(date('H'),date('i'),0,date('m'),date('d'),date('Y'));
		$sql = 'UPDATE '.$dbpf.'_'.$GLOBAL_TABLE.' SET name="'.$name.'",id_menu='.$id_menu.',text_f="'.$text_f.'",data_c='.$data_c.' WHERE id = '.$id.'';

Добавили несколько строк для обработки полей текста, даты и пункта меню.

		$qur = mysql_query($sql);
		if ($qur) echo 'Страница успешно изменена.';
		else echo 'Страница не изменена. Ошибка БД.';
	}
	if (isset($_POST['add'])) {
		$id_menu = $_POST['id_menu'];
		$name = addslashes($_POST['name']);
		$text_f = addslashes($_POST['text_f']);
		$data_c = mktime(date('H'),date('i'),0,date('m'),date('d'),date('Y'));
		$sql = 'INSERT INTO '.$dbpf.'_'.$GLOBAL_TABLE.' VALUE (0,"'.$name.'","'.$text_f.'",'.$data_c.','.$id_menu.')';

Добавили несколько строк для обработки полей текста, даты и пункта меню.

		$qur = mysql_query($sql); 
		if ($qur) echo 'Страница успешно добавлена.';
		else echo 'Страница не добавлена. Ошибка БД.';
	}
	if (isset($_POST['edit_group'])){
		if (isset($_POST['del'])){
			foreach ($_POST['del'] as $key => $val){
				$sql = 'DELETE FROM '.$dbpf.'_'.$GLOBAL_TABLE.' WHERE id='.$key.'';
				$qur = mysql_query($sql); 
			}
		}
	}
	echo show_table();
}

Новая функция для определения и вывода объекта выбора пункта меню. Входной параметр номер пункта меню для отображения какой пункт меню выбран для страницы.

function get_menu_sel($id=0){
GLOBAL $GLOBAL_TABLE,$dbpf; $out = '';
	$sql = 'SELECT * FROM '.$dbpf.'_menu ORDER BY id DESC';
	$qur = mysql_query($sql); $kol = mysql_num_rows($qur); 
	$out .= '';
return $out;
}

Новая функция для отображения пункта меню в общей таблице, если такой не найден тогда выводится сообщение Раздел не определен.

function get_menu($id=0){
GLOBAL $GLOBAL_TABLE,$dbpf; $out = '';
	$sql = 'SELECT * FROM '.$dbpf.'_menu WHERE id ='.$id.'';
	$qur = mysql_query($sql); $kol = mysql_num_rows($qur); 
	if ($qur&&$kol){
		$rez = mysql_fetch_array($qur);
		$out .= stripslashes($rez['name']);
	}else $out .= 'Раздел не определен.';
return $out;
}

function edit_table($id=0){
GLOBAL $GLOBAL_TABLE,$GLOBAL_FILE,$dbpf;	$out = '';
	if ($id){
		$sql = 'SELECT * FROM '.$dbpf.'_'.$GLOBAL_TABLE.' WHERE id = '.$id.'';
		$qur = mysql_query($sql);
		$rez = mysql_fetch_assoc($qur);
		$regim = 'Редактирование страницы';
		$button = '';
	}else{
		$rez['id'] = 0;
		$rez['name'] = '';
		$regim = 'Добавление страницы';
		$button = '';
	}
	
	$out .= '
'; $out .= ''; $out .= ''; $out .= ''; $out .= ''; $out .= ''; $out .= '';

Добавили поля выбора пункта меню (вызывается функция get_menu_sel($rez['id'])) с передачей парметра пункта меню. И поле для добавления текста.

	$out .= '
'; $out .= '

'.$regim.'

Пункт меню :'.get_menu_sel($rez['id']).'
Имя страницы :
Текст страницы :
'.$button.'
'; $out .= '
'; return $out; } function show_table(){ GLOBAL $GLOBAL_TABLE,$dbpf; $out = ''; $sql = 'SELECT * FROM '.$dbpf.'_'.$GLOBAL_TABLE.' ORDER BY id DESC'; $qur = mysql_query($sql); $kol = mysql_num_rows($qur); $out .= '
'; $out .= ''; if ($qur&&$kol){ $out .= ''; $i = 0; while ($rez = mysql_fetch_array($qur)){ if ($i) { $i = 0; $out .= '';}else{$i = 1; $out .= '';} $out .= '

Добавили вывод пункта меню.

				
'; } $out .= ''; }else{ $out .= 'НЕТ ЗАПИСЕЙ!'; } $out .= '
Добавить страницу
Название меню Заголовок страницы Действия
'.get_menu($rez['id']).' '.$rez['name'].' Изменить Удалить
'; return $out; } include ("foot.php"); ?>

Результат работы скрипта в браузере.

Вывод всех записей таблицы

Вывод всех записей таблицы

Вывод всех записей таблицы

Добавление страницы

Добавление страницы

Добавление страницыРедактирование записиРедактирование записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.