Мы будем Вам признательны, если Вы поддержите проект Open SLAED и используя Ваши возможности, разместите наш пресс-релиз на страницах своих сайтов, проектов, форумов, блогов. Текст пресс-релиза, возможно, видоизменить под Ваш формат, не искажая смысл. Пресс-релиз можно взять на данной странице.
Открыть файл config/config_global.php и изменить в нем значение $conf['close'] = "1"; на $conf['close'] = "0"; Значение 1 отвечает за закрытие сайта на профилактику, значение 0, соответственно за его свободный доступ для посетителей.
Представляю Вашему вниманию новую версию системы SLAED CMS 4. Данная версия является первым представителем четвёртого поколения системы. Основными отличительными чертами данной версии является полный переход на открытый исходный код, это значит, что технология кодирования Zend больше применятся, не будет. Произведён полный переход системы с учётом всех стандартных модулей в режим работы Register globals: Off, что в свою очередь значительным образом повышает уровень безопасности. Уже сегодня произведена полная модификация всех участков системы для стабильной работы в будущем, на новой версии PHP 6. Не смотря на это, система так же стабильно работает на версии PHP 5. Значительным образом модифицировано оформление системы, над этим работал наш партнер, студия профессионального дизайна „Centroarts“, которые привели всю систему к общему виду и предали ей свой уникальный стиль. С более детальной информацией Вы можете, ознакомится в подробном просмотре.
• Модификации подверглась функция сессий посетителей проекта, переписана логика удаления более не присутствующих посетителей. Сокращен глобальный запрос в базу данных, снижена время генерации страниц. Таким образом, ядро системы делает всего два запроса в базу данных.
• Модифицирована функция определения даты последнего посещения сайта пользователем. Теперь запись последнего визита обновляется при покидании сайта пользователем не зависимо от того, вышел пользователь или нет.
• Написана новая функция определения и отслеживания посетителей проекта. Используется технология AJAX с внедрением в блок информации пользователей и блок наблюдения администратора. Теперь Вы можете производить обновление информации без перезагрузки всей страницы одним кликом мышки.
• Исправлена недоработка в системе блокировке при добавлении блокируемого адреса. Ошибка возникала в случае, если Вы не указывали причину блокировки.
• Значетельным изменения подверглась административная часть модуля магазина, исправлены неточности. Модифицированы и сокращены некоторые функции, улучшена визуальная часть.
• Модифицирована партнерская часть модуля магазина, доработаны некоторые компоненты, модифицирована визуальная часть.
• В связи с изменениями магазина системы, внесены корректировки и модификации в пользовательский модуль. Доработаны некоторые участки, улучшена визуальная часть. Функции и визуальная часть модифицированы для лучшего интуитивного восприятия процессов.
• Добавлена новая функция свёртывания и развёртывания окон, которая запоминает установленное Вами положение. Данная функция внедрена повсеместно, там, где в этом есть необходимость.
• Модифицирован файловый каталог системы, добавлено дополнительное текстовое поле для подробного просмотра. Удалена фильтрация и сокращения текста при общем просмотре модуля.
• Модифицирован каталог сайтов системы, добавлено дополнительное текстовое поле для подробного просмотра. Удалена фильтрация и сокращения текста при общем просмотре модуля.
• В конфигурациях системы добавлена возможность установки количества отображаемого материала в модулях панели администратора системы.
• Модификации подвергся новостной модуль системы, добавлены дополнительное поля для сохранения IP адреса разместившего новость, что даёт возможность более точно отследить автора. Добавлено поля для идентификационного номера, в случае если новость добавлена зарегистрированным пользователем сайта. Так образом ник пользователя, в случае его смены, изменится в новостях автоматически. Если автор статьи не является зарегистрированным пользователем сайта, переход к профилю при нажатии на ник более не возможен. Таким образом, возможность просмотра профиля есть только для зарегистрированных авторов.
• Реализована новая функция определения географического местонахождения посетителей проекта. Страна посетителя определяется по его IP адресу. Из всех IP адресов существующих в мире, система способна распознать 98% провайдеров и их стран, откуда, с какой страны пришел посетитель. В зависимости от установки, местонахождение посетителя может отображаться как флаг, название или как код страны. В конфигурациях системы предусмотрена возможность отключения данной функции, в случае если в ней нет необходимости.
• Определители географического местоположения посетителей в виде флагов установлены в блоки наблюдения посещаемости сайта администратором, а так же в пользовательском информационном блоке, в профиле пользователя при его просмотре.
• Произведена полная смена графических элементов системы на формат PNG 24, который поддерживает постепенную прозрачность. Это даёт нам возможность использования стандартных графических элементов системы в тёмных и любых других темах оформления.
• Внедрена новая функция определения стандартных графических элементов системы, что даёт возможность создания уникальных компонентов для каждой темы оформления. Система автоматически определяет, если в теме такие графические элементы присутствуют, использует их, если нет, использует стандартные.
• Изменены две функции, отвечающие за оформление используемые, как правило, в модулях системы. Старое название: OpenTable(); CloseTable(); Новые названия: open(); close(); Работоспособность модулей в которых используется старый вариант не пострадает, модули будут работать как обычно.
• Название всех файлов, модулей скриптов системы приведены к общему виду, теперь в названиях используется только нижний регистр. Функционал старых модулей, файлов и скриптов не пострадает.
• Добавлена возможность редактирования основного почтового шаблона системы, который используется для отправки исходящей почты, осведомлений и сообщений.
• Полностью модифицирован отдел администраторов системы, добавлена возможность автоматического осведомления с отправкой пароля и логина на E-Mail, при создании нового администратора.
• Модифицированы все модули основной панели администратора для работы в безопасном режиме Register globals: Off.
• В отделе «База данных» основной панели администратора добавлена возможность работы с базой данных непосредственно через систему. Теперь Вы можете произвести нужные вам запросы, удалять, модифицировать или добавлять таблицы.
• При входе пользователя в собственный профиль на сайте, реализован анализатор ошибок с последующим отображением, в случае ввода неправильного логина или ошибочного секретного кода.
• Реализована новая функция подсказок в полях, где используется имя пользователя. Функция работает на базе технологии AJAX, производит поиск по базе пользователя в автоматическом режиме по ходу ввода букв имени в строку. Это значительно сокращает поиск и помогает, в случае если вы не помните точно полного имени пользователя. Данная возможность используется в системе повсеместно, где в этом есть необходимость.
• Глобальным образом переработана система пунктов, добавлены новые модули, и действия за которые происходят начисление. Проработан сам модуль, языковые константы, функции.
• Модифицирован модуль топ пользователей. Добавлен подробный просмотр персональной информации пользователя при наведении курсора, на его ник.
• В панели управления пользователями установлена возможность обнуление значения всех пунктов пользователей системы. Активация подсчётов пунктов пользователей перенесена в отдел конфигураций пользователями.
• Модифицирована функция загрузки файлов в модуле альбома, теперь производится переименование файла, в случае если файл имеет в названии буквы русского алфавита, или в названии используется верхний регистр.
• Модифицирована функция определения размера загружаемых файлов в модуле альбома. Если размер не был определён при загрузке, он будет определён автоматически при первичном редактировании поступивших файлов администратором.
• Модификации подвергся каталог файлов системы, добавлено поля для идентификационного номера, в случае если новость добавлена зарегистрированным пользователем сайта. Так образом ник пользователя, в случае его смены, изменится в файлах автоматически. Если автор файла не является зарегистрированным пользователем сайта, переход к профилю при нажатии на ник более не возможен. Таким образом, возможность просмотра профиля есть только для зарегистрированных авторов.
• В модуле каталога файлов, при редактировании добавлен автоматический перенос загруженных ранее файлов посетителями проекта, а так же уже существующих файлов. Перенос возможен в основную директорию, а так же в директории входящие в основную.
• Модификации подвергся модуль вопросов и ответов, добавлены дополнительное поля для сохранения IP адреса разместившего вопрос, что даёт возможность более точно отследить автора. Добавлено поля для идентификационного номера, в случае если новость добавлена зарегистрированным пользователем сайта. Так образом ник пользователя, в случае его смены, изменится в вопросах и ответах автоматически. Если автор вопроса и ответа не является зарегистрированным пользователем сайта, переход к профилю при нажатии на ник более не возможен. Таким образом, возможность просмотра профиля есть только для зарегистрированных авторов.
• Модифицированы некоторые функции, отвечающие за оформление компонентов, участки темы оформления, а так же CSS классы стилей. Теперь у вас есть возможность уникального оформления рейтинг-баров персонально для каждого модуля. Более широкая возможность оформления ссылок на страницы (Pagelinks), а так же кнопок ББ редактора.
• Модификации подвергся модуль анекдотов, добавлены дополнительное поля для сохранения IP адреса разместившего анекдот, что даёт возможность более точно отследить автора. Добавлено поля для идентификационного номера, в случае если новость добавлена зарегистрированным пользователем сайта. Так образом ник пользователя, в случае его смены, изменится в анекдотах автоматически. Если автор анекдота не является зарегистрированным пользователем сайта, переход к профилю при нажатии на ник более не возможен. Таким образом, возможность просмотра профиля есть только для зарегистрированных авторов.
• Добавлена возможность предпросмотра анекдота при публикации пользователем. Визуально модифицирован код функции конфигурации административной части модуля анекдотов.
• Модификации подвергся модуль каталог сайтов. Добавлено поля для идентификационного номера, в случае если новость добавлена зарегистрированным пользователем сайта. Так образом ник пользователя, в случае его смены, изменится в каталоге сайтов автоматически. Если автор сайта не является зарегистрированным пользователем, переход к профилю при нажатии на ник более не возможен. Таким образом, возможность просмотра профиля есть только для зарегистрированных авторов.
• Модификации подвергся каталог медиа файлов, добавлены дополнительное поля для сохранения IP адреса разместившего релиз, что даёт возможность более точно отследить автора. Добавлено поля для идентификационного номера, в случае если релиз добавлен зарегистрированным пользователем сайта. Так образом ник пользователя, в случае его смены, изменится в медиа каталоге автоматически. Если автор релиза не является зарегистрированным пользователем сайта, переход к профилю при нажатии на ник более не возможен. Таким образом, возможность просмотра профиля есть только для зарегистрированных авторов.
• Модификации подвергся модуль статей, добавлены дополнительное поля для сохранения IP адреса разместившего статью, что даёт возможность более точно отследить автора. Добавлено поля для идентификационного номера, в случае если статья добавлена зарегистрированным пользователем сайта. Так образом ник пользователя, в случае его смены, изменится в модуле статей автоматически. Если автор статьи не является зарегистрированным пользователем сайта, переход к профилю при нажатии на ник более не возможен. Таким образом, возможность просмотра профиля есть только для зарегистрированных авторов.
• Модифицирован модуль поиска с учётом новых возможностей определения и работы с пользователями. Изменён способ вывода найденной информации, теперь она выводится с применением шаблона оформления темы, что даёт возможность изменения оформления персонально для каждой темы оформления.
• Установлены и интегрированы в систему два дополнительных HTML Редактора (Spaw 2, FCKeditor) с возможностью загрузки и управлением файлов в стандартной директории системы. Выбор редактора производится в настройках системы.
• Модифицировано ЧПУ системы, модифицированы стандартные правила для универсального использования, добавлены новые правила для модуля поиска.
• Модифицирован транслятор RSS каналов. Добавлены новые возможности, подкорректирован вывод информации. Используемые переменные приведены к общему виду. Добавлены новые правила ЧПУ, которые преобразуют все каналы вещания.
• Реализована возможность уникального использования основного шаблона персонально для каждой категории. Это значит, что Вы можете производить смену главного шаблона не только в зависимости от модуля, но и в зависимости от категории.
• Значительно модификации подвергся модуль установки и обновления системы. Облегчена возможность подключения в случае использования другой базы данных, не MySQL. Полностью обновлена визуальная часть, приведена к общему виду и стилю системы.
• Написана новая тема оформления панели администратора системы, а так форма входа и установки администратора. Исправлены некоторые неточности, модифицированы функции основного и второстепенных администраторов. Панель администратора и все её компоненты для более удобной их модификации дизайнером, вынесены в HTML шаблоны. Административный отдел приведён к общему стилю.
• Модифицирован модуль обратной связи учётом возможности отображения администраторов в зависимости от языка использования.
Новую версию можно будет приобрести, начиная с 20.03.2008 в магазине нашего проекта. Обновление для актуальных пользователи версий 3.1, 3.2, 3.3, 3.4, 3.5 Pro выйдет немного позже. Более детальная информация по обновлению будет опубликована в отделе для клиентов.
Идея состоит в том, чтобы дать пользователю полную свободу действий при формировании темы оформления системы. Обычно управление формирование внешнего вида сайта ложится на систему, сама тема оформления влияет на этот процесс лишь косвенно, то есть она пассивна. Мы уже делали шаги в сторону интерактивности тем оформления вставляя переменные в HTML код и обрабатывая их, но тем не менее заставить тему управлять сайтом было невозможно. Кроме того, оформление сайта разбросанное по отдельным файлам не позволяло выстроить общей картины и затрудняло разработку тем. Даже человеку знакомому с HTML достаточно сложно, было, нарезать готовый HTML шаблон на куски.
Продолжая в том же духе, уместно будет сказать о том, что внешний вид сайта очень сильно зависит от разработчиков системы, другими словами существуют жестко вшитые куски, которые достаточно сложно менять или перемещать, чтобы изменить некоторые из них нужно править саму систему, что прямо скажем не всем и не всегда удобно. Для примера можно назвать такие вещи как табличная структура, модуль, лицензия, генерация страниц, левые правые верхние нижние блоки, а также банеры.
Другими словами задача стояла такая
1. Создать симбиоз ядра системы и темы оформления, когда не только ядро жестко задает правила поведения и отображения элементов системы, но и тема активно управляет видимостью и управлением элементов.
2. Позволить дизайнеру воплощать любые дизайнерские идеи без оглядки на ядро. То есть, хочет чтобы, верхние блоки отображались слева, правые и левые блоки были расположены вместе справа - нет проблем.
3. Не тормозить продвинутых пользователей в реализации различных способов форматирования текста, таких как HTML - различных версий. XHTML и даже XML, то есть наиболее полно реализовать CMS, так как CMS - это система управления контентом, а вот отображение этого контента может быть любым.
4. Решив задачу 2 и 3 увести систему от табличного дизайна и подготовить к отображению на различных устройствах, таких как мобильных, наладонных и так далее...
5. Жестко разграничить понятия оформление и данные.
Итог
Выполнив все поставленные задачи, мы можем смело сказать, что система не будет тянуть пользователей назад, даже тогда когда все дружно решат перейти на DIV, никаких изменений в движке не потребуется нужно будет только поправить дизайн.
Реализация и как всё работает
В пользовательской теме оформления должен присутствовать файл index.html. Это обычный HTML файл, предназначенный для формирования внешнего вида системы. Соответственно надобность в файлах: header.html, footer-close.html и footer-open.html отпадает.
Синтаксис, простейший файл оформления будет иметь вид:
Естественно, верстальщик и дизайнер могут наполнить его любым HTML оформлением и применить все возможные и известные приемы верстки. Как мы видим, табличная структура отсутствует, и мы можем все построить на дивах (DIV) или переписать код в XHTML.
В данном случае и в целом все понятно, просто и наглядно. Остается только объяснить какие переменные вида {%XXXX%} за что отвечают. Расставить эти переменные естественно можно по всему файлу, в каком угодно порядке.
{%HEAD%} - Стандартное формирование шапки - меты и титлы, а также содержание, которое присутствует в системе по умолчанию.
{%MODULE%} - Нарезка для модуля, который должна подставить система.
{%LICENSE%} - Копирайты системы.
{%BLOCKS banner%} или {%BLOCKS b%} - Верхний банер.
{%BLOCKS left%} или {%BLOCKS l%} - Левые блоки.
{%BLOCKS center%} или {%BLOCKS c%} - Верхние блоки.
{%BLOCKS down%} или {%BLOCKS d%} - Нижние блоки.
{%BLOCKS right%} или {%BLOCKS r%} - Правые блоки.
{%BLOCKS foot%} или {%BLOCKS f%} - Нижний банер.
{%BLOCKS time%} или {%BLOCKS t%} – Время генерации страницы.
{%BLOCKS none,ХХХ%} или {%BLOCKS n,ХХХ%} - Произвольный блок системы или свободный блок без оформления, где ХХХ - это либо ID блока, либо название файла блока.
{%BLOCKS standart,ХХХ%} или {%BLOCKS s,ХХХ%} - Произвольный блок системы или свободный блок с оформлением свободного блока, где ХХХ - это либо ID блока, либо название файла блока.
{%BLOCKS message%} или {%BLOCKS m%} – Сообщение на главной странице.
{%BLOCKS variables%} – Анализатор переменных.
{%BLOCKS query%} – Анализатор запросов в базу данных.
Новая система оформления тем будет доступна, начиная с версии SLAED CMS 2 Pro.
Прежде чем перейти к описанию интеграции модулей, хотелось бы заметить, что в системе могут быть использованы различные модули, блоки и скрипты, не только из похожих по принципу построения систем, но и совершенно не похожих. Не смотря на то, что оригинальные модули и блоки используют стандартные функции, это не является основным фактором в их работе. В системе могут работать модули, совершенно не используя основные функции ядра. В некоторых случаях потребуются только не большие изменение в коде интегрируемого модуля, блока или скрипта.
В данном примере мы рассмотрим способ ручной интеграции модулей одной из самых популярных систем построения сайтов PHP-Nuke. Программу, написанную специально для нашей системы, для автоматической интеграции модулей PHP-Nuke в SLAED CMS Вы можете скачать на нашем проекте в каталоге файлов.
Прошу учитывать, что старые варианты использования кода в модулях PHP-Nuke могут незначительно отличаться от описанных в данной статье.
1. В самом верху изменяем способ защиты для модулей от стороннего доступа.
Старый вариант: if (!eregi("modules.php", $_SERVER["PHP_SELF"])) {
die ("You can"t access this file directly...");
}
Новый вариант: if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
2. Старые модули PHP-Nuke используют соединение с базой по средствам переменной $dbi. Наша система использует соединение с базой по средствам переменной $db, по этой причине необходимо изменить все переменные $dbi на $db.
Меняем все глобальные переменные $dbi в функциях, на новые $db. Если это необходимо, указываем переменную $db как глобальную.
Старый вариант: global $prefix, $dbi;
Новый вариант: global $prefix, $db;
Изменяем структуру запроса в базу данных.
Старый вариант: $result = sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id", $dbi);
Новый вариант: $result = $db->sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id");
Как вы заметили, удалена переменная $dbi в конце запроса и добавлена переменная $db в начале. Это нужно проделать со всеми запросами.
В запросах необходимо изменить:
sql_fetch_array на $db->sql_fetchrow sql_query на $db->sql_query sql_fetch_row на $db->sql_fetchrow sql_num_rows на $db->sql_numrows sql_free_result на $db->sql_freeresult
Если появляются вопросы по поводу запросов или правильности их написания, смотрим файл function/mysql.php
В некоторых модулях используются прямые запросы в базу данных в обход файла классов соединения с базой. В таком варианте запросы не подсчитываются. При желании вы так же можете изменить запросы подобного рода.
В запросах необходимо изменить:
mysql_fetch_array на $db->sql_fetchrow mysql_query на $db->sql_query mysql_fetch_row на $db->sql_fetchrow mysql_num_rows на $db->sql_numrows mysql_free_result на $db->sql_freeresult
В функциях не забываем указывать переменную $db как глобальную.
3. В некоторых модулях производится соединение с файлом конфигурации которое нужно заменить.
Старый вариант: include("config.php");
Новый вариант: include("config/config.php");
4. В некоторых модулях используется переменная основного адреса сайта, которую нужно заменить.
Старый вариант: $nukeurl
Новый вариант: $conf['homeurl']
Не исключено что в последствии возникнет необходимость использования параметров основных конфигураций системы. Для этих целей рекомендуется прописать в глобальные, переменную $conf, отвечающую за основные настройки, которые хранятся в файле config/config_global.php
5. В некоторых модулях используются функции темы OpenTable2() и CloseTable2() которые нужно заменить.
Старый вариант: OpenTable2();
Новый вариант: OpenTable();
Старый вариант: CloseTable2();
Новый вариант: CloseTable();
6. В стандартных модулях в начале скриптов используется соединение с файлом mainfile.php.
Необходимо удалить: require_once("mainfile.php"); или include("mainfile.php");
7. Во всех скриптах нужно произвести поиск и изменить стандартные ссылки modules.php на index.php.
Старый вариант: modules.php
Новый вариант: index.php
8. Во всех скриптах нужно произвести поиск и удалить стандартные цветовые переменные в глобальных, и заменить их в коде.
Старый вариант: bgcolor="$bgcolor1"
Новый вариант: class="bgcolor1"
Старый вариант: bgcolor="$bgcolor2"
Новый вариант: class="bgcolor2"
Старый вариант: bgcolor="$bgcolor3"
Новый вариант: class="bgcolor3"
Старый вариант: bgcolor="$bgcolor4"
Новый вариант: class="bgcolor4"
Чтобы создать собственный модуль для сайта, построенного с использованием 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», который работает на мультиязычном сайте, имеет вид:
В языковых файлах 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. Файл table-open.html отвечает за оформление верхней части модуля и других отделов, где используется функция open();
2. Файл table-close.html отвечает за оформление нижней части модуля и других отделов, где используется функция close();
Создание оформления для каждого модуля
Вы можете создать уникальное оформление, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
1. Для верхней части модуля, table-open-название_модуля.html
2. Для нижней части модуля, table-close-название_модуля.html
Пример: Нужно сделать уникальное оформление для модуля news
В таком случае создаём файл оформления в директории темы с названием table-open-news.html и table-close-news.html
Система определит их автоматически и будет использовать для персонального оформления модуля news.
Создание оформления для главной страницы
Вы можете создать уникальное оформление модуля персонально для главной страницы, в не зависимости от модуля.
Пример: Нужно сделать уникальное оформление модуля на главной
В таком случае создаём файлы оформления в директории темы с названием table-open-home.html и table-close-home.html
Система определит их автоматически и будет использовать для оформления модуля главной страницы.
Создание оформления для каждой функции модуля
Вы можете создать уникальное оформление, персонально для каждой функции модуля. В зависимости от названия используемой функции непосредственно в модуле.
Пример: Нужно сделать уникальное оформление для функции подробного просмотра view модуля news
В таком случае создаём файлы оформления в директории темы с названием table-open-news-view.html и table-close-news-view.html
Система определит их автоматически и будет использовать для персонального оформления функции view подробного просмотра модуля news.
Создание оформления со своим названием для функций модуля
Дополнительно ко всему в систему внедрена переменная $conf['template'] которую можно использовать в функциях модуля при создании своих названий для оформления. Это даст Вам возможность создать своё название шаблонов персонально для той или иной функции модуля. Такие шаблоны так же будут, определятся системой в автоматическом режиме.
Пример: Нужно сделать уникальное оформление функции news модуля news
В таком случае в файле index.php модуля news декларируем нашу новую переменную.
Для изготовления своих тем оформления системы, не требуются знания языка программирования PHP. Все действия производятся в формате разметки HTML. При создании своей, рекомендуется брать за основу стандартную тему «Standart» предварительно копируя её и меняя название папки на своё. После чего заходим в директорию темы или в отдел шаблонов панели администратора и редактируем компоненты под свои нужды.
Ссылки на графику в теме
При использовании ссылок, допустим на графику, название темы в ссылке менять не обязательно. Директория темы определяется автоматически. Для этого используется переменная $ThemeSel. Прописываем только путь к графическому файлу.
Пример ссылки: templates/$ThemeSel/images/ваша_картинка.gif
Графические файлы темы оформления
Директории темы оформления: images/ используется как архив, где хранятся все графические элементы темы оформления сайта. При изготовлении своей темы, для исключения путаницы, рекомендуется использовать данную директорию для хранения графических элементов.
Файлы оформления элементов дизайна в основной директории
Файл темы оформления: style.css отвечает за оформление элементов дизайна всего сайта и позволяет контролировать практически любые элементы. С помощью данного файла можно сделать практически что угодно - от разметки колонок, размера шрифтов, цветовой гаммы до кнопок и всплывающих окон.
Основной шаблон оформления системы
За основное оформление системы отвечает файл index.html предназначенный для формирования структуры и порядка отражения модулей, блоков и других компонентов системы. Естественно, верстальщик и дизайнер могут наполнить его любым HTML оформлением и применить все возможные и известные приемы верстки.
Создание основного шаблона оформления персонально для главной страницы
Вы можете создать уникальное оформление, персонально для главной страницы проекта в не зависимости от модуля, установленного на главной.
Пример: Нужно сделать уникальное оформление для главной страницы проекта
В таком случае создаём файл оформления в директории темы с названием index-Home.html
Система определит его автоматически и будет использовать для персонального оформления главной страницы проекта.
Создание основного шаблона оформления персонально для каждого модуля
Вы можете создать уникальное оформление, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
Пример: Нужно сделать уникальное оформление содержания для модуля News
В таком случае создаём файл оформления в директории темы с названием index-News.html
Система определит его автоматически и будет использовать для персонального оформления модуля News.
Ниже представлено описание переменных вида {%XXXX%} и за что они отвечают. Расставить эти переменные можно по всему файлу, в каком угодно порядке.
Используемые переменные
{%HEAD%} - Стандартное формирование шапки - меты и титлы, а также содержание, которое присутствует в системе по умолчанию.
{%MODULE%} - Нарезка для модуля, который должна подставить система (На месте этого участка будет отображаться содержание модуля системы).
{%LICENSE%} - Копирайты системы.
{%BLOCKS banner%} или {%BLOCKS b%} - Верхний баннер.
{%BLOCKS left%} или {%BLOCKS l%} - Левые блоки.
{%BLOCKS center%} или {%BLOCKS c%} - Верхние центральные блоки.
{%BLOCKS down%} или {%BLOCKS d%} - Нижние центральные блоки.
{%BLOCKS right%} или {%BLOCKS r%} - Правые блоки.
{%BLOCKS foot%} или {%BLOCKS f%} - Нижний баннер.
{%BLOCKS time%} или {%BLOCKS t%} - Время генерации страницы.
{%BLOCKS none,ХХХ%} или {%BLOCKS n,ХХХ%} - Произвольный блок системы или свободный блок без оформления, где ХХХ - это либо ID блока, либо название файла блока.
{%BLOCKS standart,ХХХ%} или {%BLOCKS s,ХХХ%} - Произвольный блок системы или свободный блок с оформлением свободного блока, где ХХХ - это либо ID блока, либо название файла блока.
{%BLOCKS message%} или {%BLOCKS m%} - Сообщение на главной странице.
{%BLOCKS variables%} - Анализатор переменных.
{%BLOCKS query%} - Анализатор запросов в базу данных.
Оформление выводимой информации в модулях
Описание компонентов
Файл basic.html отвечает за оформление содержащейся информации в модулях, а так же информации при подробном просмотре.
Создание оформления компонентов
Вы можете создать уникальное оформление материала, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
Пример: Нужно сделать уникальное оформление содержания для модуля News
В таком случае создаём файл оформления в директории темы с названием basic-News.html
Система определит его автоматически и будет использовать для персонального оформления содержания модуля News.
Вы можете создать уникальное оформление, персонально для каждой функции модуля. В зависимости от названия используемой функции непосредственно в модуле.
Пример: Нужно сделать уникальное оформление содержания для функции подробного просмотра view модуля News
В таком случае создаём файл оформления в директории темы с названием index-News-view.html
Система определит его автоматически и будет использовать для персонального оформления функции view подробного просмотра модуля News.
Дополнительно к этому в систему внедрена переменная $conf['template'] которую можно использовать в функциях модуля при создании своих названий для компонентов оформления. Такие шаблоны так же будут, определятся системой в автоматическом режиме.
Используемые переменные
$arg[0] - Номер категории в базе данных
$arg[1] - Изображение категории и ссылка на неё
$arg[2] - Заголовок категории
$arg[3] - Номер компонента в базе данных
$arg[4] - Заголовок
$arg[5] - Содержание
$arg[6] - Нижняя строка новости, куда входят: Подробнее, дата, автор, прочитано, комментарии
$arg[7] - Подробный просмотр
$arg[8] - Автор публикации
$arg[9] - Дата публикации
$arg[10] - Количество прочтений
$arg[11] - Количество комментариев
$arg[12] - Рейтинг
$arg[13] - Распечатка
$arg[14] - Редактирование
$arg[15] - Размер
$arg[16] - Версия
$arg[17] - Скачать/Посетить
$arg[18] - Сообщить о недоступном файле/ссылке
$arg[19] - E-Mail
$arg[20] - Сайт
Оформление блоков системы
Описание оформления блоков
1. Файл block-center.html отвечает за верхние центральные блоки.
2. Файл block-down.html отвечает за нижние центральные блоки.
3. Файл block-left.html отвечает за левые блоки.
4. Файл block-right.html отвечает за правые блоки.
5. Файл block-all.html отвечает за все остальные блоки, которые могут использовать в отдельности от стандартных.
Создание оформления блоков
Вы можете создать уникальное оформление, персонально для каждого блока системы. В зависимости от названия имеющегося блока, который находится в корневой директории блоков blocks/. Если это необходимо, создаём идентичное название файла оформления для блока, но с изменением окончания с .php на .html. Куда и вносим свой вид оформления.
Пример: Нужно сделать уникальное оформление для блока block-News.php
В таком случае создаём файл оформления в директории темы с названием block-News.html
Система определит его автоматически и будет использовать для персонального оформления блока block-News.php
Вы можете создать уникальное оформление групп блоков, персонально для каждого модуля системы.
Пример: Нужно сделать уникальное оформление левых блоков для модуля News
В таком случае создаём файл оформления в директории темы с названием block-left-News.html
Система определит его автоматически и будет использовать для персонального оформления левых блоков модуля News
Вы можете создать уникальное оформление групп блоков, для главной страницы.
Пример: Нужно сделать уникальное оформление левых блоков для главной страницы
В таком случае создаём файл оформления в директории темы с названием block-left-Home.html
Система определит его автоматически и будет использовать для персонального оформления левых блоков главной страницы проекта.
Используемые переменные
$title - Заголовок блока
$content - Содержание блока
Оформление комментариев
Описание оформления комментариев
Файл comment.html отвечает за оформление комментариев в модулях.
Создание оформления комментариев
Вы можете создать уникальное оформление комментариев, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
Пример: Нужно сделать уникальное оформление комментариев для модуля News
В таком случае создаём файл оформления в директории темы с названием comment-News.html
Система определит его автоматически и будет использовать для персонального оформления комментариев модуля News.
Используемые переменные
$carg[0] - Номер комментария в базе данных
$carg[1] - Ник пользователя с функцией вставки в форму комментария
$carg[2] - Верхняя правая информационная строка
$carg[3] - Аватар пользователя
$carg[4] - Содержание комментария
$carg[5] - Рейтинг пользователя
$carg[6] - Нижняя правая информационная строка
$carg[7] - Пункты пользователя
$carg[8] - Дата комментария
$carg[9] - Номер комментария
$carg[10] - Дата регистрации пользователя
$carg[11] - Пол пользователя
$carg[12] - Ник пользователя
$carg[13] - Сайт пользователя
$carg[14] - E-Mail пользователя
$carg[15] - ICQ номер пользователя
$carg[16] - AIM Адрес пользователя
$carg[17] - Yahoo Messenger пользователя
$carg[18] - MSN Messenger пользователя
$carg[19] - Редактировать пользователя
$carg[20] - Удалить пользователя
Оформление модулей системы
Описание оформления модулей
1. Файл table-open.html отвечает за оформление верхней части модуля и других отделов, где используется функция OpenTable();
2. Файл table-close.html отвечает за оформление нижней части модуля и других отделов, где используется функция CloseTable();
Создание оформления модулей
Вы можете создать уникальное оформление, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
1. Для верхней части модуля, table-open-Название_модуля.html
2. Для нижней части модуля, table-close-Название_модуля.html
Пример: Нужно сделать уникальное оформление для модуля News
В таком случае создаём файл оформления в директории темы с названием table-open-News.html и table-close-News.html
Система определит их автоматически и будет использовать для персонального оформления модуля News.
Вы можете создать уникальное оформление, персонально для каждой функции модуля. В зависимости от названия используемой функции непосредственно в модуле.
Пример: Нужно сделать уникальное оформление содержания для функции подробного просмотра view модуля News
В таком случае создаём файл оформления в директории темы с названием table-open-News-view.html и table-close-News-view.html
Система определит их автоматически и будет использовать для персонального оформления функции view подробного просмотра модуля News.
Дополнительно к этому в систему внедрена переменная $conf['template'] которую можно использовать в функциях модуля при создании своих названий для компонентов оформления. Такие шаблоны так же будут, определятся системой в автоматическом режиме.
Оформление сообщений на главной странице
Описание оформления сообщений
Файл message-box.html отвечает за сообщения на главной странице
Используемые переменные
$title - Заголовок сообщения
$content - Содержание сообщения
Оформление страницы печати
Описание оформления страницы печати
Файл prints.html отвечает за оформление страниц печати в модулях.
Создание оформления страниц печати
Вы можете создать уникальное оформление для страниц печати, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
Пример: Нужно сделать уникальное оформление страницы печати для модуля News
В таком случае создаём файл оформления в директории темы с названием prints-News.html
Система определит его автоматически и будет использовать для персонального оформления страниц печати модуля News.
Используемые переменные
$charset - Кодировка страницы
$ThemeSel - Название темы оформления
$title - Содержание заголовка кода страницы
$homeurl - Адрес сайта
$sitename - Название сайта
$site_logo - Логотип сайта
$ptitle - Содержание заголовка
$text - Информация
$url - Ссылки на статью и сайт
Оформление заголовка с поиском
Описание оформления заголовка с поиском
Файл search.html отвечает за оформление заголовков с поиском в модулях.
Создание оформления заголовка с поиском
Вы можете создать уникальное оформление заголовка с поиском, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
Пример: Нужно сделать уникальное оформление заголовков с поиском для модуля News
В таком случае создаём файл оформления в директории темы с названием search-News.html
Система определит его автоматически и будет использовать для персонального оформления заголовка с поиском модуля News.
Вы можете создать уникальное оформление заголовков с поиском, персонально для каждого модуля системы. В зависимости от названия используемой функции непосредственно в модуле.
Пример: Нужно сделать уникальное оформление заголовка с поиском для функции подробного просмотра view модуля News
В таком случае создаём файл оформления в директории темы с названием search-News-view.html
Система определит его автоматически и будет использовать для персонального оформления функции view заголовков с поиском модуля News.
Дополнительно к этому в систему внедрена переменная $conf['template'] которую можно использовать в функциях модуля при создании своих названий для компонентов оформления. Данные шаблоны так же будут, определятся системой в автоматическом режиме.
Используемые переменные
$sarg[0] - Выводимое название модуля
$sarg[1] - Оригинальное название модуля
$sarg[2] - Ссылки навигации модуля
$sarg[3] – Ссылка: Главная
$sarg[4] – Ссылка: Лучшие
$sarg[5] – Ссылка: Популярные
$sarg[6] – Ссылка: Список
$sarg[7] – Ссылка: Добавить
$s_search - Название поиска
Оформление заголовков во всей системе
Описание оформления заголовков
Файл title.html отвечает за оформление заголовков. Как правило, они используются модулями системы для отображения их названий.
Создание оформления заголовков
Вы можете создать уникальное оформление заголовков, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
Пример: Нужно сделать уникальное оформление заголовка для модуля Voting
В таком случае создаём файл оформления в директории темы с названием title-Voting.html
Система определит его автоматически и будет использовать для персонального оформления заголовка модуля Voting.
Вы можете создать уникальное оформление заголовка, персонально для каждой функции модуля. В зависимости от названия используемой функции непосредственно в модуле.
Пример: Нужно сделать уникальное оформление заголовка для функции просмотра view модуля Voting
В таком случае создаём файл оформления в директории темы с названием title-Voting-view.html
Система определит его автоматически и будет использовать для персонального оформления функции view заголовка модуля Voting.
Дополнительно к этому в систему внедрена переменная $conf['template'] которую можно использовать в функциях модуля при создании своих названий для компонентов оформления. Такие шаблоны так же будут, определятся системой в автоматическом режиме.
Используемые переменные
$text - Содержание заголовка
Оформления ошибок, предупреждений и информации
Описание оформления ошибок
Файл warning.html отвечает за оформление ошибок, предупреждений и вывода важной информации в системе.
Создание оформления ошибок
Вы можете создать уникальное оформление ошибок, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/
Пример: Нужно сделать уникальное оформление ошибок для модуля News
В таком случае создаём файл оформления в директории темы с названием warning-News.html
Система определит его автоматически и будет использовать для персонального оформления ошибок модуля News.
Вы можете создать уникальное оформление, персонально для каждой функции модуля. В зависимости от названия используемой функции непосредственно в модуле.
Пример: Нужно сделать уникальное оформление ошибок для функции подробного просмотра view модуля News
В таком случае создаём файл оформления в директории темы с названием warning-News-view.html
Система определит его автоматически и будет использовать для персонального оформления функции view ошибок модуля News.
Дополнительно к этому в систему внедрена переменная $conf['template'] которую можно использовать в функциях модуля при создании своих названий для компонентов оформления. Такие шаблоны так же будут, определятся системой в автоматическом режиме.
Используемые переменные
$text - Информация
$toredirect - Дальнейший, автоматический переход, так называемый «Редирект».
Прежде чем перейти к описанию интеграции модулей, хотелось бы заметить, что в системе могут быть использованы различные модули, блоки и скрипты, не только из похожих по принципу построения систем, но и совершенно не похожих. Не смотря на то, что оригинальные модули и блоки используют стандартные функции, это не является основным фактором в их работе. В системе могут работать модули, совершенно не используя основные функции ядра. В некоторых случаях потребуются только не большие изменение в коде интегрируемого модуля, блока или скрипта.
В данном примере мы рассмотрим способ ручной интеграции модулей одной из самых популярных систем построения сайтов PHP-Nuke. Программу, написанную специально для нашей системы, для автоматической интеграции модулей PHP-Nuke в SLAED Вы можете скачать на нашем проекте в каталоге файлов.
Прошу учитывать, что старые варианты использования кода в модулях PHP-Nuke могут незначительно отличаться от описанных в данной статье.
1. В самом верху изменяем способ защиты для модулей от стороннего доступа.
Старый вариант: if (!eregi("modules.php", $_SERVER["PHP_SELF"])) {
die ("You can"t access this file directly...");
}
Новый вариант: if (!defined("MODULE_FILE")) {
Header("Location: ../../index.php");
exit;
}
2. Старые модули PHP-Nuke используют соединение с базой по средствам переменной $dbi. Наша система использует соединение с базой по средствам переменной $db, по этой причине необходимо изменить все переменные $dbi на $db.
Меняем все глобальные переменные $dbi в функциях, на новые $db. Если это необходимо, указываем переменную $db как глобальную.
Старый вариант: global $prefix, $dbi;
Новый вариант: global $prefix, $db;
Изменяем структуру запроса в базу данных.
Старый вариант: $result = sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id", $dbi);
Новый вариант: $result = $db->sql_query("SELECT id, name FROM ".$prefix."_categories WHERE id=$id");
Как вы заметили, удалена переменная $dbi в конце запроса и добавлена переменная $db в начале. Это нужно проделать со всеми запросами.
В запросах необходимо изменить:
sql_fetch_array на $db->sql_fetchrow sql_query на $db->sql_query sql_fetch_row на $db->sql_fetchrow sql_num_rows на $db->sql_numrows sql_free_result на $db->sql_freeresult
Если появляются вопросы по поводу запросов или правильности их написания, смотрим файл function/mysql.php
В некоторых модулях используются прямые запросы в базу данных в обход файла классов соединения с базой. В таком варианте запросы не подсчитываются. При желании вы так же можете изменить запросы подобного рода.
В запросах необходимо изменить:
mysql_fetch_array на $db->sql_fetchrow mysql_query на $db->sql_query mysql_fetch_row на $db->sql_fetchrow mysql_num_rows на $db->sql_numrows mysql_free_result на $db->sql_freeresult
В функциях не забываем указывать переменную $db как глобальную.
3. В некоторых модулях производится соединение с файлом конфигурации которое нужно заменить.
Старый вариант: include("config.php");
Новый вариант: include("config/config.php");
4. В некоторых модулях используется переменная основного адреса сайта, которую нужно заменить.
Старый вариант: $nukeurl
Новый вариант: $conf['homeurl']
Не исключено что в последствии возникнет необходимость использования параметров основных конфигураций системы. Для этих целей рекомендуется прописать в глобальные, переменную $conf, отвечающую за основные настройки, которые хранятся в файле config/config_global.php
5. В некоторых модулях используются функции темы OpenTable() и CloseTable() которые нужно заменить.
Старый вариант: OpenTable(); или OpenTable2();
Новый вариант: open();
Старый вариант: CloseTable(); или CloseTable2();
Новый вариант: close();
6. В стандартных модулях в начале скриптов используется соединение с файлом mainfile.php.
Необходимо удалить: require_once("mainfile.php"); или include("mainfile.php");
7. Во всех скриптах нужно произвести поиск и изменить стандартные ссылки modules.php на index.php.
Старый вариант: modules.php
Новый вариант: index.php
8. Во всех скриптах нужно произвести поиск и удалить стандартные цветовые переменные в глобальных, и заменить их в коде.
Старый вариант: bgcolor="$bgcolor1"
Новый вариант: class="bgcolor1"
Старый вариант: bgcolor="$bgcolor2"
Новый вариант: class="bgcolor2"
Старый вариант: bgcolor="$bgcolor3"
Новый вариант: class="bgcolor3"
Старый вариант: bgcolor="$bgcolor4"
Новый вариант: class="bgcolor4"
Для написания своих тем оформления, не требуется познания в PHP. Все действия производятся в формате HTML. В нашем примере за основу взята стандартная тема системы Default. Для создания своей темы оформления системы копируем стандартную тему, меняем название папки на своё. После чего заходим в директорию темы или в отдел шаблонов панели администратора и редактируем компоненты под свои нужды.
Ссылки на графику в теме
При использовании ссылок, допустим на графику, название темы в ссылке менять не обязательно. Директория темы определяется автоматически. Для этого используется переменная $ThemeSel. Прописываем только путь к графическому файлу.
Пример ссылки: templates/$ThemeSel/images/ваша_картинка.gif
Графические файлы темы оформления
Директории images/ используется, как архив где хранятся все графические элементы темы оформления сайта. При изготовлении своей темы, для исключения путаницы, рекомендуется использовать данную директорию для хранения графических элементов.
Файлы оформления элементов дизайна в основной директории
Файл style.css отвечает за оформление элементов дизайна всего сайта и позволяет контролировать практически любые элементы. С помощью данного файла можно сделать практически что угодно - от разметки колонок, размера шрифтов, цветовой гаммы до кнопок и всплывающих окон.
Основной шаблон оформления системы
За основное оформление системы отвечает файл index.html предназначенный для формирования структуры и порядка отражения модулей, блоков и других компонентов системы. Естественно, верстальщик и дизайнер могут наполнить его любым HTML оформлением и применить все возможные и известные приемы верстки.
Создание основного шаблона оформления персонально для каждого модуля
Вы можете создать уникальное оформление, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/. Если это необходимо, создаём похожее название файла оформления для модуля.
Пример: Нужно сделать уникальное оформление содержания для модуля News
В таком случае создаём файл оформления в директории темы с названием index-News.html
Система определит его автоматически и будет использовать для персонального оформления модуля News.
Ниже представлено описание переменных вида {%XXXX%} и за что они отвечают. Расставить эти переменные можно по всему файлу, в каком угодно порядке.
{%HEAD%} - Стандартное формирование шапки - меты и титлы, а также содержание, которое присутствует в системе по умолчанию.
{%MODULE%} - Нарезка для модуля, который должна подставить система.
{%LICENSE%} - Копирайты системы.
{%BLOCKS banner%} или {%BLOCKS b%} - Верхний банер.
{%BLOCKS left%} или {%BLOCKS l%} - Левые блоки.
{%BLOCKS center%} или {%BLOCKS c%} - Верхние центральные блоки.
{%BLOCKS down%} или {%BLOCKS d%} – Нижние центральные блоки.
{%BLOCKS right%} или {%BLOCKS r%} - Правые блоки.
{%BLOCKS foot%} или {%BLOCKS f%} - Нижний банер.
{%BLOCKS time%} или {%BLOCKS t%} - Время генерации страницы.
{%BLOCKS none,ХХХ%} или {%BLOCKS n,ХХХ%} - Произвольный блок системы или свободный блок без оформления, где ХХХ - это либо ID блока, либо название файла блока.
{%BLOCKS standart,ХХХ%} или {%BLOCKS s,ХХХ%} - Произвольный блок системы или свободный блок с оформлением свободного блока, где ХХХ - это либо ID блока, либо название файла блока.
{%BLOCKS message%} или {%BLOCKS m%} - Сообщение на главной странице.
{%BLOCKS variables%} - Анализатор переменных.
{%BLOCKS query%} - Анализатор запросов в базу данных.
Оформление выводимой информации в модулях
Описание компонентов
Файл basic.html отвечает за оформление содержащейся информации в модулях, а так же информации при подробном просмотре.
Создание оформления компонентов
Вы можете создать уникальное оформление содержания, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/. Если это необходимо, создаём похожее название файла оформления для модуля.
Пример: Нужно сделать уникальное оформление содержания для модуля News
В таком случае создаём файл оформления в директории темы с названием basic-News.html
Система определит его автоматически и будет использовать для персонального оформления содержания модуля News.
Используемые переменные
$aid - Номер компонента в базе данных
$title - Заголовок
$content - Содержание
$morelink - Нижняя строка статьи, куда входят: Подробнее, дата, автор, прочитано, комментарии
$topicimage - Изображение категории и ссылка на неё
Оформление блоков системы
Описание оформления блоков
1. Файл block-center.html отвечает за верхние центральные блоки.
2. Файл block-down.html отвечает за нижние центральные блоки.
3. Файл block-left.html отвечает за левые блоки.
4. Файл block-right.html отвечает за правые блоки.
5. Файл block-all.html отвечает за все остальные блоки, которые могут использовать в отдельности от стандартных.
Создание оформления блоков
Вы можете создать уникальное оформление, персонально для каждого блока системы. В зависимости от названия имеющегося блока, который находится в корневой директории блоков blocks/. Если это необходимо, создаём идентичное название файла оформления для блока, но с изменением окончания с .php на .html. Куда и вносим свой вид оформления.
Пример: Нужно сделать уникальное оформление для блока block-News.php
В таком случае создаём файл оформления в директории темы с названием block-News.html
Система определит его автоматически и будет использовать для персонального оформления блока block-News.php
Используемые переменные
$title - Заголовок блока
$content - Содержание блока
Оформление комментариев
Описание оформления комментариев
Файл comment.html отвечает за оформление комментариев в модулях.
Создание оформления комментариев
Вы можете создать уникальное оформление комментариев, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/. Если это необходимо, создаём похожее название файла оформления для модуля.
Пример: Нужно сделать уникальное оформление комментариев для модуля News
В таком случае создаём файл оформления в директории темы с названием comment-News.html
Система определит его автоматически и будет использовать для персонального оформления комментариев модуля News.
Используемые переменные
$name - Ник пользователя на проекте
$info - Верхняя правая информационная строка
$avatar - Аватар пользователя
$text - Содержание комментария
$rate - Рейтинг пользователя
$link - Нижняя правая информационная строка
Оформление модулей системы
Описание оформления модулей
1. Файл table-open.html отвечает за оформление верхней части модуля и других отделов, где используется функция OpenTable();
2. Файл table-close.html отвечает за оформление нижней части модуля и других отделов, где используется функция CloseTable();
Создание оформления модулей
Вы можете создать уникальное оформление, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/. Если это необходимо, создаём похожее название файла оформления для модуля.
1. Для верхней части модуля, table-open-Название_модуля.html
2. Для нижней части модуля, table-close-Название_модуля.html
Пример: Нужно сделать уникальное оформление для модуля News
В таком случае создаём файл оформления в директории темы с названием table-open-News.html и table-close-News.html
Система определит их автоматически и будет использовать для персонального оформления модуля News.
Оформление сообщений на главной странице
Описание оформления сообщений
Файл message-box.html отвечает за сообщения на главной странице
Используемые переменные
$title - Заголовок сообщения
$content - Содержание сообщения
Оформление страницы печати
Описание оформления страницы печати
Файл prints.html отвечает за оформление страниц печати в модулях.
Создание оформления страниц печати
Вы можете создать уникальное оформление для страниц печати, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/. Если это необходимо, создаём похожее название файла оформления для модуля.
Пример: Нужно сделать уникальное оформление страницы печати для модуля News
В таком случае создаём файл оформления в директории темы с названием prints-News.html
Система определит его автоматически и будет использовать для персонального оформления страниц печати модуля News.
Используемые переменные
$charset - Кодировка страницы
$ThemeSel - Название темы оформления
$title - Содержание заголовка кода страницы
$homeurl - Адрес сайта
$sitename - Название сайта
$site_logo - Логотип сайта
$ptitle - Содержание заголовка
$text - Информация
$url - Ссылки на статью и сайт
Оформление заголовков поиска
Описание оформления заголовков поиска
Файл search.html отвечает за оформление заголовков с поиском в модулях.
Создание оформления заголовков поиска
Вы можете создать уникальное оформление заголовков поиска, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/. Если это необходимо, создаём похожее название файла оформления для модуля.
Пример: Нужно сделать уникальное оформление заголовков поиска для модуля News
В таком случае создаём файл оформления в директории темы с названием search-News.html
Система определит его автоматически и будет использовать для персонального оформления заголовка поиска модуля News.
Используемые переменные
$name - Выводимое название модуля
$mod - Оригинальное название модуля
$s_search - Название поиска
$navi - Ссылки навигации модуля
Оформление заголовков во всей системе
Описание оформления заголовков
Файл title.html отвечает за оформление заголовков. Как правило, они используются моделями системы для отображения их названий.
Создание оформления заголовков
Вы можете создать уникальное оформление заголовков, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории modules/. Если это необходимо, создаём похожее название файла оформления для модуля.
Пример: Нужно сделать уникальное оформление заголовка для модуля News
В таком случае создаём файл оформления в директории темы с названием title-News.html
Система определит его автоматически и будет использовать для персонального оформления заголовка модуля News.
Используемые переменные
$text - Содержание заголовка
Оформления ошибок, предупреждений и информации
Описание оформления ошибок
Файл warning.html отвечает за оформление ошибок, предупреждений и вывода важной информации в системе.
Используемые переменные
$text - Информация
$toredirect - Дальнейший, автоматический переход, так называемый «Редирект».
В двух предыдущих частях мы познакомились с основами «правил перезаписи» URL и «условиями правил». Позвольте предложить к рассмотрению два примера, иллюстрирующих более сложные приложения. Первый пример имеет дело с динамическими страницами, а второй показывает возможности вызова «.txt» файлов и произведение различных действий над ними.
Предположим, что у нас есть виртуальный магазин по продаже каких-то товаров. Клиенты обращаются к описаниям товаров через скрипт:
Эти адреса представлены как ссылки на большинстве страниц сайта.
А теперь допустим, что вы решили добавить сайт для индексации в поисковые системы. Тут вас поджидает небольшая неприятность – не все поисковики принимают, понимают и индексируют URL, в которых содержится символ «?».
Более естественным и приемлемым для поисковика является URL вида:
http://www.yoursite.com/cgi-bin/shop.cgi/product1
В данном случае символ «?» заменяется на «/».
Еще более комфортабельный URL с точки зрения поисковика будет иметь вид:
http://www.yoursite.com/shop/product1
Для поисковика, «shop» теперь как-бы является директорией, содержащей товары product1, product2 и т.д.
Если пользователь, со страницы результатов запроса в поисковике проследует по такой ссылке, то эта ссылка должна будет трансформироваться в ссылку: shop.cgi?product1.
Чтобы добиться такого эффекта можно использовать mod_rewrite, используя следующую конструкцию в файле .htaccess:
Переменные $1 и $2 составляют так называемые "backreferences". Они связаны с текстовыми группами. Вызываемый URL разбивается на части. Все, что находится перед «shop», плюс все что находится после «shop/» определяется и хранится в этих двух переменных: $1 и $2.
До этого момента, наши примеры использовали «правила» типа:
Однако мы еще не достигли истинной перезаписи URL адресов, в смысле того, что один URL должен перенаправлять посетителя на другой.
Для нашей записи вида:
применяется общий синтаксис: RewriteRule текущийURL перезаписываемыйURL
Как видите, эта директива выполняет действительную «перезапись» URL адреса.
В дополнение к записям в файл .htaccess, нужно еще заменить все ссылки на сайте, которые имеют формат «cgi-bin/shop.cgi?product», на ссылки вида: «shop/product»
Теперь, когда поисковик найдет страницу с подобными ссылками, он проиндексирует сайт без всяких видимых проблем.
Таким образом вы можете превратить чисто динамический сайт в сайт, имеющий статическую структуру, что явно принесет пользу в вопросе индексирования различными посковыми машинами. Обратите внимание на вид URL адресов на данном сайте. Вдобавок ко всему, они имеют еще и легкочитамую для человека структуру - ЧПУ (человекопонятный УРЛ). Но об этом мы поговорим в другой статье.
В нашем втором примере мы обсудим, как переадресовать запросы «.txt» файлов к сценарию программы.
Многие хостинг провайдеры, работающие с Apache предоставляют лог-файлы в общем формате. Это означает то, что они не будут соджержать поля с ссылающимися страницами и юзер-агентами.
Однако, относительно запросов к файлу «robots.txt», предпочтительно иметь доступ ко всем этим данным, чтобы иметь больше информации о посещении поисковиков, чем просто знать их IP адреса. Для того, чтобы оганизовать это, в «.htaccess» должны быть следующие записи:
Теперь при запросе файла «robots.txt» наш RewriteRule переадресует посетителя (робота) к обрабатывающему запросы скрипту text.cgi. Кроме того, переменная передается скрипту, которая будет обработана в соответствии с вашими нуждами. «REQUEST_URI» определяет имя запрашиваемого файла. В данном примере это – «robots.txt». Скрипт прочтет содержание «robots.txt» и отправит его web-браузеру или роботу поискового сервера. Таким образом, мы можем считать хиты посетителей и вести свои лог-файлы.
С этой целью, скрипт будет использовать переменные окружения «$ENV {'HTTP_USER_AGENT'}» и т.д. Это обеспечит получение всей требуемой информации. Вот исходный текст для сценария cgi, упомянутого выше (пример взят с сайта http://fantomaster.com):
Загрузите файл с данным содержимым в корневую или в DocumentRoot директорию сервера и установите права доступа у файлу (chmod) 755. Затем, создайте каталог «stats». Более детальное описание о том, как установить скрипт вы можете получить на сайте разработчика.
Если настройки вашего сервера не позволяют исполнять cgi-сценарии в главной директории (DocumentRoot), то попробуйте следующий вариант:
Обратите внимание, что в этом случае, будет необходимо изменить пути в коде скрипта!
Наконец, вот решение задачки, данной в предыдущей части этой публикации:
Если мы пишем в регулярном выражении «^212.37.64» вместо «^212.37.64.» (с точкой в конце), то даст ли это тот же самый эффект, и будут ли исключены те же самые IP адреса?
Регулярное выражение ^212.37.64 удовлетворяет и применимо к следующим строкам:
Следовательно, последняя цифра «4» может сопровождаться любой символьной строкой. Однако, максимальным значением IP является адрес 255.255.255.255 – который подразумевает, что например 212.37.642.12 – неправильный (недопустимый) IP. Единственный допустимый IP в вышеприведенном списке – 212.37.64.12!
Для написания стандартных тем оформления, не требуется познания в PHP. Все действия производятся в формате HTML.
В нашем примере за основу взята стандартная тема системы Default. Копируем стандартную тему, меняем название папки на своё. После чего заходим в директорию темы и редактируем шаблоны под себя.
При использовании ссылок, допустим на графику, название темы в ссылке менять не обязательно. Директория темы определяется автоматически. Для этого используется переменная $ThemeSel. Прописываем только путь к графическому файлу.
Пример ссылки: templates/$ThemeSel/images/ваша_картинка.gif
Графические файлы оформления в директории images/ и за что они отвечают
Директории images/ используется, как архив где хранятся все графические элементы темы оформления сайта.
Файлы оформления элементов дизайна в основной директории и за что они отвечают
Файл style.css отвечает за оформление элементов дизайна всего сайта и позволяет контролировать практически любые элементы. С помощью данного файла можно сделать практически что угодно - от разметки колонок, размера шрифтов, цветовой гаммы до кнопок и всплывающих окон.
Основной шаблон оформления системы
За основное оформление системы отвечает файл index.html предназначенный для формирования структуры и порядка отражения модулей, блоков и других компонентов системы. Естественно, верстальщик и дизайнер могут наполнить его любым HTML оформлением и применить все возможные и известные приемы верстки.
Описание переменных вида {%XXXX%} и за что они отвечают. Расставить эти переменные можно по всему файлу, в каком угодно порядке.
{%HEAD%} - Стандартное формирование шапки - меты и титлы, а также содержание, которое присутствует в системе по умолчанию.
{%MODULE%} - Нарезка для модуля, который должна подставить система.
{%LICENSE%} - Копирайты системы.
{%BLOCKS banner%} или {%BLOCKS b%} - Верхний банер.
{%BLOCKS left%} или {%BLOCKS l%} - Левые блоки.
{%BLOCKS center%} или {%BLOCKS c%} - Верхние блоки.
{%BLOCKS down%} или {%BLOCKS d%} - Нижние блоки.
{%BLOCKS right%} или {%BLOCKS r%} - Правые блоки.
{%BLOCKS foot%} или {%BLOCKS f%} - Нижний банер.
{%BLOCKS time%} или {%BLOCKS t%} - Время генерации страницы.
{%BLOCKS none,ХХХ%} или {%BLOCKS n,ХХХ%} - Произвольный блок системы или свободный блок без оформления, где ХХХ - это либо ID блока, либо название файла блока.
{%BLOCKS standart,ХХХ%} или {%BLOCKS s,ХХХ%} - Произвольный блок системы или свободный блок с оформлением свободного блока, где ХХХ - это либо ID блока, либо название файла блока.
{%BLOCKS message%} или {%BLOCKS m%} - Сообщение на главной странице.
{%BLOCKS variables%} - Анализатор переменных.
{%BLOCKS query%} - Анализатор запросов в базу данных.
Оформление блоков системы
1. Файл block-center.html отвечает за верхние центральные блоки.
2. Файл block-down.html отвечает за нижние центральные блоки.
3. Файл block-left.html отвечает за левые блоки.
4. Файл block-right.html отвечает за правые блоки.
5. Файл block-all.html отвечает за все остальные блоки, которые могут использовать в отдельности от стандартных.
Ко всему этому вы можете создать уникальное оформление, персонально для каждого блока системы. В зависимости от названия имеющегося блока, который находится в корневой директории блоков blocks/. Если это необходимо, создаём идентичьное название файла оформления для блока, но с изменением окончания с .php на .html. Куда и вносим свой вид оформления.
Пример: Нужно сделать уникальное оформление для блока block-Voting.php
В таком случае создаём файл оформления в директории темы с названием block-Voting.html
Система определит его автоматически и будет использовать для персонального оформления блока block-Voting.php
Оформление модулей системы
1. Файл table-open.html отвечает за оформление верхней части модуля и других отделов, где используется функция OpenTable();
2. Файл table-close.html отвечает за оформление нижней части модуля и других отделов где используется функция CloseTable();
Ко всему этому вы можете создать уникальное оформление, персонально для каждого модуля системы. В зависимости от названия имеющегося модуля, который находится в корневой директории блоков modules/. Если это необходимо, создаём похожее название файла оформления для модуля.
1. Для верхней части модуля, table-open-Название_модуля.html
2. Для нижней части модуля, table-close-Название_модуля.html
Пример: Нужно сделать уникальное оформление для модуля Voting
В таком случае создаём файл оформления в директории темы с названием table-open-Voting.html и table-