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  #  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 

M
MadStolt [MadStolt] . . . . Owner: MadStolt
MagicWords [MagicWords] . . . . Owner: JonAmgine
MagnarS [MagnarS] . . . . Owner: MagnarS
MagnarSveen [MagnarSveen] . . . . Owner: MagnarSveen
MaiGre [MaiGre] . . . . Owner: MaiGre
MailMan [MailMan] . . . . Owner: MailMan
MandrivaFaq [MandrivaFaq] . . . . Owner: MandrivaFaq
MapstractionAction [MapstractionAction] . . . . Owner: MasinAlDujaili
MapstractionActionInfo [MapstractionActionInfo] . . . . Owner: MasinAlDujaili
MarceloBurda [MarceloBurda] . . . . Owner: MarceloBurda
MarceloMetal [MarceloMetal] . . . . Owner: MarceloMetal
MarcusVorwaller [MarcusVorwaller] . . . . Owner: MarcusVorwaller
MariHedbom [MariHedbom] . . . . Owner: MariHedbom
MarioFaber [MarioFaber] . . . . Owner: MarioFaber
MarkAshworth [MarkAshworth] . . . . Owner: MarkAshworth
MarkGuckeyson [MarkGuckeyson] . . . . Owner: MarkGuckeyson
MarkusTacker [MarkusTacker] . . . . Owner: MarkusTacker
MarkWinter [MarkWinter] . . . . Owner: MarkWinter
MartinKihlgren [MartinKihlgren] . . . . Owner: MartinKihlgren
MasinAlDujaili [Masin Al-Dujaili] . . . . Owner: MasinAlDujaili
MassaclsAction [MassaclsAction] . . . . Owner: AndreasTengicki
MathewR [MathewR] . . . . Owner: MathewR
MathPublisher [MathPublisher] . . . . Owner: KyAnh
MaurizioStasolla [MaurizioStasolla] . . . . Owner: MaurizioStasolla
MaxMsd [MaxMsd] . . . . Owner: MaxMsd
MaxNomad [MaxNomad] . . . . Owner: MaxNomad
McMurlock [McMurlock] . . . . Owner: McMurlock
MediaWiki [MediaWiki] . . . . Owner: DarTar
MediaWikiComparison [MediaWikiComparison] . . . . Owner: DarTar
MedicalInformatics [MedicalInformatics] . . . . Owner: RenatoSabbatini
MeMeLab [MeMeLab] . . . . Owner: MeMeLab
MetaRefresh [MetaRefresh] . . . . Owner: JasonHuebel
MHM [MHM] . . . . Owner: MarkHissinkMuller
MichaeL [MichaeL] . . . . Owner: MichaeL
MichielHoltkamp [MichielHoltkamp] . . . . Owner: MichielHoltkamp
MichielWientjes [MichielWientjes] . . . . Owner: MichielWientjes
MickOner [MickOner] . . . . Owner: MickOner
Microsummaries [Microsummaries] . . . . Owner: NilsLindenberg
MightyPanda [MightyPanda] . . . . Owner: MightyPanda
MigrateFromWackoWiki [MigrateFromWackoWiki] . . . . Owner: BrianKoontz
MikeBev [MikeBev] . . . . Owner: MikeBev
MikeE [MikeE] . . . . Owner: MikeE
MikePalmer [MikePalmer] . . . . Owner: MikePalmer
MikeXstudios [MikeXstudios] . . . . Owner: MikeXstudios
MikMek [MikMek] . . . . Owner: MikMek
MiKolar [MiKolar] . . . . Owner: MiKolar
mimetex [mimetex] . . . . Owner: KyAnh
MimeTypesFile [MimeTypesFile] . . . . Owner: JsnX
MimeTypesFileDevelopment [MimeTypesFileDevelopment] . . . . Owner: NilsLindenberg
MindMapMod [MindMapMod] . . . . Owner: DigitalNomad
MindMapping [MindMapping] . . . . Owner: DarTar
MindMapRecentChanges [MindMapRecentChanges] . . . . Owner: JsnX
MindWikiDiff [MindWikiDiff] . . . . Owner: DarTar
MindWikiTOC [MindWikiTOC] . . . . Owner: DarTar
MiNni [MiNni] . . . . Owner: MiNni
MinorEditHack [MinorEditHack] . . . . Owner: FishPete
MinorEditHackEditPHP [MinorEditHackEditPHP] . . . . Owner: FishPete
MinusF [MinusF] . . . . Owner: MinusF
MirRodriguez [MirRodriguez] . . . . Owner: MirRodriguez
MissingImagesWorkaround [MissingImagesWorkaround] . . . . Owner: JavaWoman
MissingStylesWorkaround [MissingStylesWorkaround] . . . . Owner: JavaWoman
MissingToolbarWorkaround [MissingToolbarWorkaround] . . . . Owner: JavaWoman
MobileKid [MobileKid] . . . . Owner: MobileKid
Mod001fUserSettings [Mod001fUserSettings] . . . . Owner: JsnX
Mod002fExternalLinkTail [Mod002fExternalLinkTail] . . . . Owner: JsnX
Mod003bLinkTrackingInHeadersFooters [Mod003bLinkTrackingInHeadersFooters] . . . . Owner: JsnX
Mod004fWakkaFormatter [Mod004fWakkaFormatter] . . . . Owner: JsnX
Mod005fRecentChangesNotes [Mod005fRecentChangesNotes] . . . . Owner: JsnX
Mod006bRecentChangesXML [Mod006bRecentChangesXML] . . . . Owner: JsnX
Mod007bSQLBodyR [Mod007bSQLBodyR] . . . . Owner: JsnX
Mod008fCompression [Mod008fCompression] . . . . Owner: JsnX
Mod009fAdminUsers [Mod009fAdminUsers] . . . . Owner: JsnX
Mod010fPageDeleteHandler [Mod010fPageDeleteHandler] . . . . Owner: JsnX
Mod011bEditPreviewBug [Mod011bEditPreviewBug] . . . . Owner: JsnX
Mod012fDeleteCommentsHandler [Mod012fDeleteCommentsHandler] . . . . Owner: JsnX
Mod013fPageHistoryHandlers [Mod013fPageHistoryHandlers] . . . . Owner: JsnX
Mod014fTextSearchImproved [Mod014fTextSearchImproved] . . . . Owner: JsnX
Mod015fFilesAction [Mod015fFilesAction] . . . . Owner: JsnX
Mod016fPageIndexWithOwner [Mod016fPageIndexWithOwner] . . . . Owner: JsnX
Mod017fDisableCommentsOnIndividualPages [Mod017fDisableCommentsOnIndividualPages] . . . . Owner: JsnX
Mod017fPasswordManagement [Mod017fPasswordManagement] . . . . Owner: JsnX
Mod018fIFrameAction [Mod018fIFrameAction] . . . . Owner: JsnX
Mod019fInlineImages [Mod019fInlineImages] . . . . Owner: JsnX
Mod020fDisableCommentsOnIndividualPages [Mod020fDisableCommentsOnIndividualPages] . . . . Owner: JsnX
Mod021fPrintableViewCSS [Mod021fPrintableViewCSS] . . . . Owner: JsnX
Mod022fWikiEditGUIEditor [Mod022fWikiEditGUIEditor] . . . . Owner: JsnX
Mod023fCategories [Mod023fCategories] . . . . Owner: JsnX
Mod024fHighScores [Mod024fHighScores] . . . . Owner: JsnX
Mod025fOwnedPages [Mod025fOwnedPages] . . . . Owner: JsnX
Mod026bDoubleDoubleQuoteInsecurity [Mod026bDoubleDoubleQuoteInsecurity] . . . . Owner: JsnX
Mod027bCodeFormatterInsecurity [Mod027bCodeFormatterInsecurity] . . . . Owner: JsnX
Mod028bCategoryActionDoubleQuoteReliance [Mod028bCategoryActionDoubleQuoteReliance] . . . . Owner: JsnX
Mod029fImprovedSearch [Mod029fImprovedSearch] . . . . Owner: JsnX
Mod030fImprovedOwnershipHandling [Mod030fImprovedOwnershipHandling] . . . . Owner: JsnX
Mod031fSmarterLinking [Mod031fSmarterLinking] . . . . Owner: JsnX
Mod032bModRewrite [Mod032bModRewrite] . . . . Owner: JsnX
Mod033bRobotIndexing [Mod033bRobotIndexing] . . . . Owner: JsnX
Mod034bPersistentDatabaseConnections [Mod034bPersistentDatabaseConnections] . . . . Owner: JsnX
Mod035fAclTweak [Mod035fAclTweak] . . . . Owner: JsnX
Mod036fLastUsers [Mod036fLastUsers] . . . . Owner: JsnX
Mod037fFlash [Mod037fFlash] . . . . Owner: JsnX
Mod038fWikkaSkins [Mod038fWikkaSkins] . . . . Owner: JsnX
Mod039fMindMapMod [Mod039fMindMapMod] . . . . Owner: JsnX
Mod040fSmartPageTitles [Mod040fSmartPageTitles] . . . . Owner: JsnX
Mod041fPageIndexByLetter [Mod041fPageIndexByLetter] . . . . Owner: JsnX
Mod042fShowPageCodeHandler [Mod042fShowPageCodeHandler] . . . . Owner: JsnX
Mod043fCloneHandler [Mod043fCloneHandler] . . . . Owner: DarTar
ModifiedFiles [ModifiedFiles] . . . . Owner: MiKolar
ModifiedUserSettings [ModifiedUserSettings] . . . . Owner: MiKolar
ModRewrite [ModRewrite]
ModRewrite403Workaround [ModRewrite403Workaround] . . . . Owner: KoG
ModRewriteDevelopment [ModRewriteDevelopment] . . . . Owner: NilsLindenberg
ModrewriteInSubdirectoryWorkaround [ModrewriteInSubdirectoryWorkaround] . . . . Owner: JavaWoman
ModRewriteUsing1and1 [ModRewriteUsing1and1] . . . . Owner: SamClayton
ModRewriteUsingDreamhost [ModRewriteUsingDreamhost] . . . . Owner: XyzzyB
MohamedJadelrab [MohamedJadelrab] . . . . Owner: MohamedJadelrab
MoinMoin [MoinMoin] . . . . Owner: BrianKoontz
MoKoshi [MoKoshi] . . . . Owner: MoKoshi
MonstoBrukes [MonstoBrukes] . . . . Owner: MonstoBrukes
MoonEdit [MoonEdit] . . . . Owner: NilsLindenberg
MoPork [MoPork] . . . . Owner: MoPork
MoreWikka [MoreWikka] . . . . Owner: BrianKoontz
MorganHill [MorganHill] . . . . Owner: JimRegan
MostVisited [MostVisited] . . . . Owner: GeorgePetsagourakis
MotoWebmaster [MotoWebmaster] . . . . Owner: MotoWebmaster
MovePages [MovePages] . . . . Owner: DreckFehler
MovieLady [MovieLady] . . . . Owner: MovieLady
Mp3Player [Mp3Player] . . . . Owner: GmBowen
MtGoat [MtGoat] . . . . Owner: MtGoat
MuchachosdeSanjorge [MuchachosdeSanjorge] . . . . Owner: MuchachosdeSanjorge
MultiLanguageMenus [MultiLanguageMenus] . . . . Owner: WigAnt
MultiSiteDeployment [MultiSiteDeployment] . . . . Owner: MasinAlDujaili
MvKozyrev [MvKozyrev] . . . . Owner: MvKozyrev
MyChanges [MyChanges]
MyChangesAction [MyChangesAction] . . . . Owner: TimoK
MyChangesActionInfo [MyChangesActionInfo] . . . . Owner: NilsLindenberg
MyFreemind [MyFreemind] . . . . Owner: OtTo
MyPages [MyPages]
MyPagesActionInfo [MyPagesActionInfo] . . . . Owner: NilsLindenberg
MyPageTemplate [MyPageTemplate] . . . . Owner: DavidKeltie
MyPageTemplateJohan [MyPageTemplateJohan] . . . . Owner: AslamAbrahams
MySandbox [MySandbox] . . . . Owner: RomanIvanov
MySkin [MySkin] . . . . Owner: DarTar
MySql [MySql] . . . . Owner: LaurentBurgbacher
MyTreo [MyTreo] . . . . Owner: MyTreo
MytWm [MytWm] . . . . Owner: MytWm
MyWiki [MyWiki] . . . . Owner: MyWiki



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