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

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

             
Веб-курсы


Что это?

Оглавление

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

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

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

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

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

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



Реклама

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







Шаг 4

Вывод на сайт

Ну а теперь все это нужно явить взору нетерпеливого юзера. Модуль у нас уже есть, контроллер модуля прост до безумия:
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
53
54
55
56
57
<?php

/** 
* Controller 
* Контроллер 
* @author IT studio IRBIS-team 
* @copyright © 2009 IRBIS-team 
*/ 
///////////////////////////////////////////////////////// 

/** 
* Generation of page of an error at access out of system 
* Генерация страницы ошибки при доступе вне системы 
*/ 
    
if(!defined('IRB_KEY')) 
    { 
       
header("HTTP/1.1 404 Not Found");       
       exit(
file_get_contents('../../404.html')); 
    }  
////////////////////////////////////////////////////////// 

 /**  
* Function of generation of a menu of pages 
* Функция генерации меню страниц 
* @param array 
* @return string 
*/  
    
function createMenu($links = array()) 
    { 
        if(!empty(
$links[1])) 
        { 
            
$menu "<ul class=\"pages_menu\">\n"
            foreach(
$links as $num => $link
                
$menu .= "<li> 
                          <a href=\""
href('id='$link[0]) ."\">"$link[1] ."</a>  
                          </li>\n"

     
            return 
$menu ."</ul>\n"
         }     
    }    
//////////////////////////////////////////////////////////////// 
        
    
if(file_exists(IRB_ROOT .'setup/menu.txt')) 
       
$links unserialize(file_get_contents(IRB_ROOT .'setup/menu.txt')); 
    else 
       
$links = array('', array('','')); 
        
    
$GET['id'] = !empty($GET['id'])?$GET['id']:$links[1][0];    
    
$page_content '';            
/**  
* Read page 
* Читаем страницу  
*/      
    
if(file_exists('./setup/'$GET['id'] .'.txt')) 
       
$page_content file_get_contents('./setup/'$GET['id'] .'.txt');

Обратите внимание. Я не постеснялся функцию в этом контроллере назвать так же, как в контроллере админки. И никакого конфликта, которым вечно пугают приверженцы ООП подхода. Мол невозможно сделать так, что бы названия не пересекались.
Всё возможно, если захотеть.

Фактически мы собрали его из фрагментов прошлых скриптов.
Теперь сделаем шаблончик с локальным меню. Его можно сделать выпадающим или как душе угодно. Важно что оно будет переключать страницы внутри модуля:
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- ./skins/tpl/main/show.tpl begin --> 
<div style="padding:10px"> 
<div  style="float:left; padding:30px; width:150px; border:1px solid"> 
<?php echo createMenu($links); ?> 
</div> 
<div style="float:right;padding:10px; width:750px;"> 
<?php echo $page_content?> 
</div> 
<div style="clear:both"></div> 
</div> 
<!-- ./skins/tpl/main/show.tpl end -->


Вот и все, можно радоваться. Осталось только немного изменить формирование мета-тегов. Для этого вызовы функции перенесем из файла libs/view.php в главный индекс:
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


   $page 
$GET['page']; 
         
/**  
* The switch of modules  
* Переключатель страниц  
*/        
    
switch($GET['page'])   
    {   
        case 
'main':  
            include 
'./modules/main/router.php';     
            
$page $GET['id'];   
        break; 
           
        case 
'guest':      
            include 
'./modules/guest/router.php';   
        break; 
                    
        default:  
            include 
'./modules/main/router.php';   
        break;      
    }           
            
    
$content ob_get_contents();     
    
ob_end_clean(); 
       
/**  
* Form meta-tags  
* Формируем мета-теги 
*/    
   
$title       getMeta('title'$page);   
   
$keywords    getMeta('keywords'$page); 
   
$description getMeta('description'$page);


Теперь они будут формироваться на основании либо $GET['rem'], либо $GET['id'], в зависимости от того, какой модуль в работе.

Всё однако... Получилась такая своеобразная мини CMS, на которой уже прямо сейчас можно сделать домашнюю страничку или сайт-визитку. Нужно только решить вопрос с дизайном и версткой.


Ну а тем, кто решил развивать события - проходите дальше в вагон. Будет еще очень много интересных уроков.

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