1 Date: Mon, 23 Feb 2004 17:28:55 -0500
2 Mime-Version: 1.0 (Produced by PhpWiki 1.3.8pre)
3 X-Rcs-Id: $Id: WikiPlugin,v 1.11 2004-05-02 15:10:08 rurban Exp $
4 Content-Type: application/x-phpwiki;
6 pgsrc_version="3 $Revision: 1.11 $";
10 Content-Transfer-Encoding: binary
12 PhpWiki supports plugins since 1.3.x
14 ~WikiPlugins allow one to easily add new types of dynamic content (as
15 well as other functionality) to wiki pages within PhpWiki. In this
16 very wiki, the RecentChanges, BackLinks, LikePages and most other indexing
17 scheme pages are all implemented using plugins.
19 Sooner or later the old-style phpwiki: [MagicPhpWikiURLs] will be replaced
24 Currently, one invokes a plugin by putting something like:
30 into a regular wiki-page. That particular example produces as list of
31 pages which link to the current page. Here it is:
35 (This is great for Category and Topic pages. You can use this to get
36 an automatic in-line listing of pages in the Category or Topic.)
40 Plugins can take certain named arguments (most do). The values of
41 these arguments can be determined four different ways. In order of
44 # The plugin invocation can specify the value for an argument, like so:
46 <?plugin BackLinks page=OtherPage ?>
49 # The argument can be specified via an HTTP query argument. This
50 doesn't happen (is not allowed) unless the argument is mentioned in
51 the plugin invocation:
54 <?plugin BackLinks page ?>
57 # Default values specified in the plugin invocation:
60 <?plugin BackLinks page||=OtherPage ?>
63 # The plugin must supply default values for each argument it uses.
64 Such default args may be overriden by URL arguments like so:
66 BackLinks?page=ThisPage&sortby=-mtime
68 (The BackLinks plugin uses the current page as the default value for
69 the ''page'' argument.)
71 !!! There exist four basic types of plugins:
73 All this plugins derive from WikiPlugin class extending the run method
74 which returns a object tree of HTML objects, and may react on any
75 provided arguments from the ~WikiPage (see the args below) or
76 optionally overridden by arguments from the url (GET or POST args) (if defined via '||=').
78 *plugin-form* is used to display a input type=text box for the default argument.
80 *plugin-head* does not exist anymore. It was used to pass special headers to the HTTP output only,
81 which might be needed for framesets, redirection (RedirectToPlugin) and inserting
82 global javascript. plugin-head is not called inside the body.
84 *plugin-link* may be used to change the outgoing links for this page.
87 <?plugin PluginName [args...] ?>
91 <?plugin-form PluginName [args...] ?>
95 <?plugin-link PluginName [args...] ?>
97 ;:This is not used in any plugin so far.
100 <?plugin-head PluginName [args...] ?>
102 ;:This is not used anymore.
107 See PluginManager for the actual list. Most plugins have their own description page with the name *Plugin* appended.
111 * [AuthorHistory|AuthorHistoryPlugin]
114 * [Calendar|CalendarPlugin]
115 * [CalendarList|CalendarListPlugin]
116 * [Comment|CommentPlugin]
117 * [EditMetaData|EditMetaDataPlugin]
118 * [ExternalSearch|ExternalSearchPlugin]
119 * [FrameInclude|FrameIncludePlugin]
122 * [HelloWorld|HelloWorldPlugin]
123 * [IncludePage|IncludePagePlugin]
129 * [OldStyleTable|OldStyleTablePlugin]
132 * [PageGroup|PageGroupTest]
136 * [PhotoAlbum|PhotoAlbumPlugin]
137 * [PhpHighlight|PhpHighlightPlugin]
138 * [PhpWeather|PhpWeatherPlugin]
142 * [RawHtml|RawHtmlPlugin]
144 * RecentChangesCached
145 * [RedirectTo|RedirectToPlugin]
146 * [RichTable|RichTablePlugin]
148 * [SystemInfo|SystemInfoPlugin]
151 * [Transclude|TranscludePlugin]
152 * [UnfoldSubpages|UnfoldSubpagesPlugin]
157 * [WikiAdminChmod|PhpWikiAdministration/Chmod]
158 * [WikiAdminRemove|PhpWikiAdministration/Remove]
159 * [WikiAdminRename|PhpWikiAdministration/Rename]
160 * [WikiAdminSearchReplace|PhpWikiAdministration/Replace]
161 * [WikiAdminSelect|PhpWikiAdministration#Page Explorer]
162 * [WikiAdminUtils|PhpWikiAdministration#PhpWiki Internals]
163 * [WikiBlog|WikiBlogPlugin]
170 !!!More Ideas for Plugins
172 * Integrate Search form with individual InterWiki map entries
173 e.g. Search Php Website for:[ ] (Search)
174 * Various other indexing schemes.
176 * PdfOut: action handler for PrintAsPdf or DumpToPdf
177 * Insert XML/RSS/RDF news content from =location=xxx= where location
178 is a parameter to the plugin, maybe include some formatting control
179 of the output generated.
183 Pages in this category:
185 <?plugin BackLinks page=[pagename] noheader=1?>
187 * FullTextSearch: FindPage
188 * TitleSearch: LikePages (match_head, match_tail).