Уведомление об изменении
В многопользовательских контекстах вы можете захотеть реализовать уведомление всякий раз, когда страница
модифицированный. Существует несколько моделей уведомлений:
• Выбираемое пользователем или настраиваемое уведомление администратора, или
опционально включение записи в специальный список изменений
• Автоматическое (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" ;
закрыть(Ф)
}