AGAVA partners programs http://agava.ru/partners/            

Название функции

             
Веб-курсы


Что это?

Оглавление

Основы
Основы основ

Практика
Гостевая книга
Простой сайт
Структура сайта (MVC)
Ядро (Light)
Ядро
Гостевая на SQL
Статические страницы
Модуль новостей
Система регистрации

Теория
Дебаггинг
Регулярные выражения
Введение в ООП
Паттерны проектирования

Репозитарий
BB-code
Почтовый класс
Пагинатор
Всякие полезности

Download
Полезные утилиты

Разное
Видеокурсы
Последние изменения
Вопросы и замечания сюда



Реклама

Диеты для похудения
Фреймворк Kohana. Обучение. Мануал на русском.







Шаг 4

Навигация

Но нам этого мало, нам нужна полноценная навигация. И куча других страниц. Так за чем дело встало? Сейчас наштампуем сколько душе угодно.
У нас уже есть наметки структуры, ну и разовьем события:



На первый взгляд кажется что запутано, но на самом деле это гораздо проще, чем сваливать кучу файлов в одну корневую директорию и называть их разными именами. По нашей схеме достаточно определиться, какой именно модуль нас интересует. Если это модуль главной страницы, то все логические файлы будут находится в директории main и шаблоны тоже в такой же директории. Соответственно и модуль second

Теперь для наглядности сделаем второй модуль и второй шаблон:
modules/second/index.php
1
2
3
4
5
6
<?php


    $text 
'Вот так примерно и делаются динамические сайты.';

skins/tpl/second/show.tpl
1
2
3
4
5
<div style="padding:10px; background-color:#CCCCCC;"> 
<?php echo $text ?> 
</div>


Итак, с отображением страниц определились. Теперь нужно сделать навигацию. Не будем откладывать в долгий ящик:
menu.tpl
1
2
3
4
5
6
<ul> 
<li><a href="?">Главная страница</a></li> 
<li><a href="?">Вторая страница</a></li> 
</ul>

Поместите это в каталог tpl, рядом с главным шаблоном, так как это общее меню и не зависит от подключенного в данный момент модуля.
Ну и потанцуем в главном индексе:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

   
    ob_start
();     
     
/** 
* Подключаем меню  
* Includes the menu  
*/   
    
include './skins/tpl/menu.tpl';      
      
/** 
* Подключаем модуль приветствия  
* Includes the greeting module 
*/   
    
include './modules/main/index.php';      
      
/** 
* Подключаем шаблон приветствия  
* Includes the greeting templates 
*/ 
    
include './skins/tpl/main/show.tpl'

/** 
* Подключаем модуль второй страницы  
* Includes the module of the second page 
*/   
    
include './modules/second/index.php';  
      
/** 
* Подключаем шаблон второй страницы  
* Includes a second templates 
*/ 
    
include './skins/tpl/second/show.tpl';  
         
    
$content ob_get_contents(); 
    
ob_end_clean(); 
/** 
* Подключаем главный шаблон 
* Includes the basic template 
*/    
    
include './skins/tpl/index.tpl';

Запускаем.
Получилось что попало. Оба контента вылезли на страницу и ссылки не работают. Потому что нам нужен переключатель. Переключателем в php является конструкция switch() Вот мы её и применим.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php


    ob_start
();   
    
$page 'main';
/**   
* Подключаем меню   
* Includes the menu   
*/   
    
include './skins/tpl/menu.tpl';   

/** 
* The switch of modules 
* Переключатель страниц 
*/       
    
switch($page)  
    {  
/**   
* Подключаем модуль приветствия   
* Includes the greeting module   
*/          
        
case 'main':     
            include 
'./modules/main/index.php';             
            include 
'./skins/tpl/main/show.tpl';  
        break;  
/**   
* Подключаем модуль второй страницы   
* Includes the module of the second page   
*/  
        
case 'second'
            include 
'./modules/second/index.php'
            include 
'./skins/tpl/second/show.tpl';  
        break;  
/**   
* Подключаем модуль приветствия по умолчанию  
* Includes the greeting module   
*/            
        
default: 
            include 
'./modules/main/index.php';             
            include 
'./skins/tpl/main/show.tpl'
        break;     
    }   

    
$content ob_get_contents();   
    
ob_end_clean();   
/**   
* Подключаем главный шаблон   
* Includes the basic template   
*/   
    
include './skins/tpl/index.tpl';

Вот. Теперь у нас страницы разделились. Можно прописать в переменную $page вместо 'main' значение 'second' и мы увидим вторую страницу.
Но ссылки так и не работают. Печально.

Рейтинг@Mail.ru Рейтинг@Mail.ru Яндекс цитирования
irbis-team © 2009