Ник:
Пароль:

Download Open SLAED

Open SLAED 1.1 Open SLAED 1.1

Поиск по сайту

Поиск

Рекламные ссылки

Open SLAED
Мы будем Вам признательны, если Вы поддержите проект Open SLAED и используя Ваши возможности, разместите наш пресс-релиз на страницах своих сайтов, проектов, форумов, блогов. Текст пресс-релиза, возможно, видоизменить под Ваш формат, не искажая смысл. Пресс-релиз можно взять на данной странице.
Статьи
Статьи » Модули
Создание собственного модуля
Использование и изготовление модулей Чтобы создать собственный модуль для сайта, построенного с использованием SLAED, достаточно простейших знаний HTML и PHP, а также соблюдение их синтаксиса. Кроме этого потребуется правильная постановка задачи и внимательность. В качестве примера ниже приведены коды модулей, созданные для использования на всех версиях системы SLAED. При реализации модулей учитывайте, любой PHP код должен начинаться c <?php и заканчиваться ?>

1. Создание простейшего модуля

1.1. Представим себе, что Ваш сайт только на русском языке. Вы хотите для этого сайта сделать модуль «О компании». Для этого Вам нужно в директории http://www.ваш_сайт.com/modules/ создать поддиректорию «About_Company». В этой поддиректории должен находиться файл index.php. Вот как это должно выглядеть:

Структура каталогов и файлов модуля About_Company - Пример 1

(Кроме модуля «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();
?>


Без комментариев код модуля «О компании» выглядит так:

Код
<?php
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» будет выглядеть так:

Структура каталогов и файлов модуля About_Company - Пример 2

building.jpg — это фотография здания компании
company_logo.gif — это логотип компании
director.jpg — это фотография директора фирмы
index.html — это пустой файл, который нужен для того, чтобы невозможно было просмотреть браузером содержимое директории «images»
map.gif — это карта проезда к зданию компании

Разумеется, могут быть и другие графические файлы. Вы можете задавать свои имена графическим файлам.

1.3. Предположим, что Ваш сайт не на одном языке (только на русском), а на нескольких языках (русском, английском и немецком). В этом случае структура директорий и файлов модуля «About_Company» будет выглядеть так:

Структура каталогов и файлов модуля About_Company - Пример 3

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();
?>


Без комментариев код модуля «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();
?>


Содержимое файла 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.&nbsp;Наша компания была зарегистрирована в 1995-м году
в Москве. Учредителями компании являются частные и юридические лица. Список
учредителей можно посмотреть <a href=index.php?name=About_Company&op=founders>
здесь</a>.</p><p>2.&nbsp;Наша компания занимается следующими видами
деятельности:</p><ul><li>Дизайн сайтов</li><li>WEB-программирование</li>
<li>Продвижение сайтов в Интернете</li></ul><p>3.&nbsp;Наш адрес и как с нами
связаться:<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.&nbsp; Режим работы компании:<p><ul>В рабочие дни (понедельник — пятница) —
с 9:00 до 18:00, без перерыва на обед.<p>Суббота и воскресенье — выходные дни.</ul>
</p><p>5.&nbsp;Схема проезда:<p><img src=modules/About_Company/images/map.gif
width=240 height=200 border=0 alt=Схема title=Схема></p>
<p>6.&nbsp;Фотография здания нашей компании:<p>
<img src=modules/About_Company/images/building.jpg width=300 height=250 border=0
alt=Здание title=Здание></p>
<p>7.&nbsp;Фотография директора компании «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();
?>


Без комментариев код модуля «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();
?>


В языковом файле 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.

Автор: Кирилл Мезинцев

Дополнительно по данной категории

10.07.2007 - Интеграция модулей PHP-Nuke в систему SLAED
obmen86
Добавлено 07.09.2008 08:04 Комментарий: 3
obmen86
Ранг
5

Группа: Клиенты
Пункты: 587
Регистрация: 19.08.2008
Пол: Мужчина
Из: Россия, Сургут
Спасибо.
Очень помогло!

86school34.info
Спуститься к концу Подняться к началу
Персональная информация Посетить сайт
f0b05
Добавлено 28.03.2008 17:09 Комментарий: 2
f0b05
Ранг
3.4

Группа: Посетители
Пункты: 879
Регистрация: 01.04.2007
оперативненько, большое спасибо !
Спуститься к концу Подняться к началу
Персональная информация
rocksmart
Добавлено 27.03.2008 03:27 Комментарий: 1
rocksmart
Ранг
2.6

Группа: Пользователи
Пункты: 1991
Регистрация: 02.11.2007
Все думал, как из скрипта который состоит из двух файлов сделать модуль под Slaed . Теперь знаю

Работаю со следами 2.5, 3.5, Open Slaed.....
Спуститься к концу Подняться к началу
Персональная информация
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.

Сотовые Аксессуары

Опрос

Какую версию системы вы используете?

Версия 1.5 Reloaded
Версия 1.4 Meteora
Версия 1.3
Версия 1.2 или ниже
Пока никакую


Результаты
Другие опросы

Всего голосов: 523
Комментарии: 23
Счетчик посещения страниц и уникальных посетителей в сутки SLAED CMS - Content Management System Экспорт новостей в формате RSS Anti Spam