Блок со ссылками на другие страницы сайта

Ранее мы создали представление страницы. Теперь в представление страницы необходимо добавить блок со ссылками на другие страницы сайта. Это улучшит навигацию по нашему сайту. Для этого мы изменим функцию view в контроллере page и представление page_view.

Нужно извлечь заголовки и id страниц и отправить их в представление дополнительным элементом массива $data. Вот обновленный кусок функции view. Я думаю вы сможете найти ему место:

if($query->num_rows() > 0)
{

// сохранили результат для передачи
$data['result'] = $query->result();
// новый запрос к базе для получения заголовков
$query = $this->db->query('select id, header from pages');
// сохраняем результат
$data['block_result'] = $query->result();
// загрузили представление страницы передав туда данные для отображения
$this->load->view('page_view',$data);

}

Теперь эти переданные данные нужно отобразить. Добавьте этот кусок кода в представление page_view в любое подходящее место (потом всё равно придется менять). Я разместил перед ссылкой на главную страницу.

<h3>Другие страницы</h3>
<ul>
<?php
foreach($block_result as $row)
{
echo '<li>'.anchor('page/view/'.$row->id, $row->header).'</li>';
}
?>
</ul>

То есть список ссылок на страницы будет ненумерованным списком. Можете изменить код на своё усмотрение.

Теперь сделаем ещё одно не менее важное изменение. На данный момент на нашей главной странице отображается текст других страниц целиком. Это нужно исправить, оставив лишь анонс текста. Мы поступим очень просто. Отрежем первые 100 символов. Так обычно не делают, ведь нужно проследить отсекание половинок слов или дойти до конца предложения. Но самый лучший способ ручное указание границы анонса. Найдите функцию index в контроллере page и замените строку с запросом на:

$data['query'] = $this->db->query('select id, header, substring(content, 1, 100) as content from pages');

Функция substring отсекает нужную нам часть текста.

Удачи!

вернуться назад