Документация SGEngine 2.2
1. ВведениеSGEngine - это многофункциональный и гибкий в настройке "движок" для сайта, написанный на языке Web-программирования Perl.
Итак, если Вы только начинающий вэб-мастер, то вполне можете без чей-либо помощи установить движок SGEngine и воспользоваться одним из готовых шаблонов. Если же Вы являетесь гуру HTML, ну или хотя бы немного знакомы с ним, то Вам по силам создать свой дизайн и пользоваться готовыми модулями. Ну а если Вы, кроме того, работаете с языком программирования Perl, то можете сами создавать модули к Вашему новому сайту! 2. Что нового
+ Captcha - защита от спам-роботов в гостевой и комментариях к новостям Данная документация изменяется с каждой версией, чтобы получить наиболее обширное и понятное представление о нововведениях в последней версии движка, советуем ознакомиться с вариантом документации, где все изменения отмечены цветом. 3. Установка3.1 Обновление предыдущих версийЕсли у Вас была установлена версия SGEngine 1.1 и ниже, то учтите, что текущая версия поверх нее НЕ станет! Однако можете сохранить базы новостей, комментариев и гостевой, их можно будет перевести в новый формат позже. Для того чтобы установить новую версию движка со старыми базами проделайте следующее:
Если у Вас была установлена версия 2.0 и выше, то необходимо проделать следующие шаги:
3.2 Новая установка
3.3 Завершение инсталляцииЕсли установка прошла удачно, то не забудьте удалить скрипты cbase.pl и setup.pl, или переместить их в каталог, откуда никто другой кроме Вас не сможет их запустить. Если же возникли проблемы, то обращайтесь на наш форум. 4. Устройство и основные функцииДвижок SGEngine написан на языке программирования Perl, среди основных, отличительных качеств которого является быстрая и гибкая работа с текстовыми файлами. Весь пакет состоит из двух видов документов:
Шаблоны состоят только из контентных файлов. Модули, в свою очередь, это скрипты, которые используют модульные шаблоны для вывода информации. 4.1 Структура файлов и директорий
4.2 ШаблоныКаждый шаблон движка SGEngine представляет собой набор текстовых файлов написанных на языке html, а также файла каскадных таблиц. Файл каскадных таблиц находится в каталоге /www/css. Файлы html лежат в подкаталоге, имеющим уникальное имя и являющимся названием шаблона, каталога tmpl, и делятся на две группы:
СтруктурныеЭти файлы шаблона, кроме стандартных html-тэгов, содержат внутренние тэги движка, которые позволяют подставить на их место другой файл шаблона, запустить на этом месте модуль или подставить переменную из языкового пакета. Если подставляемый файл шаблона также имеет внутренние тэги, то они тоже будут обработаны. По умолчанию позволено иметь 10 вложенных уровней, это число можно изменить в конфигурационном файле. В структурных шаблонах используются следующие внутренние тэги:
МодульныеЭти шаблоны используются модулями и имеют расширение .tmpl, их основная задача облегчить создание и правку дизайна сайта. С ними не нужно каждый раз залезать в код модулей и выискивать html строки. Каждый модуль может использовать по несколько шаблонов и даже иметь общие с другими, что опять же экономит время на исправление. Модульный шаблон также как и структурный представляет собой текст с разметкой html, в определенные части которого вставляются переменные модуля. Все эти переменные описаны в начале модульного шаблона и имеют вид: [%VARIABLE%]. Важные области шаблона активно используемые модулями выделены <!--AREA--><!--END:AREA-->. Установка шаблонаПосетитель сайта может выбрать один из шаблонов для постоянного пользования. Шаблон устанавливается по ссылке, построенной следующим образом: http://www.your_domain.zone/language/set_template/template Где, language - вид языка(ru, en, de) Данное слово абсолютно идентично с названием каталога, где хранятся базы и логи движка, зависимые от языка, а также каталога с текстовыми и HTML файлами; Имя этого шаблона записывается в файл cookie, которые должны быть разрешены браузером. Это дает возможность каждому посетителю установить понравившийся шаблон и видеть сайт в том виде, в котором он ему больше всего приглянулся. 4.3 МодулиМодули - это написанные на языке программирования Perl исполняемые скрипты. Они придают сайту, работающему на движке SGEngine, динамичность. По сути, модули не являются автономными программами, это лишь кусок кода, который вызывается из основного скрипта index.pl. Поэтому, чтобы создать свой модуль нужно знать следующее:
Параметры могут быть переданы модулю через ссылку. Например: http://www.your_domain.zone/language/module/param_1/param_2/.../param_n Где, language - вид языка(ru, en, de) Данное слово абсолютно идентично с названием каталога, где хранятся базы и логи движка, зависимые от языка, а также каталога с текстовыми и HTML файлами; 4.4 Файл конфигурацийФайл конфигураций config.ini хранит основные настройки движка. Он будет создан "Мастером установки"(setup.pl) во время инсталляции. Этот файл состоит из игнорируемых движком строк комментариев, начинающихся со знака #, а также строк, определяющих переменные конфигурации. Такие строки имеют вид: имя_переменной значение_переменной Кроме того, в конфигурационном файле работают "альясы", которые обозначены %alias%. Это переменные, определенные раньше. Например: path /home/sgengine2 В этом случае переменная log_dir будет иметь значение /home/sgengine2/log 4.5 Многоязыковая поддержкаФайл языкового пакета построен по подобию файла конфигураций см. 4.4 Файл конфигураций. Посетитель сайта имеет возможность выбрать, на каком языке будет отображаться содержимое сайта. Язык устанавливается по ссылке, построенной следующим образом: http://www.your_domain.zone/old_language/set_lng/new_language Где, old_language, new_language - вид языка (ru, en, de). Данное слово абсолютно идентично с названием каталога, где хранятся базы и логи движка, зависимые от языка, а также каталога с текстовыми и HTML файлами; Для того чтобы выбранный язык language был активен во всех частях сайта необходимо исполнение следующих условий:
Однако если условие 2 и 3 не выполнено или выполнено не полностью, сайт будет все-равно работать корректно и без ошибок! Например, Вы решили не писать новости на немецком языке, тогда Вы не кладете базу новостей в каталог /log/de. Во время обработки файлов, движок не найдет немецкую базу и будет использовать файл находящийся в каталоге языка, выставленного по умолчанию /log/ru. То же самое действительно для текстовых и HTML файлов. Важно! Относительные ссылки внутри структурных и модульных шаблонов не должны содержать вид языка, так как движок сам подставляет его во время обработки. Обычные html файлы тоже могут использовать эту возможность. Например, ссылаясь на модуль гостевой книги, достаточно указать /guestbook. 4.6 Текстовые и html файлыДвижок SGEngine позволяет выводить обычные текстовые и html файлы в динамической части сайта с помощью модуля 5.1 Вывод текстовых и HTML файлов, либо через соответствующий внутренний тэг <engine txt{file.html}>. При этом html файлы будут выведены в соответствии с html разметкой, а вот текстовые файлы, которые должны обязательно иметь расширение .txt, так как есть! То есть, если в текстовом файле стоит абзац, пробел или перевод строки, то на сайте будет отображен абзац, пробел и перевод строки. 4.7 АдминистрированиеДля управления движком SGEngine предусмотрена специальная административная часть сайта со своими модулями. Она закрыта для обычного посетителя паролем. Доступ к этой области имеют только следующие виды пользователей:
Администратор может добавлять, удалять модераторов, понижать и повышать их в ранге, а также определяет, какие именно модули те имеют право запускать. Также он видит все новости выложенные на сайте. Модератору же доступны только те новости, которые он добавил сам. Административная часть обязательно должна быть защищена паролем. Не авторизированные пользователи не имеют доступ к этой части движка. Для организации доступа используется файл /cgi-bin/.htaccess 5 Модули, входящие в пакетSGEngine обладает солидным пакетом уже готовых модулей, которых вполне хватает для полноценной работы многих сайтов. С каждой версией движка, модули обновляются и улучшаются, их список постоянно растет. 5.1 Общедоступные модулиЭта группа модулей доступна всем посетителям сайта Новостная лентаЭтот модуль выводит новости в виде ленты. Количество выводимых новостей настраивается в конфигурационном файле. Если в новости присутствует тэг <!--cut-->, то после него текст выводиться не будет, а будет выведена ссылка "Читать дальше". Это позволяет обрезать очень длинные новости, чтобы не "раздувать" ленту. Просмотр новостиВыводит полный текст новости, уникальный номер которой передается параметром. Тэг <!--cut--> этим модулем игнорируется. Архив новостейВыводит новости в виде более сокращенной ленты. Новость обрезается по тэгам <!--cut--> и <br>. Внизу выводится линейка со страницами. Из этого модуля доступны все новости. Комментарии к новостиВыводит новость полностью и все комментарии к нему. С помощью формы, этот модуль позволяет посетителям оставлять комментарии к новости на сайте. Форма использует смайлы, которые можно отключить, изменив соответствующую переменную в файле конфигураций. Модуль записывает также IP адрес автора каждого сообщения. Если посетитель будет обнаружен в бан-листе, то оставлять комментарии он не сможет. Если в сообщении будет найдено запрещенное слово, то сообщение не будет отправлено. Комментарии защищены модулем 5.1 Captcha - защита от спам-роботов RSS - лента новостейВыводит новостную ленту в формате RSS. URL запроса выглядит следующим образом: http://www.your_domain.zone/language/rss Где, language - вид языка (ru, en, de), на котором будет выводиться лента новостей. Условие - наличие базы новостей в языковой папке; Вывод текстовых и HTML файловЭтот модуль позволяет выводить текстовые и html файлы. Путь к текстовому файлу передается параметром. Если текстовый файл не будет найден в директории языка, который выбрал посетитель, то модуль выведет файл, находящийся в директории языка по умолчанию. Важно! Передаваемый путь не должен включать в себя сам каталог языка! Также см. 4.5 Текстовые и html файлы Форма обратной связиВыводит форму, которая позволяет посетителям сайта отправить Е-Мэйл на адрес администратора, указанного в файле конфигураций. Это надежный способ скрыть электронный адрес от спам-роботов. Загрузка файлов с сервераЭтот модуль позволяет посетителям скачивать файлы с сайта и при этом вести лог с количеством скачиваний. При этом сам каталог, откуда происходит загрузка, остается невидимым для скачивающего и определяется в файле конфигураций. Ссылка на файл, например archiv.zip, должна выглядеть следующим образом: /dl/archiv.zip Последняя дата обновленияВыводит последнюю дату обновления, которая записывается модулем добавления новостей в отдельный лог-файл. Гостевая книгаМодуль гостевой книги позволяет посетителям сайта оставлять свои сообщения и пожелания. Сообщения выводятся в виде ленты с линейкой страниц. Количество сообщений на страницу определяется в файле конфигураций. Модуль записывает также IP адрес автора каждого сообщения. Если посетитель будет обнаружен в бан-листе, то писать в гостевую книгу он не сможет. Если в сообщении будет найдено запрещенное слово, то сообщение не будет отправлено. Гостевая книга защищена модулем 5.1 Captcha - защита от спам-роботов Поиск по ленте новостейЭтот модуль производит поиск по ленте новостей. Результат выдается в удобной и легко настраиваемой форме. Основные возможности:
Captcha - защита от спам-роботовЭтот модуль защищает формы отправки сообщений от спам-роботов. Посетителю выводится картинка, содержащая случайную комбинацию букв и цифр, которую он должен ввести в соответствующее поле формы. Навигационное менюМодуль обрабатывает языковой пакет меню и выводит навигационное меню, которое может состоять из двух уровней вложенности, согласно модульному шаблону. 5.2 Административные модулиЭта группа модулей доступна только администраторам и модераторам в административной части сайта Менеджер новостейЭтот модуль позволяет добавить новость на сайт, удалить или изменить существующую. Имеется функция предпросмотра и панель инструментов, в которую входят кнопки вставки тэгов, форма добавления ссылки и форма загрузки файлов-изображений с последующим размещением в новости. Для такого файла можно автоматически создать уменьшенную копию для предпросмотра (необходимо наличие Perl библиотек Image::Magick или GD плюс Image::Size). Модуль определяет, под каким логином зашел пользователь, и перенимает его в качестве имени автора новости. После того как новость будет добавлена, модуль стирает КЭШ поискового модуля. С помощью этого модуля можно также управлять комментариями к каждой новости. Есть возможность правки, удаления, занесения автора в бан-лист, а также добавления своего комментария от имени пользователя. Администратор имеет доступ ко всем новостям сайта, а модератор только к своим собственным. Также см. 4.7 Администрирование Файл-менеджерМодуль выводит структурированный список файлов и директорий на сервере, позволяет перемещаться по нему и производить основные действия: создание новых объектов, переименование, удаление, правка. Также имеется возможность загрузки любого количества файлов на сервер. Управление гостевой книгойС помощью этого модуля ведется расширенное административное управление гостевой книгой. Администратор может оставить ответ к каждому сообщению, или же удалить/подправить само сообщение. Вместе с записями гостевой книги выводится IP адрес автора и имеется возможность бана по нему и по имени. Бан-лист / Список запрещенных слов
Этот модуль выводит список забаненных IP адресов и запрещенных слов. Предусмотрено расширенное управления обоими листами: добавление, правка, удаление. При изменении списков проводится дополнительный анализ - существующие слова и адреса добавляться повторно не будут. Присутствует автоматическое определение наличия нескольких адресов в одной подобласти и предложение добавить ее всю. Статистика и управление скачиваемых файловМодуль выводит список файлов доступных для скачивания, общее число скачиваний к каждому, а также количество новых скачиваний с момента последнего посещения пользователя. Позволяет обнулить статистику или удалить файл из списка. Сам файл удален не будет! Лог искомых слов по сайтуПоказывает все слова, сохраненные в КЭШе поиска по новостям. Есть возможность ручной очистки КЭШа. Менеджер доступа к административной частиПозволяет администратору добавлять новых пользователей, удалять старых, а также менять пароли. Кроме того, имеется возможность понижать их до модератора или повышать до администратора. Модератор может с помощью этого модуля сменить свой пароль. Также см. 4.7 Администрирование 6. TO DOПланируется в будущих версиях: - Новые шаблоны |