Затем набор ссылок сопоставляется со списком всех страниц для определения
которые могут быть оборванными ссылками.
мой %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. Обратите внимание, например, что, поскольку ничего не определено
для изображения логотипа местозаполнитель заменяется пустой строкой, поэтому логотип отсутствует.
на странице результатов.