Создание собственного модуля
Чтобы создать собственный модуль для сайта, построенного с использованием SLAED, достаточно простейших знаний HTML и PHP, а также соблюдение их синтаксиса. Кроме этого потребуется правильная постановка задачи и внимательность. В качестве примера ниже приведены коды модулей, созданные для использования на всех версиях системы SLAED. При реализации модулей учитывайте, любой PHP код должен начинаться c <?php и заканчиваться ?>
1. Создание простейшего модуля
1.1. Представим себе, что Ваш сайт только на русском языке. Вы хотите для этого сайта сделать модуль «О компании». Для этого Вам нужно в директории http://www.ваш_сайт.com/modules/ создать поддиректорию «About_Company». В этой поддиректории должен находиться файл index.php. Вот как это должно выглядеть:
(Кроме модуля «About_Company» на скриншоте представлен ещё и модуль «Account».)
В файле index.php для простейшего модуля должен быть такой код:
Без комментариев код модуля «О компании» выглядит так:
В содержимое модуля можно вставлять не только текст, но и HTML-код, а также PHP-код. HTML-код нужно вставлять с соблюдением синтаксиса языка PHP.
1.2. Допустим, Вы хотите кроме текста на русском языке вставлять в модуль ещё и какие-то картинки. Для этого нужно добавить в директорию «About_Company» модуля «About_Company» поддиректорию «images», в которой будут храниться графические файлы. Структура директорий и файлов модуля «About_Company» будет выглядеть так:
building.jpg — это фотография здания компании
company_logo.gif — это логотип компании
director.jpg — это фотография директора фирмы
index.html — это пустой файл, который нужен для того, чтобы невозможно было просмотреть браузером содержимое директории «images»
map.gif — это карта проезда к зданию компании
Разумеется, могут быть и другие графические файлы. Вы можете задавать свои имена графическим файлам.
1.3. Предположим, что Ваш сайт не на одном языке (только на русском), а на нескольких языках (русском, английском и немецком). В этом случае структура директорий и файлов модуля «About_Company» будет выглядеть так:
language — это директория, содержащая в себе языковые файлы
.htaccess — этот файл запрещает всем доступ в директорию «language», в этом файле должна быть такая строка:
Файл .htaccess нужно создавать, редактировать и сохранять только в программе «Блокнот» (Notepad) под Windows, так как этот файл должен быть сохранён в кодировке Unix, что обеспечивает его правильную работу на web-сервере, использующего операционную систему Unix или ей подобную (Linux, FreeBSD).
index.html — это пустой файл, который нужен для того, чтобы невозможно было просмотреть браузером содержимое директории «language»
lang-english.php — языковый файл модуля на английском языке
lang-german.php — языковый файл модуля на немецком языке
lang-russian.php — языковый файл модуля на русском языке
Код модуля «About_Company» в этом случае будет иметь вид:
Без комментариев код модуля «About_Company», который работает на мультиязычном сайте, имеет вид:
Содержимое файла http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php такое, например:
В языковых файлах lang-english.php и lang-german.php информация, представленная в файле lang-russian.php, должны быть переведена на соответствующие языки.
В данном примере всё содержимое (контент) и внутреннее оформление (дизайн) модуля «About_Company» находится в языковых файлах. Для более сложного содержимого модуля (таблицы, например) целесообразно размещать HTML-код в файле index.php модуля «About_Company», а в языковые файлы нужно выносить только языковые константы (define("_ABOUT_COMPANY_TITLE","О компании");, например), что существенно облегчит работу с языковыми файлами, а также позволитс меньшими затратами времени вносить изменения в контент и дизайн модуля.
1.4. Для доступа к страничке со списком учредителей компании нужно применить оператор switch.
Код файла index.php модуля «About_Company» должен иметь вид:
Без комментариев код модуля «About_Company» будет выглядеть так:
В языковом файле http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php (а также в файлы lang-german.php и lang-russian.php) должна быть языковая константа _ABOUT_COMPANY_FOUNDERS. Файл lang-russian.php будет иметь вид, как было указано выше.
Указанный модуль не хранит информацию в базе данных, что позволяет чуть быстрее выводить эту информацию на страничку в браузер посетителя сайта, к тому же такой способ хранения информации меньше загружает MySQL-сервер хостера.
Для внесения новой информации, для редактирования существующей информации в файлах модуля (языковые файлы http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php) требуются начальные знания синтаксиса HTML и PHP.
Автор: Кирилл Мезинцев
1. Создание простейшего модуля
1.1. Представим себе, что Ваш сайт только на русском языке. Вы хотите для этого сайта сделать модуль «О компании». Для этого Вам нужно в директории http://www.ваш_сайт.com/modules/ создать поддиректорию «About_Company». В этой поддиректории должен находиться файл index.php. Вот как это должно выглядеть:
(Кроме модуля «About_Company» на скриншоте представлен ещё и модуль «Account».)
В файле index.php для простейшего модуля должен быть такой код:
<?php
# Ставим защиту на прямое обращение к файлу index.php через браузер.
# Если браузером обратиться к файлу
# http://www.ваш_сайт.com/modules/About_Company/index.php, то браузер
# будет перенаправлен в корень сайта к файлу http://www.ваш_сайт.com/index.php
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
# Название простейшего модуля, которое будет иметь вид «О компании - Название сайта».
# Переменная "defis" задаётся в панели администратора на странице «Конфигурации»
# в разделе «Настройки системы» >> «Основные конфигурации»
# в опции «Символ, отделяющий титлы и заголовки». Рекомендуется
# использовать разделитель «-». Переменная $pagetitle будет выводиться
# в браузере в самой верхней строке, где указывается название странички.
$pagetitle = "".$conf["defis"]." О компании";
# Вставляем в страничку «шапку» сайта, то есть его верхнюю часть,
# которая будет одинаковой на всех страничках сайта.
head();
# Заголовок модуля, который вставляется
# в страничку отдельной строкой над телом модуля.
title("О компании");
# Открываем таблицу
open();
# Выводим на страницу содержание модуля.
echo "Содержание модуля «О компании»";
# Закрываем таблицу.
close();
# Вставляем в страницу «подвал» сайта, то есть его нижнюю часть,
# которая будет одинаковой на всех страничках сайта.
foot();
?>
# Ставим защиту на прямое обращение к файлу index.php через браузер.
# Если браузером обратиться к файлу
# http://www.ваш_сайт.com/modules/About_Company/index.php, то браузер
# будет перенаправлен в корень сайта к файлу http://www.ваш_сайт.com/index.php
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
# Название простейшего модуля, которое будет иметь вид «О компании - Название сайта».
# Переменная "defis" задаётся в панели администратора на странице «Конфигурации»
# в разделе «Настройки системы» >> «Основные конфигурации»
# в опции «Символ, отделяющий титлы и заголовки». Рекомендуется
# использовать разделитель «-». Переменная $pagetitle будет выводиться
# в браузере в самой верхней строке, где указывается название странички.
$pagetitle = "".$conf["defis"]." О компании";
# Вставляем в страничку «шапку» сайта, то есть его верхнюю часть,
# которая будет одинаковой на всех страничках сайта.
head();
# Заголовок модуля, который вставляется
# в страничку отдельной строкой над телом модуля.
title("О компании");
# Открываем таблицу
open();
# Выводим на страницу содержание модуля.
echo "Содержание модуля «О компании»";
# Закрываем таблицу.
close();
# Вставляем в страницу «подвал» сайта, то есть его нижнюю часть,
# которая будет одинаковой на всех страничках сайта.
foot();
?>
Без комментариев код модуля «О компании» выглядит так:
<?php
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
$pagetitle = "".$conf["defis"]." О компании";
head();
title("О компании");
open();
echo "Содержание модуля «О компании»";
close();
foot();
?>
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
$pagetitle = "".$conf["defis"]." О компании";
head();
title("О компании");
open();
echo "Содержание модуля «О компании»";
close();
foot();
?>
В содержимое модуля можно вставлять не только текст, но и HTML-код, а также PHP-код. HTML-код нужно вставлять с соблюдением синтаксиса языка PHP.
1.2. Допустим, Вы хотите кроме текста на русском языке вставлять в модуль ещё и какие-то картинки. Для этого нужно добавить в директорию «About_Company» модуля «About_Company» поддиректорию «images», в которой будут храниться графические файлы. Структура директорий и файлов модуля «About_Company» будет выглядеть так:
building.jpg — это фотография здания компании
company_logo.gif — это логотип компании
director.jpg — это фотография директора фирмы
index.html — это пустой файл, который нужен для того, чтобы невозможно было просмотреть браузером содержимое директории «images»
map.gif — это карта проезда к зданию компании
Разумеется, могут быть и другие графические файлы. Вы можете задавать свои имена графическим файлам.
1.3. Предположим, что Ваш сайт не на одном языке (только на русском), а на нескольких языках (русском, английском и немецком). В этом случае структура директорий и файлов модуля «About_Company» будет выглядеть так:
language — это директория, содержащая в себе языковые файлы
.htaccess — этот файл запрещает всем доступ в директорию «language», в этом файле должна быть такая строка:
deny from all
Файл .htaccess нужно создавать, редактировать и сохранять только в программе «Блокнот» (Notepad) под Windows, так как этот файл должен быть сохранён в кодировке Unix, что обеспечивает его правильную работу на web-сервере, использующего операционную систему Unix или ей подобную (Linux, FreeBSD).
index.html — это пустой файл, который нужен для того, чтобы невозможно было просмотреть браузером содержимое директории «language»
lang-english.php — языковый файл модуля на английском языке
lang-german.php — языковый файл модуля на немецком языке
lang-russian.php — языковый файл модуля на русском языке
Код модуля «About_Company» в этом случае будет иметь вид:
<?php
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
# Запрашиваем языковые файлы из директории «language» и автоматически выбираем
# языковый файл, который соответствует активному языку сайта (русскому, например).
get_lang($conf['name']);
$pagetitle = "".$conf["defis"]." "._ABOUT_COMPANY_TITLE."";
$bodytext = ""._ABOUT_COMPANY_TEXT."";
head();
title(""._ABOUT_COMPANY_LOGO."");
open();
echo $bodytext;
close();
foot();
?>
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
# Запрашиваем языковые файлы из директории «language» и автоматически выбираем
# языковый файл, который соответствует активному языку сайта (русскому, например).
get_lang($conf['name']);
$pagetitle = "".$conf["defis"]." "._ABOUT_COMPANY_TITLE."";
$bodytext = ""._ABOUT_COMPANY_TEXT."";
head();
title(""._ABOUT_COMPANY_LOGO."");
open();
echo $bodytext;
close();
foot();
?>
Без комментариев код модуля «About_Company», который работает на мультиязычном сайте, имеет вид:
<?php
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
get_lang($conf['name']);
$pagetitle = "".$conf["defis"]." "._ABOUT_COMPANY_TITLE."";
$bodytext = ""._ABOUT_COMPANY_TEXT."";
head();
title(""._ABOUT_COMPANY_LOGO."");
open();
echo $bodytext;
close();
foot();
?>
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
get_lang($conf['name']);
$pagetitle = "".$conf["defis"]." "._ABOUT_COMPANY_TITLE."";
$bodytext = ""._ABOUT_COMPANY_TEXT."";
head();
title(""._ABOUT_COMPANY_LOGO."");
open();
echo $bodytext;
close();
foot();
?>
Содержимое файла http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php такое, например:
<?php
define("_ABOUT_COMPANY_TITLE","О компании");
define("_ABOUT_COMPANY_LOGO","О компании");
define("_ABOUT_COMPANY_TEXT","<div align=center class=option>Общая информация
о компании</div><p>1. Наша компания была зарегистрирована в 1995-м году
в Москве. Учредителями компании являются частные и юридические лица. Список
учредителей можно посмотреть <a href=index.php?name=About_Company&op=founders>
здесь</a>.</p><p>2. Наша компания занимается следующими видами
деятельности:</p><ul><li>Дизайн сайтов</li><li>WEB-программирование</li>
<li>Продвижение сайтов в Интернете</li></ul><p>3. Наш адрес и как с нами
связаться:<p><ul>123124 Москва, Кривоколдобинский переулок, дом 8, строение 3,
корпус 5, 2-й подъезд, 4-й этаж, офис 18.<p>Телефон: (495) 123-45-67<p>
Факс: (495) 123-45-68<p>Электронная почта: info@supersite.ru<p>
Сайт: <a href=http://www.supersite.ru/>www.supersite.ru</a></ul></p>
<p>4. Режим работы компании:<p><ul>В рабочие дни (понедельник — пятница) —
с 9:00 до 18:00, без перерыва на обед.<p>Суббота и воскресенье — выходные дни.</ul>
</p><p>5. Схема проезда:<p><img src=modules/About_Company/images/map.gif
width=240 height=200 border=0 alt=Схема title=Схема></p>
<p>6. Фотография здания нашей компании:<p>
<img src=modules/About_Company/images/building.jpg width=300 height=250 border=0
alt=Здание title=Здание></p>
<p>7. Фотография директора компании «SuperSite» Иванова Петра Сидоровича:<p>
<img src=modules/About_Company/images/director.jpg width=100 height=180 border=0
alt=Фотография title=Фотография></p>");
define("_ABOUT_COMPANY_FOUNDERS","<div align=center class=option>Учредители
компании</div><p>Учредителями компании «SuperSite» являются частные и
юридические лица. Список учредителей:</p><ul><li>Иванов Пётр Сидорович</li>
<li>Демидов Николай Александрович</li><li>ЗАО «PromoInternet»</li>
<li>OАО «Star Design»</li></ul>");
?>
define("_ABOUT_COMPANY_TITLE","О компании");
define("_ABOUT_COMPANY_LOGO","О компании");
define("_ABOUT_COMPANY_TEXT","<div align=center class=option>Общая информация
о компании</div><p>1. Наша компания была зарегистрирована в 1995-м году
в Москве. Учредителями компании являются частные и юридические лица. Список
учредителей можно посмотреть <a href=index.php?name=About_Company&op=founders>
здесь</a>.</p><p>2. Наша компания занимается следующими видами
деятельности:</p><ul><li>Дизайн сайтов</li><li>WEB-программирование</li>
<li>Продвижение сайтов в Интернете</li></ul><p>3. Наш адрес и как с нами
связаться:<p><ul>123124 Москва, Кривоколдобинский переулок, дом 8, строение 3,
корпус 5, 2-й подъезд, 4-й этаж, офис 18.<p>Телефон: (495) 123-45-67<p>
Факс: (495) 123-45-68<p>Электронная почта: info@supersite.ru<p>
Сайт: <a href=http://www.supersite.ru/>www.supersite.ru</a></ul></p>
<p>4. Режим работы компании:<p><ul>В рабочие дни (понедельник — пятница) —
с 9:00 до 18:00, без перерыва на обед.<p>Суббота и воскресенье — выходные дни.</ul>
</p><p>5. Схема проезда:<p><img src=modules/About_Company/images/map.gif
width=240 height=200 border=0 alt=Схема title=Схема></p>
<p>6. Фотография здания нашей компании:<p>
<img src=modules/About_Company/images/building.jpg width=300 height=250 border=0
alt=Здание title=Здание></p>
<p>7. Фотография директора компании «SuperSite» Иванова Петра Сидоровича:<p>
<img src=modules/About_Company/images/director.jpg width=100 height=180 border=0
alt=Фотография title=Фотография></p>");
define("_ABOUT_COMPANY_FOUNDERS","<div align=center class=option>Учредители
компании</div><p>Учредителями компании «SuperSite» являются частные и
юридические лица. Список учредителей:</p><ul><li>Иванов Пётр Сидорович</li>
<li>Демидов Николай Александрович</li><li>ЗАО «PromoInternet»</li>
<li>OАО «Star Design»</li></ul>");
?>
В языковых файлах lang-english.php и lang-german.php информация, представленная в файле lang-russian.php, должны быть переведена на соответствующие языки.
В данном примере всё содержимое (контент) и внутреннее оформление (дизайн) модуля «About_Company» находится в языковых файлах. Для более сложного содержимого модуля (таблицы, например) целесообразно размещать HTML-код в файле index.php модуля «About_Company», а в языковые файлы нужно выносить только языковые константы (define("_ABOUT_COMPANY_TITLE","О компании");, например), что существенно облегчит работу с языковыми файлами, а также позволитс меньшими затратами времени вносить изменения в контент и дизайн модуля.
1.4. Для доступа к страничке со списком учредителей компании нужно применить оператор switch.
Код файла index.php модуля «About_Company» должен иметь вид:
<?php
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
get_lang($conf['name']);
$pagetitle = "".$conf["defis"]." "._ABOUT_COMPANY_TITLE."";
head();
title(""._ABOUT_COMPANY_LOGO."");
# Открываем таблицу
open();
# Создаём навигацию на страничке модуля
echo "<div align=center><b>[ <a href=index.php?name=".$conf['name']." >Общая информация о компании</a> | <a href=index.php?name=".$conf['name']." &op=founders>Учредители компании</a> ]</b></div>";
# Закрываем таблицу
close();
# C помощью оператора switch разделяем содержание
# странички на несколько разделов
switch($op) {
default:
main();
break;
case "founders":
founders();
break;
}
# Создаём раздел main
function main() {
$bodytext = ""._ABOUT_COMPANY_TEXT."";
open();
echo $bodytext;
close();
}
# Создаём раздел founders
function founders() {
$bodytext = ""._ABOUT_COMPANY_FOUNDERS."";
open();
echo $bodytext;
close();
}
foot();
?>
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
get_lang($conf['name']);
$pagetitle = "".$conf["defis"]." "._ABOUT_COMPANY_TITLE."";
head();
title(""._ABOUT_COMPANY_LOGO."");
# Открываем таблицу
open();
# Создаём навигацию на страничке модуля
echo "<div align=center><b>[ <a href=index.php?name=".$conf['name']." >Общая информация о компании</a> | <a href=index.php?name=".$conf['name']." &op=founders>Учредители компании</a> ]</b></div>";
# Закрываем таблицу
close();
# C помощью оператора switch разделяем содержание
# странички на несколько разделов
switch($op) {
default:
main();
break;
case "founders":
founders();
break;
}
# Создаём раздел main
function main() {
$bodytext = ""._ABOUT_COMPANY_TEXT."";
open();
echo $bodytext;
close();
}
# Создаём раздел founders
function founders() {
$bodytext = ""._ABOUT_COMPANY_FOUNDERS."";
open();
echo $bodytext;
close();
}
foot();
?>
Без комментариев код модуля «About_Company» будет выглядеть так:
<?php
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
get_lang($conf['name']);
$pagetitle = "".$conf["defis"]." "._ABOUT_COMPANY_TITLE."";
head();
title(""._ABOUT_COMPANY_LOGO."");
open();
echo "<div align=center><b>[ <a href=index.php?name=".$conf['name'].">Общая информация о компании</a> | <a href=index.php?name=".$conf['name']."&op=founders>Учредители компании</a> ]</b></div>";
close();
switch($op) {
default:
main();
break;
case "founders":
founders();
break;
}
function main() {
$bodytext = ""._ABOUT_COMPANY_TEXT."";
open();
echo $bodytext;
close();
}
function founders() {
$bodytext = ""._ABOUT_COMPANY_FOUNDERS."";
open();
echo $bodytext;
close();
}
foot();
?>
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
get_lang($conf['name']);
$pagetitle = "".$conf["defis"]." "._ABOUT_COMPANY_TITLE."";
head();
title(""._ABOUT_COMPANY_LOGO."");
open();
echo "<div align=center><b>[ <a href=index.php?name=".$conf['name'].">Общая информация о компании</a> | <a href=index.php?name=".$conf['name']."&op=founders>Учредители компании</a> ]</b></div>";
close();
switch($op) {
default:
main();
break;
case "founders":
founders();
break;
}
function main() {
$bodytext = ""._ABOUT_COMPANY_TEXT."";
open();
echo $bodytext;
close();
}
function founders() {
$bodytext = ""._ABOUT_COMPANY_FOUNDERS."";
open();
echo $bodytext;
close();
}
foot();
?>
В языковом файле http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php (а также в файлы lang-german.php и lang-russian.php) должна быть языковая константа _ABOUT_COMPANY_FOUNDERS. Файл lang-russian.php будет иметь вид, как было указано выше.
Указанный модуль не хранит информацию в базе данных, что позволяет чуть быстрее выводить эту информацию на страничку в браузер посетителя сайта, к тому же такой способ хранения информации меньше загружает MySQL-сервер хостера.
Для внесения новой информации, для редактирования существующей информации в файлах модуля (языковые файлы http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php) требуются начальные знания синтаксиса HTML и PHP.
Автор: Кирилл Мезинцев
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...