Разработчику/WikiPatterns

WikiPatterns


Оглавление документа

Общее описание

Расширение WikiPatterns – очень мощный инструмент для создания шаблонов и работы с ними.
Для работы требуется расширение AdvOntology

Создание шаблона

Каждый шаблон должен представляет собой папку с файлами и подпапками. Имя папки шаблона – его идентификатор. При установке шаблона нужно указывать именно имя папки. Располагать папку-шаблон нужно в extensions/WikiPatterns/site_template_data/templates

Структура папки

  • TemplateName
    • lang
      • ru.php
      • en.php
    • install.xml
    • one.txt
    • sum.txt

Структура файлов в папке lang

<?php
$lang_field 
= array (
  
"<имя поля (см. install.xml)>" => "<пояснительный текст по этому полю>",
  
// ещё сколько угодно параметров
);
$lang_ptn = array (
  
"<имя параметра для использования в шаблоне>" => "<значение параметра>",
  
// ещё сколько угодно параметров
);
?>


Пример файла ru.php для создания новостей:

<?php
$lang_field 
= array (
  
"name" => "Название",
  
"pubdate" => "Дата публикации",
  
"shortdesc" => "Краткое описание",
  
"longdesc" => "Полное описание",
);
$lang_ptn = array (
  
"pubdate" => "Дата публикации",
  
"readmore" => "Читать подробнее",
);
?>


Структура файла install.xml

Шаблоны описываются в xml формате. Обязательно нужно заполнить имя шаблона и хотя бы одно поле. В разделе type поля указываем тип виртуальной формы.

<template>
    <name>ТУТ УКАЗЫВАЕМ ИМЯ ШАБЛОНА</name>
 
    <field>
        <name>ИМЯ ПОЛЯ</name>
        <description>ЕГО ОПИСАНИЕ</description>
        <type>ТИП ВИРТУАЛЬНОЙ ФОРМЫ ДЛЯ ПОЛЯ</type>
    </field>
 
</template>

Как не трудно догадаться, полей может быть сколь-угодно много.


Пример шаблона для создания новостей:

<template>
    <name>NewsArticle</name>
    <field>
        <name>name</name>
        <description>Название</description>
        <type>text</type>
    </field>
    <field>
        <name>pubdate</name>
        <description>Дата публикации</description>
        <type>datetime</type>
    </field>
    <field>
        <name>shortdesc</name>
        <description>Краткое описание</description>
        <type>spawhtml</type>
    </field>
    <field>
        <name>longdesc</name>
        <description>Полное описание</description>
        <type>spawhtml</type>
    </field>
</template>

Структура шаблонов one.txt и sum.txt

Шаблоны описываются в формате smarty, соответственно никаких особенных правил нет.
Единственное о чём нужно сказать – доступ к параметрам из языковых файлов и к содержимому шаблона:
Для шаблона one.txt

  • {$data.<ИМЯ ПОЛЯ>} – возвратит значение нужного поля

Для шаблона sum.txt

  • {$pages} – возвратит массив страниц

Доступ к параметрам языка одинаков для обоих файлов

  • {$lang.<имя поля>} – возвратит значение из языкового файла

Пример шаблонов для новостей
one.txt

<# 
<h1>{$data.name}</h1>
<small>{$lang.pubdate}: {$data.pubdate}</small>
<br /><br />
{$data.longdesc}
#>


sum.txt

<#
{foreach from=$pages item=page}
<h2>{$page.data.name}</h2>
<i>[{$page.data.pubdate|date_format_rus}]</i><br /><br />
{$page.data.shortdesc}<br />
<div align="right">
    <a href="{$system.rooturl}{$page.tag}">{$lang.readmore}</a>
</div>
<br /><hr />
{/foreach}
#>


Как видно из примеров, создавать на базе WikiPatterns свои шаблоны совсем не сложно. Общий размер всех файлов для организации новостей – 10 (языковой файл) + 23 (описание полей) + 6 (one.txt) + 11 (sum.txt) = 50 строк. Для сравнения – написание подобного модуля для новостей займёт не менее 100 строк.


Внедрение в систему

Сначала нужно установить шаблон по его имени (читай выше).
Затем на страницу вставляем два экшена – tempatesum и createpage:


С вставкой createpage всё просто – укажите в параметре pattern имя шаблона.
Например: {{createpage pattern="NewsArticle"}}
С tempatesum всё сложнее:

Параметры tempatesum

  • первый параметр (все равно, как называется) – имя шаблона (не идентификатор)
  • for – для какой страницы
  • sortby – по какому полю сортировать (tag,time, или поле из шаблона)
  • sortorder – ASC/DESC (DESC по умолчанию)
  • max – максимальное кол-во результатов
  • modifier – использовать некоторый другой файл для создания результатов
  • collectall – 0/1 (0 по умолчанию) (использовать только прямые подстраницы (0) или все подстраницы (1))
  • hidepagenumbers – 0/1 (0 по умолчанию) (показывать ссылки на следующие N новостей, или нет)
  • pagenumstyle – “prevnext” | “list” (cтиль отображения номеров страниц)
  • saverequest – сохранять параметры из строки запроса (пример: "view:tag")
  • showpager – bottom|top|topbottom

Пример:
{{templatesum name="NewsArticle" for="Новости" sortby="pubdate" sortorder="DESC" max="10"}}

Использование

О использовании читай в справке Перейти.


Вам оказалась полезна эта статья? Если не трудно – дайте свою оценку тому, насколько предложенный здесь материал вам помог=)


Комментарии:

Нет комментариев, будьте первым!

Добавить комментарий:
Представьтесь:


 
Подразделы
Раздел не содержит подстраниц.


Комменты