Чтение 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 для простейшего модуля должен быть такой код:

&lt;&#063;php<br /> # Ставим защиту на прямое обращение к файлу index.php через браузер.<br /> # Если браузером обратиться к файлу <br /> # http://www.ваш_сайт.com/modules/About_Company/index.php, то браузер<br /> # будет перенаправлен в корень сайта к файлу http://www.ваш_сайт.com/index.php<br /> if (!defined(&quot;MODULE_FILE&quot;)) { <br /> Header(&quot;Location: ../../index.php&quot;);<br /> exit;<br /> }<br /> <br /> # Название простейшего модуля, которое будет иметь вид «О компании - Название сайта».<br /> # Переменная &quot;defis&quot; задаётся в панели администратора на странице «Конфигурации»<br /> # в разделе «Настройки системы» &gt;&gt; «Основные конфигурации»<br /> # в опции «Символ, отделяющий титлы и заголовки». Рекомендуется<br /> # использовать разделитель «-». Переменная $pagetitle будет выводиться<br /> # в браузере в самой верхней строке, где указывается название странички.<br /> $pagetitle = &quot;&quot;.$conf[&quot;defis&quot;].&quot; О компании&quot;;<br /> <br /> # Вставляем в страничку «шапку» сайта, то есть его верхнюю часть,<br /> # которая будет одинаковой на всех страничках сайта.<br /> head();<br /> <br /> # Заголовок модуля, который вставляется<br /> # в страничку отдельной строкой над телом модуля.<br /> title(&quot;О компании&quot;);<br /> <br /> # Открываем таблицу<br /> open();<br /> <br /> # Выводим на страницу содержание модуля.<br /> echo &quot;Содержание модуля «О компании»&quot;;<br /> <br /> # Закрываем таблицу.<br /> close();<br /> <br /> # Вставляем в страницу «подвал» сайта, то есть его нижнюю часть,<br /> # которая будет одинаковой на всех страничках сайта.<br /> foot();<br /> &#063;&gt;


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

&lt;&#063;php<br /> if (!defined(&quot;MODULE_FILE&quot;)) { <br /> Header(&quot;Location: ../../index.php&quot;);<br /> exit;<br /> }<br /> <br /> $pagetitle = &quot;&quot;.$conf[&quot;defis&quot;].&quot; О компании&quot;;<br /> <br /> head();<br /> title(&quot;О компании&quot;);<br /> <br /> open();<br /> echo &quot;Содержание модуля «О компании»&quot;;<br /> close();<br /> <br /> foot();<br /> &#063;&gt;


В содержимое модуля можно вставлять не только текст, но и 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» в этом случае будет иметь вид:

&lt;&#063;php<br /> if (!defined(&quot;MODULE_FILE&quot;)) { <br /> Header(&quot;Location: ../../index.php&quot;);<br /> exit;<br /> }<br /> # Запрашиваем языковые файлы из директории «language» и автоматически выбираем<br /> # языковый файл, который соответствует активному языку сайта (русскому, например).<br /> get_lang($conf[&#039;name&#039;]);<br /> $pagetitle = &quot;&quot;.$conf[&quot;defis&quot;].&quot; &quot;._ABOUT_COMPANY_TITLE.&quot;&quot;;<br /> $bodytext = &quot;&quot;._ABOUT_COMPANY_TEXT.&quot;&quot;;<br /> head();<br /> title(&quot;&quot;._ABOUT_COMPANY_LOGO.&quot;&quot;);<br /> open();<br /> echo $bodytext;<br /> close();<br /> foot();<br /> &#063;&gt;


Без комментариев код модуля «About_Company», который работает на мультиязычном сайте, имеет вид:

&lt;&#063;php<br /> if (!defined(&quot;MODULE_FILE&quot;)) { <br /> Header(&quot;Location: ../../index.php&quot;);<br /> exit;<br /> }<br /> get_lang($conf[&#039;name&#039;]);<br /> $pagetitle = &quot;&quot;.$conf[&quot;defis&quot;].&quot; &quot;._ABOUT_COMPANY_TITLE.&quot;&quot;;<br /> $bodytext = &quot;&quot;._ABOUT_COMPANY_TEXT.&quot;&quot;;<br /> head();<br /> title(&quot;&quot;._ABOUT_COMPANY_LOGO.&quot;&quot;);<br /> open();<br /> echo $bodytext;<br /> close();<br /> foot();<br /> &#063;&gt;


Содержимое файла http://www.ваш_сайт.com/modules/About_Company/language/lang-russian.php такое, например:

&lt;&#063;php<br /> define(&quot;_ABOUT_COMPANY_TITLE&quot;,&quot;О компании&quot;);<br /> define(&quot;_ABOUT_COMPANY_LOGO&quot;,&quot;О компании&quot;);<br /> define(&quot;_ABOUT_COMPANY_TEXT&quot;,&quot;&lt;div align=center class=option&gt;Общая информация <br /> о компании&lt;/div&gt;&lt;p&gt;1.&amp;nbsp;Наша компания была зарегистрирована в 1995-м году <br /> в Москве. Учредителями компании являются частные и юридические лица. Список <br /> учредителей можно посмотреть &lt;a href=index.php&#063;name=About_Company&amp;op=founders&gt;<br /> здесь&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;2.&amp;nbsp;Наша компания занимается следующими видами <br /> деятельности:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Дизайн сайтов&lt;/li&gt;&lt;li&gt;WEB-программирование&lt;/li&gt;<br /> &lt;li&gt;Продвижение сайтов в Интернете&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;3.&amp;nbsp;Наш адрес и как с нами <br /> связаться:&lt;p&gt;&lt;ul&gt;123124 Москва, Кривоколдобинский переулок, дом 8, строение 3, <br /> корпус 5, 2-й подъезд, 4-й этаж, офис 18.&lt;p&gt;Телефон: (495) 123-45-67&lt;p&gt;<br /> Факс: (495) 123-45-68&lt;p&gt;Электронная почта: info@supersite.ru&lt;p&gt;<br /> Сайт: &lt;a href=http://www.supersite.ru/&gt;www.supersite.ru&lt;/a&gt;&lt;/ul&gt;&lt;/p&gt;<br /> &lt;p&gt;4.&amp;nbsp; Режим работы компании:&lt;p&gt;&lt;ul&gt;В рабочие дни (понедельник — пятница) — <br /> с 9:00 до 18:00, без перерыва на обед.&lt;p&gt;Суббота и воскресенье — выходные дни.&lt;/ul&gt;<br /> &lt;/p&gt;&lt;p&gt;5.&amp;nbsp;Схема проезда:&lt;p&gt;&lt;img src=modules/About_Company/images/map.gif <br /> width=240 height=200 border=0 alt=Схема title=Схема&gt;&lt;/p&gt;<br /> &lt;p&gt;6.&amp;nbsp;Фотография здания нашей компании:&lt;p&gt;<br /> &lt;img src=modules/About_Company/images/building.jpg width=300 height=250 border=0 <br /> alt=Здание title=Здание&gt;&lt;/p&gt;<br /> &lt;p&gt;7.&amp;nbsp;Фотография директора компании «SuperSite» Иванова Петра Сидоровича:&lt;p&gt;<br /> &lt;img src=modules/About_Company/images/director.jpg width=100 height=180 border=0 <br /> alt=Фотография title=Фотография&gt;&lt;/p&gt;&quot;);<br /> define(&quot;_ABOUT_COMPANY_FOUNDERS&quot;,&quot;&lt;div align=center class=option&gt;Учредители<br /> компании&lt;/div&gt;&lt;p&gt;Учредителями компании «SuperSite» являются частные и <br /> юридические лица. Список учредителей:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Иванов Пётр Сидорович&lt;/li&gt;<br /> &lt;li&gt;Демидов Николай Александрович&lt;/li&gt;&lt;li&gt;ЗАО «PromoInternet»&lt;/li&gt;<br /> &lt;li&gt;OАО «Star Design»&lt;/li&gt;&lt;/ul&gt;&quot;);<br /> &#063;&gt;


В языковых файлах 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» должен иметь вид:

&lt;&#063;php<br /> if (!defined(&quot;MODULE_FILE&quot;)) { <br /> Header(&quot;Location: ../../index.php&quot;);<br /> exit;<br /> }<br /> get_lang($conf[&#039;name&#039;]);<br /> $pagetitle = &quot;&quot;.$conf[&quot;defis&quot;].&quot; &quot;._ABOUT_COMPANY_TITLE.&quot;&quot;;<br /> head();<br /> title(&quot;&quot;._ABOUT_COMPANY_LOGO.&quot;&quot;);<br /> # Открываем таблицу<br /> open();<br /> # Создаём навигацию на страничке модуля <br /> echo &quot;&lt;div align=center&gt;&lt;b&gt;[ &lt;a href=index.php&#063;name=&quot;.$conf[&#039;name&#039;].&quot; &gt;Общая информация о компании&lt;/a&gt; | &lt;a href=index.php&#063;name=&quot;.$conf[&#039;name&#039;].&quot; &amp;op=founders&gt;Учредители компании&lt;/a&gt; ]&lt;/b&gt;&lt;/div&gt;&quot;;<br /> # Закрываем таблицу<br /> close();<br /> # C помощью оператора switch разделяем содержание<br /> # странички на несколько разделов<br /> switch($op) {<br /> default:<br /> main();<br /> break;<br /> <br /> case &quot;founders&quot;:<br /> founders();<br /> break;<br /> }<br /> # Создаём раздел main<br /> function main() {<br /> $bodytext = &quot;&quot;._ABOUT_COMPANY_TEXT.&quot;&quot;;<br /> open();<br /> echo $bodytext;<br /> close();<br /> }<br /> # Создаём раздел founders<br /> function founders() {<br /> $bodytext = &quot;&quot;._ABOUT_COMPANY_FOUNDERS.&quot;&quot;;<br /> open();<br /> echo $bodytext;<br /> close();<br /> }<br /> foot();<br /> &#063;&gt;


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

&lt;&#063;php<br /> if (!defined(&quot;MODULE_FILE&quot;)) { <br /> Header(&quot;Location: ../../index.php&quot;);<br /> exit;<br /> }<br /> get_lang($conf[&#039;name&#039;]);<br /> $pagetitle = &quot;&quot;.$conf[&quot;defis&quot;].&quot; &quot;._ABOUT_COMPANY_TITLE.&quot;&quot;;<br /> head();<br /> title(&quot;&quot;._ABOUT_COMPANY_LOGO.&quot;&quot;);<br /> open();<br /> echo &quot;&lt;div align=center&gt;&lt;b&gt;[ &lt;a href=index.php&#063;name=&quot;.$conf[&#039;name&#039;].&quot;&gt;Общая информация о компании&lt;/a&gt; | &lt;a href=index.php&#063;name=&quot;.$conf[&#039;name&#039;].&quot;&amp;op=founders&gt;Учредители компании&lt;/a&gt; ]&lt;/b&gt;&lt;/div&gt;&quot;;<br /> close();<br /> switch($op) {<br /> default:<br /> main();<br /> break;<br /> <br /> case &quot;founders&quot;:<br /> founders();<br /> break;<br /> }<br /> function main() {<br /> $bodytext = &quot;&quot;._ABOUT_COMPANY_TEXT.&quot;&quot;;<br /> open();<br /> echo $bodytext;<br /> close();<br /> }<br /> function founders() {<br /> $bodytext = &quot;&quot;._ABOUT_COMPANY_FOUNDERS.&quot;&quot;;<br /> open();<br /> echo $bodytext;<br /> close();<br /> }<br /> foot();<br /> &#063;&gt;


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

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


[url=http://bysmeta.ru/]bysmeta.ru[/url]
4

4

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

3.75

3.75

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

2.95

2.95

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

""И как сделать не удаляя ?""
это всегда должно быть.

04.02.2009 11:11:17

И как сделать не удаляя ?

if (!defined(&quot;MODULE_FILE&quot;)) { <br /> Header(&quot;Location: ../../index.php&quot;);<br /> exit;<br /> }

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
Идеи и предложения
Обратная связь