Блок View
Сделаем небольшой движок блога….
Начнем пожалуй с блока «Вид» он самый простой .. для примеро не буду описывать шаблонизатор .. лучше напишем движок самый простой… потом его можно доработать. В следющих постах скорей всего так и будет.
Итак как и писал «вид» по буржуйский «View» это блок который выводит страницу для пользователя и так же взаимодействует с ним через формы. Будем делать все через коробочки div-ы. Каждую коробочку опишем в файле style.css. Блок “Вид” сделаем в одном файле, пусть будет файл view.php в нем создадим класс view:
<?php class view { … } ?>
В этом классе буду все функции по выводу и ввода информации информации.
Первая функция выводит “шапку” сайта:
static function displayHeader() {
echo’<!DOCTYPE html PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»>
<html>
<head>
<LINK rel=»stylesheet» href=»style.css» type=»text/css»>
<meta http-equiv=»Content-Type» content=»text/html; charset=”UTF-8″>
<title>Мой блог</title>
</head>
<body>
<div align=»center» id=»center»><div id=»header»>Шапка</div>’;
}
Если есть “шапка” то должен быть и “футер” :
static function displayFooter() {
echo’<div id=»footer»>Футер</div></div>
</body>
</html>’;
}
Добавим для порядка функцию вывода горизонтального меню:
static function displayMenuLine() {
echo’<div id=»menuline»>меню</div>’;
}
Маленькая функция для вывода ошибок:
static function displayError($error){
echo ‘<center>’,$error,’</center><br><a href=»index.php»><h3 align=»center»>На главную</h3></a>’;
die($error);
}
В этой функции есть параметр.. если что-то не так, “контроллер” вставляет в этот параметр описание ошибки и выдает этой функции, она в свою очередь выводит все это.
Смотрим и разбираем функцию показа поста:
static function displayPost($results) {
$length=300;//длина анонса поста
$body=$results['body'];
$fullpost=null;
//если не запрошен отдельный пост то выводим анонс постов
if (!isset($_GET['p'])){
$pos=strripos(substr($results['body'], 0,$length), ‘ ‘);
$body=substr($results['body'], 0, $pos).’…’;
$fullpost=sprintf(‘<a href=»index.php?p=%s»>читать полностью</a>’,»$results[id]«);
}
if (isset($_SESSION['user_id'])){
$admin_menu=’<a href=»index.php?del=%s»>удалить</a>’;
}else $admin_menu=null;
$page_post=’<div class=»post» align=»left»><a href=»index.php?p=%s»><h1>%s</h1></a><br>
<h2>%s</h2>’.$fullpost.’<p align=»right»>создано: %s ‘.$admin_menu.’</p></div>’;
printf(«$page_post»,»$results[id]«,»$results[title]«,»$body»,»$results[date]«,»$results[id]«);
}
Первые несколько строк кода нужно для того чтоб при выводе всех постов на главной странице выводилось только часть текста поста. Ссылка удалить появится если пользователь авторизован. Весь пост выводится одной командой printf , все данные берутсся из массива results[]. В этот массив данные попадают через “контроллер”.
Далее функция добавления поста, в ней все просто можно не описывать:
static function displayAddPost(){
echo’<div class=»addpost»"><a href=»index.php»>На главную</a>
<br>Добавление поста<br><form method=»post» action=»index.php»>
Заголовок:<br><input size=»100″ name=»title»><br>
metatitle<br><input size=»100″ name=»metatitle»><br>
metakeywords<br><input size=»100″ name=»metakeywords»><br>
metadescription<br><input size=»60″ name=»metadescription»><br>
Пост:<br><textarea rows=»20″ cols=»60″ name=»body»></textarea><br>
<input value=»Сохранить» type=»submit» name=»savepost»>
<input value=»Очистить» type=»reset»></form></div>’;
}
Следующая функция также проста, в ней заложена просто форма для ввода логина и пароля.
static function dispayLogin() {
echo’<div class=»login»><form action=»index.php» method=»post»>
<table >
<tr ><a href=»index.php»><h3 align=»center»>На главную</h3></a></tr>
<tr>
<td>Логин:</td>
<td><input type=»text» name=»login» /></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type=»password» name=»password» /></td>
</tr>
<tr>
<td>Запомнить:</td>
<td><input type=»checkbox» name=»remember» /></td>
</tr>
<tr>
<td></td>
<td><input type=»submit» value=»Вход» name=»in»/></td>
</tr>
</table>
</form></div>’;
}
И последняя функция форма регистрации:
static function dispayRegister(){
echo’<div class=»login»>
<h3><a href=»index.php»><h3 align=»center»>На главную</h3><br></a>
<h3>Введи Ваши данные</h3>
<form action=»index.php» method=»post»>
<table>
<tr>
<td>Логин:</td>
<td><input type=»text» name=»login» /></td>
</tr>
<tr>
<td>Пароль:</td>
<td><input type=»password» name=»password» /></td>
</tr>
<tr>
<td></td>
<td><input type=»submit» value=»Зарегистрироваться» name=»addregister»/></td>
</tr>
</table>
</form></div>’;
}
все просто, если что-то не понятно спрашивайте, что-то выяснится в следующих постах.
файл блока View можно скачать view.php
До встречи в следующем посту… )

