Создание собственного простейшего HTML модуля
Допустим, вы хотите, чтобы на вашем сайте присутствовал модуль, включающий статический HTML-текст. Это может быть страница с контактной информацией, не являющаяся частью модуля Content. Например, вы хотите, чтобы доступ пользователей к этой странице осуществлялся по адресу типа http://mysite.com/modules.php? name=ContactUs. Такой подход весьма удобен для опубликования сведений, которые постоянно должны присутствовать на сайте и редко изменяются; к страницам, содержащим такие сведения, относятся страницы About Us или Privacy Policy.
Нет проблем, просто создайте собственный модуль.
В действительности, программа PHP-Nuke поставляется вместе с модулем Addon_Sample, порядок доступа к которому вы можете определять по своему усмотрению. На рисунке 35.1 показано стандартное содержимое модуля, оно не очень приятно для восприятия. На самом деле, описываемый модуль позволяет реализовывать намного больше функций, а не только простое отображение HTML-текста, однако является хорошей основой для создания модуля, удовлетворяющего описанным выше требованиям.
Сначала взгляните на содержимое папки modules/Addon_Sample, расположенной на вашем Web-сайге. Обратите внимание, что эта папка включает три файла: Copyright.php. F2.php и Index.php. Опросим первые два файла и подробнее рассмотрим файл Index.php. Откройте его в программе Блокнот (Windows Notepad) или любом редакторе сценариев РНР, если такой имеется (я, например, использую редактор PrimalScript, который можно загрузить с сайта www.primalscrlpt.com). Перейдите в конец файла и найдите строки, подобные этим:
switch С$func){
default: Addonsample(}; break;
case "one": one(); break;
case "two": two(); break;
}
Эти строки присутствуют а каждом PHP-Nuke модуле. Они определяют все возможные условия. Так, если говорить о модуле Adon_Sample, ввод строки modules.php? name=Adon_Sample&op=one приводит к выполнению функции one (), ввод строки modules.php?name=Adon„Sample без дополнение ор - к выполнению функции Ad-donSample (). В нашем же случае необходимо, что бы результатом выполнения функции AddonSample () был вывод на экран некоторого статистического текста.
Итак, приступим к редактированию кода. Во-первых, создайте копню всей папки AddonSample и назовите ее Con tact Us. Далее отредактируйте файл Contact Us/Index.php так, чтобы его последний фрагмент выглядел следующим образом:
switch{$func){
default; AddonSample(); break;
>
Найдите следующий фрагмент кода и удалите его из файла Index.php:
function one() {
global $module_name; include("header.php"); OpenTable();
echo "Addon Sample File (index.php) function \ "one\ " <brxbr> " ; echo "<ul>";
echo "<lixa href=\ "modules .php?najtie=$module_ _name& ; file=index\">Go to index.php</a>"; echo "</ul>"; CloseTable()j include("footer.php");
}
function two() {
global $module_name; include("header.php"}} OpenTable();
echo "Addon Sample File (index.php) function \4wo\"; echo "<ul>";
echo "<lixa href=\"modules .php?name=$module_name&file= index\">Qo to index.php</а>? ; echo "<7ul>"; CloseTable (); include("footer.php");
>
Тем самым мы удалим функции one () и two (), которые не будут использоваться. То, что мы получили - более или менее приемлемое содержимое РНР-Nuke-моду ля:
<?php
if (!eregi("modules.php", $_SERVER['PHP_SELF1])) { die ("You can't access this file directly...");
)
$module„name « basename{dirname( FILE_));
$index = 1;
function AddonSample() { global $module_name; include("header.php")j OpenTable();
echo "Addon Sample File (index.php) <brxbr> " ; echo "<ul>"; echo "<lixa
href=\ "modules.php?name=$module_name&file=index&func=on e\">Function One</a>"; echo "clixa
href= \ "modules.php?name=$module_name?amp;file=index&an®;func=tw o\">Function Two</a>"; echo "<lixa
hraf=\"modules.php?name=$module_name&file=f2\">Call to file f2.php</a>";
echo "</ul>";
echo "You can now use Administration interface to activate or deactivate any module. As an Admin you can always "
."access to your Inactive modules for testing purposes." ;
CloseTable();
include("footer.php");
>
switch($?unc) {
default: AddonSample(); break;
>
?>
Средняя часть представленного кода, описание функции Addon„Sample {) - то место, куда вставляется HTML-текст страницы ContuctUs. Вам требуется сохранить все строки, следующие до строки OpenTableQ, включая последнюю строку, и все строки, расположенные ниже строки CloseTableQ вместе с самой этой строкой. Указанные две строки отвечают за отображения видимых элементов PHP-Nuke, именно между ними и следует расположить тест, форматированный с помощью языка HTML. Вот пример:
function AddonSample(){ global $module_name; include("header.php"); OpenTable{);
echo "To contact us:<br>" ."<br>"
."E-mail contacts0daisyrecipestation.org, or <br>" ."Call 1-8QO-EAT-FOOD from 9am to 9pm Alaskan time."; CloseTable()j include("footer.php");
>
Теперь послушайте, что все это значит:
? Я начал с оператора echo, следом за которым в кавычках помещена первая отображаемая надпись, отформатированная в HTML.
? В конце первой строки отсутствует точка с запятой.
? Последующие строки начинаются с точек, после которых следуют HTML-фрагменты, заключенные в кавычки. В конце этих строк также не ставится точка с запятой, поскольку данные строки являются продолжением оператора echo, т.е. позволяют разбивать этот оператор на несколько частей с целью более понятного представления.
? Последняя строка заканчивается точкой с запятой, что указывает на окончание записи оператора echo и всего HTML-блока.
Удалите из папки ContactUs файлы Copyright.php и F2.php. Убедитесь в том, что в указанной папке остался только один файл Index.php (все буквы строчные). Скопируйте эту папку в папку modules вашего Web-сайта. Теперь, если вы откроете элемент Modules (Модули) меню Administration (Администрирования), вы увидите, что в нем появился новый модуль с названием ContactUs, Вы можете активировать его и сделать доступным на сайте.
