



--
-- Database: `wikka142`
--

-- --------------------------------------------------------

--
-- Table structure for table `[[dbprefix]]acls`
--

CREATE TABLE `[[dbprefix]]acls` (
  `page_tag` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `read_acl` text COLLATE utf8_unicode_ci NOT NULL,
  `write_acl` text COLLATE utf8_unicode_ci NOT NULL,
  `comment_read_acl` text COLLATE utf8_unicode_ci NOT NULL,
  `comment_post_acl` text COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`page_tag`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `[[dbprefix]]acls`
--

INSERT INTO `[[dbprefix]]acls` VALUES
('UserSettings', '*', '+', '*', '+'),
('AdminUsers', '!*', '!*', '!*', '!*'),
('AdminPages', '!*', '!*', '!*', '!*'),
('SysInfo', '!*', '!*', '!*', '!*'),
('WikkaConfig', '!*', '!*', '!*', '!*'),
('DatabaseInfo', '!*', '!*', '!*', '!*'),
('WikkaMenulets', '!*', '!*', '!*', '!*'),
('AdminBadWords', '!*', '!*', '!*', '!*'),
('AdminSpamLog', '!*', '!*', '!*', '!*'),
('WikkaInstaller', '!*', '!*', '!*', '!*');

-- --------------------------------------------------------

--
-- Table structure for table `[[dbprefix]]comments`
--

CREATE TABLE `[[dbprefix]]comments` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `page_tag` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `time` datetime NOT NULL DEFAULT '1900-01-01 00:00:00',
  `comment` text COLLATE utf8_unicode_ci NOT NULL,
  `user` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `parent` int(10) unsigned DEFAULT NULL,
  `status` enum('deleted') COLLATE utf8_unicode_ci DEFAULT NULL,
  `deleted` char(1) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_page_tag` (`page_tag`),
  KEY `idx_time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `[[dbprefix]]links`
--

CREATE TABLE `[[dbprefix]]links` (
  `from_tag` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `to_tag` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  UNIQUE KEY `from_tag` (`from_tag`,`to_tag`),
  KEY `idx_to` (`to_tag`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `[[dbprefix]]links`
--

INSERT INTO `[[dbprefix]]links` VALUES
('AdminBadWords', 'BadWordsAction'),
('AdminBadWords', 'CategoryAdmin'),
('AdminBadWords', 'DarTar'),
('AdminBadWords', 'JavaWoman'),
('AdminBadWords', 'WikkaBetaFeatures'),
('AdminPages', 'CategoryAdmin'),
('AdminSpamLog', 'AdminBadWords'),
('AdminSpamLog', 'CategoryAdmin'),
('AdminSpamLog', 'DarTar'),
('AdminSpamLog', 'JavaWoman'),
('AdminSpamLog', 'RecentComments'),
('AdminSpamLog', 'SpamLogAction'),
('AdminSpamLog', 'WikkaBetaFeatures'),
('AdminUsers', 'CategoryAdmin'),
('CategoryAdmin', 'CategoryCategory'),
('CategoryCategory', 'WikiCategory'),
('CategoryWiki', 'CategoryCategory'),
('DatabaseInfo', 'CategoryAdmin'),
('FormattingRules', 'CategoryWiki'),
('FormattingRules', 'InterWiki'),
('FormattingRules', 'SandBox'),
('FormattingRules', 'TableMarkup'),
('HighScores', 'CategoryWiki'),
('HomePage', 'CategoryWiki'),
('HomePage', 'FormattingRules'),
('HomePage', 'PageIndex'),
('HomePage', 'RecentChanges'),
('HomePage', 'SandBox'),
('HomePage', 'SysInfo'),
('HomePage', 'WikkaDocumentation'),
('HomePage', 'WikkaReleaseNotes'),
('InterWiki', 'CategoryWiki'),
('MyChanges', 'CategoryWiki'),
('MyPages', 'CategoryWiki'),
('OrphanedPages', 'CategoryWiki'),
('OwnedPages', 'CategoryWiki'),
('OwnedPages', 'HighScores'),
('PageIndex', 'CategoryWiki'),
('PasswordForgotten', 'CategoryWiki'),
('RecentChanges', 'CategoryWiki'),
('RecentComments', 'CategoryAdmin'),
('RecentComments', 'RecentlyCommented'),
('RecentlyCommented', 'CategoryWiki'),
('SandBox', 'CategoryWiki'),
('SysInfo', 'CategoryAdmin'),
('TableMarkup', 'CategoryWiki'),
('TableMarkup', 'HomePage'),
('TableMarkup', 'SandBox'),
('TableMarkup', 'TableMarkupReference'),
('TextSearch', 'CategoryWiki'),
('TextSearchExpanded', 'CategoryWiki'),
('UserSettings', 'CategoryWiki'),
('WantedPages', 'CategoryWiki'),
('WikiCategory', 'CategoryCategory'),
('WikiCategory', 'CategoryWiki'),
('WikkaConfig', 'CategoryAdmin'),
('WikkaInstaller', 'CategoryWiki'),
('WikkaMenulets', 'CategoryAdmin'),
('WikkaMenulets', 'DarTar'),
('WikkaMenulets', 'FilesHandler'),
('WikkaMenulets', 'GeorgePetsagourakis'),
('WikkaMenulets', 'HomePage'),
('WikkaMenulets', 'JasonHuebel'),
('WikkaMenulets', 'JavaWoman'),
('WikkaMenulets', 'MySkin'),
('WikkaMenulets', 'MySQL'),
('WikkaMenulets', 'NilsLindenberg'),
('WikkaMenulets', 'OnegWR'),
('WikkaMenulets', 'TimeWithOffset'),
('WikkaMenulets', 'WikkaCountingRecords'),
('WikkaMenulets', 'WikkaMenus'),
('WikkaMenulets', 'WikkaWiki'),
('WikkaReleaseNotes', 'CategoryWiki');

-- --------------------------------------------------------

--
-- Table structure for table `[[dbprefix]]pages`
--

CREATE TABLE `[[dbprefix]]pages` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `tag` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `title` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `time` datetime NOT NULL DEFAULT '1900-01-01 00:00:00',
  `body` mediumtext COLLATE utf8_unicode_ci NOT NULL,
  `owner` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `user` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `latest` enum('Y','N') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'N',
  `note` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `idx_tag` (`tag`),
  KEY `idx_time` (`time`),
  KEY `idx_owner` (`owner`),
  KEY `idx_latest` (`latest`),
  FULLTEXT KEY `body` (`body`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=35 ;

--
-- Dumping data for table `[[dbprefix]]pages`
--

INSERT INTO `[[dbprefix]]pages` VALUES
(1, 'HomePage', 'Getting started', '[[regtime]]', '{{image url="images/wikka_logo.jpg" alt="wikka logo" title="Welcome to your Wikka site"}}---{{checkversion}}---Thanks for installing Wikka! This wiki runs on version ##{{wikkaversion}}##, patch level ##{{wikkapatchlevel}}##. You may want to read the [[WikkaReleaseNotes | release notes]] to learn what''s new in this release.---------{{color c=''red'' text=''NOTE: This version has registrations disabled by default.''}} You MUST enable user registrations in ##wikka.config.php## (##''allow_user_registration'' => ''1'',##) to allow access by users other than the administrator set up during installation.------>>==Keep up-to-date==To receive the latest news from the Wikka Development Team, you can sign up to one of our [[http://wikkawiki.org/WikkaMailingLists | mailing lists]], subscribe to our [[http://blog.wikkawiki.org | Blog]] or join us for a chat on [[http://wikkawiki.org/TheLounge | IRC]].--->>====Getting started====Double-click on this page or click on the **Edit** link in the page footer to get started. If you are not sure how a wiki works, you can check out the [[FormattingRules | Wikka formatting guide]] and play in the SandBox.------>>==Need more help?==Don''t forget to visit the [[http://wikkawiki.org | WikkaWiki website]]!>>====Some useful pages====\n~-[[FormattingRules | Wikka formatting guide]]\n~-[[WikkaDocumentation | Documentation]]\n~-[[RecentChanges | Recently modified pages]]\n~-[[SysInfo | System Information]]\n---You will find more useful pages in the [[CategoryWiki | Wiki category]] or in the PageIndex.---', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(2, 'AdminBadWords', 'BadWords list maintenance', '[[regtime]]', '=====""BadWords"" list maintenance=====\n\n>>**See also:**\n~-WikkaBetaFeatures\n~-[[BadWordsAction | BadWords Action]]\n**Note:**\nWhile this action itself is still in beta, the ''badwords'' list this action allows to maintain is very much "live" and **actually used for content filtering of comments**. Words were taken from the referrers blacklist (for now) but the list is not "complete" - so in that sense it''s also still "beta". In other words, while you can "play" adding or removing words, be careful not to add innocent words!\n>>This is a test page for the ([[WikkaBetaFeatures | beta]]) ""BadWords"" action.::c::\n""<!--"Doesn''t look right with your skin? See <a href="DbInfoAction#hn_Styling">Styling</a> on DbInfoAction."-->""\n{{badwords}}\n\n~& Sounds interesting, but how does this work? -- DarTar\n~~&Patience... - I''ve been **very** busy spam fighting (still am, in fact - see your mail :)); documentation will follow. --JavaWoman\n\n----\nCategoryAdmin', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(3, 'AdminPages', 'Admin Pages', '[[regtime]]', '{{checkversion}}\n{{adminpages}}\n\n----\nCategoryAdmin', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(4, 'AdminSpamLog', 'Spam Log Management', '[[regtime]]', '=====Spam Log Management=====\n>>**see also:**\n~-RecentComments (with an interface to mass-delete spam and add them to the log)\n~-AdminBadWords (to maintain the list of words for the content filter)\n**documentation and development**\n~-WikkaBetaFeatures\n~-[[SpamLogAction | SpamLog Action]]\n\n''''While this action itself is still in beta, the ''spam log'' this action allows to view, maintain and manage is very much "live" and **actually used for logging rejected "spammy submissions"**, which can be comments, pages or feedback.'''' \n>>This is a test page for the (beta) [[SpamLogAction | SpamLog]] action.\n\nCurrent data are a little bit "lacking" since during development the format changed somewhat. (The edit functionality was used to add placeholders for missing data; from now on new data should be writting in this format.)\n\nWhile it''s already possible to "clear" the file it''s probably not a good idea to do this yet - it provides good data to test upcoming features with, such as selectable and sortable columns in the "summary" view and statistics. Apart from that, the user interface gives some hints about planned but not yet implemented  features. Some columns in the Summary view are truncated; you can hover your mouse or otherwise retrieve a title attribute to get the full string; the plan is to make the length(s) configurable to suit your own font and window size.\n~&That said, I''ve just cleared out a lot of bytes resulting from DarTar trying to save a page with a **lot** of links; these log items were not useful at all (though the page is!) - and URL throttling for admins isn''t either. //The edit handler has now been patched to apply URL throttling only for non-admins.// --JavaWoman\n\nPlease note that the development and documentation pages still need to be created or updated!::c::\n{{spamlog}}\n\n----\nCategoryAdmin', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(5, 'AdminUsers', 'Admin Users', '[[regtime]]', '{{checkversion}}\n{{adminusers}}\n\n----\nCategoryAdmin', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(6, 'CategoryAdmin', 'Wiki Administration Category', '[[regtime]]', '=====Wiki Administration Category=====This category links to pages for wiki administration.--- --- ----{{category}}--- --- ----[[CategoryCategory | List of all categories]]', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(7, 'CategoryCategory', 'List of All Categories', '[[regtime]]', '===List of All Categories===Below is the list of all Categories existing on this Wiki, granted that users did things right when they created their pages or new Categories. See WikiCategory for how the system works.--- ---- ---{{Category}}', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(8, 'CategoryWiki', 'Wiki Related Category', '[[regtime]]', '===Wiki Related Category===This Category will contain links to pages talking about Wikis and Wikis specific topics. When creating such pages, be sure to include CategoryWiki at the bottom of each page, so that page shows listed.--- --- ---- ---{{Category col="3"}}--- --- ----[[CategoryCategory | List of all categories]]', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(9, 'DatabaseInfo', 'Database Info', '[[regtime]]', '{{dbinfo}}\n\n----\nCategoryAdmin', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(10, 'FormattingRules', 'Wikka Formatting Guide', '[[regtime]]', '======Wikka Formatting Guide======---<<===General Guidelines===If a markup sequence is not in these guidelines, then it is not officially supported. Use caution when implementing markup that is not officially supported by this document, as undocumented functionality may change with version updates.--- ---Unless otherwise stated in these guidelines, all markup is line based, that is, a newline character should not intervene. These are identified as ''inline'' markup.<<::c::---===Escaping Markup===---Anything between 2 sets of double-quotes is not formatted.\nThis is the equivalent of escaping a character(s):--- ---<<\n~##""**two bold &#34&#34**&#34&#34 stars**""##\n\n~**two bold ""**"" stars**\n<<In this case, the second set of ""**"" (escaped) stars will be ignored, //i.e.,// will not terminate the bold markup.--- ---You can also use double-quote escaping to avoid linking of ""CamelCase"" words, e.g.---<<\n~##""&quot;&quot;WikiWord&quot;&quot; is not parsed as a link""##\n\n~""WikiWord"" is not parsed as a link\n<<::c::===1. Text Formatting===---<<\n~##""**I''m bold**""##\n\n~**I''m bold**\n<<::c::<<\n~##""//I''m italic text!//""##\n\n~//I''m italic text!//\n<<::c::<<\n~##""__And I''m underlined!__""##\n\n~__And I''m underlined!__\n<<::c::<<\n~##""##Monospace text##""##\n\n~##Monospace text##\n<<::c::<<\n~##""''''Highlighted text''''""## (using 2 single quotes)\n\n~''''Highlighted text''''\n<<::c::<<\n~##""++Strike through text++""##\n\n~++Strike through text++\n<<::c::<<\n~##""&pound;&pound;Text insertion&pound;&pound;""##\n\n~ &pound;&pound;Text insertion&pound;&pound;\n<<::c::<<\n~##""&yen;&yen;Text deletion&yen;&yen;""##\n\n~ &yen;&yen;Text deletion&yen;&yen;\n<<::c::<<\n~##""#%Press any key#%""##\n\n~#%Press any key#%\n<<::c::<<\n~##""@@Center text@@""##\n\n~@@Center text@@\n<<::c::Elides (hides) content from displaying.  Eliminates trailing whitespace so there are no unsightly gaps in output. Useful for commenting Wikka markup.---<<\n~##""/*Elided content (eliminates trailing whitespace)*/""##\n\n~/*Elided content (eliminates trailing whitespace)*/\n\n<--//there was a comment here followed by whitespace in the markup//\n<<::c::Elides (hides) content from displaying.  Preserves trailing\nwhitespace (note the gap).---<<\n~##""``Elided content (preserves trailing whitespace)``""##\n\n~``Elided content (preserves trailing whitespace)``\n\n<--//there was a comment here followed by ws in the markup//\n<<::c::---===2. Headers===---Use between six ##=## (for the biggest header) and two ##=## (for the smallest header) on both sides of a text to render it as a header.--- ---<<\n~##""======Really big header======""##\n\n~======Really big header======\n<<::c::<<\n~##""=====Rather big header=====""##\n\n~=====Rather big header=====\n<<::c::<<\n~##""====Medium header====""##\n\n~====Medium header====\n<<::c::<<\n~##""===Not-so-big header===""##\n\n~===Not-so-big header===\n<<::c::<<\n~##""==Smallish header==""##\n\n~==Smallish header==\n<<::c::---===3. Horizontal separator===\n~##""----""##\n\n----\n---===4. Forced line break===---\n~##""Line 1---Line 2""##\n\nLine 1---Line 2\n---===5. Lists and indents===---You can indent text using a tilde (~), a tab, or four spaces (which will auto-convert into a tab).---<<\n##""~This text is indented<br />~~This text is double-indented<br />&nbsp;&nbsp;&nbsp;&nbsp;This text is also indented""## <<::c::<<\n~This text is indented\n~~This text is double-indented\n~This text is also indented\n<<::c::---To create bulleted/ordered lists, use the following markup (you can always use 4 spaces instead of a tilde):--- ---**Bulleted lists**---<<\n##""~- Line one""##\n##""~- Line two""##\n<<::c::<<\n~- Line one\n~- Line two\n<<::c::---**Numbered lists**---<<\n##""~1) Line one""##\n##""~1) Line two""##\n<<::c::<<\n~1) Line one\n~1) Line two\n<<::c::---**Ordered lists using uppercase characters**---<<\n##""~A) Line one""##\n##""~A) Line two""##\n<<::c::<<\n~A) Line one \n~A) Line two \n<<::c::---**Ordered lists using lowercase characters**---<<\n##""~a) Line one""##\n##""~a) Line two""##\n<<::c::<<\n~a) Line one \n~a) Line two\n<<::c::---**Ordered lists using uppercase Roman numerals**---<<\n##""~I) Line one""##\n##""~I) Line two""##\n<<::c::<<\n~I) Line one \n~I) Line two\n<<::c::---**Ordered lists using lowercase Roman numerals**---<<\n##""~i) Line one""##\n##""~i) Line two""##\n<<::c::<<\n~i) Line one \n~i) Line two \n<<::c::---===6. Inline comments===---To format some text as an inline comment, use an indent (tilde, tab, or four spaces) followed by a **""&amp;""**.--- ---<<\n##""~&amp; Comment""##\n##""~~&amp; Subcomment""##\n##""~~~&amp; Subsubcomment""##\n<<::c::<<\n~& Comment \n~~& Subcomment \n~~~& Subsubcomment \n<<::c::--- ---===7. Images===---To place images on a Wiki page, you can use the ##image## action.--- ---Image links can be external or internal Wiki links. You don''t need to enter a link at all, and in that case just an image will be inserted. You can use the optional classes ##left## and ##right## to float images left and right. You don''t need to use all those attributes, only ##url## is required while ##alt## is recommended for\naccessibility.--- ---<<\n~##""{{image class="center" alt="DVD logo" title="An image link" url="images/dvdvideo.gif" link="RecentChanges"}}""##\n---\n~{{image class="center" alt="DVD logo" title="An image link" url="images/dvdvideo.gif" link="RecentChanges"}}\n<<::c::---===8. Links===---To create a ** link to a wiki page ** you can use any of the\nfollowing options:--- ---\n~- Type a ##""WikiName""## (works only for page names with no whitespace): --- --- ##""FormattingRules""## --- FormattingRules --- ---\n---\n~- Add a forced link surrounding the page name by ##""[[ target URL or page | description ]]""## (everything after the | will be shown as description): --- --- ##""[[SandBox | Test\nyour formatting skills]]""## --- [[SandBox | Test your formatting skills]] --- --- ##""[[SandBox | &#27801;&#31665;]]""## --- [[SandBox | &#27801;&#31665;]] --- --- ##""[[http://docs.wikkawiki.org | Wikka documentation]]""## --- [[http://docs.wikkawiki.org | Wikka documentation]] --- --- ##""[[community@wikkawiki.org | Wikka community list]]""## --- [[community@wikkawiki.org | Wikka community list]] --- ------\n~- Add an image with a link (see instructions above)\n--- ---To ** link to external pages **, you can do any of the following:--- ---\n~- Type a URL inside the page: --- --- ##""http://blog.wikkawiki.org""## --- http://blog.wikkawiki.org --- --- \n---\n~- Add an image with a link (see instructions above) \n---\n~- Add an interwiki link ([[InterWiki | browse the list of available interwiki tags]]): --- --- ##""WikiPedia:WikkaWiki""## --- WikiPedia:WikkaWiki --- --- ##""Google:CSS""## --- Google:CSS --- --- ##""Thesaurus:Happy""## --- Thesaurus:Happy --- ---\n--- ---===9. Tables===---<<The ##table## action has been deprecated as of Wikka version 1.2 and has been replaced with the syntax that follows. Please visit the [[Docs:TableActionInfo|Wikka documentation server]] for information about the older ##table## action.<<::c::---Tables can be created using two pipe (##""||""##) symbols.  Everything in a single line is rendered as a table row.--- ---**Example:**--- ---\n##""||Cell 1||Cell 2||""##\n\n||Cell 1||Cell 2||\n--- ---Header cells can be rendered by placing an equals sign between the pipes.--- ---**Example:**\n##""|=|Header 1|=|Header 2||""##\n##""||Cell 1||Cell 2||""##\n\n|=|Header 1|=|Header 2||\n||Cell 1||Cell 2||\n--- ---Row and column spans are specified with ##x:## and ##y:## in parentheses just after the pipes.--- ---**Example:**--- ---\n##""|=| |=|(x:2)Columns||""##\n##""|=|(y:2) Rows||Cell 1||Cell 2||""##\n##""||Cell 3||Cell 4||""##\n\n|=| |=|(x:2)Columns||\n|=|(y:2) Rows||Cell 1||Cell 2||\n||Cell 3||Cell 4||\n--- ---Many additional features are available using table markup.  A\nmore comprehensive table markup guide is available on this server''s\nTableMarkup page. A complete syntax reference is available on the document\nserver [[Docs:TableMarkupReference TableMarkupReference]] page.--- ---===10. Colored Text===---Colored text can be created using the ##color## action:---<<\n~##""{{color c="blue" text="This is a test"}}""##\n~{{color c="blue" text="This is a test"}}\n<<::c::---You can also use hex values:---<<\n~##""{{color hex="#DD0000" text="This is another test"}}""## \n~{{color hex="#DD0000" text="This is another test"}}\n<<::c::---Alternatively, you can specify a foreground and background color using the ##fg## and ##bg## parameters (they accept both named and hex values):---<<\n~##""{{color fg="#FF0000" bg="#000000" text="This is colored text on colored background"}}""##\n~{{color fg="#FF0000" bg="#000000" text="This is colored text on colored background"}}\n<<::c::<<\n~##""{{color fg="yellow" bg="black" text="This is colored text on colored background"}}""##\n~{{color fg="yellow" bg="black" text="This is colored text on colored background"}}\n<<::c::--- ---===11. Floats===---To create a ** left floated box **, use two ##<## characters before and after the block.--- ---**Example:**--- ---\n~~##""&lt;&lt; Some text in a left-floated box hanging around. &lt;&lt; Some more text as a filler. Some more text as a filler. Some more text as a filler.  Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler.""##--- ---<< Some text in a left-floated box hanging around. << Some more text as a filler. Some more text as a filler. Some more text as a filler.  Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler.\n::c::\nTo create a ** right floated box **, use two ##>## characters before and after the block.--- ---**Example:**--- ---\n~##"">> Some text in a right-floated box hanging around. >> Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler.""##--- --->> Some text in a right-floated box hanging around. >> Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler. Some more text as a filler.\n::c::\n** Note: Use ##""::c::""## to clear floated blocks. **--- ---===12. Code formatters===---You can easily embed code blocks in a wiki page using a simple markup. Anything within a code block is displayed literally.  To create a ** generic code block ** you can use the following markup:--- ---\n~##""%% This is a code block %%""##. \n\n%% This is a code block %%\n---To create a ** code block with syntax highlighting **, you need to specify a // code formatter // (see below for a list of available code formatters).--- ---\n~##""%%(""{{color c="red" text="php"}}"")<br />&lt;?php<br />echo "Hello, World!";<br />?&gt;<br />%%""##\n---\n%%(php)\n<?php\necho "Hello, World!";\n?>\n%%\n--- ---You can also specify an optional // starting line // number.---\n~##""%%(php;""{{color c="red" text="15"}}"")<br />&lt;?php<br />echo "Hello, World!";<br />?&gt;<br />%%""##\n---\n%%(php;15)\n<?php\necho "Hello, World!";\n?>\n%%\n--- ---If you specify a // filename //, this will be used for downloading the code.---\n~##""%%(php;15;""{{color c="red" text="test.php"}}"")<br />&lt;?php<br />echo "Hello, World!";<br />?&gt;<br />%%""##\n---\n%%(php;15;test.php)\n<?php\necho "Hello, World!";\n?>\n%%\n--- ---\n|?|List of available code formatters||\n||\n|=|Language|=|Formatter|=|Language|=|Formatter|=|Language|=|Formatter||\n|#|\n|=|Actionscript||##actionscript##|=|ABAP||##abap##|=|ADA||##ada##||\n|=|Apache Log||##apache##|=|""AppleScript""||##applescript##|=|ASM||##asm##||\n|=|ASP||##asp##|=|""AutoIT""||##autoit##|=|Bash||##bash##||\n|=|""BlitzBasic""||##blitzbasic##|=|""Basic4GL""||##basic4gl##|=|bnf||##bnf##||\n|=|C||##c##|=|C for Macs||##c_mac##|=|C#||##csharp##||\n|=|C""++""||##cpp##|=|C""++"" (+QT)||##cpp-qt##|=|CAD DCL||##caddcl##||\n|=|""CadLisp""||##cadlisp##|=|CFDG||##cfdg##|=|""ColdFusion""||##cfm##||\n|=|CSS||##css##|=|D||##d##|=|Delphi||##delphi##||\n|=|Diff-Output||##diff##|=|DIV||##div##|=|DOS||##dos##||\n|=|Dot||##dot##|=|Eiffel||##eiffel##|=|Fortran||##fortran##||\n|=|""FreeBasic""||##freebasic##|=|FOURJ''s Genero 4GL||##genero##|=|GML||##gml##||\n|=|Groovy||##groovy##|=|Haskell||##haskell##|=|HTML||##html4strict##||\n|=|INI||##ini##|=|Inno Script||##inno##|=|Io||##io##||\n|=|Java 5||##java5##|=|Java||##java##|=|Javascript||##javascript##||\n|=|""LaTeX""||##latex##|=|Lisp||##lisp##|=|Lua||##lua##||\n|=|Matlab||##matlab##|=|mIRC Scripting||##mirc##|=|Microchip Assembler||##mpasm##||\n|=|Microsoft Registry||##reg##|=|Motorola 68k Assembler||##m68k##|=|""MySQL""||##mysql##||\n|=|NSIS||##nsis##|=|Objective C||##objc##|=|""OpenOffice"" BASIC||##oobas##||\n|=|Objective Caml||##ocaml##|=|Objective Caml (brief)||##ocaml-brief##|=|Oracle 8||##oracle8##||\n|=|Pascal||##pascal##|=|Per (FOURJ''s Genero 4GL)||##per##|=|Perl||##perl##||\n|=|PHP||##php##|=|PHP (brief)||##php-brief##|=|PL/SQL||##plsql##||\n|=|Python||##phyton##|=|Q(uick)BASIC||##qbasic##|=|robots.txt||##robots##||\n|=|Ruby on Rails||##rails##|=|Ruby||##ruby##|=|SAS||##sas##||\n|=|Scheme||##scheme##|=|sdlBasic||##sdlbasic##|=|Smarty||##smarty##||\n|=|SQL||##sql##|=|TCL/iTCL||##tcl##|=|T-SQL||##tsql##||\n|=|Text||##text##|=|thinBasic||##thinbasic##|=|Unoidl||##idl##||\n|=|VB.NET||##vbnet##|=|VHDL||##vhdl##|=|Visual BASIC||##vb##||\n|=|Visual Fox Pro||##visualfoxpro##|=|""WinBatch""||##winbatch##|=|XML||##xml##||\n|=|X""++""||##xpp##|=|""ZiLOG"" Z80 Assembler||##z80##|=| ||\n--- ---===13. Mindmaps===---Wikka has native support for [[Wikka:FreeMind|mindmaps]].  There are two options for embedding a mindmap in a wiki page.--- --- **Option 1:** Upload a ""FreeMind"" file to a webserver, and then place a link to it on a wikka page: ##""http://yourdomain.com/freemind/freemind.mm""## No special formatting is necessary.  --- ---**Option 2:** Paste the ""FreeMind"" data directly into a wikka page:\n\n~-Open a ""FreeMind"" file with a text editor.\n~-Select all, and copy the data.\n~-Browse to your Wikka site and paste the Freemind data into a page.\n::c::\n---===14. Embedded HTML===---You can easily paste HTML in a wiki page by wrapping it into two sets of doublequotes.--- ---\n~##&quot;&quot;[html code]&quot;&quot;##\n<<\n~##&quot;&quot;y = x<sup>n+1</sup>&quot;&quot;##\n~""y = x<sup>n+1</sup>""\n<<::c::<<\n~##&quot;&quot;<acronym title="Cascade Style Sheet">CSS</acronym>&quot;&quot;##\n~""<acronym title="Cascade Style Sheet">CSS</acronym>""\n<<::c::---By default, some HTML tags are removed by the ""SafeHTML"" parser to protect against potentially dangerous code.  The list of tags that are stripped can be found on the Wikka:SafeHTML page.--- ---It is possible to allow // all // HTML tags to be used, see Wikka:UsingHTML for more information.--- --- ----CategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(11, 'HighScores', 'High Scores', '[[regtime]]', '{{highscores}}\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(12, 'InterWiki', 'Inter Wiki', '[[regtime]]', '{{interwikilist}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(13, 'MyChanges', 'My Changes', '[[regtime]]', '{{MyChanges}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(14, 'MyPages', 'My Pages', '[[regtime]]', '{{MyPages}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(15, 'OrphanedPages', 'Orphaned Pages', '[[regtime]]', '====Orphaned Pages====---The following list shows those pages held in the Wiki that\nare not linked to on any other pages.--- ---{{OrphanedPages}}{{nocomments}}--- --- ----CategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(16, 'OwnedPages', 'Pages You Own', '[[regtime]]', '====Pages You Own===={{ownedpages}}{{nocomments}}--- ---These numbers merely reflect how many pages you have created, not how much content you have contributed or the quality of your contributions. To see how you rank with other members, you may be interested in checking out the HighScores.--- --- ----CategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(17, 'PageIndex', 'Page Index', '[[regtime]]', '{{PageIndex}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(18, 'PasswordForgotten', 'Password Forgotten', '[[regtime]]', '{{emailpassword}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(19, 'RecentChanges', 'Recent Changes', '[[regtime]]', '{{RecentChanges}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(20, 'RecentComments', 'Recent Comments', '[[regtime]]', '=====Recent Comments=====\n\nRecently made comments - a more complete overview than RecentlyCommented which lists only **pages** with the //last// comment on them for each date.\n\n{{recentcomments}}\n\n----\nCategoryAdmin', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(21, 'RecentlyCommented', 'Recently Commented', '[[regtime]]', '{{RecentlyCommented}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(22, 'SandBox', 'Sand Box', '[[regtime]]', 'Test your formatting skills here.--- --- --- --- --- ----CategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(23, 'SysInfo', 'System Information', '[[regtime]]', '{{checkversion}}\n=====System Information=====\n\n~-Wikka version: ##{{wikkaversion}}##\n~-Wikka patch level: ##{{wikkapatchlevel}}##\n~-PHP version: ##{{phpversion}}##\n~-""MySQL"" version: ##{{mysqlversion}}##\n~-""GeSHi"" version: ##{{geshiversion}}##\n~-Server:\n~~-Host: ##{{system show="host"}}##\n~~-Operating System: ##{{system show="os"}}##\n~~-Machine: ##{{system show="machine"}}##\n\n----\nCategoryAdmin', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(24, 'TableMarkup', 'Wikka Table Markup Guide', '[[regtime]]', '=====Wikka Table Markup Guide=====\n>>==See also:==\n~-For earlier Wikka versions, check the [[Docs:TableActionInfo | table]] action\n~-Updated versions of this page can be found on the [[Docs:TableMarkup | Wikka documentation server]] \n~-For a more formal description, check the document server [[Docs:TableMarkupReference TableMarkupReference]] page.\n>>\nAs of ##1.2##, Wikka introduces a flexible markup for data tables. Any kind of tables allowed by XHTML can be created using this markup, from the most basic examples (e.g. simple rows of cells) to complex tables with full support for accessibility options.::c::\n\n====1. Table basics: cells, rows, columns====\n\nThe most basic element of a table is a **cell**. Single cells can be created using the standard delimiter ##""||""##, e.g.:\n\n##""||Hello||""##\n\n||Hello||\n\nNote that a cell must always be open and closed by delimiters. \n\n**Rows** can be created by adding on the same line multiple cells:\n\n##""||Cell 1||Cell 2||Cell 3||""##\n\n||Cell 1||Cell 2||Cell 3||\n\n**Columns** can be created by adding rows on separate lines:\n\n##""||Cell 1||""##\n##""||Cell 2||""##\n##""||Cell 3||""##\n\n||Cell 1||\n||Cell 2||\n||Cell 3||\n\nBy now you should be able to create simple tables with **multiple rows and columns**.\n\n##""||Cell 1||Cell 2||Cell 3||""##\n##""||Cell 4||Cell 5||Cell 6||""##\n##""||Cell 7||Cell 8||Cell 9||""##\n\n||Cell 1||Cell 2||Cell 3||\n||Cell 4||Cell 5||Cell 6||\n||Cell 7||Cell 8||Cell 9||\n\n====2. Headings====\n\nAs soon as you create slightly more complex data tables, you will need to specify column and row **headings**. Headings are special cells that specify what kind of data rows and columns contain. The most basic way of creating a heading is by using ##""|=|""## as a delimiter.\n\nThe following is an example of a simple table with **column headings**:\n\n##""|=|Apples|=|Pears|=|""##\n##""||300Kg||480Kg||""##\n\n|=|Apples|=|Pears|=|\n||300Kg||480Kg||\n\n**Row headings** are created in the same way. Since they are usually followed by normal cells, they must be terminated with the ##""||""## standard delimiter if the next element in the row is a simple cell:\n\n##""|=|Apples||300Kg||""##\n##""|=|Pears||480Kg||""##\n\n|=|Apples||300Kg||\n|=|Pears||480Kg||\n\nYou should be able by now to create simple tables with row and column headings:\n\n##""|=|       |=|Apples|=|Pears|=|""##\n##""|=|Mary||300Kg||320Kg||""##\n##""|=|John||400Kg||630Kg||""##\n\n|=| |=|Apples|=|Pears|=|\n|=|Mary||300Kg||320Kg||\n|=|John||400Kg||630Kg||\n\nWe will describe later how to add accessibility parameters for row and column headings.\n\n====3. Captions====\n\nUsually tables are introduced with a caption that describes what the table contains. A caption element is introduced with a ##""|?|""## delimiter and terminated with a standard delimiter ##""||""##.\n\n##""|?|Fruit production in 2006||""##\n##""|=|       |=|Apples|=|Pears|=|""##\n##""|=|Mary||300Kg||320Kg||""##\n##""|=|John||400Kg||630Kg||""##\n\n|?|Fruit production in 2006||\n|=| |=|Apples|=|Pears|=|\n|=|Mary||300Kg||320Kg||\n|=|John||400Kg||630Kg||\n\n====4. Spans====\n\n**Spans** are used to combine multiple cells or multiple headings\nvertically or horizontally and are created using the following\n[[TableMarkupReference | attribute parameters]]:\n\n##""||""(''''span options'''')Element content""||""##\n\nA **cell spanning multiple columns** is generated by prefixing the cell content with a ##(x:''''n'''')## parameter, where ##''''n''''## is the number of columns to be spanned. The following example shows how to create a cell spanning two columns:\n\n##""||(x:2)Cell spanning 2 columns||Cell 3||""##\n##""||Cell 4||Cell 5||Cell 6||""##\n##""||Cell 7||Cell 8||Cell 9||""##\n\n||(x:2)Cell spanning 2 columns||Cell 3||\n||Cell 4||Cell 5||Cell 6||\n||Cell 7||Cell 8||Cell 9||\n\nSpans can also be applied to rows. A **cell spanning multiple rows** is generated by prefixing the cell content with a ##(y:''''n'''')## parameter, where  ##''''n''''##  is the number of rows to be spanned. The following example shows how to create a cell spanning two rows:\n\n##""||(y:2)Cell spanning 2 rows||Cell 2||Cell 3||""##\n##""||Cell 5||Cell 6||""##\n##""||Cell 7||Cell 8||Cell 9||""##\n\n||(y:2)Cell spanning 2 rows||Cell 2||Cell 3||\n||Cell 5||Cell 6||\n||Cell 7||Cell 8||Cell 9||\n\nNote that you must account for cells that are "pushed down" when using row spans:\n\n##""|=|     |=|Mon|=|Tue|=|Wed|=|Thu|=|Fri|=|""##\n##""|=|8-9  || ||(y:9) Outreach|| ||(y:9) Outreach|| ||""##\n##""|=|9-10 || || || ||""## <-- reduced by two columns\n##""|=|10-11|| || || ||""##\n##""|=|11-12|| || || ||""##\n##""|=|12-1 || || || ||""##\n##""|=|1-2  || || || ||""##\n##""|=|2-3  ||(y:3) CSCI 102 ||CSCI 101||CSCI 101||""##\n##""|=|3-4  || || ||""## <-- reduced by one column\n##""|=|4-5  || || ||""##\n\n|=|     |=|Mon|=|Tue|=|Wed|=|Thu|=|Fri|=|\n|=|8-9  || ||(y:9) Outreach|| ||(y:9) Outreach|| ||\n|=|9-10 || || || ||\n|=|10-11|| || || ||\n|=|11-12|| || || ||\n|=|12-1 || || || ||\n|=|1-2  || || || ||\n|=|2-3  ||(y:3) CSCI 102 ||CSCI 101||CSCI 101||\n|=|3-4  || || ||\n|=|4-5  || || ||\n\n\nSpans are particularly useful to create **subheadings**:\n\n##""|?|Fruit production in the last two years||""##\n##""|=|       |=|(x:2)Apples|=|(x:2)Pears|=|""##\n##""|=|       |=|2005|=|2006|=|2005|=|2006|=|""##\n##""|=|Mary||300Kg||320Kg||400kg||280Kg||""##\n##""|=|John||400Kg||630Kg||210Kg||300Kg||""##\n\n|?|Fruit production in the last two years||\n|=|       |=|(x:2)Apples|=|(x:2)Pears|=|\n|=|       |=|2005|=|2006|=|2005|=|2006|=|\n|=|Mary||300Kg||320Kg||400kg||280Kg||\n|=|John||400Kg||630Kg||210Kg||300Kg||\n\nColumn and row spans can be combined to created funky table layouts:\n\n##""||(x:2;y:2)2x2||(x:2)2x1||(y:2)1x2||""##\n##""||(y:2)1x2||1x1||""##\n##""||1x1||1x1||(x:2)2x1||""##\n\n||(x:2;y:2)2x2||(x:2)2x1||(y:2)1x2||\n||(y:2)1x2||1x1||\n||1x1||1x1||(x:2)2x1||\n\n\n====5. Formatting text within tables====\n\nYou can use any kind of basic [[Docs:TextFormatting | Wikka markup]] to render text within tables.\nThe following example adds basic formatting to cell content:\n\n##""|?|Using text formatting within tables||""##\n##""||##Monospaced##||//Italics//||**Bold**||__Underlined__||""##\n##""||''''Highlighted''''||++Strikethrough++||(x:2)**//Bold italics//**||""##\n\n|?|Using text formatting within tables||\n||##Monospaced##||//Italics//||**Bold**||__Underlined__||\n||''''Highlighted''''||++Strikethrough++||(x:2)**//Bold italics//**||\n\n====6. Adding actions and images within tables====\n\nSimple, content-generating [[Docs:UsingActions | actions]] (including\n[[Docs:AddingImages | images]]) can be added within table cells and headings.\n\n##""|?|Using actions within tables||""##\n##""||This wiki contains {{countpages}} pages||""##\n##""||{{image url="images/wikka_logo.jpg" class="center" alt="a w" title="w image"}}||""##\n##""||{{color c="red" text="some colored text"}}||""##\n\n|?|Using actions within tables||\n||This wiki contains {{countpages}} pages||\n||{{image url="images/wikka_logo.jpg" class="center" alt="a w" title="w image"}}||\n||{{color c="red" text="some colored text"}}||\n\n====7. Adding links within tables====\n\nAll the available options to create [[Docs:AddingLinks | links]] can be used within table cells or headings:\n\n##""|?|Adding links within tables||""##\n##""||Camelcase links: SandBox||""##\n##""||Escaped camelcase links: &quot;&quot;SandBox&quot;&quot; escaped||""##\n##""||Forced links: [[HomePage | main]]||""##\n##""||Interwiki links: Wikipedia:Wikka||""##\n##""||Forced interwiki links: [[Wikipedia:Wikka | Wikka article on Wikipedia]]||""##\n##""||External links: http://www.example.com ||""##\n##""||Forced external links: [[http://www.example.com | Example.com]]||""##\n##""||Image links: {{image url="images/wizard.gif" alt="wizard" title="Display an index of pages on this wiki" link="PageIndex"}}||""##\n\n|?|Adding links within tables||\n||Camelcase links: SandBox||\n||Escaped camelcase links: ""SandBox escaped""||\n||Forced links: [[HomePage | main]]||\n||Interwiki links: Wikipedia:Wikka||\n||Forced interwiki links: [[Wikipedia:Wikka | Wikka article on Wikipedia]]||\n||External links: http://www.example.com ||\n||Forced external links: [[http://www.example.com | Example.com]]||\n||Image links: {{image url="images/wizard.gif" alt="wizard" title="Display an index of pages on this wiki" link="PageIndex"}}||\n\n====8. Adding HTML within tables====\n\nYou can also use [[Docs:UsingHTML | embedded HTML]] in table elements:\n\n##""|?|Embedding HTML within tables||""##\n##""||Here''s some superscript: &quot;&quot;a&lt;sup&gt;2+1&lt;/sup&gt;&quot;&quot;||""##\n##""||And here''s some subscript too: &quot;&quot;a&lt;sub&gt;2k&lt;/sub&gt;&quot;&quot;||""##\n##""||I love acronyms: &quot;&quot;&lt;acronym title="What You See Is What You Get"&gt;WYSIWYG&lt;/acronym&gt;&quot;&quot;||""##\n\n|?|Embedding HTML within tables||\n||Here''s some superscript: ""a<sup>2+1</sup>""||\n||And here''s some subscript too: ""a<sub>2k</sub>""||\n||I love acronyms: ""<acronym title="What You See Is What You Get">WYSIWYG</acronym>""||\n\n====9. Adding a touch of style====\n\nThe table markup introduces a new [[TableMarkupReference | style selector]]. CSS style options can be added to any element by enclosing them within **single braces**, right before the element content, e.g.:\n##""||""{''''style options''''}Element content""||""##\n\nFor example, to render a cell with **red background** and **white text color**, you can do the following:\n\n##""||{background-color:red; color:white}Hello||""##\n\n||{background-color:red; color:white}Hello||\n\nYou can play with **font size** and **text alignment**:\n\n##""|?|Adding some more style||""##\n##""||{font-size:190%; text-align:right}Please scale me!||""##\n##""||{font-size:170%; text-align:right}Please scale me!||""##\n##""||{font-size:150%; text-align:right}Please scale me!||""##\n##""||{font-size:130%; text-align:right}Please scale me!||""##\n##""||{font-size:110%; text-align:right}Please scale me!||""##\n##""||{font-size:90%; text-align:right}Please scale me!||""##\n##""||{font-size:70%; text-align:right}Please scale me!||""##\n\n|?|Adding some more style||\n||{font-size:190%; text-align:right}Please scale me!||\n||{font-size:170%; text-align:right}Please scale me!||\n||{font-size:150%; text-align:right}Please scale me!||\n||{font-size:130%; text-align:right}Please scale me!||\n||{font-size:110%; text-align:right}Please scale me!||\n||{font-size:90%; text-align:right}Please scale me!||\n||{font-size:70%; text-align:right}Please scale me!||\n\nYou can also apply style to **headings** and **captions**:\n\n##""|?|{border:1px dotted red; color:red}Style can be applied anywhere||""##\n##""|=|{color:#000; font-size:150%; font-style:italic; font-family:Georgia, Hoefler Text, Georgia, serif; font-weight:normal; line-height:150%}Emphemeral Quibus|=|""##\n##""||Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis auctor auctor pede.||""##\n\n|?|{border:1px dotted red; color:red}Style can be applied anywhere||\n|=|{color:#000; font-size:150%; font-style:italic; font-family:Georgia, Hoefler Text, Georgia, serif; font-weight:normal; line-height:150%}Emphemeral Quibus|=|\n||Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis auctor auctor pede.||\n\nPlease note that **style parameters should always follow attribute\nparameters**, when both are specified for an element (see the\n[[TableMarkupReference | table markup reference]]):\n\n##""|?|Give priority||""##\n##""||(x:2;y:2){background-color:pink}2x2||(x:2){background-color:lightblue}2x1||(y:2){background-color:lightyellow}1x2||""##\n##""||(y:2){background-color:lightyellow}1x2||{background-color:#333;color:white}1x1||""##\n##""||{background-color:lightblue}1x1||{background-color:#333;color:white}1x1||(x:2){background-color:pink}2x1||""##\n\n|?|Give priority||\n||(x:2;y:2){background-color:pink}2x2||(x:2){background-color:lightblue}2x1||(y:2){background-color:lightyellow}1x2||\n||(y:2){background-color:lightyellow}1x2||{background-color:#333;color:white}1x1||\n||{background-color:lightblue}1x1||{background-color:#333;color:white}1x1||(x:2){background-color:pink}2x1||\n\n====10. Adding style through classes====\n\nYou can apply existing classes from your stylesheet to any element using the class parameter ##(c:''''class'''')##. Note that custom style declarations specified through braced markup override class attributes.\n\nThe following example applies to table cells two class selectors defined in the stylesheet. The third row shows how to override a class selector with custom style attributes:\n\n##""|?|Using class selectors to add style to table elements||""##\n##""||(c:highlight)This cell uses the ##.highlight## class||""##\n##""||(c:smaller)This cell uses the ##.smaller## class||""##\n##""||(c:smaller){font-size:150%}This cell uses the ##.smaller## class overridden by custom style settings||""##\n\n|?|Using class selectors to add style to table elements||\n||(c:highlight)This cell uses the ##.highlight## class||\n||(c:smaller)This cell uses the ##.smaller## class||\n||(c:smaller){font-size:150%}This cell uses a ##.smaller## class overridden by custom style settings||\n\n====11. Global table attributes====\n\nTable-level attributes can be specified by adding at the beginning of the table the following element: ##""|!|   ||""##, which is used as a container for global table attributes. For example, you can specify **global style options** for a table by adding them to this element:\n\n##""|!|{border:3px solid blue; background-color: black; color: white; width: 300px; text-align: center}||""##\n##""||Cell 1||""##\n##""||Cell 2||""##\n##""||Cell 3||""##\n\n|!|{border:3px solid blue; background-color: black; color: white; width: 300px; text-align: center}||\n||Cell 1||\n||Cell 2||\n||Cell 3||\n\n====12. Referring to elements: the ##id## attribute====\n\n##id## attributes are used to refer to unique elements in a page and to provide an anchor for styling and linking. You can specify an ##id## for any table element by using the ##(i:''''id'''')## parameter.\n\nFor example, the following markup creates a table with the ##id## "main_table" containing two cells with ##id##''s "cell_1" and "cell_2"\n\n##""|!|(i:main_table)||""##\n##""|?|Using id to refer to table elements||""##\n##""||(i:cell_1)This cell can be referred to by using the ##cell_1## id||""##\n##""||(i:cell_2)This cell can be referred to by using the ##cell_2## id||""##\n\n|!|(i:main_table)||\n|?|Using id to refer to table elements||\n||(i:cell_1)This cell can be referred to by using the ##cell_1## id||\n||(i:cell_2)This cell can be referred to by using the ##cell_2## id||\n\n====13. Accessibility options: adding titles====\n\nAny table element can be given a ##title## attribute to enhance its accessibility. Titles are typically displayed in graphical browsers by hovering over the corresponding element and are useful to display unobtrusive descriptions about specific elements. You can specify a ##title## for any table element by using the ##(t:''''title'''')## parameter.\n\nThe following example adds titles to several table elements (you can hover over the table to display them):\n\n##""|!|(t:Comparative figures for fruit production in the last year){width: 350px}||""##\n##""|?|Fruit production in 2006||""##\n##""|=|       |=|(t:yearly production of apples)Apples|=|(t:yearly production of pears)Pears|=|""##\n##""|=|(t:Mary''s contribution to 2006 production)Mary||(t:Mary''s production of apples in 2006){text-align:center}300Kg||(t:Mary''s production of pears in 2006){text-align:center}320Kg||""##\n##""|=|(t:John''s contribution to 2006 production)John||(t:John''s production of apples in 2006){text-align:center}400Kg||(t:John''s production of pears in 2006){text-align:center}630Kg||""##\n\n|!|(t:Comparative figures for fruit production in the last year){width: 350px}||\n|?|Fruit production in 2006||\n|=|       |=|(t:yearly production of apples)Apples|=|(t:yearly production of pears)Pears|=|\n|=|(t:Mary''s contribution to 2006 production)Mary||(t:Mary''s production of apples in 2006){text-align:center}300Kg||(t:Mary''s production of pears in 2006){text-align:center}320Kg||\n|=|(t:John''s contribution to 2006 production)John||(t:John''s production of apples in 2006){text-align:center}400Kg||(t:John''s production of pears in 2006){text-align:center}630Kg||\n\n====14. Accessibility options: adding a summary====\n\nTables can take an optional ##summary## attribute to describe the purpose and/or structure of the table. The description provided by the summary attribute is particularly helpful to users of non-visual browsers. You can specify a summary by adding a ##(u:''''Summary'''')## parameter in the table global attributes.\n\nFor example, the following line:\n##""|!|(u:This is a summary)||""##\nwill add to the table a ##summary## attribute with the value ##This is a summary##.\n\n====15. Accessibility options: table head, table body and table foot====\n\nRows in a table can be grouped in a table head, table body and table foot. This division enables browsers to support scrolling of table bodies independently of the table head and foot. When long tables are printed, the table head and foot information may be repeated on each page that contains table data. The table head and table foot should contain information about the table''s columns. The table body should contain rows of table data.\n\nWikka allows you to create groups of rows with special markers:\n~- The ##""|[|""## marker groups the rows it precedes as a **table head** block;\n~- The ##""|]|""## marker groups the rows it precedes as a **table foot** block;\n~- The ##""|#|""## marker groups the rows it precedes as a **table body**;\n\nThe following example shows how to use these elements to create row groups. Note that Wikka uses different backgrounds to differentiate column headings in the table head and foot from row headings in the table body:\n\n##""|!|(u:A table with summary, caption, head, foot and body){width: 400px}||""##\n##""|?|Here''s how you can group rows||""##\n##""|[|""##\n##""|=|Name|=|Place|=|Telephone||""##\n##""|]|""##\n##""|=|Name|=|Place|=|Telephone||""##\n##""|#|""##\n##""|=|John Smith||New York||555-1234||""##\n##""|=|Jane Smith||Los Angeles||555-2345||""##\n##""|=|John Doe||Unknown||Unknown||""##\n##""|=|Jane Doe||Unknown||Unknown||""##\n\n|!|(u:A table with summary, caption, head, foot and body){width: 400px}||\n|?|Here''s how you can group rows||\n|[|\n|=|Name|=|Place|=|Telephone||\n|]|\n|=|Name|=|Place|=|Telephone||\n|#|\n|=|John Smith||New York||555-1234||\n|=|Jane Smith||Los Angeles||555-2345||\n|=|John Doe||Unknown||Unknown||\n|=|Jane Doe||Unknown||Unknown||\n\n====16. Accessibility options: heading scope====\n\nTo be semantically correct and accessible to users with non-visual browsers, headings should contain scope attributes describing the cell range they refer to. \n~-Column heading scopes can be specified using the ##(o:col)## parameter in the corresponding column heading;\n~-Row heading scopes can be specified using the ##(o:row)## parameter in the corresponding row heading;\n\nThe following example shows how to correctly add column and row scopes to a table to make it accessible:\n\n##""|!|(u:The number of employees and the foundation year of some imaginary companies.)||""##\n##""|?|Table 1: Company data||""##\n##""|[|""##\n##""|||=|(o:col)Employees|=|(o:col)Founded||""##\n##""|#|""##\n##""|=|(o:row)ACME Inc||1000||1947||""##\n##""|=|(o:row)XYZ Corp||2000||1973||""##\n\n|!|(u:The number of employees and the foundation year of some imaginary companies.)||\n|?|Table 1: Company data||\n|[|\n|||=|(o:col)Employees|=|(o:col)Founded||\n|#|\n|=|(o:row)ACME Inc||1000||1947||\n|=|(o:row)XYZ Corp||2000||1973||\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(25, 'TextSearch', 'Text Search', '[[regtime]]', '{{TextSearch}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(26, 'TextSearchExpanded', 'Text Search Expanded', '[[regtime]]', '{{textsearchexpanded}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(27, 'UserSettings', 'User Settings', '[[regtime]]', '{{UserSettings}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(28, 'WantedPages', 'Wanted Pages', '[[regtime]]', '{{WantedPages}}{{nocomments}}\n\n\n----\nCategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(29, 'WikiCategory', 'How To Use Categories', '[[regtime]]', '=====How To Use Categories=====This wiki is using a very flexible but simple categorizing system to keep everything properly organized.--- ---===1. Adding a page to an existing category===To ''''add a page to an existing category'''' simply add a link to the relevant category page. For example, to mark page ##""MyPage""## as a child of category ##""MyCategory""##, just add a link to ##""MyCategory""## from ##""MyPage""##. This will automatically add ##""MyPage""## to the list of pages belonging to that category. Category links are put by convention at the end of the page, but the position of these links does not affect their behavior.--- ---===2. Adding a subcategory to an existing category===To ''''create a hierarchy of categories'''', you can follow the same instructions to add pages to categories. For example, to mark category ##""Category2""## as a child (or subcategory) of another category ##""Category1""## just add a link to ##""Category1""## in ##""Category2""##. This will automatically add ##""Category2""## to the list of ##""Category1""##''s children.--- ---===3. Creating new categories===To ''''start a new category'''' just create a page containing ##""{{category}}""##. This will mark the page as a special //category// and will output a list of pages belonging to the category. Category page names start by convention with the word ##Category## but you can also create categories without following this convention. To add a new category to the master list of categories just add a link from it to CategoryCategory.--- ---===4. Browsing categories===To ''''browse the categories'''' available on your wiki you can start from CategoryCategory. If all pages and subcategories are properly linked as described above, you will be able to browse the whole hierarchy of categories starting from this page.--- ----CategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(30, 'WikkaConfig', 'Wikka Configuration', '[[regtime]]', '{{checkversion}}\n===== Wikka Configuration =====\n\n{{wikkaconfig}}\n\n----\nCategoryAdmin', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(31, 'WikkaDocumentation', 'Wikka Documentation', '[[regtime]]', '=====Wikka Documentation=====---Comprehensive and up-to-date documentation on Wikka Wiki\ncan be found on the [[http://docs.wikkawiki.org/WikkaDocumentation |  Wikka Documentation server ]].', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(32, 'WikkaInstaller', 'Wikka Installer', '[[regtime]]', 'Reserved page--- --- --- --- --- ----CategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', '');
INSERT INTO `[[dbprefix]]pages` VALUES
(33, 'WikkaMenulets', 'Wikka Menulets', '[[regtime]]', '===== Wikka Menulets =====\r\n{{lastedit show="3"}}\r\n\r\nIn the trac as [[Ticket:28]].\r\n \r\nAs part of my proposal for a general overhaul of the [[WikkaMenus | menu management system]] in WikkaWiki, I suggest we replace the current system-generated items that occur in the main menu and footer menu with a series of **menulets**, i.e. mini-actions generating content for menu items.\r\nAny of these mini-actions can of course be used in the page body as well.\r\n\r\nHere''s a list of potential menulets and their output, that I''ve uploaded to this server. \r\nSuggestions/modifications are welcome. \r\n\r\n----\r\n==##""{{acls}}""##== \r\n\r\nPrints a link  to ##""CurrentPage/acls""## if the user has access to the ACLs: {{acls}}\r\n\r\n%%(php)\r\n<?php\r\nif ($this->page){\r\n	if ($owner = $this->GetPageOwner()){\r\n		if ($owner == "(Public)"){\r\n			print $this->IsAdmin() ? "<a href=\\"".$this->href("acls")."\\">(Edit ACLs)</a>\\n" : ""; #i18n\r\n		} elseif ($this->UserIsOwner()){\r\n			print "<a href=\\"".$this->href("acls")."\\">Edit ACLs</a>\\n"; #i18n\r\n		} \r\n	} else {\r\n		print ($this->GetUser()) ? " (<a href=\\"".$this->href("claim")."\\">Take Ownership</a>)\\n" : ""; #i18n\r\n	}\r\n}\r\n?>\r\n%%---\r\n~&My version: %%(php)<?php\r\n// UI defines (i18n)\r\ndefine(''ACLS_OWNER'', "Edit ACLs");		# ACLs editable by owner (includes admin)\r\ndefine(''ACLS_ADMIN'', "(Edit ACLs)");		# public page - ACLs editable by admin only\r\ndefine(''ACLS_NONE'', "(Take Ownership)");	# not-owned pages can be claimed\r\n// generate output (or not)\r\nif ($this->page)\r\n{\r\n	switch (TRUE)\r\n	{\r\n		case ($this->UserIsOwner()):\r\n			echo ''<a href="''.$this->Href(''acls'').''">''.ACLS_OWNER.''</a>''."\\n";\r\n			break;\r\n		case (''(Public)'' == $this->page[''owner'']):\r\n			if ($this->IsAdmin()) echo ''<a href="''.$this->Href(''acls'').''">''.ACLS_ADMIN.''</a>''."\\n";\r\n			break;\r\n		case ('''' == $this->page[''owner'']):\r\n			if ($this->GetUser()) echo ''<a href="''.$this->Href(''claim'').''">''.ACLS_NONE.''</a>''."\\n";\r\n			break;\r\n		default:\r\n			// print nothing\r\n	}\r\n}\r\n?>%% --- A few notes about the differences:\r\n~~-UI strings are grouped together at the top: easier maintainance; comments to give hints to translators;\r\n~~-when $this->page is set, all data of the page is known; no need to use ""GetPageOwner()"" which would do another page load (or at least access the cache again);\r\n~~-using a switch construct gives equal weight to the different cases, and makes it easily extensible for possible other types of ownership (groups? projects? aliens?);\r\n~~-using single quotes wherever possible for speed (but always double quotes for strings to be internationalized);\r\n~~-consistent spelling: the method is called Href() so we don''t call it as href().\r\n~&**Code untested - Please test!**--- --JavaWoman\r\n\r\n----\r\n==##""{{attachments}}""##== \r\n\r\nPrints a link to the FilesHandler differently depending if there are attached documents to the current page or not: {{attachments}}.\r\n\r\n%%(php)\r\n<?php\r\n	// this is a menulet action relying on the files handler\r\n	// upload path\r\n	$upload_path = $this->GetConfigValue(''upload_path'').''/''.$this->GetPageTag();\r\n	$AttachmentClass = "";\r\n		if(is_dir($upload_path) ){\r\n			$handle = opendir($upload_path);\r\n			while( (gettype( $name = readdir($handle)) != "boolean")){\r\n				$name_array[] = $name;\r\n			}\r\n			foreach($name_array as $temp) $folder_content .= $temp;\r\n			closedir($handle);\r\n			if($folder_content == "...") {\r\n				$AttachmentClass ="emptyfolder"; // the upload path is empty\r\n			} else {\r\n				$AttachmentClass = "fullfolder"; // the upload path contains attachments\r\n			}\r\n		}\r\n		else $AttachmentClass = "inexistingfolder"; // the upload path does not exist\r\n		\r\n	echo  "<a href=\\"".$this->href("files")."\\" title=\\"Click to manage attachments\\" class=\\"".$AttachmentClass."\\">Attachments</a>\\n"; #i18n\r\n?>\r\n%%\r\n\r\nAdd something like this to the .css file:\r\n%%(css)\r\n.fullfolder { \r\n	font-weight: bold;\r\n	border: 1px solid red;\r\n}\r\n.emptyfolder {\r\n}\r\n.inexistingfolder {\r\n}\r\n%%\r\n\r\n----\r\n==##""{{contact}}""##== \r\n\r\nPrints a ##mailto:## link to the Wikka administrator''s address: {{contact}}\r\n__Note__: plain mailto links are a common source of spam.\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print a spam-safe mailto: link to the administrator''s email address. \r\n * \r\n * Note: plain mailto links are a common source of spam.\r\n */\r\n$email = $this->GetConfigValue("admin_email");\r\n\r\n// print spam-safe mailto link\r\n$patterns = array("''@''", "''\\.''");\r\n$replace = array("[at]", "[dot]"); \r\necho "<a href=\\"mailto:".preg_replace($patterns, $replace, $email)."\\" title=\\"Send us your feedback\\">Contact</a>"; #i18n\r\n\r\n// print plain mailto link\r\n//echo "<a href=\\"mailto:".$email."\\" title=\\"Send us your feedback\\">Contact</a>"; #i18n\r\n\r\n// print contact link only to registered users\r\n// echo ($this->GetUser()) ? "<a href=\\"mailto:".$email."\\" title=\\"Send us your feedback\\">Contact</a>" : ""; #i18n\r\n\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{countcomments}}""##== \r\n\r\nPrints the total number of comments: {{countcomments}}\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print total number of comments in this wiki.\r\n */\r\n$commentsdata = $this->LoadSingle("SELECT count(*) as num FROM ".$this->GetConfigValue(''table_prefix'')."comments");\r\necho $commentsdata["num"];\r\n?>\r\n%%\r\n\r\nCompact version using the ##[[WikkaCountingRecords | getCount()]]## method:\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print total number of comments in this wiki.\r\n */\r\necho $this->getCount(''comments'');\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{countowned}}""##== \r\n\r\nPrints the number of pages owned by the current user: {{countowned}}\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print number of pages owned by the current user.\r\n */\r\n$str = ''SELECT COUNT(*) FROM ''.$this->GetConfigValue(''table_prefix'').''pages WHERE `owner` '';\r\n$str .= "= ''" . $this->GetUserName() . "'' AND `latest` = ''Y''";\r\n$countquery = $this->Query($str);\r\n$count  = mysql_result($countquery, 0);\r\necho $this->Link(''MyPages'', '''', $count,'''','''',''Display a list of the pages you currently own'');\r\n?>\r\n%%\r\n\r\nCompact version using the ##[[WikkaCountingRecords | getCount()]]## method:\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print number of pages owned by the current user.\r\n */\r\n$where = "`owner` = ''".$this->GetUserName()."'' AND `latest` = ''Y''";\r\n$count = $this->getCount(''pages'', $where);\r\necho $this->Link(''MyPages'', '''', $count,'''','''',''Display a list of the pages you currently own'');\r\n?>\r\n%%\r\n\r\n\r\n----\r\n==##""{{countpages}}""##== \r\n\r\nPrints the total number of pages: {{countpages}}\r\n\r\n%%(php)\r\n<?php\r\n/** \r\n * Print the total number of pages in this wiki.\r\n */\r\n$pagedata = $this->LoadSingle("SELECT count(*) as num FROM ".$this->GetConfigValue(''table_prefix'')."pages WHERE latest = ''Y''");\r\necho $this->Link(''PageIndex'', '''', $pagedata[''num''],'''','''',''Display an alphabetical page index'');\r\n?>\r\n%%\r\n\r\nCompact version using the ##[[WikkaCountingRecords | getCount()]]## method:\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print the total number of pages in this wiki.\r\n */\r\n$where = "`latest` = ''Y''";\r\n$count = $this->getCount(''pages'', $where);\r\necho $this->Link(''PageIndex'', '''', $count,'''','''',''Display an alphabetical page index'');\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{countreferrers}}""##== \r\n\r\nPrints the total number of referrers to the wiki: {{countreferrers}}\r\n\r\nCompact version using the ##[[WikkaCountingRecords | getCount()]]## method:\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print number of referrers to this site.\r\n */\r\necho $this->getCount(''referrers'');\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{countusers}}""##== \r\n\r\nPrints the number of registered users: {{countusers}}\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print number of registered users.\r\n */ \r\n$userdata = $this->LoadSingle("SELECT count(*) as num FROM ".$this->GetConfigValue(''table_prefix'')."users ");\r\necho $userdata["num"];\r\n?>\r\n%%\r\n\r\nCompact version using the ##[[WikkaCountingRecords | getCount()]]## method:\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print number of registered users.\r\n */\r\necho $this->getCount(''users'');\r\n?>\r\n%%\r\n\r\n\r\n----\r\n==##""{{delete}}""##== \r\n\r\nPrints a link  to ##""CurrentPage/delete""## if the user has delete privileges: {{delete}}\r\n\r\n%%(php)\r\n<?php\r\necho  ($this->IsAdmin())? "<a href=\\"".$this->href("delete")."\\" title=\\"Click to delete this page\\">Delete this page</a>\\n" : "";  #i18n\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{edit}}""##== \r\n\r\nPrints a link to ##""CurrentPage/edit""##: {{edit}}\r\n\r\n%%(php)\r\n<?php\r\nif ($this->HasAccess("write")) {\r\n		echo  "<a href=\\"".$this->href("edit")."\\" title=\\"Click to edit this page\\">Edit this page</a>\\n"; #i18n\r\n} else {\r\n		echo  "<a href=\\"".$this->href("showcode")."\\" title=\\"Click to display the page source\\">Show code</a>\\n"; #i18n\r\n}\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{history}}""##==\r\n\r\nPrints a link to ##""CurrentPage/history""##: {{history}}\r\n\r\n%%(php)\r\n<?php\r\n		echo "<a href=\\"".$this->href("history")."\\" title=\\"Click to view recent edits to this page\\">Page History</a>\\n"; #i18n\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{homepage}}""##==\r\n\r\nPrints a link to the wiki homepage specified in the config file: {{homepage}}\r\n\r\n%%(php)\r\n<?php\r\necho $this->Link($this->GetConfigValue(''root_page''));\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{lasteditauthor}}""##==\r\n\r\nPrints the author of the last page version: {{lasteditauthor}}\r\n\r\n%%(php)\r\n<?php\r\n$page = $this->LoadSingle("SELECT * FROM ".$this->GetConfigValue(''table_prefix'')."pages WHERE tag=''".$this->GetPageTag()."'' AND latest = ''Y''");\r\n$user = ($this->LoadUser($page["user"]))? $this->Link($page["user"]) : "anonymous";\r\necho $user;\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{linkcount}}""##==\r\n\r\nCount (and display) the number of Wikka-formatted links (##""[[http:...]]""##) in a page. Needs some optimization work.\r\n\r\n**actions/linkcount.php**\r\n%%(php)\r\n<?php\r\n/**\r\n * Link count action\r\n *\r\n * Maintain a count of links on a page (could be extended to track\r\n * other entities)\r\n * \r\n * Usage:\r\n * {{linkcount preformatted="0"}}\r\n * ...\r\n * {{linkcount start="1"}}\r\n * link1\r\n * link2\r\n * ...\r\n * linkn\r\n * {{linkcount stop="1"}}\r\n *\r\n * Optionally: {{linkcount preformatted="1"\r\n *						  pretext="Some pretext"\r\n *						  posttext="Some posttext"}}\r\n *\r\n * where preformatted = "1" produces "+++Link count: 9999 link(s)+++"\r\n *	   pretext is the text to precede the link count (overrides\r\n *	   preformatted)\r\n *	   posttest is the text to follow the link count (overrides\r\n *	   preformatted)\r\n *\r\n * TODO: Performance is miserable beyond a couple hundred links, so\r\n * the next step would be to optimize it.\r\n *\r\n *\r\n * @author		{@link http://wikkawiki.org/BrianKoontz Brian Koontz} \r\n * @copyright	Copyright (c) 2006, Brian Koontz <brian@pongonova.net>\r\n * @name		LinkcountAction \r\n * @package		Actions\r\n * @license		http://www.gnu.org/copyleft/gpl.html\r\n * @since		Wikka 1.1.7\r\n * @uses		/actions/linkcount.php\r\n * @version		$Id: linkcount.php,v 1.1.1.1 2006/10/07 16:30:42 brian Exp brian $\r\n *\r\n */\r\n\r\n// Necessary to prevent "already defined" errors when the Wikka parser\r\n// comes across a "start" or "stop" action tag\r\ninclude_once("actions/linkcount.inc.php");\r\n\r\nif(isset($vars[''start'']) || isset($vars[''stop''])) {\r\n	return;\r\n}\r\n\r\n$preformatted = $vars[''preformatted''];\r\n$pretext = $vars[''pretext''];\r\n$posttext = $vars[''posttext''];\r\n\r\nif( isset($pretext) || isset($posttext)) {\r\n	$pretext ? 1 : $pretext = '''';\r\n	$posttext ? 1 : $posttext = '''';\r\n} else if(isset($preformatted)) {\r\n	$pretext = "+++Link count: ";\r\n	$posttext = " link(s)+++";\r\n}\r\n\r\n$body = explode("\\n", $this->page[''body'']);\r\nparse($body);\r\n\r\n?>\r\n%%\r\n\r\n**actions/linkcount.inc.php**\r\n%%(php)\r\n<?php\r\n/**\r\n * Link count action\r\n *\r\n * Maintain a count of links on a page (could be extended to track\r\n * other entities)\r\n * \r\n * @see LinkcountAction\r\n * @see actions/linkcount.php\r\n *\r\n *\r\n * @author		{@link http://wikkawiki.org/BrianKoontz Brian Koontz}\r\n * @copyright	Copyright (c) 2006, Brian Koontz <brian@pongonova.net>\r\n * @name		LinkcountAction \r\n * @package		Actions\r\n * @license		http://www.gnu.org/copyleft/gpl.html\r\n * @since		Wikka 1.1.7\r\n * @uses		/actions/linkcount.inc.php\r\n * @version		$Id: linkcount.inc.php,v 1.1.1.1 2006/10/07 16:32:17 brian Exp brian $\r\n *\r\n */\r\nfunction parse(&$body) {\r\n	$linkcount = 0;\r\n	if(!$body) {\r\n		return;\r\n	}\r\n	$state = null; #null, start\r\n	foreach($body as $line) {\r\n		switch($state) {\r\n			case null:\r\n				if(preg_match(''/\\{\\{linkcount[\\s]+start.*\\}\\}/'', $line)) {\r\n					$state = ''start'';\r\n				}\r\n				break;\r\n			case ''start'':\r\n				if (preg_match(''/\\{\\{linkcount[\\s]+stop.*\\}\\}/'', $line)) {\r\n					$state = null; \r\n				} elseif (preg_match(''/\\[\\[http:.*\\]\\]/'', $line)) {\r\n					$linkcount++;\r\n				}\r\n				break;\r\n		}\r\n	}\r\n	echo $pretext.$linkcount.$posttext;\r\n}\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{lasteditnotes}}""##==\r\n\r\nPrints the last edit notes: {{lasteditnotes}}\r\n\r\n%%(php)\r\n<?php\r\n$page = $this->LoadSingle("SELECT * FROM ".$this->GetConfigValue(''table_prefix'')."pages WHERE tag=''".$this->GetPageTag()."'' AND latest = ''Y''");\r\necho ($page["note"])? $this->Format("//".$page["note"]."//") : "";\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{logo}}""##==\r\n\r\nDisplays a wikka logo set by admins (in the future the path should be set in the config file): \r\n{{logo}}\r\n\r\n%%(php)\r\n<?php\r\necho $this->Format(''{{image alt="logo" title="''.$this->GetWakkaName().''" url="images/wizard.gif" link="''.$this->GetConfigValue(''root_page'').''"}}'');\r\n?>\r\n%%\r\n\r\nMy version (which needs the config entry: "wiki_logo => "yourlogo.jpg" [must be on the same server]): \r\n%%(php)\r\n<?php\r\n//UI defines (i18n)\r\ndefine(''LOGO_ALT_TEXT'', "logo");    # alt-text for the logo image\r\n\r\n//print the image\r\nif ($this->GetConfigValue(''wiki_logo'') && file_exists($this->GetConfigValue(''wiki_logo''))) echo $this->Format(''{{image alt="LOGO_ALT_TEXT" title="''.$this->GetWakkaName().''" url="''.$this->GetConfigValue(''wiki_logo'').''" link="''.$this->GetConfigValue(''root_page'').''"}}'');\r\nelse echo $this->Format(''{{image alt="LOGO_ALT_TEXT" title="''.$this->GetWakkaName().''" url="images/wizard.gif" link="''.$this->GetConfigValue(''root_page'').''"}}'');\r\n?>\r\n%%\r\n--NilsLindenberg\r\n\r\n----\r\n==##""{{mysqlversion}}""##== \r\n\r\nDisplays the current MySQL version: {{mysqlversion}}\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print current MySQL version.\r\n */\r\necho mysql_get_server_info();\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{owner}}""##== \r\n\r\nDisplays page ownership infos: {{owner}}\r\n\r\n%%(php)\r\n<?php\r\nif ($this->page) {\r\n	if ($owner = $this->GetPageOwner()){\r\n		if ($owner == "(Public)"){\r\n			print "Public page"; #i18n\r\n		}\r\n		elseif ($this->UserIsOwner()) {\r\n			if ($this->IsAdmin()) {\r\n				print "Owner: ".$this->Link($owner, "", "", 0)."\\n"; #i18n\r\n				} else {\r\n				print"You own this page.\\n"; #i18n\r\n			}\r\n		} else {\r\n			print "Owner: ".$this->Link($owner, "", "", 0)."\\n"; #i18n\r\n		}\r\n	} else {\r\n		print "Nobody\\n"; #i18n\r\n	}\r\n}\r\n?>\r\n%%---\r\n~&My version: %%(php)<?php\r\n//UI defines (i18n)\r\ndefine(''OWNER_CURRENT'', "You own this page");	# current user owns the page\r\ndefine(''OWNER_PUBLIC'', "Public page");		# page is public\r\ndefine(''OWNER_NONE'', "Nobody");			# no page owner\r\ndefine(''OWNER_OTHER'', "Owner: %1");		# different owner\r\n\r\n// generate output (or not)\r\nif ($this->page)\r\n{\r\n	switch (TRUE)\r\n	{\r\n		case ($this->UserIsOwner() && !$this->IsAdmin()):\r\n			echo OWNER_CURRENT."\\n";\r\n			break;\r\n		case (''(Public)'' == $this->page[''owner'']):\r\n			echo OWNER_PUBLIC."\\n";\r\n			break;\r\n		case ('''' == $this->page[''owner'']):\r\n			echo OWNER_NONE."\\n";\r\n			break;\r\n		case ($this->IsAdmin()):\r\n		case ('''' != $this->page[''owner'']):\r\n			echo sprintf(OWNER_OTHER, $this->Link($owner, '''', '''', 0))."\\n";\r\n			break;\r\n		default:\r\n			// just in case\r\n	}\r\n}\r\n?>%% --- Note: this has a similar approach and structure to my version of ##""{{acls}}""## above; see my notes there. The order of the cases is important!\r\n~&**Code untested - Please test!**--- --JavaWoman\r\n\r\n----\r\n==##""{{phpversion}}""##== \r\n\r\nDisplays the current php version: {{phpversion}}\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print current PHP version.\r\n */\r\necho phpversion();\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{recentchangesrss}}""##== \r\n\r\nPrints a link (RSS feed for recent changes) to ##""CurrentPage/recentchanges.xml""##: {{recentchangesrss}}\r\n\r\n%%(php)\r\n<?php\r\necho "<a href=\\"".$this->href("recentchanges.xml")."\\" title=\\"Click to view recent changes in XML format.\\"><img src=\\"images/xml.png\\" width=\\"36\\" height=\\"14\\" align=\\"middle\\" style=\\"border : 0px;\\" alt=\\"XML\\" /></a>"; #i18n\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{referrers}}""##== \r\n\r\nPrints a link  to ##""CurrentPage/referrers""##: {{referrers}}\r\n\r\n%%(php)\r\n<?php \r\nif ($this->GetUser()) {\r\n	echo "<a href=''".$this->href("referrers")."'' title=''Click to view a list of URLs referring to this page.''>Referrers</a>\\n";  #i18n\r\n}\r\n?> \r\n%%\r\n\r\n----\r\n==##""{{revisions}}""##==\r\n\r\nPrints a link  to ##""CurrentPage/revisions""##: {{revisions}}\r\n\r\n%%(php)\r\n<?php\r\nif ($this->GetPageTime()) {\r\n		echo "<a href=\\"".$this->href("revisions")."\\" title=\\"Click to view recent revisions list for this page\\">".$this->GetPageTime()."</a>\\n"; #i18n\r\n}\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{revisionsrss}}""##== \r\n\r\nPrints a link (RSS feed for page revisions) to ##""CurrentPage/revisions.xml""##: {{revisionsrss}}\r\n\r\n%%(php)\r\n<?php\r\nif ($this->GetPageTime()) {\r\n	echo "<a href=\\"".$this->href("revisions.xml")."\\" title=\\"Click to view recent page revisions in XML format.\\"><img src=\\"images/xml.png\\" width=\\"36\\" height=\\"14\\" align=\\"middle\\" style=\\"border : 0px;\\" alt=\\"XML\\" /></a>"; #i18n	\r\n}\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{search}}""##== \r\n\r\nPrints a searchbox: {{search}}\r\n\r\n%%(php)\r\n<?php\r\necho $this->FormOpen("", "TextSearch", "get"); \r\necho ''Search: <input name="phrase" size="15" class="searchbox" />''; #i18n\r\necho $this->FormClose();\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{skin}}""##== \r\n\r\n~& Needs to be updated for new ##templates/## directory structure\r\n\r\nDisplays a clickable link to the current skin: ""{{skin}}""\r\n\r\n%%(php)\r\n<?php\r\n#$skin = ($this->GetCookie("wikiskin"))? $this->GetCookie("wikiskin") : $this->GetConfigValue("stylesheet");\r\n$defaultskin = $this->GetConfigValue(''stylesheet'');\r\n$skin = (!$this->GetCookie(''wikiskin'')) ? $defaultskin : $this->GetCookie(''wikiskin''); # JW 2005-07-08 FIX possibly undefined cookie\r\necho ''<a href="''.WIKKA_BASE_URL.''css/''.$skin.''" title="Display stylesheet">''.$skin.''</a>'';\r\n?>\r\n%%---\r\n~&Updated version - see comments on MySkin --JavaWoman\r\n\r\n----\r\n==##""{{time}}""##==\r\n\r\nPrints the current time: {{time}}\r\n\r\n%%(php)\r\n<?php\r\necho date("H:i");\r\n?>\r\n%%\r\n\r\n~& I created a similar action, but with an offset.  It can be found on the TimeWithOffset page. --JasonHuebel\r\n\r\n----\r\n==##""{{title}}""##==\r\n\r\nPrints the title of the current page: {{title}}\r\n\r\n%%(php)\r\n<?php\r\necho $this->PageTitle();\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{today}}""##==\r\n\r\nPrints the current date: {{today}}\r\n\r\n%%(php)\r\n<?php\r\necho date("F j, Y");\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{url}}""##==\r\n\r\nPrints the complete URL of the current page: {{url}}\r\n\r\n%%(php)\r\n<?php\r\necho $this->href("", $this->GetPageTag());\r\n\r\n//clickable link\r\n//echo $this->Link($this->href("", $this->GetPageTag()));\r\n?>\r\n%%\r\n\r\n\r\n----\r\n==##""{{who}}""##==\r\n\r\nPrints the name of the current user: {{who}}\r\n\r\n%%(php)\r\n<?php\r\nif ($this->GetUser()) {\r\n		echo "You are ".$this->Format($this->GetUserName()); #i18n\r\n}\r\n?>\r\n%%\r\n\r\n~&Here''s my take (untested!): %%(php)<?php\r\n// define output format (i18n)\r\ndefine(''WHO_OUT'', "You are %s");    # %s is either user name or remote address\r\n// get name or remote address\r\nif ($this->GetUser())\r\n{\r\n	$who = $this->Format($this->GetUserName());\r\n}\r\nelse\r\n{\r\n	if (isset($_SERVER[''REMOTE_HOST'']))\r\n	{\r\n		 $who = $_SERVER[''REMOTE_HOST''];\r\n	}\r\n	else\r\n	{\r\n		 $who = $_SERVER[''REMOTE_ADDR''];\r\n	}\r\n}\r\n// display output\r\necho str_replace('' '',''&nbsp;'',sprintf(WHO_OUT, $who));\r\n?>%% --- By putting the whole **phrase** in a define, we are taking care of differences in word order in different languages; at the output stage we replace spaces by no-breaking spaces to keep the whole string together. This also takes care of usage of ##""{{who}}""## in the main_menu (displaying address instead of user name). --JavaWoman\r\n~~&Nice way of doing it JavaWoman.%%(php)<?php\r\n// define output format (i18n)\r\ndefine(''WHO_OUT'', "You are %s");    # %s is either user name or remote address\r\n// get name or remote address\r\n$who = ($this->GetUser()) ? $this->Format($this->GetUserName()) : ( (isset($_SERVER[''remote_host''])) ? $_SERVER[''remote_host''] : $_SERVER[''remote_addr''] ) ;\r\n// display output\r\necho str_replace( '' '', ''&nbsp;'', sprintf(WHO_OUT, $who));\r\n?>%%---Here is a smaller take on the same code... -- GeorgePetsagourakis\r\n~~~&Ya, it''s smaller - but not faster. In fact, it''s exactly the same thing, just harder to read. I just happen to like readable code. I wrote it like that for a reason: it''s faster to maintain. ;-) --JavaWoman\r\n~~~~&It is probably cause I never had the chance to use the (condition)? smth : oth_th ; syntax and I am so excited about it .. :D --GeorgePetsagourakis\r\n~~~~~&It is indeed a very handy syntax and I do use it - but IMO usage beyond a //single// if-then-else level should be avoided: that''s where it gets hard to parse for humans although PHP has no problem with it. ;-) --JavaWoman\r\n\r\n----\r\n==##""{{wikkaname}}""##==\r\n\r\nPrints the name of the current Wikka: {{wikkaname}}\r\n\r\n%%(php)\r\n<?php\r\necho $this->GetWakkaName();\r\n?>\r\n%%\r\n\r\n----\r\n==##""{{wikkaversion}}""##== \r\n\r\nPrints the current wikka version: {{wikkaversion}}\r\n\r\n%%(php)\r\n<?php\r\n/**\r\n * Print current Wikka version.\r\n */\r\necho $this->VERSION;\r\n?>\r\n%%\r\n\r\n...\r\n\r\n~&DarTar, can you post your code for these actions here? The way some of the menu items are formatted now should be improved - but if this little project moves ahead (I hope) we might as well do it in the "menulets" action code instead of the current code. And new code should be ready for i18n as well (I don''t know if yours is...) --JavaWoman\r\n\r\n----\r\n==##""{{system}}""##==\r\n\r\nPrints system information about the system Wikka is running on:\r\n""{{system show="os"}}"" - prints the operating system information\r\n""{{system show="machine"}}"" - prints information about the machine\r\n""{{system show="host"}}"" - prints information about the host\r\n""{{system}}"" - prints all of the above\r\n\r\n\r\n%%(php)<?php\r\n/**\r\n * Prints information about the system Wikka is running on.\r\n *\r\n * Syntax:\r\n *	{{system [show="OS|machine|host"]}}\r\n *\r\n * @package		Actions\r\n * @subpackage	SysInfo\r\n * @name		Systedm\r\n *\r\n * @author		{@link http://wikka.jsnx.com/JavaWoman JavaWoman}\r\n * @copyright	Copyright (c) 2005, Marjolein Katsma\r\n * @license		http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License\r\n * @since		Wikka 1.1.6.0 ???\r\n *\r\n * @input		string	$show	optional: what type of system info to show (OS, machine or host);\r\n *				default: empty, shows all information\r\n */\r\n\r\n// default\r\n$show = '''';\r\n\r\n// get param and validation\r\n$valid_show = array(''os'',''machine'',''host'');\r\nif (is_array($vars))\r\n{\r\n	foreach ($vars as $param => $value)\r\n	{\r\n		switch ($param)\r\n		{\r\n			case ''show'':\r\n				if (in_array($value, $valid_show)) $show = strtolower($value);\r\n				break;\r\n		}\r\n	}\r\n}\r\n\r\n// get data\r\n$host		= php_uname(''n'');\r\n$os			= php_uname(''s'');\r\n$release	= php_uname(''r'');\r\n$version	= php_uname(''v'');\r\n$machine	= php_uname(''m'');\r\n\r\n// build output\r\n$out = '''';\r\nswitch ($show)\r\n{\r\n	case '''':\r\n		if (isset($os)) $out .= $os.'' '';\r\n		if (isset($release)) $out .= $release.'' '';\r\n		if (isset($version)) $out .= $version.'' '';\r\n		if (isset($machine)) $out .= $machine.'' '';\r\n		if (isset($host)) $out .= ''(''.$host.'')'';\r\n		break;\r\n	case ''os'':\r\n		if (isset($os)) $out .= $os.'' '';\r\n		if (isset($release)) $out .= $release.'' '';\r\n		if (isset($version)) $out .= $version.'' '';\r\n		break;\r\n	case ''machine'':\r\n		if (isset($machine)) $out .= $machine.'' '';\r\n		break;\r\n	case ''host'':\r\n		if (isset($host)) $out .= $host.'' '';\r\n		break;\r\n}\r\n\r\n// show result\r\necho trim($out);\r\n?>\r\n%%\r\n\r\nInstalled as a beta feature on this site.\r\n\r\n--JavaWoman\r\n\r\n----\r\n==##""{{randompage}}""##==//like the "Random Article" on wikipedia...//\r\n~ ##""{{randompage}}""##\r\n~~ Prints a link to a random page on this wiki. e.g. [[HomePage | RandomPage]]\r\n~ ##""{{randompage title="Random"}}""##\r\n~~ Change the title, use ##""{{randompage title=&#34;&#34;}}""## to display the real pagename.\r\n~ ##""{{randompage pos="ActionInfo, HandlerInfo, FunctionInfo"}}""##\r\n~~ Make a positive list to choose from, don''t use all pages. (note the default neg list)\r\n~ ##""{{randompage neg="HomePage, PageIndex"}}""##\r\n~~ Use all pages exept the ones used in this negative list / override the default neg list in $neg_list_default\r\n~ ##""{{randompage title="Random Link" pos="ActionInfo, HandlerInfo, FunctionInfo" neg=&#34;&#34;}}""##\r\n~~ Clear the default negative list, use only pages from the pos list and use "Random Link" as title.\r\n~ ##""{{randompage pos="HomePage|DonateNow|DonateNow|DonateNow"}}""##\r\n~~ You can influence the random ratio... (+other way of defining the list)\r\n\r\n~& **Original idea**\r\n~& %%(php)<?php\r\n$all = $this->LoadAll("select distinct tag from ".$this->GetConfigValue(''table_prefix'')."pages");\r\nprint $this->Link( $all[array_rand($all)][''tag''], '''', ''RandomPage'', FALSE, TRUE, ''A random page on this site'' );\r\n?>\r\n%%\r\n\r\n%%(php)<?php\r\n/**\r\n * Prints a link to a random page.\r\n *\r\n * syntax:\r\n *      {{randompage [title="string"] [pos="PageName, PageName2"] [neg="PageName3, PageName4"]}}\r\n *\r\n * @package     Actions\r\n * @subpackage  Menulets\r\n * @name        RandomPage\r\n *\r\n * @author      {@link http://wikkawiki.org/OnegWR OnegWR}\r\n * @copyright   Copyright (c) 2006, OnegWR\r\n * @license     http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License\r\n * @since       Wikka 1.1.6.0\r\n *\r\n * @input       string  $title  optional: alternative for "RandomPage"\r\n *                              if set to "" the real pagename is used\r\n * @input       string  $pos    optional: comma separated list of pages\r\n *                              only pages out of this list will be chosen\r\n *                              default: all pages\r\n * @input       string  $neg    optional: comma separated list of pages\r\n *                              pages in this list will not be used\r\n *                              exeption: if the errorpage is in the list\r\n *                              default: defined by $neg_list_default array\r\n * If no match could be found, HomePage/config["root_page"] is returned.\r\n * @ToDo        Get list of pages from the tagCache of the ExistsPage function by IanAndolina\r\n */\r\n\r\n$errorpage = $this->GetConfigValue(''root_page'');\r\n$neg_list_default = array("HomePage","UserSettings","TextSearch","TextSearchExpanded","PageIndex");\r\n$title = isset($vars[''title'']) ? $this->htmlspecialchars_ent($vars[''title'']) : "RandomPage"; //i18n\r\n\r\nforeach( $this->LoadAll("select distinct tag from ".$this->GetConfigValue(''table_prefix'')."pages") as $key => $val ){\r\n		$all[]=$val[''tag''];\r\n}\r\n$pos_list = isset($vars[''pos'']) ? preg_split("/[|,]/", preg_replace( "/[\\ ]/", '''', $vars[''pos''] ) ) : $all ;\r\n$neg_list = isset($vars[''neg'']) ? preg_split("/[|,]/", preg_replace( "/[\\ ]/", '''', $vars[''neg''] ) ) : $neg_list_default ;\r\n\r\n$try = 0;\r\nwhile ( $try < 5 ) {\r\n		$try++;\r\n		$page = $pos_list[array_rand($pos_list)];\r\n		if( !in_array($page, $all) ) continue;\r\n		if( in_array($page, $neg_list) ) continue;\r\n		break;\r\n}\r\nif( $try > 4 ) $page = $errorpage;\r\nif( $title=='''' ) $title = $page;\r\nprint $this->Link( $page, '''', $title, FALSE, TRUE, "$page, a random page on this site" ); //i18n\r\n?>%%\r\n-- OnegWR\r\n\r\n----\r\n==##""{{contributors}}""##==\r\n~ Prints a space separated list of all users that have edited the current page, the most active user first.\r\n~ A bit like ##""{{lasteditauthor}}""##, but with all editing authors...\r\n%%(php)<?php\r\n/**\r\n * Shows the contributors of this page, most active user first.\r\n *\r\n * syntax:      {{contributors}}\r\n *\r\n * @package     Actions\r\n * @subpackage  Menulets\r\n * @name        Contributors\r\n * @author      {@link http://wikkawiki.org/OnegWR OnegWR}\r\n * @copyright   Copyright (c) 2006, OnegWR\r\n * @license     http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License\r\n * @since       Wikka 1.1.6.0\r\n */\r\n\r\n$q = ''SELECT Count(*) AS cnt, `user` FROM ''.$this->GetConfigValue(''table_prefix'').''pages ''.\r\n		''WHERE `tag`="''.$this->GetPageTag().''" GROUP BY user ORDER BY cnt DESC;'';\r\n$all = $this->LoadAll( $q );\r\n\r\nforeach($all as $key=>$val)\r\n{\r\n		print $this->Link($val[''user''],'''',$val[''user''], FALSE, TRUE, ''(''.$val[''cnt''].'')'') ." \\n";\r\n}\r\n?>%%\r\n-- OnegWR\r\n\r\n----\r\n==##""{{wordcount}}""##==\r\n\r\nInserts a wordcount (my format, your format, or no format) into a document.  Needed something quick and dirty, so there''s some refinement yet to be done.\r\n\r\n##""+++Word count: 9999 word(s)+++""##\r\n\r\n==actions/wordcount.php==\r\n%%(php)\r\n<?php\r\n/*\r\n * Word count action\r\n * Author: Brian Koontz <brian@pongonova.net>\r\n * \r\n * Replace instances of {{wordcount}} with the number of words in the\r\n * text\r\n *\r\n * Optionally: {{wordcount preformatted="1" \r\n *                          pretext="Some pretext" \r\n *                          posttext="Some posttext"}}\r\n *\r\n * where preformatted = "1" produces "+++Word count: 9999 word(s)+++"\r\n *       pretext is the text to precede the word count (overrides preformatted) \r\n *       posttest is the text to follow the word count (overrides preformatted) \r\n *\r\n * @package     Actions\r\n * @subpackage  Menulets\r\n * @name        Contributors\r\n * @author      {@link http://wikkawiki.org/BrianKoontz Brian Koontz}\r\n * @copyright   Copyright (c) 2006, Brian Koontz <brian@pongonova.net>\r\n * @license     http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License\r\n * @since       Wikka 1.1.6.2\r\n *\r\n * TODO: Probably counts a lot of things it should, and a lot of\r\n * things it shouldn''t.  Probably shouldn''t count actions or other\r\n * special items.\r\n */\r\n\r\n$preformatted = $vars[''preformatted''];\r\n$pretext = $vars[''pretext''];\r\n$posttext = $vars[''posttext''];\r\n\r\nif( $pretext || $posttext) {\r\n	$pretext ? 1 : $pretext = '''';\r\n	$posttext ? 1 : $posttext = '''';\r\n} else if($preformatted) {\r\n	$pretext = "+++Word count: ";\r\n	$posttext = " word(s)+++";\r\n}\r\n\r\n$wc = str_word_count($this->page[''body'']);\r\necho $pretext.$wc.$posttext;\r\n\r\n?>\r\n%%\r\n\r\n----\r\nCategoryAdmin\r\n', '[[admin_username]]', 'WikkaInstaller', 'Y', ''),
(34, 'WikkaReleaseNotes', 'Wikka Release Notes', '[[regtime]]', '=====Wikka Release Notes=====---This server is running [[http://wikkawiki.org/ | Wikka Wiki]] version ##{{wikkaversion}}##.--- ---For detailed release notes please check the [[http://docs.wikkawiki.org/WikkaReleaseNotes |  Wikka website]].{{nocomments}}--- ----CategoryWiki', '[[admin_username]]', 'WikkaInstaller', 'Y', '');

-- --------------------------------------------------------

--
-- Table structure for table `[[dbprefix]]referrers`
--

CREATE TABLE `[[dbprefix]]referrers` (
  `page_tag` varchar(75) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `referrer` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `time` datetime NOT NULL DEFAULT '1900-01-01 00:00:00',
  KEY `idx_page_tag` (`page_tag`),
  KEY `idx_time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `[[dbprefix]]referrers`
--

INSERT INTO `[[dbprefix]]referrers` VALUES
('Do', '[[softurl]]/?installAction=writeconfig', '[[regtime]]'),
('Do', '[[softurl]]/?installAction=writeconfig', '[[regtime]]');

-- --------------------------------------------------------

--
-- Table structure for table `[[dbprefix]]referrer_blacklist`
--

CREATE TABLE `[[dbprefix]]referrer_blacklist` (
  `spammer` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  KEY `idx_spammer` (`spammer`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

