Уведомление об изменении

В многопользовательских контекстах вы можете захотеть реализовать уведомление всякий раз, когда страница

модифицированный. Существует несколько моделей уведомлений:

• Выбираемое пользователем или настраиваемое уведомление администратора, или

опционально включение записи в специальный список изменений

• Автоматическое (e-mail) уведомление администратора обо всех изменениях

(подходит только для небольших или критических баз данных)

• Настраиваемое уведомление пользователя (абонента) всякий раз, когда

страница изменена

Каждое из них требует несколько разных решений для кодирования, и только некоторые из них

имеют какое-либо отношение к синтаксису расширенного формата. Тем не менее, все варианты

описано здесь.

Списки особых изменений

Внедрение выбираемого уведомления в общедоступный или частный список, вероятно, является самым простым.

изменить сделать. Все, что нужно, это путь и имя файла и своего рода «переключатель».

Переключатель — это просто элемент формы, закодированный, как в этом примере:

<input type="checkbox" name="notify" value="email"

<em>Уведомить об изменении страницы</em><br>

$уведомить>

Результат этого показан на рис. 6-5, который представляет собой подробное изображение формы редактирования.

страница. Когда редактирование отправлено, одно из переданных значений будет чеком.

состояние коробки.

Р

Сохранить изменения | xn&fafry:|бо

tkatpagewas

РИСУНОК 6-5.

;

Фрагмент страницы редактирования, показывающий

поле для добровольной подписи и форма

установите флажок, чтобы активировать уведомление

при изменении страницы


ВЗЛОМ ВАШЕГО ИСТОЧНИКА WIKI

175

То, что мы делаем со значением флажка, зависит от того, но код для этого будет

где-то в разделе "сохранить" (модуль). Если мы просто хотим добавить страницу

заголовок в специальный список, это может быть реализовано как условный вызов,

&ChangeNotification($title, $LastEdit), код которого показан здесь:

sub ChangeNotification {

мой ($pageTitle, $имя) =

мой $dt = &GetDate(время); # системная дата и время в предопределенном

формат

open( F, ">>pages/NotifiedChanges" ); # как страницу QuickiWiki

print F ":$pageTitle: изменено $dt по подписи \"$name\"\n" ;

закрыть(Ф)

}