Файл: wboard/docs/pages/structure.html
Строк: 158
<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="../style.css" />
<title>WBoard - Documentation: Архитектура движка</title>
</head>
<body>
<div class="logo">
<a href="../index.html"><img src="../logo.png" alt="WBoard" /></a>
</div>
<div class="title_content">
Архитектура движка
</div>
<div class="container" id="up">
<div class="menu">
<h1>Навигация:</h1>
<div class="board_item"><a href="./install.html">Установка</a></div>
<div class="board_item"><span>Архитектура движка</span></div>
<div class="board_item"><a href="./examples.html">Написание модулей</a></div>
<div class="board_item"><a href="./styles.html">Создание стилей</a></div>
<div class="board_item"><a href="./changelog.html">Лог изменений</a></div>
</div>
<div class="content">
<div class="title">Описание директорий и файлов</div>
<h1>/files</h1>
<p class="item">
/boards - Доски<br />
/logs - Логи исключений<br />
/pages - Статические страницы<br />
/styles - CSS стили и изображения к ним<br />
</p>
<h1>/system</h1>
<p class="item">
/classes - Системные классы<br />
/controller - Контроллеры (модули)<br />
/view - Шаблоны оформления<br />
conf.php - Конфиг (MySQL, Роутер)<br />
lang.php - Языковой файл
</p>
<div class="title">Роутинг</div>
<p class="item">
Движок имеет одну точку входа. Т.е. все запросы за исключением существующих директорий и файлов <br />
в директории сайта (кроме директория /system) перенаправляются на index.php<br />
Все запросы перенаправленные на index.php и первый сегмент URI которых не является w_action обрабатывает контроллер board.php<br />
располагающийся в директории /system/controller<br />
Если URI пуст, будет вызван контроллер по умолчанию. (Настраивается в config.php)<br />
Сейчас это mainpage.php<br /><br />
Примеры:<br />
http://w-board.su/files/styles/wboard.css - запрос не будет перенаправлен.<br />
http://w-board.su/ - запрос будет перенаправлен на index.php и загрузится контроллер установленный по умолчанию.<br />
http://w-board.su/someboard - запрос будет перенаправлен на index.php и загрузится контроллер board.php<br />
http://w-board.su/w_action/mainpage - увидим результат работы контроллера mainpage.php<br />
</p>
<div class="title">Описание системных классов</div>
<h1>module</h1>
<p class="item">
Главный класс системы.<br />
Все контроллеры должны наследоваться от него.<br />
Контроллер обязательно должен иметь публичный метод index.
<br /><br />
<strong>Описание публичных полей класса:</strong><br />
(mysqli) $db Объект для работы с базой данных<br />
(int) $ip IP адрес<br />
(int) $ip_via_proxy IP адрес за PROXY сервером<br />
(string) $user_agent Юзер агент<br />
(string) $http_host Хост<br />
(Language) $lng Обработчик языкового файла<br />
(Template) $tpl Обработчик шаблонов оформления<br />
(Model) $model Модель (содержит функции для работы с базой данных)<br />
(Helper) $helper Хэлпер (Содержит вспомагательные функции)<br />
(int) $is_root Является ли пользователь администратором<br />
(array) $settings Системные настройки<br />
(boolean) $display Включение/выключение вывода данных шаблонизатором<br />
(string) $path Путь к корневой директории скрипта<br /><br />
<strong>Описание поля $settings (настройки системы):</strong><br />
'meta' - Мета теги<br />
    'keywords' - Keywords<br />
    'description' - Description<br />
'title' - Заголовок страницы по умолчанию<br />
'password' - Пароль root пользователя<br />
'user' - Пользовательские настройки по умолчанию<br />
    'style' - CSS стиль<br />
    'timeshift' - Сдвиг по времени<br />
'captcha' - Капча: 1 - включена; 0 - выключена;
<br /><br />
<strong>Методы, которые могут использоваться в контроллерах:</strong><br />
(void) public function redirect($uri = '')<br />
Осуществляет редирект по заданному URI. Для редиректа на другой домен используйте стандартные средства PHP.<br />
(string) $uri URI<br /><br />
<strong>Метод shutdown() вызывается автоматически при завершении работы скрипта.</strong>
</p>
<h1>db</h1>
<p class="item">
Предназначен для работы с базой данных MySQL.<br />
Наследуется от MySQLi<br />
Для более подробной информации смотрите исходный код файла /system/classes/db.php<br />
</p>
<h1>helper</h1>
<p class="item">
<strong>(string) public function css_styles_list($error)</strong><br />
Подготавливает к выводу список доступных стилей.<br />
boolean $error Настройка вывода сообщения об ошибке.<br /><br />
<strong>(boolean) public function css_exists($style)</strong><br />
Проверяет файл стиля на существование<br />
string $style Имя стиля<br /><br />
<strong>(string) public function display_threads($threads)</strong><br />
Подготавливает список тредов к выводу<br />
array $threads Список тредов<br /><br />
<strong>(string) public function display_posts($board, $tid, $data)</strong><br />
Подготавливает список постов к выводу<br />
string $board Имя доски<br />
int $tid ID треда<br />
array $data Список постов<br /><br />
<strong>(string) public function display_time($time)</strong><br />
Форматирует время с учетом сдвига<br />
Возвращает строку вида <em>day.month.Year / Hour:minutes:seconds</em><br />
int $time Временная метка
<br /><br />
<strong>(boolean) public function delete_directory($dir)</strong><br />
Удаляет директорию вместе со всем её содержимым<br />
string $dir Путь к директорию<br /><br />
<strong>(string) public function markup_message($string, $board, $thread)</strong><br />
Разметка сообщения (BB коды, Wakaba разметка)<br />
string $string Текст сообщения<br />
string $board Имя доски (для обработки ссылок)<br />
int $thread ID треда (для обработки ссылок)<br /><br />
<strong>(mixed) public function prepare_file($board, $data)</strong><br />
Подготовка изображения к загрузке<br />
В случае невозможности определения ошибки возвращает NULL<br />
Возвращает строку сообщения об ошибке в случае её возникновения<br />
Возвращает массив с данными файла в случае удачи<br />
Этот метод рекомендуется использовать вместе с методом save_file() приведенным ниже<br />
string $board Имя доски<br />
array $data Данные файла полученные из массива $_FILES<br /><br />
<strong>(mixed) public function save_file($board, $file)</strong><br />
Сохраняет подготовленный с помощью prepare_file() файл<br />
Возвращает NULL в случае если методу был передан не массив.<br />
Иначе возвращает массив с именем файла и именем превью:<br />
array('file' => $filename, 'preview' => $preview)<br />
string $board Имя доски в которую будем сохранять файл<br />
array $file Данные файла
<br /><br />
</p>
<h1>language</h1>
<p class="item">
Служит хранилищем фраз загруженных из языкового файла /system/lang.php
</p>
<h1>model</h1>
<p class="item">
Здесь располагаются функции для работы с базой данных.<br />
Для более подробной информации смотрите исходный код файла /system/classes/db.php<br />
</p>
<h1>template</h1>
<p class="item">
Обработчик шаблонов оформления.<br />
Загрузка шаблона осуществляется с помощью метода <strong>(string) load($file, array $data = array())</strong><br />
где $file - имя файла шаблона без расширения, $data - данные для шаблона.<br />
Метод возвращает обработанный и готовый к выводу шаблон. В случае если шаблона не существует, вернет сообщение об ошибке.<br /><br />
Для установки данных для вывода используется метод <strong>(void) public function set_output($data)</strong><br />
где (string) $data - Строка для вывода.
</p>
<div class="title">Краткое описание контроллеров</div>
<p class="item">
<strong>board</strong><br />
Просмотр списка досок, тредов, постинг сообщений.
<br /><br />
<strong>captcha</strong><br />
Отображение капчи
<br /><br />
<strong>err</strong><br />
Страницы ошибок (403, 404, 502)
<br /><br />
<strong>mainpage</strong><br />
Главная страница (меню, навигация, список последних постов)
<br /><br />
<strong>online</strong><br />
Просмотр посетителей за последние сутки.
<br /><br />
<strong>pages</strong><br />
Просмотр статических страниц и управление ими.
<br /><br />
<strong>panel</strong><br />
Панель управления (Создание и редактирование доски, история входов админа, настройки и прочее)
<br /><br />
<strong>remove</strong><br />
Удаление досок, постов, тредов
<br /><br />
<strong>settings</strong><br />
Пользовательские настройки
</p>
</div>
</div>
<div class="footer">
<div class="navigation">
<ul>
<li><a href="./install.html"><< Установка</a></li>
<li><a href="#up">Наверх</a></li>
<li><a href="./examples.html">Написание модулей >></a></li>
</ul>
</div>
Powered by <a href="http://w-board.su">WBoard</a> ©2013
</div>
</body>
</html>
?>