PhpWikiManual
This is the user manual for PhpWiki 1.6.5.
This document is long and can it can take a while to render the first time you view it. If you get a PHP error you can increase the max_execution_time = 60 line in php.ini.
You are using PhpWiki at this very moment. Incredible, ain't it?
Visit our home page at
https://sourceforge.net/projects/phpwiki/ and see PhpWiki
in action at
http://phpwiki.demo.free.fr (and of course here too
).
Included from Help/WikiWikiWeb
A WikiWikiWeb is a site where everyone can collaborate on the content.
Today, the most well-known and widely used Wiki is
Wikipedia. The first Wiki ever created was the
Portland Pattern Repository at
https://wiki.c2.com/?WikiWikiWeb.
You and I will find these statements there particularly relevant:
The point is to make the
EditText form simple and the
FindPage search fast.
In addition to being quick, this site also aspires to Zen ideals generally
labeled
WabiSabi. Zen finds beauty in the imperfect and
ephemeral. When it comes down to it, that's all you need.
The Universe tends toward chaos. The Universe tends toward Wiki.
You can say hello on RecentVisitors, or read about
HowToUseWiki and
AddingPages.
So go ahead and play with it and have fun!!
Included from Help/Steve Wainstead
Hi. I started building this
WikiWikiWeb but many others help me
now. I'm at
http://www.panix.com/~swain/.
Please report bugs to
phpwiki-talk@lists.sourceforge.net.
Since wabi-sabi represents a comprehensive Japanese world view or aesthetic system, it is difficult to explain precisely in western terms. According to Leonard Koren, wabi-sabi is the most conspicuous and characteristic feature of what we think of as traditional Japanese beauty and it “occupies roughly the same position in the Japanese pantheon of aesthetic values as do the Greek ideals of beauty and perfection in the West.”
“Wabi-sabi is a beauty of things imperfect, impermanent, and incomplete.”
“It is the beauty of things modest and humble.”
“It is the beauty of things unconventional.”
(quoted from “
WABI-SABI: FOR ARTISTS,DESIGNERS, POETS & PHILOSOPHERS,” 1994, Leonard Koren)
The concepts of wabi-sabi correlate with the concepts of Zen Buddhism, as the first Japanese involved with wabi-sabi were tea masters, priests, and monks who practiced Zen. Zen Buddhism originated in India, traveled to China in the 6th century, and was first introduced in Japan around the 12th century. Zen emphasizes “direct, intuitive insight into transcendental truth beyond all intellectual conception.” At the core of wabi-sabi is the importance of transcending ways of looking and thinking about things/existence.
- All things are impermanent
- All things are imperfect
- All things are incomplete
(also taken from WABI-SABI: FOR ARTISTS,DESIGNERS, POETS & PHILOSOPHERS, 1994, Leonard Koren):
Material characteristics of wabi-sabi:
- suggestion of natural process
- irregular
- intimate
- unpretentious
- earthy
- simple
For more about wabi-sabi, see
http://c2.com/cgi/wiki?WabiSabi.
Included from Help/WikisUsingPhpWiki
Here are some wikis using PhpWiki:
See also
https://www.opensourcecms.com/phpwiki/ for a Phpwiki demonstration.
Included from Help/AddingPages
Adding pages
To add a new page to the wiki, all you have to do is come up with a meaningful title and put it between [[double brackets]].
Then you can go ahead and click the question mark at the end of your new hyperlink, and the Wiki will give you a window for making the new page.
The page name can contain any character, except:
- angle brackets (<>),
- square brackets ([]),
- curly brackets ({}),
- double quotes ("),
- pipe (|),
- and hash sign (#) that is used for anchors.
If you wish to add documents with complex markup to the wiki, you might be better off providing a URL to it than trying to add the text of the document here, like so:
[[http://phpwiki.sourceforge.net/|PhpWiki project homepage]]
The Wiki does not support most HTML tags, only the simplest. See
TextFormattingRules.
<tags>They will just render like text.</tags> Wiki is meant to be as
simple as possible to encourage use.
Note that there is a feature that your system administrator can enable
to allow
embedded HTML, but there are security risks involved.
Removing pages
Removing a page will clear all it versions. The history of the page will still be visible and the removal will appear in the RecentChanges. It will be possible to restore the page by creating a new version; in that case, all previous versions will be restored.
You must be logged as administrator to be able to remove a page.
Purging pages
Purging a page will delete it with all its versions without any possibility to restore it. Purging will not appear in the RecentChanges.
You must be logged as administrator to be able to purge a page.
All pages have an Edit link. You can edit the page you are reading by clicking that link.
Included from Help/GoodStyle
“Young writers often suppose that style is a garnish for the meat of prose, a sauce by which a dull dish is made palatable. Style has no such separate entity; it is nondetachable, unfilterable. The beginner should approach style warily, realizing that it is himself he is approaching, no other; and he should begin by turning resolutely away from all devices that are popularly believed to indicate style--all mannerisms, tricks, adornments. The approach to style is by way of plainness, simplicity, orderliness, sincerity.”
--Strunk and White, “The Elements of Style”
And thus an American textbook, typical required reading for
10th-grade English students, unknowingly extols some virtues of
Wabi Sabi.
--scummings
Included from Help/GoogleLink
A new UserPreferences setting to optionally add a [G] link to unknown pages, with a link to Google:[pagename]. Default: Off
Included from Help/HowToUseWiki
“Wiki wiki” means “quick” in Hawai'ian.
All you really need to know is:
- To edit any page click on the Edit. You should do that right now, and read the source code of this page. It will make more sense.
- You get italics by surrounding words with two slashes on either side like this.
- You get bold text by using two asterisks on either side.
- And, bold italics by using both.
- You get monospaced text by using two hash signs on either side.
- You get bullets by using an asterisk * at the start of the line.
- To have a paragraph in plain monospaced font, start it with {{{ and end it with }}}:
this is a poem for sure about monospacing i wrote in purple velour but couldn't find a rhyme for monospacing
- You separate paragraphs with an extra blank line. Example:
I am a paragraph.
I am a paragraph too. We're just very small paragraphs.
- You can get horizontal rules with four or more dashes like this:
- To create hyperlinks you just capitalize the words and string them together. Let's say you want to create a page about how Steve Wainstead eats worms. All you have to do is capitalize each word and string them together like this: SteveWainsteadEatsLiveWorms. If the page does not exist yet a question mark appears after the link, inviting you to create the page: ThisPageShouldNotExist. (And please don't ruin the example by creating one.)
- To link to pages outside the Wiki, you can just type in the URL and
Wiki will link it for you:
http://www.nytimes.com/ - To put images in, just provide the hyperlink in brackets like this: [[http://www.yourhost.yourdomain/images/picture.png]]. Image URLs not in brackets will just appear as hyperlinks to the image.
- Now you are ready to begin
adding pages.
A
WikiWikiWeb is meant to be fast and easy to edit. It has very simple
markup that you can read about in
Help:TextFormattingRules.
If you don't like the size of the text editing window you get, you can change it. See UserPreferences.
Included from FindPage
Here are some good starting points for browsing.
HowToUseWiki gives you the quick lowdown on Wiki markup.- RecentChanges recorded automatically.
MoreAboutMechanics of browsing and editing on this server.
Title Search
Here's a title search. Try something like wiki or sandwich.
Full Text Search
Use the following for a full text search. The results will show all lines on a given page which contain a match.
Fuzzy Search
In a fuzzy pages search the titles of all pages are examined to find those which are similarly spelled or similar sounding (English).
Tips
- Separate words with a space. All words have to match as substrings.
- 'OR', grouping with parenthesis, string-quoting and some glob-style wildcard characters are also supported.
- To exclude words from a title search or full text search, prepend a '-'.
- Use '^xx' or 'xx*' to match words starting with 'xx'.
- Use '*xx' or 'xx$' to match words ending with 'xx'.
- Use '^word$' to match exact words.
- Use regex=auto and 're:' like 're:word.*xx' or regex=posix to use Posix regular expressions. (not yet)
- Use regex=auto and '//' like '/^word$/' or regex=pcre to match using Perl-style regular expressions.
- Use regex=sql to match using SQL-style wildcards '%' and '_'.
- Use regex=none to match any wildcards verbatim.
Example
- 'wiki text -php' looks for all pages containing the words 'wiki' and 'text', but not containing the word 'php'.
You can easily use images in the wiki.
Uploaded images
First, image files need to be uploaded in the wiki. For that purpose, you will use the
UpLoad plugin.
Toolbar
Once the image is uploaded, the easiest way to insert it is to use the toolbar.
Click on the
icon and you will be shown a list
of available images.
Select an image and click Insert. The image will be inserted without options or alternative text.
TOOLBAR_IMAGE_PULLDOWN must be set to true for the icon to appear in the toolbar (default).
Syntax
You give access to the uploaded image with the following syntax.
{{myimage.png}}
or
[[Upload:myimage.png]]
will inline the image.
{{myimage.png|this is the alt text for my image}}
inlines the image with an alternative text.
[[some link|{{myimage.png}}]]
if you click on the image, will goto "some link"
[[some link|{{myimage.png|alt text}}]]
same with alternative
[[http://example.com/|{{myimage.png}}]]
same as above: picture links to url
[[http://example.com/|{{myimage.png|alt text}}]]
same with alternative
Upload:myimage.png
shows a plain link
[[Upload:myimage.png | my image]]
shows the image under a link named "my image".
For Mediawiki compatibility, the keyword Upload: can be replaced by File: or Image:.
Options
Using the Upload: syntax, options are allowed to change the appearance:
[[Upload:myimage.png size=40x25 align=center]]
Separate options by spaces. The allowed options are the following:
- size: width "x" height or num + "%"
- align: string
- border: number
- hspace: number
- vspace: number
URL images
You can also use "external" images by providing a URL.
In that case, you simply put the URL between double brackets or double curly brackets:
[[http://phpwiki.demo.free.fr/themes/default/images/poweredby_phpwiki_51x31.png]]
or
{{http://phpwiki.demo.free.fr/themes/default/images/poweredby_phpwiki_51x31.png}}
will give:

See Also
Included from Help/Categories
Categories are a way to group pages that are related to the same subject. They provide an easy way to browse the wiki.
In Phpwiki, categories are not stored in a separate namespace like in Mediawiki for
instance. A category is a page with a name that begins with “Category” and contains
a call to the
BackLinks plugin.
Creating a new category
The simplest way to create a new category is to to go the CategoryCategory page.
Enter its name (starting with “Category”) and hit “CreatePage” button.
This will automatically insert the necessary plugins calls.
You might want to add at the beginning of the page a paragraph explaining the purpose of the category.
Suppose you want to create a category called CategoryFruit. You might add:
This Category groups the different kinds of fruit.
By default, the new category is created as a subcategory of CategoryCategory (the “root” category). You might want to change this (see below “Category hierarchies”).
Putting a page in a category
To put the article banana in CategoryFruit, you have to put at the end of the page:
---- [[CategoryFruit]]
The CategoryFruit page will then display your text describing the purpose of the category, then the list of pages in the category.
The can be done very easily by using the
button of the edit toolbar when editing the page.
Category hierarchies
The simplest way to use categories is to use “flat” categories. But you can also build a hierarchy of categories by putting categories themselves in categories.
For example, you can put the [[CategoryFruit]] in [[CategoryFood]] instead of default [[CategoryCategory]].
Tips and tricks
- Page CategoryCategory is the root category. All categories should be subcategories of this category (recursively).
- If in a page you need to refer to a category, you should add a semi-colon: [[:CategoryFruit]]. This will create a link to the category without putting the page in the category (which would be the case if using [[CategoryFruit]]).
- You can put a page in several categories if needed.
Included from Help/InterWiki
This wiki supports InterWiki links in a style copied from
UseMod:
wiki. Links to pages in other wikis can be made without having to know
or type the full URLs, for example:
MeatBall:InterWiki will link to
the page named "InterWiki" at Meatball wiki.
The InterWiki map is taken from the the <verbatim> block in
InterWikiMap, but that page must be locked for it to work. This denies
a potential hacker the ability to nefariously change every InterWiki
link to point to some evil URL. If no map is found in InterWikiMap (or
the page is not locked), PhpWiki will fall back to using the file
lib/interwiki.map in your phpwiki distribution. The InterWiki map
file in use at PhpWiki: can be viewed at
http://phpwiki.sf.net/interwiki.map.
The map file is manually updated. It is based upon and periodically
synchronized with
UseMod's InterMap
but it is not quite identical. One notable difference from
UseMod:
is that PhpWiki supports '%s' within the URLs in the map--see the
entry for RFC for an example of how this works.
Not all of the entries in the InterWikiMap are actual wikis. For
example, these are just regular web sites:
Dictionary:fungible,
JargonFile:Alderson loop,
IMDB:Roman Holiday,
RFC:2822, and
ISBN:020171499X.
The "Category" moniker is a special entry which allows one to link a
wiki page to a Category page without creating a back-reference. Thus
Category:Category links to the CategoryCategory
page, yet this page won't show up in the back-links listing of
CategoryCategory.
The term "InterWiki" also refers to a broader concept. See InterWikiSearch for more links.
Included from Help/LinkIcons
LinkIcons are an optional feature of PhpWiki. When activated, icons will be displayed in front of URLs to indicate the type of link.
![]() |
http link |
![]() |
generic internet link |
![]() |
Interwiki link |
![]() |
https link |
![]() |
mailto link |
![]() |
ftp link |
Examples
The following examples will display with the above link icons only if the administrator has enabled this feature.
InterWiki links
- InterWiki link
PhpWiki:InterWikiMap - A named InterWiki
read WhyWikiWorks at c2.
URLs
- Email address
PhpWiki-talk mailing list - Normal http link
PhpWiki's Home Page - Secure http link
PhpWiki's Home Page - File transfer
ftp://ftp.sourceforge.net
A generic icon is shown for other less common link types.
LinkIcons will only display when the URL protocol is one which PhpWiki is allowed to link to. The following examples won't show any icons and PhpWiki won't automatically provide double-clickable links either, unless the administrator adds them:
- bogus://oedipus.nostradamus.com
- bolo://lgm.cheshire.org
Included from Help/PredefinedIcons
Phpwiki allows you to easily include some predefined icons in your wiki pages.
The following icons are available:
| Notation | {{:)}} | {{:(}} | {{:P}} | {{:D}} | {{;)}} | {{(y)}} | {{(n)}} |
|---|---|---|---|---|---|---|---|
| Image | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Notation | {{(i)}} | {{(/)}} | {{(x)}} | {{(!)}} | {{(+)}} | {{(-)}} | {{(?)}} |
| Image | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Notation | {{(on)}} | {{(off)}} | {{(*)}} | {{(*r)}} | {{(*g)}} | {{(*b)}} | {{(*y)}} |
| Image | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Included from Help/WikiPlugin
A plugin is some PHP code that:
- lives in phpwiki/lib/plugin/<pluginname>.php
- implements the WikiPlugin interface by extending that class.
There are many plugins already distributed with PhpWiki. Simply look in the lib/plugin directory or see the PluginManager list or see all the Help/*Plugin pages.
To write your own, look at the
Help:HelloWorldPlugin (HelloWorld.php
in that directory), which is a minimal example of a plugin.
A WikiPlugin allows one to easily add new types of dynamic content (as well as other functionality) to wiki pages within PhpWiki. In this very wiki all actions which are not entirely lowercased are implemented using plugins, and some lowercased convenience actions also (rename, revert, setacl, diff, ...)
Note that you can NOT extend the markup syntax with a plugin, as in other wiki engines.
Example
Currently, one invokes a plugin by putting something like:
<<AllPages limit=20 cols=3>>
into a regular wiki-page. That particular example produces a list
of the first 20 existing pages in 3 columns, via the
PageList library.
All pages in this wiki (278 total):
|
Details
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:
<<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:
<<BackLinks page>>
Default values specified in the plugin invocation:
<<BackLinks page||=OtherPage>>
The plugin must supply default values for each argument it uses. Such default args may be overriden by URL arguments like so:
BackLinks?page=ThisPage&sortby=-mtime
(The BackLinks plugin uses the current page as the default value for the page argument.)
Most plugins using the
PageList library inherit their
default arguments from the PageList.
Standard Arguments
Most plugins display a list of pages, via the
PageList
library. PageList provides automatic support for those arguments.
info, exclude, author, owner, creator, sortby, limit, paging, cols, azhead, comma, commasep, ordered
For details see the
PageList library documentation.
exclude and pages accept a list of pages. Either as comma-separated list,
supporting glob-style wildcards, or via the <!plugin-list pluginname [args] !>
invocation syntax, where pluginname might be any plugin returning a
PageList.
Since most plugins return a PageList, this PageList is also a common input parameter for other plugins, actions or formats.
Basic Plugin Types
All these plugins derive from the WikiPlugin class extending the run method, which returns a object tree of HTML objects, and may react on any provided arguments from the WikiPage (see the args below) or optionally overridden by arguments from the url (GET or POST args), if defined via '||='.
A basic plugin just needs the run() method, and optionally getName,
getDescription, getDefaultArguments. See the
Help:HelloWorldPlugin for a short introduction.
plugin reacts on its arguments and the request and displays arbitrary HTML.
plugin-form is used to display a input type=text box for the default argument s.
plugin-list is used as argument to provide a dynamic list of pagenames.
<?plugin PluginName [args...] ?><?plugin-form PluginName [args...] ?><?plugin PluginName args=<!plugin-list pluginname [args...] !> ?>
The box Method
Themes based on the "sidebar" theme may use the box method of any plugin, which displays a title and a condensed content in a box.
WikiPluginCached
Plugins deriving from the class WikiPluginCached must also define the methods getPluginType(), optionally getExpire(), managesValidators(), and dependent of the getPluginType the methods to display the possibly cached result.
getImage(), getMap() or getHtml(),
optionally also
getAlt(), getImageType(), embedMap(), embedImg(), embedObject()
See the config.ini PLUGIN_CACHED_* settings and WikiPluginCached
Action Pages
The term
ActionPage refers to a page containing a plugin
invocation with the same or translated pluginname as the pagename.
An action is together with the pagename argument the basic
PhpWiki argument.
It can both be GET or POST actions. Actions are untranslated, always
English, pagenames can be localized.
Basic (and old) actions are all lowercase, like edit, browse, remove, ...
Newer actions in CamelCase are invoked via plugins on their
specific action page.
We decoupled actions from plugins via action pages for the following reasons:
- Support translated action buttons and customizable action descriptions.
- Customize standard actions by tuning the plugin invocation arguments. Override or add plugin defaults.
- Split simple plugins into multiple actions, like RecentChanges/RecentEdits, MostPopular/LeastPopular, AllPages/AllPagesCreatedByMe/AllPagesLastEditedByMe/ AllPagesOwnedByMe which differ only in one argument.
- Simplify the syntax for actions on another actions using a PageList as result of an actionpage as input parameter for another action or format.
- Those actions which have buttons or links in the theme or are referenced in the standard pgsrc pageset require their (possibly localized) actionpages, otherwise the actions will not work.
- If the localized actionpage is not found the english version is used.
- If no actionpage is found, it is recommended to do action=upgrade, which imports all missing and required action pages into the database.
So for a hypothetical new MyActionPage plugin MyActionPage will invoke the plugin and Help:MyActionPagePlugin should be the description page.
Existing Plugins
See PluginManager for a detailed list. Most plugins should have their own description page as subpage of Help/ with the name Plugin appended.
Included from Help/MagicPhpWikiURLs
About phpwiki: URLs
A special type of URL is available for making links to perform administrative and other special functions in PhpWiki. Here is a brief description of how they work.
The basic syntax of a phpwiki: URL is
phpwiki:pagename?query-args
If pagename is omitted it defaults to the current page.
Query-args should be a set of parameters in standard HTTP GET format.
The "action=x" parameter should almost always be given. It can be one of browse, diff, edit, viewsource, zip, dumpserial, loadserial, remove, lock, unlock, login, logout, setprefs or save. The default action is browse.
Some of the actions accept other parameters.
| FullTextSearch, TitleSearch | Accepts s=search term, and size=input size. |
| edit | Accepts version. |
| remove | Accepts verify. |
| save | Accepts editversion, minor_edit and content. |
| setprefs | Accepts edit_area_width and edit_area_height. |
Writing Magic Links in Wiki Pages
A magic link looks like:
[[ text | phpwiki-url ]]
The "text |" is optional but usually recommended. If given it will provide the label for the link.
The phpwiki-url is a phpwiki: URL as described above.
Some examples
[[phpwiki:SandBox?action=edit|Edit the SandBox]]
will generate a link which will take you directly to editing the SandBox, like so: Lock page to enable link.
Other possibilities:
- Diff the SandBox,
- Lock page to enable link,
- Lock page to enable link,
- Search for Page titles containing 'wiki'
Writing Magic Forms in Wiki Pages
Note: The old syntax for Magic forms is no longer supported. They are superseded by <?plugin-form>.
If the plugin is called using <?plugin-form instead of <?plugin and the plugin supports searching, then it will be rendered as a form.
| size | If given, specifies the size of the input area. |
| s | Specifies the default value for the input. |
Examples
A search plugin invoked with <?plugin instead of <?plugin-form simply inserts the search results of the plugin:
<<TitleSearch s=wiki noheader=true limit=10>>
Search results for Page titles containing 'wiki':
No matches
<?plugin-form FullTextSearch ?>
gives
While
<?plugin-form TitleSearch formsize=12 ?>
yields
Included from Help/MoreAboutMechanics
PhpWiki is written in the server-side scripting language PHP,
available from
https://www.php.net/. PHP resembles C and Perl in its
syntax, and functions much like ASP, EmbPerl or JSP.
PhpWiki consists of a dozen or so files of mixed PHP and HTML. The web
pages that make up a
WikiWikiWeb based on PHP live in a database with
backup copies of previous versions of pages stored as well. (For the
database, PhpWiki works with DBM, MySQL, PostgreSQL or text files.)
Every time a user hits the site, the page requested is pulled from the database and rendered on the fly. The user only really ever requests the file index.php, which then decides which other PHP files to include.
Links to pages in the Wiki are automatically linked: FindPage. This might be the single most compelling aspect of a Wiki, the ability to add pages simply by linking to them. The next most compelling thing is how easily external URLs link, like this:
http://www.wcsb.org/
ftp://ftp.redhat.com/
news://news.mozilla.org/
http://slashdot.org/
http://theregister.co.uk/
Combined with one namespace and a simple markup, a Wiki exhibits many
of the characteristics of
WabiSabi.
PhpWiki is licensed under the GNU General Public license, which you
should be able to see here:
http://www.gnu.org/copyleft/gpl.txt.
Included from Help/Wikicreole
Phpwiki allows you to use the Wikicreole syntax to edit your wiki pages.
We have implemented most of Wikicreole 1.0 and Wikicreole 1.0 additions. What is implemented is described below.
Complete information about Wikicreole can be found at:
http://www.wikicreole.org/
Cheat Sheet from Wikicreole web site

Text formatting
Bold
Bold text is made using two stars:
This sentence contains **words in bold**.
This sentence contains words in bold.
Italics
Italics text is made using two slashes:
This sentence contains //words in italics//.
This sentence contains words in italics.
Underline
Underline text is made using two underscores:
This sentence contains __underlined text__.
This sentence contains underlined text.
Monospace
Monospace text is made using two hashes:
This sentence contains ##monospace text##.
This sentence contains monospace text.
Superscript
Superscript text is made using two carets:
The XX^^th^^ century.
The XXth century.
Subscript
Subscript text is made using two commas:
Water is H,,2,,O.
Water is H2O.
Headers
Headers start on a new line with two or more equal signs (up to six) followed the header text.
Optional equal signs can be put at the end of the line (to be compatible with Mediawiki syntax). They are ignored.
The content of the headers is parsed, allowing for instance to use subscript and superscript text. (The header content parsing is optional in Wikicreole.)
~== First level of header (h2 in HTML) == ~=== Second level of header (h3 in HTML) === ~==== Third level of header (h4 in HTML)
Links
Simple link
This is a [[link]].
This is a link.
Link with alternate text
This is a [[link|link with alternate text]].
This is a link with alternate text.
External link (URL)
[[http://www.wikicreole.org]]
Raw external link (URL)
http://www.wikicreole.org
External link with alternate text
[[http://www.wikicreole.org|Visit the Wikicreole website]]
Paragraphs
Paragraphs are made of text separated by a blank line.
Line breaks
A line break is made with two backslashes.
This is the first line,\\and this is the second.
This is the first line,
and this is the second.
Lists
Unordered lists
* Item 1 * Item 2 ** Item 2.1 ** Item 2.2 * Item 3
- Item 1
Item 2
- Item 2.1
- Item 2.2
- Item 3
Ordered lists
# Item 1 # Item 2 ## Item 2.1 ## Item 2.2 # Item 3
- Item 1
Item 2
- Item 2.1
- Item 2.2
- Item 3
Horizontal rule
A horizontal rule is made with four hyphens (or more)
----
Images
A inline image is created with curly brackets. An alternate text can be put after a pipe. If there is none, an empty alternate text will be created.
{{myimage.png}}
{{myimage.png|this is my image}}
Tables
All cells are separated by single pipes. Leading spaces are permitted before the first cell of a row and trailing spaces are permitted at the end of a line. The ending pipe is optional. You can embed links, bold, italics, line breaks, and nowiki in table cells. Equal sign directly following pipe defines a header. Headers can be arranged horizontally or vertically.
|=Heading Col 1 |=Heading Col 2 | |Cell 1.1 |Two lines\\in Cell 1.2 | |Cell 2.1 |Cell 2.2 |
| Heading Col 1 | Heading Col 2 |
|---|---|
| Cell 1.1 | Two lines in Cell 1.2 |
| Cell 2.1 | Cell 2.2 |
Nowiki
Between three opening curly brackets and three closing curly brackets, no wiki markup is interpreted.
//This// does **not** get [[formatted]]
Some examples of markup are: {{{** <i>this</i> ** }}}
Some examples of markup are: ** <i>this</i> **
Escape character
The escape character is the tilde.
It escapes the character immediately following it.
It disables the automatic conversion of the URL immediately following it.
It disables camel case in the word following it.
~http://www.foo.com/
http://www.foo.com/
~CamelCaseLink
CamelCaseLink
Plugins
Plugins use double angle brackets.
<<CurrentTime format="date">>2026-05-08
Included from Help/TextFormattingRules
Synopsis
Emphasis: // for italics, ** for bold, **//...//** for both, ## for fixed width.
Lists: * for bullet lists, # for numbered lists; use multiple * or # for nested lists.
Headings: "==", "===", "====", etc. make headings.
Preformatted text: Enclose text in {{{...}}} or <pre></pre>.
Indented text: Indent the paragraph with whitespaces.
References: use double square brackets for a [[page link]] or URL [[http://cool.wiki.int/]].
References: use pipe | to name the links: [[page link|some text]] or [[http://cool.wiki.int/|some text]].
Preventing linking: Prefix with "~": ~DoNotHyperlink.
Misc: "\\" makes a linebreak, "----" makes a horizontal rule.
Allowed HTML tags: b big i
small tt em strong
s strike
abbr acronym cite
code dfn kbd samp
var sup sub
More:
tables,
images,
table of contents,
plugins
More explanations:
Help:TextFormattingRules
Character Formatting
Emphasis
- Use a double slash (//) for emphasis (usually italics)
- Use a double asterisk (**) for strong emphasis (usually bold)
- Mix them at will: bold italics
- Emphasis can be used multiple times within a paragraph, but cannot cross paragraph boundaries:
// this
will not work//
Monospace
Monospace text is made using two hashes:
This sentence contains ##monospace text##.
This sentence contains monospace text.
Superscript
Superscript text is made using two carets:
The XX^^th^^ century.
The XXth century.
Subscript
Subscript text is made using two commas:
Water is H,,2,,O.
Water is H2O.
Fonts
There's no syntax for font tags.
Color Text
It is possible to write text in color.
%color=green% green text %% and back to normal
will give:
green text and back to normal
The easiest way to do it is to use the COLOR button in the Edit Toolbar. The text will be in green by default. You can then change the color.
Allowed colors are:
- an HTML color number (# followed by 3 or 6 digits),
- the following predefined color names:
aqua |
beige |
black |
blue |
brown |
chocolate |
cyan |
fuchsia |
gold |
gray |
green |
ivory |
indigo |
lime |
magenta |
maroon |
navy |
olive |
orange |
pink |
purple |
red |
salmon |
silver |
snow |
teal |
turquoise |
violet |
white |
yellow |
Note: you can put the headers in color, but only if you do not have a table of content. For now, the table of content is incompatible with color headers.
Escape Character
The tilde '~' is the Escape Character:
- A single tilde '~' followed by nothing gets rendered as a single tilde. => ~
- Two tilde '~~' get rendered as a single tilde. => ~
- A single tilde before a link ('~http://foo.bar') prevents linking. => http://foo.bar
- Two tildes before a link ('~~http://foo.bar') produce a tilde followed by the hyperlinked URL. => ~
http://foo.bar - A tilde inside an URL gets removed, unless it's formatted inside square brackets.
- Two tildes inside an URL (without brackets) become a single tilde. =>
http://foo.bar/~user or
http://foo.bar/~user
Special Characters
All special non-whitespace HTML characters are displayed as-is. Exceptions below.
Paragraphs
- Don't indent paragraphs
- Words wrap and fill as needed
- Use blank lines as separators
- Four or more minus signs make a horizontal rule
- "\\", "%%%" or "<br>" makes a linebreak (in headings and lists too)
Lists
Unordered lists
Recommended syntax (Wikicreole):
- asterisk for first level
- double asterisk for second level, etc.
Be sure to put a space after the asterisk.
You can also use indented asterisk for second level (indent at least two spaces).
Ordered lists
Recommended syntax (Wikicreole):
- # for first level
- double # for second level, etc.
Be sure to put a space after the hash sign.
You can also use indented # for second level (indent at least two spaces).
Definition lists
Term: definition
gives
- Term
- definition
Remark
Items may contain multiple paragraphs and other multi-lined content, just indent the items
Headings
Wikicreole syntax (recommended)
- '==' at the start of a line makes a large heading (h2)
- '===' at the start of a line makes a medium heading (h3)
- '====' at the start of a line makes a small heading (h4)
- '=====' at the start of a line makes a smaller heading (h5)
- '======' at the start of a line makes a tiny heading (h6)
Classic Phpwiki syntax
- '!!!' at the start of a line makes a large heading (h2)
- '!!' at the start of a line makes a medium heading (h3)
- '!' at the start of a line makes a small heading (h4)
Preformatted text
Place the preformatted text between three opening curly brackets and three closing curly brackets:
{{{
Preformatted text. ~WikiLinks do not work.
}}}
gives
Preformatted text. WikiLinks do not work.
If you want Wiki interaction, place preformatted lines inside <pre>:
<pre> Preformatted text. WikiLinks still work. </pre>
gives
Preformatted text. WikiLinks still work.
Indented Paragraphs
Two or more whitespaces signal indented text. Indents may be nested.
This is an indented block of text.
This block is even more indented.
E-mail style block-quoting is supported as well:
> This is block-quoted text.
renders as
This is block-quoted text.
References
- Hyperlinks to other pages within the Wiki are made by placing the page name in double square brackets: this is a page link. Single brackets or WikiWords will also work.
- Hyperlinks to external pages are done like this:
http://www.wcsb.org/ - You can name the links by providing the hyperlink or pagename, a pipe (|) and then the name:
PhpWiki home page, the front page - You can suppress linking to URIs by preceding the word with a '~', e.g. NotLinkedAsWikiName, http://not.linked.to/
- Also, the old way of linking URL's is still supported: precede URLs
with "http:", "ftp:" or "mailto:" to
create links automatically as in:
http://c2.com/ - URLs ending with .png, .gif, or .jpg are inlined if in square brackets, by themselves:

- You can create footnotes by using [1], [2], [3], ... like this here #[|ftnt
_ref_1][1]. See footnote for counterpart. (If the [ is in the first column, it is a footnote definition rather than a footnote
reference [1].)
In-page hyperlinks are made by placing a named anchor and referring to the anchor in a hyperlink:
Named anchors:
- #[[foo]]: An anchor around the text "foo" with id "foo".
- #[[|foo]]: An empty anchor with id "foo".
- #[[howdy|foo]]: An anchor around the text "howdy" with id "foo".
- References to name anchors are made thusly:
[[#hyperlinks]], [[OtherPage#foo]], [[OtherPage#foo|named]].
- Semantic links are named links like: is_a::WikiPage and attributes like size:-4000.
- A pagelink within square brackets starting with ":" is not backlinked.
Images
An inline image is created with curly brackets. An alternate text can be put after a pipe. If there is none, an empty alternate text will be created.
{{myimage.png}}
{{myimage.png|this is the alt text for my image}}
[[some link|{{myimage.png}}]] - if you click on the image, will goto "some link"
[[some link|{{myimage.png|alt text}}]] - same with alternative
[[http://example.com/|{{myimage.png}}]] - same as above: picture links to url
[[http://example.com/|{{myimage.png|alt text}}]] - same with alternative
Tables
Wikicreole tables
All cells are separated by single pipes. Leading spaces are permitted before the first cell of a row and trailing spaces are permitted at the end of a line. The ending pipe is optional.
You can embed links, bold, italics, line breaks, and nowiki in table cells.
Equal sign directly following pipe defines a header. Headers can be arranged horizontally or vertically.
|=Heading Col 1 |=Heading Col 2 | |Cell 1.1 |Two lines\\in Cell 1.2 | |Cell 2.1 |Cell 2.2 |
will give:
| Heading Col 1 | Heading Col 2 |
|---|---|
| Cell 1.1 | Two lines in Cell 1.2 |
| Cell 2.1 | Cell 2.2 |
Mediawiki tables
See
Help:MediawikiTablePlugin.
Definition list style tables
Definition list style tables are written just like definition lists, except that you replace the trailing colon on the term with a "pipe" (|).
Term 1 |
Definition 1 begins here.
Term 1.1 |
Definition 1.1
Term 1.2 |
Definition 1.2
This is part of definition 1.
Term 2 |
Here's definition 2.
will give:
| Term 1 | Definition 1 begins here. |
|
|---|---|---|
| Term 1.1 | Definition 1.1 | |
| Term 1.2 | Definition 1.2 | |
This is part of definition 1. |
||
| Term 2 | Here's definition 2. | |
Old-style tables
HTML Mark-Up Language
- Some in-line markup is allowed through the use of HTML tags:
b, big, i, small,
tt, em, strong,
abbr, acronym, cite,
code, dfn, kbd, samp, var, sup and sub - < and > are themselves
- The & characters will not work
Creating various kinds of special links
See
Help:MagicPhpWikiURLs for gory details on how to write various kind
of wiki maintenance and other special links.
Inserting plugins
Several plugins permit embedding additional functionality to Wiki pages. For example,
<<BackLinks page=HomePage info=hits>>
gives
For more information on plugins see
Help:WikiPlugin, and PluginManager for a list of all plugins.
Included from Help/PagePermissions
Full recursive ACL page permissions support (Solaris / Windows style)
Boolean permissions per page and action (granted or denied) based on the current users
group membership is implemented with ACL's (Access Control Lists).
Opposed to the simplier unix like ugo:rwx system.
The previous system was only based on action and current user, independent of pages.
A individual page permission may be inherited from its parent pages, and
from an optional master page ("." or _dotpage').
Use predefined default permissions, if a "." page does not exist.
Pagenames starting with "." have tighter default permissions. (edit, change, list disallowed)
Order of Evaluation (denial overrides granted, or vice versa?)
The array of permissions is evaluated from top to bottom.
Access is granted if the next matching group membership returns true, denied if false.
If the group membership is false, the next group is tried.
If no group membership matches the upper permissions are tried recursively:
current page => basepage => "." page => default perms.
If no group-perm pair grants access, access is denied.
Consider the following perm:
'change' => array(ACL_ADMIN => false,
ACL_OWNER => true));
=> "Members of ADMIN may not change, the owner may change."
For Authentication see WikiUser.php, WikiGroup.php and main.php
I suspect ACL page permissions to degrade performance by 10%
- Enable/Disable it in config/config.ini
- ENABLE_PAGEPERM = true
The defined (and extendable) main.php actions map to simplier access types:
browse => view
edit => edit
create => edit or create
remove => remove
rename => change
store prefs => change
list in PageList => list
For simplicity we also map the ACL to the posix-style owner, group and world groups and read, write, execute perms, in cygwin fashion.
Groups - definition of group membership
See WikiGroup how to enable and where to store user-specific group membership. Group methods: database, file, ldap, wikipage, none
To do: explain better.
The following special groups are always predefined, even if no other group methods are provided:
- _EVERY
- _ANONYMOUS
- _BOGOUSER
- _HASHOMEPAGE
- _SIGNED
- _AUTHENTICATED
- _ADMIN
- _OWNER
- _CREATOR
Those special groups are stored in a page acl as locale-independent string.
To do: See the available translations for these special groups.
Other group names are safed as defined by the group methods. (e.g. "Other Users")
Perms - mapping of actions to permissions
PhpWiki supports individual actions, the default is browse. To simplify ACL's these actions are mapped to some special permissions (vulgo 'perms').
We currently support the following permissions which can be stored in every page, for every group.
| list | List this page and all subpages (for PageList) |
|---|---|
| view | View this page and all subpages |
| edit | Edit this page and all subpages |
| create | Create a new (sub)page |
| dump | Download the page contents |
| change | Change page attributes |
| remove | Remove this page |
There are no plans to support additional custom perms. The API can handle that, but there's no UI, and it would be only specific for certain plugins, which check permissions by their own.
Action <=> Perm mapping
Those perms are mapped to those actions.
Action Pages (plugins) check their access restrictions by themselves.
| list | none, 'list' is checked for every pagename listed in PageList, to prevent from being listed in AllPages. |
|---|---|
| view | browse, viewsource, diff, select, xmlrpc, search, pdf |
| dump | zip, ziphtml, dumpserial, dumphtml |
| edit | revert, edit |
| create | edit or create, if the page doesn't exist yet |
| change | upload, loadfile, remove, lock, unlock, upgrade, chown, setacl, setaclsimple, rename. All other actionpages which are not wikiwords. |
Default Permissions
$perm = array('view' => array(ACL_EVERY => true),
'edit' => array(ACL_EVERY => true),
'create' => array(ACL_EVERY => true),
'list' => array(ACL_EVERY => true),
'remove' => array(ACL_ADMIN => true,
ACL_OWNER => true),
'change' => array(ACL_ADMIN => true,
ACL_OWNER => true));
if (ZIPDUMP_AUTH)
$perm['dump'] = array(ACL_ADMIN => true,
ACL_OWNER => true);
else
$perm['dump'] = array(ACL_EVERY => true);
// view:
if (!ALLOW_ANON_USER) {
if (!ALLOW_USER_PASSWORDS)
$perm['view'] = array(ACL_SIGNED => true);
else
$perm['view'] = array(ACL_AUTHENTICATED => true);
$perm['view'][ACL_BOGOUSER] = ALLOW_BOGO_LOGIN ? true : false;
}
// edit:
if (!ALLOW_ANON_EDIT) {
if (!ALLOW_USER_PASSWORDS)
$perm['edit'] = array(ACL_SIGNED => true);
else
$perm['edit'] = array(ACL_AUTHENTICATED => true);
$perm['edit'][ACL_BOGOUSER] = ALLOW_BOGO_LOGIN ? true : false;
$perm['create'] = $perm['edit'];
}
return $perm;
Included from Help/SemanticRelations
The PhpWiki SemanticWeb implementation follows closely the implementation of the semantic Mediawiki extension. It features:
- Annotation of article-article-links by means of configurable relations (link-types).
- Annotation of articles with simple data-values that are assigned to numeric attributes.
- Support for using physical units of measurement in all numerical attributes, without need for prior configuration.
Relations can be searched for with regular expressions, attributes can be searched for with full mathematical expressions.
The annotation data will be combined with annotations from the current category system to generate standard-compliant OWL/RDF output, which can be fully processed with tools that support OWL DL or OWL Lite, but which can also be treated in a meaningful way by software that supports RDF, RDFS or XML.
Relations
Relations (link-types) are defined as link with the following syntax:
relation::pagename
Attributes
Attributes are defined as link to numbers (understandable by
GNU Units) with
the following markup syntax:
attribute:=value
Attributes and relations refer only to the current page - the current page is the subject, the relation the predicate, the linked page the object in a RDF triple. Relations always refer to another page, attributes not.
Example
Sample taken from
http://wiki.ontoworld.org/index.php/San_Diego
San Diego [[is_a::city]] located in the southwestern corner of [[located_in::California|California]], the extreme southwestern corner of the [[country::United States|United States]]. It is the county seat of San Diego County. As of the 2000 census, the city had a total population of [[population:=1,223,400|1,223,400]]; as of 2005, the California Department of Finance estimated the city to have 1,305,736 residents. The city is the second-largest in California and the seventh-largest in the United States and is noted for its temperate climate and many beaches. According to the United States Census Bureau, the city has a total area of [[area:=963.6 km^2|963.6 km²]] (372.0 mi²). 840.0 km² (324.3 mi²) of it is land and 123.5 km² (47.7 mi²) of it is water. The total area is 12.82% water. Most notably, San Diego is the location of the 2005 International Symposium on Wikis 2005, and the San Diego Zoo, and the San Diego Chargers. <<SemanticRelations>>
See Also
Included from Help/Spreadsheet
Phpwiki has extended the
Wikicreole syntax of tables so that some simple
spreadsheet-like calculations can be performed in tables.
Syntax
Five functions are available: SUM, AVERAGE, MAX, MIN and COUNT.
They operate on the current row (R) or column (C).
The function is placed in the cell surrounded by @@. Other wiki text can be placed in the cell, but there can be only one formula per cell.
Formula |
Meaning |
|---|---|
@@=SUM(R)@@ |
Sum of cells in current row |
@@=SUM(C)@@ |
Sum of cells in current column |
@@=AVERAGE(R)@@ |
Average of cells in current row |
@@=AVERAGE(C)@@ |
Average of cells in current column |
@@=MAX(R)@@ |
Maximum value of cells in current row |
@@=MAX(C)@@ |
Maximum value of cells in current column |
@@=MIN(R)@@ |
Minimum value of cells in current row |
@@=MIN(C)@@ |
Minimum value of cells in current column |
@@=COUNT(R)@@ |
Number of cells in current row (numeric or not, excluding headers and current cell) |
@@=COUNT(C)@@ |
Number of cells in current column (numeric or not, excluding headers and current cell) |
Examples
Sum
|=Region |=Telecom Sales |=Power Sales |=Other |=TOTAL | |=Europe | 320 | 80 | 120 |@@=SUM(R)@@ | |=Asia | 580 | 723 | 564 |@@=SUM(R)@@ | |=North America | 235 | 60 | 109 |@@=SUM(R)@@ | |=South America | 120 | 35 | 82 |@@=SUM(R)@@ | |=Antarctica | 0 | 0 | 12 |@@=SUM(R)@@ | |=TOTAL | @@=SUM(C)@@ | @@=SUM(C)@@ | @@=SUM(C)@@ |Grand total: @@=SUM(R)@@ |
| Region | Telecom Sales | Power Sales | Other | TOTAL |
|---|---|---|---|---|
| Europe | 320 | 80 | 120 | 520 |
| Asia | 580 | 723 | 564 | 1867 |
| North America | 235 | 60 | 109 | 404 |
| South America | 120 | 35 | 82 | 237 |
| Antarctica | 0 | 0 | 12 | 12 |
| TOTAL | 1255 | 898 | 887 | Grand total: 3040 |
Total of both colums and rows is calculated automatically by wiki.
Count and Sum
|=Bug |=Priority |=Subject |=Status |=Days to fix | 1231 | Low | File Open ... | Open | 3 | 1232 | High | Memory Window ... | Fixed | 2 | 1233 | Medium | Usability issue ... | Assigned | 5 | 1234 | High | No arrange ... | Fixed | 1 | Number of bugs: @@=COUNT(C)@@ | | | | Total: @@=SUM(C)@@ days
| Bug | Priority | Subject | Status | Days to fix |
|---|---|---|---|---|
| 1231 | Low | File Open ... | Open | 3 |
| 1232 | High | Memory Window ... | Fixed | 2 |
| 1233 | Medium | Usability issue ... | Assigned | 5 |
| 1234 | High | No arrange ... | Fixed | 1 |
| Number of bugs: 4 | Total: 11 days |
Min, Max and Average
|=Location |=Morning |=Noon |=Evening |=Average temperature | | Paris | 7 | 13 | 10 | @@=AVERAGE(R)@@ | | London | 3 | 10 | 8 | @@=AVERAGE(R)@@ | | Berlin | 9 | 15 | 12 | @@=AVERAGE(R)@@ | | Tokyo | 12 | 20 | 16 | @@=AVERAGE(R)@@ | | Maximum temperature | @@=MAX(C)@@ | @@=MAX(C)@@ | @@=MAX(C)@@ | | | Minimum temperature | @@=MIN(C)@@ | @@=MIN(C)@@ | @@=MIN(C)@@ | |
| Location | Morning | Noon | Evening | Average temperature |
|---|---|---|---|---|
| Paris | 7 | 13 | 10 | 10 |
| London | 3 | 10 | 8 | 7 |
| Berlin | 9 | 15 | 12 | 12 |
| Tokyo | 12 | 20 | 16 | 16 |
| Maximum temperature | 12 | 20 | 16 | |
| Minimum temperature | 3 | 10 | 8 |
Limitations
The formulas are evaluated line per line, from left to right.
So this will work:
| 10 | -13 | @@=SUM(R)@@ | | 15 | 17 | @@=SUM(R)@@ | | @@=SUM(C)@@ | @@=SUM(C)@@ | @@=SUM(R)@@ |
| 10 | -13 | -3 |
| 15 | 17 | 32 |
| 25 | 4 | 29 |
And this will not:
| @@=SUM(R)@@ | 10 | -13 | | @@=SUM(R)@@ | 15 | 17 | | @@=SUM(R)@@ | @@=SUM(C)@@ | @@=SUM(C)@@ |
| -3 | 10 | -13 |
| 32 | 15 | 17 |
| 0 | 25 | 4 |
Author
- Marc-Etienne Vargenau, Alcatel-Lucent
The PageList library allows to list a number of pagenames, optionally as table with various columns.
This library relieves some work for these plugins:
- AllPages,
- BackLinks,
- LikePages,
- MostPopular,
- TitleSearch,
- WikiAdmin* and more.
It also allows dynamic expansion of those plugins to include more columns in their output.
Arguments
Argument |
Description |
Default value |
|---|---|---|
info |
Which columns to display |
pagename |
exclude |
Which pages to exclude. Wildcards, comma-separated lists and <!plugin-list !> arrays allowed. |
none |
author |
Select pages by author; current user by [] |
false |
owner |
Select pages by owner; current user by [] |
false |
creator |
Select pages by creator; current user by [] |
false |
sortby |
Select column to sort |
none |
limit |
Number of rows, or start index and number of rows (see below) |
50 |
paging |
auto (top + bottom rows if applicable) |
auto |
cols |
side-by-side display of list (1-3) |
1 |
azhead |
1: group by initials |
0 |
comma |
Condensed comma-separated list, 1 if without links, 2 if with |
0 |
commasep |
Comma separator |
', ' |
listtype |
ul, ol, dl, comma |
ul |
ordered |
OL or just UL lists (ignored for comma) |
false |
linkmore |
If count > 0 and limit > 0, display a link with the number of all results, linked to the given pagename. |
none |
nopage |
for info=col omit the pagename column |
false |
Note for limit
limit can be:
- a single integer, in that case it is the number of rows;
- or two integers separated by a comma, in that case it is the start index (starting at 0) and the number of rows.
Info arguments
Column 'info=' arguments:
| pagename | Page Name (string regex) |
|---|---|
| mtime | Last Modified |
| hits | Hits |
| summary | Last Summary |
| version | Version |
| author | Last Author |
| locked | Locked |
| external | External |
| minor | Minor Edit |
| size | Size |
| creator | Creator |
| owner | Owner |
| checkbox | Selectable checkbox at the left |
| content | Page content |
| perm | Permission Mask |
| acl | ACL |
Special, custom columns, either theme or plugin (WikiAdmin*) specific:
| remove | Remove |
|---|---|
| renamed_pagename | Rename to |
| ratingwidget | wikilens theme specific. |
| custom | See plugin WikiTranslation |
Symbolic 'info=' arguments:
| all | All columns except the special columns |
|---|---|
| most | pagename, mtime, author, hits |
| some | pagename, mtime, author |
Included from Help/Advice for Mediawiki users
If you contribute to Wikipedia or to other wikis that use the Mediawiki software, you will notice some differences in the wiki syntax of Mediawiki and the wiki syntax of Phpwiki.
Syntax differences
Here are some differences between Mediawiki and Phpwiki:
- Italics are // (but you can also use '' like in Wikipedia)
- Bold is ** (you cannot use ''' like in Wikipedia)
- Line break is \\ in Wikicreole, <br /> in Mediawiki
- There is no automatic capitalisation of first character of page name. Pages [[foo]] and [[Foo]] are different.
- A space in a page name in not equivalent to an underscore. Pages [[foo bar]] and [[foo_bar]] are different. We recommend to use a space in the page names.
- Many things that are built-in in Mediawiki use plugins in Phpwiki (table of contents, redirections, back links, etc.).
- Redirections are less sophisticated in Phpwiki (e.g. backlinks do not show redirected pages)
Tables
You can use the
Mediawiki table syntax.
Included from Help/SemanticSearchAdvancedPlugin
Parse and execute a full query expression.
Usage
<<SemanticSearchAdvanced arguments>>
Arguments
All
PageList arguments, plus the following ones:
Argument |
Description |
Default value |
|---|---|---|
s |
query expression |
* |
page |
which pages (glob allowed) |
* (all) |
case_exact |
Boolean. If true, search with case exact. |
false |
regex |
Type of regular expression used for searching |
auto |
noform |
Boolean. If true, don't show form with results. |
false |
noheader |
Boolean. If true, header should be omitted. |
false |
Example
<<SemanticSearchAdvanced>>
Author
See Also
Included from Help/TitleSearchPlugin
The TitleSearch
plugin displays results of pagename search.
If only one page is found and auto_redirect is true, this page is displayed immediately, otherwise the found page list is displayed.
Usage
<?plugin-form TitleSearch arguments ?>
Arguments
All
PageList arguments (except paganame),
plus the following ones:
Argument |
Description |
Default value |
|---|---|---|
s |
String to search |
none (mandatory argument) |
auto_redirect |
Boolean. If true and only one page is found, this page is displayed immediately |
false |
noheader |
Boolean. If true, header should be omitted. |
false |
exclude |
Comma-separated list of pages to exclude |
false |
info |
Info to display in the table |
false |
case_exact |
Boolean. If true, search with case exact. |
false |
regex |
Type of regular expression used for searching |
auto |
format |
false |
Example
<?plugin-form TitleSearch ?>
Author
See Also
Included from Help/SemanticSearchPlugin
Search for relations/attributes and its values.
page - relation::object. e.g list all cities: is_a::city => relation=is_a&s=city
We search for both a relation and if the search is valid for attributes also, and OR combine the result.
An attribute has just a value, which is a number, and which is for sure no pagename, and its value goes through some units unification. (not yet)
We can also do numerical comparison and unit lifting with attributes:
- population > 1000000
- population > 1 million
Limitation:
- The backends can already do simple AND/OR combination of multiple relations and attributes to search for. Just the UI not. TODO: implement the AND/OR buttons. population < 1 million AND area > 50 km2
- Due to attribute internals a relation search with matching attribute names will also find those attribute names, but not the values. You must explicitly search for attributes then.
The Advanced query can do a freeform query expression with multiple comparison and nesting.
- "is_a::city and population > 1.000.000 and population < 10.000.000"
- "(is_a::city or is_a::country) and population < 10.000.000"
Usage
<<SemanticSearch arguments>>
Arguments
All
PageList arguments, plus the following ones:
Argument |
Description |
Default value |
|---|---|---|
s |
linkvalue query string |
* |
page |
which pages (glob allowed) |
* (all) |
relation |
linkname. which relations. |
all |
attribute |
linkname. which attributes. |
all |
attr_op |
a funny written way for equality for pure aesthetic pleasure "All attributes which have this value set" |
:= |
units |
||
case_exact |
Boolean. If true, search with case exact. |
true |
regex |
no word splitting, if no regex op is present, defaults to exact match |
auto |
noform |
Boolean. If true, don't show form with results. |
false |
noheader |
Boolean. If true, header should be omitted. |
false |
info |
valid: pagename, relation, linkto, attribute, value and all other pagelist columns |
false |
Example
<<SemanticSearch>>
Author
See Also
Included from Help/SemanticRelationsPlugin
Display the list of relations and attributes on this page.
Usage
<<SemanticRelations>>
Arguments
Argument |
Description |
Default value |
|---|---|---|
page |
Which pages (glob allowed) |
Current page |
relations |
Which relations |
All |
attributes |
Which attributes |
All |
units |
Not yet implemented. |
|
noheader |
Boolean. If true, header should be omitted. |
false |
nohelp |
Boolean. If true, do not display help. |
false |
Example
<<SemanticRelations>>
Help/SemanticRelations - Find out how to add relations and attributes to pages.
Author
See Also
Included from Help/SearchHighlightPlugin
The SearchHighLight
plugin is an
action page plugin,
which is only used internally.
When someone is referred from a search engine like Google, Yahoo or our own FullTextSearch, the terms the user searched for are highlighted.
Arguments
Argument |
Description |
Default value |
|---|---|---|
s |
The search term |
empty |
noheader |
Boolean. If true, header should be omitted. |
false |
hits |
Boolean. If true, print the list of lines with lines terms additionally. |
false |
case_exact |
Boolean. If true, highlight only case exact searches. Not yet supported. |
false |
regex |
Not yet supported. |
empty |
Included from Help/OrphanedPagesPlugin
The OrphanedPages
plugin returns a list of pages which are not linked to by any other page.
Usage
<<OrphanedPages arguments>>
Arguments
Argument |
Description |
Default value |
|---|---|---|
noheader |
Boolean. If true, header should be omitted. |
false |
include_empty |
Boolean. If true, pages that are referenced but not yet created are included in the list. |
false |
exclude |
Comma-separated list of pages to exclude. |
empty |
info |
List of columns to display. |
empty (only the page name will be displayed) |
sortby |
Select column to sort. |
pagename |
limit |
The number of pages to display. If the limit is 0, all orphaned pages will be displayed. |
0 |
paging |
auto (top + bottom rows if applicable) |
auto |
Example
<<OrphanedPages limit=10 paging=none>>
Fatal error: Maximum execution time of 20 seconds exceeded in /var/www/sda/3/7/phpwiki.demo/lib/WikiDB/backend/file.php on line 111





















