Wikka Mod 041

Type: Feature Addition

Credit

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.
 
All  #  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  # 

D
DaC . . . . Owner: DaC
DaN . . . . Owner: DaN
DanieleCruciani . . . . Owner: DanieleCruciani
DanieleGaliffa . . . . Owner: DanieleGaliffa
DanWest . . . . Owner: DanWest
DanWestCalendar . . . . Owner: DanWest
DanWestCRT . . . . Owner: DanWest
DanWestCustomNav . . . . Owner: DanWest
DanWestIncludeFile . . . . Owner: DanWest
DanWestLink . . . . Owner: DanWest
DanWestPgHeader . . . . Owner: DanWest
DanWestUserReg . . . . Owner: DanWest
DanWestWx . . . . Owner: DanWest
DanzInde . . . . Owner: DanzInde
DarTar . . . . Owner: DarTar
DartarI18N . . . . Owner: DarTar
DarTarLinks . . . . Owner: DarTar
DatabaseAbstraction . . . . Owner: FrankChestnut
DatabaseConnectionFailed . . . . Owner: FrankK
DatabaseInfo . . . . Owner: JsnX
DateAndTimeFormat . . . . Owner: NilsLindenberg
DateWithOffset . . . . Owner: JasonHuebel
DaveAdmin . . . . Owner: DaveAdmin
DaveBarr . . . . Owner: DaveBarr
DaveBradshaw . . . . Owner: DaveBradshaw
DaveFullard . . . . Owner: DaveFullard
DavePawson . . . . Owner: DavePawson
DavePreston . . . . Owner: DavePreston
DavidAndrew . . . . Owner: DavidAndrew
DavidCollantes . . . . Owner: DavidCollantes
DaVide . . . . Owner: DaVide
DavidReisner . . . . Owner: DavidReisner
DavidRocha . . . . Owner: DavidRocha
DbieL . . . . Owner: DbieL
DbInfo . . . . Owner: JavaWoman
DbInfoAction . . . . Owner: JavaWoman
DeekMa . . . . Owner: DeekMa
DefaultCategoryPages . . . . Owner: IntElf
DeleteSpamAction . . . . Owner: MovieLady
DeliciousAction . . . . Owner: DarTar
DennysAttachmentsActionInfo . . . . Owner: DennyShimkoski
DennysCalendarExperiments . . . . Owner: DennyShimkoski
DennyShimkoski . . . . Owner: DennyShimkoski
DescribeActions . . . . Owner: DarTar
DescribeUsers . . . . Owner: GeorgePetsagourakis
DetectingZlibOutputCompression . . . . Owner: DotMG
DetectingZlibOutputCompressionFR . . . . Owner: DotMG
DevNet . . . . Owner: DevNet
DewJoy . . . . Owner: DewJoy
DidierSpaier . . . . Owner: DidierSpaier
DigitalNomad . . . . Owner: DigitalNomad
DigPatil . . . . Owner: DigPatil
DiN . . . . Owner: DiN
DmitriyArkhipov . . . . Owner: DmitriyArkhipov
DmitryKiselev . . . . Owner: DmitryKiselev
DnsHosting . . . . Owner: TobiasJohanKarlsen
DocsMigrationTemplate . . . . Owner: DarTar
DocumentationDiscussion . . . . Owner: NilsLindenberg
DocumentationGuidelines . . . . Owner: DarTar
DocumentationGuidelinesES . . . . Owner: YanB
DocumentationIndex . . . . Owner: NilsLindenberg
DocumentationIndexFR . . . . Owner: PivWan
DocumentationLanguageLinking . . . . Owner: NilsLindenberg
DocumentationTemplate . . . . Owner: DarTar
DocumentationTemplateES . . . . Owner: YanB
DocumentingCodeHowto . . . . Owner: NilsLindenberg
DocXoc . . . . Owner: DocXoc
DokuWiki . . . . Owner: DarTar
DokuWikiComparison . . . . Owner: DarTar
DomBonj . . . . Owner: MorganHill
DonaldActon . . . . Owner: DonaldActon
DotMGTextSearchExpanded . . . . Owner: DotMG
DraftDocument . . . . Owner: IntElf
DrahtKnäuel . . . . Owner: DrahtKnäuel
DreckFehler . . . . Owner: DreckFehler
DreckfehlerArchive . . . . Owner: DreckFehler
DrEvil . . . . Owner: DrEvil
DudeliDumidi . . . . Owner: DudeliDumidi
DuK . . . . Owner: DuK
DynamicPageGeneration . . . . Owner: ChiWaWa



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>");
}
?>
There are 5 comments on this page. [Show comments]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki