Затем набор ссылок сопоставляется со списком всех страниц для определения

которые могут быть оборванными ссылками.

мой %refct = (); # -v- это коррелирует ссылки с существующими страницами

foreach $key ( ©pages ) {

$refct{$key} = определено $ref{$key} ? скаляр ©{$ref{$key}} : 0;

}

Затем создайте любые строки презентации для текущей страницы. Вот где разные

пути выбираются в зависимости от режима звонка — считать все ссылки или показывать открытые

ссылки.

мой% пар;

my $ sr = "<hr align = \" left \ " width=\"160px\">"

;

# короткое правило


300

АДМИНИСТРИРОВАНИЕ ВИКИ И ИНСТРУМЕНТЫ

мое $тело;

если ($mode eq "все") {

$body = "$sr Количество страниц, ссылающихся на: " ;

©pages = sort { $refct{$b> <=> $refct{$a} || $a cmp $b } ©pages;

foreach $key ( ©pages ) {

$body .= "<BR>$refct{$key} -- <a href=\"$ScriptUrl?$key\">$key</a> \n" ;

если ($refct{$key} == 1) {

$тело .=

Предупреждение: ссылка только из RecentChanges\n", если всплывает

@{$ref{$key}} eq RecentChanges;

}

$body .= "-- потерянная страница.\n" if ($refct{$key} = = 0 ) ;

} # --end foreach

$par{windowTitle} = "Счетчик ссылок в $DefaultTitle" ;

$par{pageTitle} = "Ссылки на страницы в $DefaultTitle" ;

На этом заканчивается часть подсчета всех. Результаты готовы к отображению. Обратите внимание, где предупреждения

включается, когда счет низкий.

Половина «еще» строит список открытых ссылок.

} еще {

$body = "<P x HR> 0 ссылок на страницы пера -- на страницах <DL>" ;

$par{windowTitle} = "Открыть ссылки в $DefaultTitle" ;

$par{pageTitle} = "Открыть ссылки в $DefaultTitle" ;

мой $ м;

foreach $pr ( ключи %ref ) {

если (! определено $refct{$pr}) {

$м++ ;

$body .= " <DT xa href=\"$ScriptUrl?edit=$pr\">?</a>$pr <DD>" ;

в то время как (@{$ref{$pr}}) {

$key = поп @{$ref{$pr}};

$тело .=

<a href=\"$ScriptUrl?$key\">$key</a> "

}

} # --конец, если

} # --end foreach $pr

$body .= "</DL> найдено $m открытых ссылок.";

} # --end if..else

Затем создайте компоненты для шаблона.

$пар{тело} = $тело;

$par{pageAction} = $SearchForm;

$par{pageTop} = « " EOF " ;


АДМИНИСТРИРОВАНИЕ БАЗЫ ДАННЫХ

<SMALL><a href =" $ScriptUrl?$DefaultTitle">$DefaultTitle</a>

<A href="$ScriptUrl?FindPage">Поиск</A> – <A href="$ScriptUrl?TopicSearch">Поиск по теме</A> </SMALL>

EOF

мой $pl = 's', если $n != 1; '

$par{pageSummary} .= <<"EOF2" ;

<SMALL>Обработано $n страниц$pl.</SMALL>

EOF2

&ServePage($WikiTemplate, \%par) ;

}

301

ServePage — это подпрограмма, которая загружает шаблон и заменяет заполнитель

переменные с компонентами $par. Обратите внимание, например, что, поскольку ничего не определено

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

на странице результатов.