Вход Регистрация
Файл: wboard/docs/pages/examples.html
Строк: 768
<?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"><a href="./structure.html">Архитектура движка</a></div>
                <
div class="board_item"><span>Написание модулей</span></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">
                <
class="item">
                
Первым шагом необходимо создать контроллер нашего модуля в директории /system/controller<br />
                
Итаксоздаем файл test.php с кодировкой UTF-8 без BOM и форматом UNIX.<br />
                
Начальное содержимое файла должно быть следующим:<br /><br />
                <
code style="font-family:monospace;">
                    <
span style="color: #000000; font-weight: bold;">class</spanModule_Test <span style="color: #000000; font-weight: bold;">extends</spanModule<br />
                    <
span style="color: #009900;">&#123;</span><br />
                    
&nbsp;<br />
                    &
nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</spanindex<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
                    
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span><br />
                    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #666666; font-style: italic;">//</span><br />
                    
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span>
                    
&nbsp;<br /><br />
                    <
span style="color: #009900;">&#125;</span>
                
</code><br />
                
Для работы с базой данных желательно использовать функции класса /system/classes/model.php которая доступна как $this-&gt;model<br />
                
Если вы не нашли подходящей функции в этом классето можно создать ее в своём контроллере.<br />
                <
strong>Вносить изменения в системные классы не рекомендуется</strong>, дабы не возникало проблем при обновлении движка<br />
                
Для работы с бд напрямую из контроллера используйте объект класса MySQLiкоторый доступен как $this-&gt;db<br />
                
Для работы с шаблонами оформления используется класс Templateкоторый доступен как $this-&gt;tpl<br />
                
Для работы с фразами используйте $this-&gt;lng<br />
                
Описания классов смотрите в разделе <a href="./structure.html">Архитектура движка</a><br /><br />

                
Пара слов о <strong>шаблонах оформления</strong>.<br />
                
Шаблоны располагаются в директории /system/view<br />
                
Представляют собой файлы с расширением php<br />
                
Шаблоны с префиксом __helper используются только в системном классе Helper<br />
                
Шаблоны с префиксом _ могут использоваться где угодно.<br />
                
Шаблон _layot является контейнером для остальных шаблонов и загружается автоматически при завершении работы скрипта.<br />
                
Шаблоныкоторые используются в контроллерах должны иметь в имени префикс с названием контроллера и символом нижнего подчеркивания.<br />
                
Напримерtest_view.php<br />
                
Для большего удобства желательно указывать после префикса имя метода в котором используется шаблон.<br />
                
В шаблонах доступны поля и методы класса Template.<br />
                
Обращаться к ним следует через $this<br />
                
Поля и методыкоторые можно использовать в шаблонах:<br />
                
$this-&gt;lng контейнер языковых фраз<br />
                
$this-&gt;title заголовок страницы выводящийся в &lt;title&gt;&lt;/title&gt;<br />
                
$this-&gt;load() - загрузчик шаблонов<br /><br />

                <
strong>Капча</strong><br />
                
Для работы с капчей используется контроллер captcha<br />
                
Чтобы отобразить капчу в своем шаблоне нужно использовать следующий код:<br /><br />
                <
code>
                    <
span style="color: #000000; font-weight: bold;">&lt;?=</span> <span style="color: #000088;">$display_captcha</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span> ? <span style="color: #0000ff;">'&lt;p&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'_captcha'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$error</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/p&gt;'</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
                
</code><br />
                
Этот код загрузит шаблонпредназначенный для вывода капчи (который обращается к контроллеру captcha).<br />
                
Переменная $display_captcha определяет разрешен ли в настройках вывод капчи$error массив с сообщением об ошибкекоторое должно иметь ключ captcha<br />
                
Эти переменные необходимо передать в контроллере вашему шаблону следующим образом:<br />
                <
code style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tpl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test_view'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
                    
<span style="color: #0000ff;">'error'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$error</span><span style="color: #339933;">,</span>
                    <
span style="color: #0000ff;">'display_captcha'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">settings</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span>
                
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                
</code><br />
                
Пожалуйприведу полный пример работы с капчейчтобы было более менее понятно:<br />
                <
code>
                <
span style="color: #000000; font-weight: bold;">class</spanModule_Test <span style="color: #000000; font-weight: bold;">extends</spanModule<br />
                <
span style="color: #009900;">&#123;</span><br />
                
&nbsp;<br />
                &
nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</spanindex<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000088;">$error</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #666666; font-style: italic;">// Check captcha</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">settings</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000088;">$captcha</span> <span style="color: #339933;">=</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$captcha</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$captcha</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000088;">$error</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">lng</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">wrong_captcha</span><span style="color: #339933;">;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tpl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;">'error'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$error</span><span style="color: #339933;">,</span><br />
                &
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;">'display_captcha'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">settings</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'captcha'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br /><br />
                
<span style="color: #009900;">&#125;</span>
                
</code><br /><br />

                <
strong>Передача параметров в методы контроллера</strong><br />
                
Роутер позволяет передавать данные в метод контроллера из URI.<br />
                
Рассмотрим это на небольшом примере:<br />
                <
code><span style="color: #000000; font-weight: bold;">class</spanModule_Test <span style="color: #000000; font-weight: bold;">extends</spanModule<br />
                <
span style="color: #009900;">&#123;</span><br />
                
&nbsp;<br />
                &
nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</spanindex<span style="color: #009900;">&#40;</span><span style="color: #000088;">$arg1</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arg2</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">display</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span><br />
                &
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$arg1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$arg2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
                
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span><br />
                
&nbsp;<br /><br />
                <
span style="color: #009900;">&#125;</span>
                
</code><br />
                
Перейдя по адресу http://yourboard/w_action/test/1/2 увидим, что переменные приняли соответствующие значения.<br />
                
Важно помнитьчто переменным в определении функции всегда нужно давать значения по умолчаниюиначе будут выдаваться ошибки.<br />
                
В этом примере как вы уже наверное заметилиприсутствует незнакомая строка $this-&gt;display FALSE;<br />
                
Эта строка отключает автоматическую загрузку и вывод главного шаблона.<br /><br />

                <
strong>Работа с языковым файлом</strong><br />
                
Файл с фразами находится в директории /system и называется lang.php<br />
                
Файл представляет собой обычный php массивв котором хранятся все фразы используемые в движке.<br />
                
Для доступа к фразе используйте $this-&gt;lng-&gt;имя_ключа<br />
                
Если ключа в файле не существует будет выведено имя ключазаключенное в символы ##.<br />
                
Т.еследующим образом#имя_ключа#<br /><br />

                
На этом всёнадеюсь ничего не забыл.<br />
                </
p>
            </
div>
        </
div>
        <
div class="footer">
            <
div class="navigation">
                <
ul>
                    <
li><a href="./structure.html">&lt;&lt;&#160;Архитектура движка</a></li>
                    
<li><a href="#up">Наверх</a></li>
                    <
li><a href="./styles.html">Создание стилей&#160;&gt;&gt;</a></li>
                
</ul>
            </
div>
            
Powered by <a href="http://w-board.su">WBoard</a> &copy;2013
        
</div>
    </
body>
</
html>
?>
Онлайн: 0
Реклама