Создаем представление для отображения страниц в CodeIgniter
Мы остановились на том, что создали представление главной страницы в виде списка страниц из нашей базы данных с текстом этих страниц и ссылкой на старницу полного просмотра.
Ссылка на страницу просмотра полного текста была ввиде index.php/page/view/1. Теперь вспомним как формируется и распознается url (адрес) в движке CodeIgniter:
- первый сегмент (в данном случае, page) — название контроллера, который будет вызываться;
- второй сегмент (view в примере) — название функции в контроллере, вызов которой будет производится;
- остальные сегменты (в данном случае id страницы, был у нас такой столбец в таблице pages) — параметры вызываемой функции;
Итак, нам нужно выполнить следующее:
- добавить функцию view в контроллер page извлекающую строку из pages по переданному параметру;
- добавить представление page_view отображающее страницу;
- добавить пустое представление, на случай когда передали неправильный параметр;
Добавить в page.php:
function view($id)
{
// выполняем запрос
$query = $this->db->query('select * from pages where id='.$id);
// проверяем число строк в результате
// если их больше нуля, то нужно показать страницу
// а нем случае либо 0, либо 1 результат
if($query->num_rows() > 0)
{
// сохранили результат для передачи
$data['result'] = $query->result();
// загрузили представление страницы передав туда данные для отображения
$this->load->view('page_view',$data);
}
else
{
// если нам передали неправильный id то загружаем пустое представление
$this->load->view('empty_view');
}
}
Создать представление page_view с таким содержимым:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>title</title>
<link type="text/css" rel="stylesheet" media="all" href="/ci/system/application/views/style.css"/>
</head>
<body>
<?php
// массив объектов длиной в 1
// больше у нас выйти не может
// так как id поле уникальное
// заголовок в h1
echo '<h1>'.$result[0]->header.'</h1>';
// текст в параграфе
echo '<p>'.$result[0]->content.'</p>';
// далее ссылка на главную
?>
<a href="/ci">Главная</a>
</body>
</html>
Создать представление empty_view для показа при неправильном параметре с таким содержимым:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Страница не найдена!</title>
<link type="text/css" rel="stylesheet" media="all" href="/ci/system/application/views/style.css"/>
</head>
<body>
<p>Такой страницы не существует!!!</p>
<a href="/ci">Главная</a>
</body>
</html>
Вроде ничего не забыл. Пока оформление страниц отсутствует, позднее Вам нужно будет совместить оформление с представлениями, которые мы создаем.
Удачи!
- Добавить комментарий
- 1632 просмотров