Оглавление

IP.Board (IPB 3)

В разделе приведена информация которая может быть полезна для разработчиков приложений/модулей/хуков для "Invision Power Board 3 (IPB 3)".

Полезные ссылки

Заметки

Разработка

Полезное


RedmineНighlightTest CodeRay 0.9

HTML

<pre><code class="html">
<embed src="/upload/banners/{$page_razdel}/{$key}.swf" width="498" height="70" 
  type="application/x-shockwave-flash" 
  pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
</code></pre>
<embed src="/upload/banners/{$page_razdel}/{$key}.swf" width="498" height="70" 
  type="application/x-shockwave-flash" 
  pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>

XML

&lt;pre&gt;&lt;code class="xml"&gt;
    &lt;web&gt;
        &lt;host value="http://${admin_host::domain}/business/admin/" /&gt;
        &lt;static_host value="${admin_host::web::host}static/" /&gt;
        &lt;img_dir value="${admin_host::web::static_host}images/" /&gt;
        &lt;css_dir value="${admin_host::web::static_host}css/" /&gt;
        &lt;js_dir value="${admin_host::web::static_host}js/" /&gt;
        &lt;upload_dir value="${admin_host::web::host}upload/" /&gt;
    &lt;/web&gt;
&lt;/code&gt;&lt;/pre&gt;
    <web>
        <host value="http://${admin_host::domain}/business/admin/" />
        <static_host value="${admin_host::web::host}static/" />
        <img_dir value="${admin_host::web::static_host}images/" />
        <css_dir value="${admin_host::web::static_host}css/" />
        <js_dir value="${admin_host::web::static_host}js/" />
        <upload_dir value="${admin_host::web::host}upload/" />
    </web>

PHP

&lt;pre&gt;&lt;code class="php"&gt;&lt;?php
$go_page = "onClick=\"return dropdownmenu(this, event, UserMenu('".htmlspecialchars($go_page)."', '".$row['user_id']."', '".$member_id['user_group']."'), '170px')\" onMouseout=\"delayhidemenu()\"";

if ($config['allow_alt_url'] == "yes") {
    $tpl-&gt;set('{author}', "&lt;a {$go_page} href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\"&gt;".$row['name']."&lt;/a&gt;");
} else {
    $tpl-&gt;set('{author}', "&lt;a {$go_page} href=\"$PHP_SELF?sa=userinfo&amp;amp;user=".urlencode($row['name'])."\"&gt;".$row['name']."&lt;/a&gt;");
}

?&gt;&lt;/code&gt;&lt;/pre&gt;
<?php
$go_page = "onClick=\"return dropdownmenu(this, event, UserMenu('".htmlspecialchars($go_page)."', '".$row['user_id']."', '".$member_id['user_group']."'), '170px')\" onMouseout=\"delayhidemenu()\"";

if ($config['allow_alt_url'] == "yes") {
    $tpl->set('{author}', "<a {$go_page} href=\"".$config['http_home_url']."user/".urlencode($row['name'])."/\">".$row['name']."</a>");
} else {
    $tpl->set('{author}', "<a {$go_page} href=\"$PHP_SELF?sa=userinfo&amp;user=".urlencode($row['name'])."\">".$row['name']."</a>");
}

?>

Получение исходного кода

Исходный код хранится в SVN репозитории.

Адрес репозитория: http://svn.lastdragon.ru/ipb/

Получить разрабатываемую версию можно следующей командой:

svn co http://svn.lastdragon.ru/ipb/{product}/trunk/ {product}

Работоспособность в каждой ревизии не гарантируется!

Получить определенную стабильную ветку можно командой:

svn co http://svn.lastdragon.ru/ipb/{product}/branches/{version}/ {product}-{version}

Получить определенную стабильную версию можно командой:

svn co http://svn.lastdragon.ru/ipb/{product}/tags/{version}/ {product}-{version}

Обозначения:
{product} - название продукта;
{version} - номер нужной ветки или версии.


Правила разработки

Модификации (хуки, приложения и модули)

Название

Настройки

Ссылки:

Шаблоны


1 Пока не решено как быть с приложениями(для них сервер проверки обновлений недоступен). В дальнейшем, обновление сервера обновлений скорее всего будет автоматизировано.

2 Обязательно только для бесплатных модификаций.

3 Конкретное количество определяется автором, но не забывайте, что при большом количестве подразделов страница будет выглядеть ужасно.

4 Легче всего это сделать, поместив в начало описания название модификации.

5 Отдельный или располагаться в общем репозитории. Рекомендуемую (требуемую) структуру репозитория можно посмотреть на странице Получение исходного кода.

6 Это позволить сэкономить тысячи нервных клеток при обновлении шаблонов между версиями IPB.

7 Позволит легко перемещать шаблоны между файлами.

8 http://community.invisionpower.com/tracker/issue-25997-templateparser-functiondata-not-work-with-type-hinting/



Структура модификаций

Приблизительная1 структура архива с модификацией2:

Файл Назначение
upload/ директория содержащая необходимые для работы файлы
COPYING содержит лицензионное соглашение
ipb3-simtopics.png пример
ipb3-simtopics.xml хук
README содержит общую информацию
VERSION содержит информацию о версии

1 может немного отличаться

2 к модификация относиться - приложения, модули и хуки



Шаблон - Главная страница

h1. %Название модификации%

%Краткое описание модификации%

Распространяется под лицензией "GNU General Public License v3":http://www.gnu.org/licenses/gpl-3.0.html (GPL).

h2. Требования

* Установленный IP.Board версии 3.1.0 и выше

h2. Установка

* "Установка хуков (hooks)":http://ipbnet.ru/topic/8-ustanovka-modifikacii-hukov/

h2. Обзор

* %можно это%
* %это%
* %и это%
* %и это тоже%
* ...

h2. Дополнительная информация:

* [[Настройки]]
* "Список изменений":/projects/xxx/changelog.
* %Ссылки на полезные страницы (если есть)%

h2. Поддержка

* Тема "Ссылка на тему форума":http://ipbnet.ru/topic/xxx/ на форуме

-----

%Примечания (если есть)%

-----

Шаблон - Страница настроек

h1. Настройки

Настройки хука располагаются в подразделе "%Название подраздела%" вкладки "%Название вкладки%".

{{toc}}

h2. %Группа настроек%

h3. %Название настройки% [%тип%]

*По умолчанию:* %значение по умолчанию%
*Доступна:* version:1.0.0 / -version:1.0.0-

%Описание настройки%

h3. %Название настройки% [Да|Нет]

%Описание настройки%

-----

Шаблоны страниц

Шаблон - Главная страница
Шаблон - Страница настроек