Кодовая фраза: Всё, что мы делаем в жизни, эхом отзовётся в вечности!
Дата релиза: 8 мая 2010 года
Jaws использует модель MVC (Модель - Отображение - Контроллер (Model - View - Controller)), четко разграничивая, соответственно, эти три категории.
Для основного сайта и гаджетов при реализации отображения системой используются соответственно:
incude/Jaws/layout.php
gadgets/_название гаджета_/layoutHTML.php
В процессе отображения эти компоненты используют следующие html шаблоны и CSS файлы к ним:
Файл шаблона:
data/themes/_название-темы-установленной-активной_/layout.html
CSS-файл:
data/themes/_название-темы-установленной-активной_/_корневая-папка-или-папка-css-обозначенная-в-/_любое-название.CSS
a. Вариант первый
Файлы шаблона
gadgets/_название гаджета_/templates/_варианты-отображения-гаджета-или-его-свойств.HTML
CSS файлы
gadgets/_название гаджета_/resources/style.css
data/themes/_название-темы-установленной-активной_/корневая-папка-или-папка-css-обозначенная-в-/_любое-название.CSS
b. Вариант второй
Файлы шаблона
data/themes/_название-темы-установленной-активной_/_название-гаджета_ (например Blog)/_название-изменяемого-шаблона-стоящего-по-умолчанию.HTML (например entry.html)
Соответственно для создания своего шаблона нужно внести правки(при редактировании существующей темы) в файл layout.html или создать его и внести правки(при редактировании существующей темы) или создать к нему файл CSS.
Редактирование шаблона для отображения гаджета может происходить соответственно, как в папке с гаджетами, так и путем добавления в папку темы - директории с названием гаджета и размещения в ней html-файла шаблона для отображения элемента необходимого гаджета.
layout.html - шаблон
[папка-для-css]пользовательское-название.CSS - таблица стилей для шаблона
Info.php - php файл для описания темы
style.rtl.css - файл в папке с каждым стандартным шаблоном - таблица стилей для языков пишущихся справа налево (напр: фарси) т.к. основной разработчик из Ирана
Обязательными файлами являются только Info.php и layout.html
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- BEGIN layout --> <!-- Начало шаблона -->
<html>
<head>
<base href="{BASE_URL}" /> <!--Элемент <BASE> инструктирует браузер относительно полного базового адреса текущего документа.-->
<title>{site-title}</title> <!--Определяет заголовок документа. -->
<!-- Информация о сайте из админки. Необязательные элементы-->
<meta name="author" content="{site-author}" /> <!--Автор сайта -->
<meta name="keywords" content="{site-keywords}" /> <!-- Ключевые слова-->
<meta name="description" content="{site-description}" /> <!-- Описание сайта-->
<meta http-equiv="content-language" content="{site-languages}" /> <!-- Язык сайта-->
<!--Указание типа документа -->
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<!--Определение расположения таблицы стилей screen.css. Адрес к файлу из корня сайта: data/themes/_название-темы_/css/screen.css -->
<link rel="stylesheet" href="{THEME}css/screen{.dir}.css"> <!-- Подключение таблицы стилей. После директивы {THEME} "/" не нужен -->
<script></script>
<!-- BEGIN head -->{ELEMENT}<!-- END head --> <!--Обязательный элемент. Используется при установке отображения из админки -->
</head>
<body>
<!-- Формирование мест для размещения гаджетов через админку В одном контейнере <!-- BEGIN __ --> <!-- __ END-->
<!-- могут располагаться несколько деректив {ELEMENT} и другие элементы HTML разметки -->
<div id="el1">
<!-- BEGIN el1 -->{ELEMENT}<!-- END el1 --> <!-- одина директива-->
</div>
<!-- BEGIN el2 -->
<div id="el2">
{ELEMENT} <!-- Элемент ДИВ внутри контейнера -->
</div>
<!-- END el2 -->
<div id="el3"> <!-- Три директивы в контейнере-->
<!-- BEGIN el3 -->
{ELEMENT}
{ELEMENT}
{ELEMENT}
<!-- END el3 -->
</div>
<div id="main"> <!-- Обязательное поле для главного элемента-->
<!-- BEGIN main -->
{ELEMENT}
{ELEMENT}
{ELEMENT}
<!-- END main -->
</div>
</body>
</html>
<!-- END layout --> <!-- Конец шаблона-->Имеется сверстанный дизайн.
Необходимо создать шаблон и тему для использования в Jaws CMS
Обязательной структурой шаблона, если опустить html является
<!-- BEGIN layout-->
<!-- BEGIN head-->{ELEMENT}<!-- BEGIN head-->
<!-- BEGIN main -->{ELEMENT}<!-- END main-->
<!-- END layout-->
<!-- BEGIN layout--> - начинаем шаблон
<html>
<head> - вносим данные в head
Заполняем <base href="{BASE_URL}">
Заполняем title и meta используя директивы:
{site-title} - название сайта
{site-author} - автор сайта
{site-keywords} - ключевые слова
{site-description} - описание сайта
{site-languages} - язык сайта
Обращаем внимание на соответствие всех ссылок(CSS, изображения, скрипты).
<link rel="stylesheet" href="{THEME}css/screen{.dir}.css"> после {THEME} "/" не нужен
{.dir} - это для языков, где начертание происходит справа налево, {THEME} - папка с темой.
Не забываем в конце head указать:
<!-- BEGIN head -->{ELEMENT}<!-- END head --> - Это для возможности размещать гаджеты через админку
</head>
Переходим к <body>
Определяем главную область и вносим туда контейнер main <!-- BEGIN main -->{ELEMENT}<!-- END main -->
Далее вносим и называеем все остальные контейнеры.
В каждом контейнере может находится НЕСКОЛЬКО элементов
В контейнере помимо одного или нескольких директив отображения {ELEMENT} могут находиться любые HTML элементы.
атрибут narrow="yes", по умолчанию narrow="no" указывает на ширину отображаемого гаджета.
</body>
</html>
<!-- END layout--> - заканчиваем шаблон
Не забываем о соответствии области <head> в layout.html.
Копируем туда необходимые файлы (layout.html в корень)
$info = array(
'name' => 'СЮДА-ПИШЕМ-НАЗВАНИЕ-ТЕМЫ',
'desc' => 'СЮДА-ПИШЕМ-ОПИСАНИЕ-ТЕМЫ',
'version' => 'СЮДА-ПИШЕМ-ВЕРСИЮ-ТЕМЫ',
'license' => 'СЮДА-ПИШЕМ-ЛИЦЕНЗИЮ',
'authors' => array(
array('lead', 'ПИШЕМ-СВОЙ-НИК', 'ПИШЕМ-СВОЕ-ИМЯ', 'ПИШЕМ-СВОЙ-EMAIL'),
),
'deps' => array(),
);
?>ВСЁ!!!!!
Ваша тема готова.
Она автоматически появится в списке выбора тем.
{site-name}
{site-author}
{site-keywords}
{site-description}
{site-languages}
{site-copyright}
{site-url}
{THEME}
{.dir}
{ELEMENT}
<!-- BEGIN layout --> <!-- END layout -->
<!-- BEGIN head --> <!-- END head -->
<!-- BEGIN "название элемента" narrow="yes/no" --> <!-- END "название элемента" -->
В данный момент наша команда состоит из двух человек:
1. Автора проекта в моем лице. (IBC)
2. Программиста в лице Игнатьева Тимура. (Тимур)
Мы ждем новых людей!
Данный пост адресован Всем, кому интересно развивать и использовать систему управления контентом Jaws!
Самую удобную бесплатную систему управления контентом в мире!
Присоединяйтесь к нам!
Пишите мне на почту igbogdanov_at_gmail_dot_com
С наилучшими пожеланиями, Богданов Игорь
Мы рады приветствовать Вас на сайте русскоязычной поддержки проекта Jaws.
В очень скором будущем сайт преобразится, но пока вашему вниманию предоставлен наш чудный форум.
Давайте формировать и использовать вместе нашу общую базу знаний по данному проекту и не только.
Форум для пользователей, разработчиков и просто интересующихся проектом Jaws
С уважением, Богданов Игорь автор проекта igbogdanov_at_gmail_dot_com