Создание собственного простейшего 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&amp ; 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&amp;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&amp;file=index&amp;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&amp;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, Вы можете активировать его и сделать доступным на сайте.