Wikka Mod 041
Type: Feature AdditionCredit
Mark Kasper and GmBowen (main credit for the idea and initial code)AHerdOfTurtles (for helping me see that this is a cool idea)
Jason Tourtelotte (major refinement to the code -- almost a complete rewrite)
Description
This modification adds the ability to show an index listing of pages that start with a certain letter. There is also an alphabetical heading at the top of each listing. Just click a letter to see pages that start with that letter.
For example:
Usage:
{{pageindex letter="d"}}Outcome:
Page Index
This is an alphabetical list of pages you can read on this server.
H
HackArt [HackArt] . . . . Owner: HackArt
HalfBat [HalfBat] . . . . Owner: HalfBat
HandleCsvData [HandleCsvData] . . . . Owner: NilsLindenberg
HandlerInfo [HandlerInfo] . . . . Owner: RichardTerry
HandlerInfoTemplate [HandlerInfoTemplate] . . . . Owner: JavaWoman
HandlerShowSchema [HandlerShowSchema] . . . . Owner: KlenWell
HandlerTemplate [HandlerTemplate] . . . . Owner: JavaWoman
HandlingReferrers [HandlingReferrers] . . . . Owner: DarTar
HandlingUTF8 [HandlingUTF8] . . . . Owner: AndreaRossato
HandlingWikkaConfig [HandlingWikkaConfig] . . . . Owner: NilsLindenberg
HansCheng [HansCheng] . . . . Owner: HansCheng
HansEric [HansEric] . . . . Owner: HansEric
HansKolpak [HansKolpak] . . . . Owner: HansKolpak
HansSamios [HansSamios] . . . . Owner: HansSamios
HansStienen [HansStienen] . . . . Owner: HansStienen
HartmutOldenbuerger [HartmutOldenbuerger] . . . . Owner: HartmutOldenbuerger
HasBeen [HasBeen] . . . . Owner: HasBeen
HashAction [HashAction] . . . . Owner: BrianKoontz
HealingCommunity [HealingCommunity] . . . . Owner: HealingCommunity
HeJiang [HeJiang] . . . . Owner: HeJiang
HelpWanted [HelpWanted]
HenkDaalder [HenkDaalder] . . . . Owner: HenkDaalder
HeriNiaina [HeriNiaina] . . . . Owner: HeriNiaina
HexAlite [HexAlite] . . . . Owner: HexAlite
hey [hey] . . . . Owner: TestWikiUser
HideReferrers [HideReferrers] . . . . Owner: DarTar
HierarchiesAndInheritance [HierarchiesAndInheritance] . . . . Owner: JavaWoman
HighlightAction [HighlightAction] . . . . Owner: SpifFin
HighlighterAction [HighlighterAction] . . . . Owner: JavaWoman
HighlightSearch [HighlightSearch] . . . . Owner: EmeraldIsland
HighlightSearchWikka12 [HighlightSearchWikka12] . . . . Owner: EmeraldIsland
HighScores [HighScores] . . . . Owner: JsnX
HighscoresActionInfo [HighscoresActionInfo] . . . . Owner: NilsLindenberg
HihachI [HihachI] . . . . Owner: HihachI
HilaryDuffLover [HilaryDuffLover] . . . . Owner: HilaryDuffLover
HillarAarelaid [HillarAarelaid] . . . . Owner: HillarAarelaid
HomePage [Welcome to WikkaWiki]
HomePageNew [HomePageNew] . . . . Owner: NilsLindenberg
HomeWork [HomeWork] . . . . Owner: MedGrad
Horst [Horst] . . . . Owner: Matrix5000
HowtoAddOwnFeature [HowtoAddOwnFeature] . . . . Owner: OnegWR
HowtoTemplate [HowtoTemplate] . . . . Owner: JavaWoman
HtaccessConfig [HtaccessConfig] . . . . Owner: JavaWoman
HtaccessConfigInfo [HtaccessConfigInfo] . . . . Owner: JavaWoman
HtmlAreaEditing [HtmlAreaEditing] . . . . Owner: JsnX
HTMLHandler [HTMLHandler] . . . . Owner: BrianKoontz
HTMLHandlerInfo [HTMLHandlerInfo] . . . . Owner: BrianKoontz
HtmlSpecialChars [HtmlSpecialChars] . . . . Owner: NilsLindenberg
HughJones [HughJones] . . . . Owner: HughJones
HvM [HvM] . . . . Owner: HvM
HyperLink [HyperLink] . . . . Owner: DbieL
HypeXR [HypeXR] . . . . Owner: HypeXR
Code
[26/9/04] actions/pageindex.php file after this mod:
<?php
if ($pages = $this->LoadAllPages())
{
if (isset($_REQUEST["letter"])) $requested_letter = $_REQUEST["letter"]; else $requested_letter = '';
if (!$requested_letter && isset($letter)) $requested_letter = strtoupper($letter);
$cached_username = $this->GetUserName();
$user_owns_pages = false;
$link = $this->href("", "", "letter=");
$index_header = "<strong><a href='$link'>All </a></strong> \n";
$index_output = "";
$current_character = "";
$character_changed = false;
foreach ($pages as $page)
{
$page_owner = $page["owner"];
// $this->CachePage($page);
$firstChar = strtoupper($page["tag"][0]);
if (!preg_match("/[A-Za-z]/", $firstChar)) $firstChar = "#";
if ($firstChar != $current_character) {
$index_header .= "<strong><a href='$link$firstChar'>$firstChar</a></strong> \n";
$current_character = $firstChar;
$character_changed = true;
}
if ($requested_letter == '' || $firstChar == $requested_letter) {
if ($character_changed) {
$index_output .= "<br />\n<strong>$firstChar</strong><br />\n";
$character_changed = false;
}
$index_output .= $this->Link($page["tag"]);
if ($cached_username == $page_owner) {
$index_output .= "*";
$user_owns_pages = true;
} elseif ($page_owner != '(Public)' && $page_owner != '') {
$index_output .= " . . . . Owner: ".$page_owner;
}
$index_output .= "<br />\n";
}
}
$index_header .= "<br />";
if ($user_owns_pages) $index_output .= "<br />\n* Indicates a page that you own.<br />\n";
print $index_header.$index_output;
} else {
print("<em>No pages found.</em>");
}
?>