The latest hacks include support for WikiPlugins.
WikiPlugins allow one to easily add new types of dynamic content (as well as other functionality) to wiki pages within PhpWiki. In this very wiki, the RecentChanges, BackLinks, LikePages and DebugInfo pages are all implemented using plugins.
I expect that the search result pages, as well as much PhpWikiAdministration will soon be implemented via plugins as well. (I think the oh-so-ugly MagicPhpWikiURLs can be replaced by plugins, too.)
Example
Currently, one invokes a plugin by putting something like:
<?plugin BackLinks?>
into a regular wiki-page. That particular example produces as list of pages which link to the current page. Here it is:
Those pages link to WikiPlugin:
- AllUsers
- CalendarPlugin
- CommentPlugin
- ExternalSearchPlugin
- Giving Back
- GivingBackFr
- Help/AddCommentPlugin
- Help/AllPagesPlugin
- Help/AllUsersPlugin
- Help/AnalyseAccessLogSqlPlugin
- Help/AppendTextPlugin
- Help/AsciiMathPlugin
- Help/AsciiSVGPlugin
- Help/AuthorHistoryPlugin
- Help/BackLinksPlugin
- Help/BlogArchivesPlugin
- Help/BlogJournalPlugin
- Help/BoxRightPlugin
- Help/CalendarListPlugin
- Help/CalendarPlugin
- Help/CommentPlugin
- Help/CreateBibPlugin
- Help/CreatePagePlugin
- Help/CreateTocPlugin
- Help/DeadEndPagesPlugin
- Help/DiffPlugin
- Help/EditMetaDataPlugin
- Help/ExternalSearchPlugin
- Help/FileInfoPlugin
- Help/FoafViewerPlugin
- Help/FrameIncludePlugin
- Help/FullTextSearchPlugin
- Help/FuzzyPagesPlugin
- Help/GoToPlugin
- Help/GoogleMapsPlugin
- Help/GooglePluginPlugin
- Help/HelloWorldPlugin
- Help/HtmlConverterPlugin
- Help/IncludePagePlugin
- Help/IncludePagesPlugin
- Help/IncludeSiteMapPlugin
- Help/InterWikiSearchPlugin
- Help/JabberPresencePlugin
- Help/LdapSearchPlugin
- Help/LikePagesPlugin
- Help/LinkDatabasePlugin
- Help/ListPagesPlugin
- Help/ListSubpagesPlugin
- Help/ModeratedPagePlugin
- Help/MostPopularPlugin
- Help/NoCachePlugin
- Help/OldStyleTablePlugin
- Help/OrphanedPagesPlugin
- Help/PageDumpPlugin
- Help/PageGroupPlugin
- Help/PageHistoryPlugin
- Help/PageInfoPlugin
- Help/PageTrailPlugin
- Help/PasswordResetPlugin
- Help/PhotoAlbumPlugin
- Help/PhpHighlightPlugin
- Help/PhpWeatherPlugin
- Help/PluginManagerPlugin
- Help/PopUpPlugin
- Help/PopularNearbyPlugin
- Help/PreferenceAppPlugin
- Help/PrevNextPlugin
- Help/RandomPagePlugin
- Help/RateItPlugin
- Help/RawHtmlPlugin
- Help/RecentEditsPlugin
- Help/RecentReferrersPlugin
- Help/RelatedChangesPlugin
- Help/RichTablePlugin
- Help/RssFeedPlugin
- Help/SearchHighlightPlugin
- Help/SemanticRelationsPlugin
- Help/SemanticSearchPlugin
- Help/SiteMapPlugin
- Help/SqlResultPlugin
- Help/SyncWikiPlugin
- Help/SyntaxHighlighterPlugin
- Help/TeX2pngPlugin
- Help/TemplatePlugin
- Help/TextFormattingRules
- Help/TitleSearchPlugin
- Help/TranslateTextPlugin
- Help/UpLoadPlugin
- Help/UserPreferencesPlugin
- Help/UserRatingsPlugin
- Help/WantedPagesPlugin
- Help/WatchPagePlugin
- Help/WhoIsOnlinePlugin
- Help/WikiAdminChmodPlugin
- Help/WikiAdminChownPlugin
- Help/WikiAdminMarkupPlugin
- Help/WikiAdminRemovePlugin
- Help/WikiAdminRenamePlugin
- Help/WikiAdminSearchReplacePlugin
- Help/WikiAdminSelectPlugin
- Help/WikiAdminSetAclPlugin
- Help/WikiAdminUtilsPlugin
- Help/WikiBlogPlugin
- Help/WikiFormPlugin
- Help/WikiForumPlugin
- Help/WikiPlugin
- Help/WikiPollPlugin
- Help/YouTubePlugin
- Help/_AuthInfoPlugin
- Help/_BackendInfoPlugin
- Help/_GroupInfoPlugin
- Help/_PreferencesInfoPlugin
- Help/text2pngPlugin
- HomePage
- InterWikiSearch
- ModeratedPage
- PhotoAlbumPlugin
- PhpWeatherPlugin
- PluginManager
- ReleaseNotes
- Template/NewPlugin
- TextFormattingRules
(This is great for Category and Topic pages. You can use this to get an automatic in-line listing of pages in the Category or Topic.)
Details
(This is all subject to change.)
Plugins can take certain named arguments (most do). The values of these arguments can be determined four different ways. In order of precedence:
The plugin invocation can specify the value for an argument, like so:
<?plugin BackLinks page=OtherPage ?>
The argument can be specified via an HTTP query argument. This doesn't happen (is not allowed) unless the argument is mentioned in the plugin invocation:
<?plugin BackLinks page ?>
Default values specified in the plugin invocation:
<?plugin BackLinks page||=OtherPage ?>
- The plugin must supply default values for each argument it uses. (The BackLinks plugin uses the current page as the default value for the page argument.
Existing Plugins
- BackLinks
- CalendarPlugin
- DebugInfo
- FullTextSearch
- IncludePage
- LikePages
- MostPopular
- PageHistory
- RecentChanges
- text2png
- TitleSearch
- ViewSource
- walkabout
- PhpHighlightPlugin
- FrameContribs
More Ideas for Plugins
- Integrate Search form with individual InterWiki map entries e.g. Search Php Website for:[ ] (Search)
- WantedPages, OrphanedPages, other various indexing schemes.
- Diff, PageHistory
- Redirect plugin --
Include of 'lib/plugin/Redirect.php' failed.
- Insert XML/RSS/RDF news content from location=xxx where location is a parameter to the plugin, maybe include some formatting control of the output generated.
Pages in this category:
- AllUsers
- CalendarPlugin
- CommentPlugin
- ExternalSearchPlugin
- Giving Back
- GivingBackFr
- Help/AddCommentPlugin
- Help/AllPagesPlugin
- Help/AllUsersPlugin
- Help/AnalyseAccessLogSqlPlugin
- Help/AppendTextPlugin
- Help/AsciiMathPlugin
- Help/AsciiSVGPlugin
- Help/AuthorHistoryPlugin
- Help/BackLinksPlugin
- Help/BlogArchivesPlugin
- Help/BlogJournalPlugin
- Help/BoxRightPlugin
- Help/CalendarListPlugin
- Help/CalendarPlugin
- Help/CommentPlugin
- Help/CreateBibPlugin
- Help/CreatePagePlugin
- Help/CreateTocPlugin
- Help/DeadEndPagesPlugin
- Help/DiffPlugin
- Help/EditMetaDataPlugin
- Help/ExternalSearchPlugin
- Help/FileInfoPlugin
- Help/FoafViewerPlugin
- Help/FrameIncludePlugin
- Help/FullTextSearchPlugin
- Help/FuzzyPagesPlugin
- Help/GoToPlugin
- Help/GoogleMapsPlugin
- Help/GooglePluginPlugin
- Help/HelloWorldPlugin
- Help/HtmlConverterPlugin
- Help/IncludePagePlugin
- Help/IncludePagesPlugin
- Help/IncludeSiteMapPlugin
- Help/InterWikiSearchPlugin
- Help/JabberPresencePlugin
- Help/LdapSearchPlugin
- Help/LikePagesPlugin
- Help/LinkDatabasePlugin
- Help/ListPagesPlugin
- Help/ListSubpagesPlugin
- Help/ModeratedPagePlugin
- Help/MostPopularPlugin
- Help/NoCachePlugin
- Help/OldStyleTablePlugin
- Help/OrphanedPagesPlugin
- Help/PageDumpPlugin
- Help/PageGroupPlugin
- Help/PageHistoryPlugin
- Help/PageInfoPlugin
- Help/PageTrailPlugin
- Help/PasswordResetPlugin
- Help/PhotoAlbumPlugin
- Help/PhpHighlightPlugin
- Help/PhpWeatherPlugin
- Help/PluginManagerPlugin
- Help/PopUpPlugin
- Help/PopularNearbyPlugin
- Help/PreferenceAppPlugin
- Help/PrevNextPlugin
- Help/RandomPagePlugin
- Help/RateItPlugin
- Help/RawHtmlPlugin
- Help/RecentEditsPlugin
- Help/RecentReferrersPlugin
- Help/RelatedChangesPlugin
- Help/RichTablePlugin
- Help/RssFeedPlugin
- Help/SearchHighlightPlugin
- Help/SemanticRelationsPlugin
- Help/SemanticSearchPlugin
- Help/SiteMapPlugin
- Help/SqlResultPlugin
- Help/SyncWikiPlugin
- Help/SyntaxHighlighterPlugin
- Help/TeX2pngPlugin
- Help/TemplatePlugin
- Help/TextFormattingRules
- Help/TitleSearchPlugin
- Help/TranslateTextPlugin
- Help/UpLoadPlugin
- Help/UserPreferencesPlugin
- Help/UserRatingsPlugin
- Help/WantedPagesPlugin
- Help/WatchPagePlugin
- Help/WhoIsOnlinePlugin
- Help/WikiAdminChmodPlugin
- Help/WikiAdminChownPlugin
- Help/WikiAdminMarkupPlugin
- Help/WikiAdminRemovePlugin
- Help/WikiAdminRenamePlugin
- Help/WikiAdminSearchReplacePlugin
- Help/WikiAdminSelectPlugin
- Help/WikiAdminSetAclPlugin
- Help/WikiAdminUtilsPlugin
- Help/WikiBlogPlugin
- Help/WikiFormPlugin
- Help/WikiForumPlugin
- Help/WikiPlugin
- Help/WikiPollPlugin
- Help/YouTubePlugin
- Help/_AuthInfoPlugin
- Help/_BackendInfoPlugin
- Help/_GroupInfoPlugin
- Help/_PreferencesInfoPlugin
- Help/text2pngPlugin
- HomePage
- InterWikiSearch
- ModeratedPage
- PhotoAlbumPlugin
- PhpWeatherPlugin
- PluginManager
- ReleaseNotes
- Template/NewPlugin
- TextFormattingRules
- FullTextSearch: FindPage
- TitleSearch: LikePages (match_head, match_tail).