Чтение RSS каналов

Статьи

Статьи

Категории

Устройство
Устройство
Обучающее руководство
Темы
Темы
Оформление и компоненты дизайна
Модули
Модули
Использование и изготовление модулей
Блоки
Блоки
Использование и изготовление блоков
Документация
Документация
Описание функций и модулей
Информация
Информация
Полезная информация для администратора

Общее количество: 59 страниц в 8 категориях

Создание собственного модуля

Использование и изготовление модулей Чтобы создать собственный модуль для сайта, построенного с использованием 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.

Автор: Кирилл Мезинцев
3.35
124
Назад

Комментарии

3.24

3.24
deather, да, конечно, такая возможность тоже есть. Можно создать собственный блок и выводить любую, необходимую вам информацию. Подробнее о создании своего блока можно узнать в данном отделе или как вариант, скачать и установить готовый блок из нашего каталога файлов.

О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
3

3
Меня интересует можно ли создать на главной ленту в виде блока, чтоб выводились статьи из определенной категории? Не из всего модуля файлов а чисто из конкретных?
4

4
Полезный урок!
3.89

3.89
А как сделать,чтобы было 2 или более списков учредителей?
2.95

2.95
отличная статья сделал пару своих модулей по ней Смайл - 04

""И как сделать не удаляя ?""
это всегда должно быть.
04.02.2009 11:11:17
И как сделать не удаляя ?
if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
07.09.2008 08:04:29
Спасибо.
Очень помогло!

86school34.info
28.03.2008 17:09:43
оперативненько, большое спасибо !
27.03.2008 03:27:56
Все думал, как из скрипта который состоит из двух файлов сделать модуль под Slaed . Теперь знаю
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь