version=pmwiki-2.1.25 ordered=1 urlencoded=1
agent=pmwikiedit
author=Pm
csum=
host=38.119.121.196
name=PmWiki.ReleaseNotes
rev=226
targets=PmWiki.AuthUser,Site.AuthUser,PmWiki.SkinTemplates,PmWiki.WikiFarms,PmWiki.MailPosts,PmWiki.Notify,PmWiki.LocalCustomizations,Site.PageListTemplates,Site.SideBar,PmWiki.PageVariables,PmWiki.WebFeeds,PmWiki.InterMap,PmWiki.WikiStyles,PmWiki.ConditionalMarkup,PmWiki.Categories,PmWiki.Images,PmWiki.ChangeLog,Site.Search,PmWiki.Tables
text=!! Version 2.1.26 (2006-09-11)%0a%0aThis version fixes a bug in feeds.php that would cause feed entries to be mixed up.%0a%0a!! Version 2.1.25 (2006-09-08)%0a%0aThis release fixes a bug in authuser.php introduced by the 2.1.24 release.%0a%0aThe skin template code has also been extended to allow [@%3c!--XMLHeader-->@] and [@%3c!--XMLFooter-->@] as aliases for [@%3c!--HTMLHeader-->@] and [@%3c!--HTMLFooter-->@].%0a%0a!! Version 2.1.24 (2006-09-06)%0a%0aThis release makes some improvements and fixes to the [[AuthUser]]%0acapability.%0a%0aA bug in authuser.php that had trouble dealing with non-array values in $AuthUser has been fixed.%0a%0aIt is now possible to specify group memberships from ''local/config.php'' (remember that such entries must come ''before'' including the ''authuser.php'' script):%0a%0a    # alice and bob's passwords%0a    $AuthUser['alice'] = crypt('alicepassword');%0a    $AuthUser['bob'] = crypt('bobpassword');%0a%0a    # members of the @writers and @admins groups%0a    $AuthUser['@writers'] = array('alice',  'bob');%0a    $AuthUser['@admins'] = array('alice', 'dave');%0a%0a    # carol is a member of @editors and @writers%0a    $AuthUser['carol'] = array('@editors', '@writers');%0a%0aAuthUser can now read from Apache-formatted .htgroup files.  The location of the .htgroup file can be done either in ''local/config.php'' or [[Site.AuthUser]]%0a%0a    # local/config.php:%0a    $AuthUser['htgroup'] = '/path/to/.htgroup';%0a%0a    # Site.AuthUser%0a    htgroup: /path/to/.htgroup%0a%0a%0a!! Versions 2.1.21, 2.1.22, 2.1.23 (2006-09-05, 2006-09-06)%0a%0aThis release closes a potential security vulnerability for sites %0athat are running with 'register_globals' set to on.  Details of%0athe vulnerability will be forthcoming on the mailing list%0aand site.%0a%0aSites that are running with PHP 'register_globals' and 'allow_url_fopen'%0aset to 'On' should upgrade to this release at the earliest%0aopportunity.  If upgrading isn't an option, contact Pm for%0aa patch to older versions.%0a%0aThere is now a tool available to analyze PmWiki sites for security%0aand other configuration settings, see [[PmWiki:SiteAnalyzer]].%0a%0aVersion 2.1.23 also corrects a bug that prevented PmWiki from being%0aable to read pagefiles created by versions of PmWiki before 0.5.6.%0a%0a!! Version 2.1.20 (2006-09-04)%0a%0aMore minor bugfixes:%0a* Corrected a bug with WikiWord references appearing in the [@(:attachlist:)@] markup.%0a* Restore ability to remove/override PmWiki's default CSS settings.%0a%0a!! Version 2.1.19 (2006-08-30)%0a%0aThis release provides a number of very minor bugfixes and%0aenhancements:%0a%0a* Fixed a bug in the pageindex code that was causing it to not regenerate as quickly as it should.%0a* Fixed image/object/embed handling in wikistyles to better support the [[Cookbook:Flash]] recipe.%0a* Fixed a bug with wikistyles and input form tags.%0a%0aThe next release(s) may have a number of substantial code%0aenhancements and changes, so this release simply closes out%0aa few items before introducing those changes.%0a%0a%0a!! Version 2.1.18 (2006-08-28)%0a%0aThis release closes a potential cross-site scripting vulnerability%0athat could allow authors to inject Javascript code through the%0avarious table markups.%0a%0aThe release also adds a new [@(:input image:)@] markup to generate%0aimage input tags in forms.%0a%0aFinally, this release corrects a problem with [@?action=print@]%0afailing to properly set the [@{$Action}@] page variable.%0a%0a!! Version 2.1.17 (2006-08-26)%0a%0aThis release fixes a long-standing bug with $EnableIMSCaching%0a(PITS:00573), whereby login/logout operations wouldn't invalidate %0abrowser caches, causing some people to see versions of a page prior%0ato the login/logout taking place.  %0a%0aThe new IMS caching code maintains a "imstime" cookie in the %0avisitor's browser that keeps track of the time of last login, %0alogout, author name change, or site modification.  This cookie%0ais then used to determine the proper response to browser requests%0acontaining If-Modified-Since headers.  (Previously only the%0atime of the last site modification was available.)  %0a%0aBrowsers which do not accept cookies will effectively act as%0athough IMS caching is disabled.%0a%0a%0a!! Version 2.1.16 (2006-08-26)%0a%0aThis release makes some improvements to skin handling -- primarily%0athis improves the capability of relocating skin files to other%0alocations, and to provide the ability for recipes to insert items%0aat the ''end'' of HTML output.%0a%0aThis release introduces a [@%3c!--HTMLFooter-->@] directive into%0a[[skin templates]], which allows recipes and local%0acustomizations to insert output near the end of a document %0ausing a $HTMLFooterFmt array from PHP.%0a%0aAlso, the [@%3c!--HeaderText-->@] directive, which inserts the%0acontents of $HTMLHeaderFmt into the output, has now been%0arenamed to [@%3c!--HTMLHeader-->@].  PmWiki will continue to%0arecognize [@%3c!--HeaderText-->@] to preserve compatibility with%0aexisting skins, but [@%3c!--HTMLHeader-->@] is preferred.%0a%0aA new $SkinLibDirs array has been introduced which allows%0athe source locations and urls for skins to be specified from%0aa customization file.  By default $SkinDirUrls is set as%0a%0a  array("./pub/skins/\$Skin"      => "$PubDirUrl/skins/\$Skin",%0a        "$FarmD/pub/skins/\$Skin" => "$FarmPubDirUrl/skins/\$Skin")%0a%0aThe keys (on the left) indicate the places to look for skins%0ain the filesystem, while the values (on the right) indicate the%0aurls corresponding to the locations on the left.  Modifying%0athe value of $SkinLibDirs allows skins to be located anywhere%0aon the filesystem.%0a%0aAs far as I can see, none of the changes introduced by this%0arelease should have any sort of negative impact on existing%0asites, so it should be safe to upgrade.  (If I'm wrong, please%0alet me know.)%0a%0a%0a!! Version 2.1.15 (2006-08-25)%0a%0aThis release includes a number of feature enhancements and code cleanups%0aas reported or requested by administrators.%0a%0aFirst, AuthUser's LDAP authentication system now allows the use of%0aa [@?filter@] parameter, consistent with urls used for mod_auth_ldap%0aauthorization in Apache.  See the newly updated LDAP section of the%0a[[AuthUser]] documentation for more details.%0a%0aA chicken-and-egg problem with the [@@_site_*@] authorization groups%0ahas been resolved.  It's now possible to have a page's read authorization%0arefer to things such as [@_site_edit@].%0a%0aAlso, the RetrieveAuthPage() function -- used for retrieving pages only%0aif the visitor is authorized to do so -- now recognizes a special%0alevel parameter of 'ALWAYS', which means to always authorize access%0aregardless of the browser or visitors current permissions.  This%0amay be useful for allowing certain operations to take place from%0awithin trusted scripts without having to grant full authorization%0ato the browser.%0a%0aHardcoded instances of the ''local/'' directory now use a%0acustomizable $LocalDir variable.  This variable controls where%0aPmWiki looks for ''local/config.php'' and per-group customization %0afiles.  It may be useful for some [[Wiki Farm(s)]] contexts.  Note that%0athis does not change or affect the location of %0a''$FarmD/local/farmconfig.php''.%0a%0aSome minor internal changes have been made to %0a''scripts/wikistyles.php'' to better accommodate the %0awikipublisher recipe.  It's probably better if we don't try%0ato explain them.  :-)%0a%0a%0a!! Version 2.1.13, 2.1.14 (2006-08-15, 2006-08-16)%0a%0aThis release fixes a bug in handling numeric passwords, and also%0aallows ldaps:// authentication sources.%0a%0a!! Version 2.1.12 (2006-08-07)%0a%0aThis version introduces the ability to nest divs and tables.%0aThe standard [@(:table:)@] and [@(:div:)@] markups are still%0aavailable, except that a [@(:div:)@] may contain a [@(:table:)@]%0aand vice-versa.  %0a%0aAs in previous versions of PmWiki, the [@(:div:)@] markup%0aautomatically closes any previous [@(:div:)@].  However, there%0aare now [@(:div1:)@], [@(:div2:)@], etc. markups (and the%0acorresponding [@(:div1end:)@], [@(:div2end:)@], ...) which can be%0aused to uniquely distinguish divs for nesting purposes.%0a%0aTo restore PmWiki's previous "non-nested" div behavior, set%0a$Transition['nodivnest'] = 1; in a local customization file.%0a%0aOther changes in this release:%0a* Add a [@(:noaction:)@] directive to suppress display of page actions.%0a* Allow anchor tags to contain colons, hyphens, and dots.%0a* Add "white-space" as an allowed wikistyle.%0a* Other minor bug fixes and typographical corrections.%0a%0a%0a!! Version 2.1.11 (2006-06-09)%0a%0aThis is a minor update that prevents [@%25define=%25@] wikistyles%0afrom generating empty paragraphs in the HTML output.  Prior to%0athis release, markup lines containing only wikistyle definitions%0awould often generate empty paragraphs (%3cp>%3c/p>), this release%0achanges things so that a markup line beginning with [@%25define=@]%0aand containing only wikistyle definitions will not initiate%0aa new paragraph.%0a%0a%0a!! Version 2.1.10 (2006-06-03)%0a%0aVersion 2.1.4 introduced an [@{$Action}@] page variable that would%0acontain the current [@?action=@] value.  Unfortunately, this page%0avariable conflicted with a pre-existing [@$Action@] global variable%0athat was being used by skins to display a human-friendly form of%0athe current action.  Since there's not really a clean way to resolve%0athis, I've decided to keep [@{$Action}@] as a page variable%0awith the current action value (as introduced in 2.1.4), and change %0athe global for skins to be $ActionTitle.  This will require updating%0askins to use $ActionTitle instead of $Action.  I apologize for the%0aconflict.%0a%0aThis release adds a Site.LocalTemplates page for the [@fmt=#xyz@]%0aoption in pagelist and search results.  The list of pages to be%0asearched can be customized via the $FPLTemplatePageFmt variable.%0aThe [@fmt=#xyz@] option will now also search the current page for%0aa matching template before searching Site.LocalTemplates%0aand Site.PageListTemplates.%0a%0aThe 'pmwiki' skin now places a %3cspan> around the "Recent Changes"%0alink in the header to make it somewhat easier to style.%0a%0a!! Version 2.1.9 (2006-06-02)%0a%0aThis release fixes a long-standing and difficult-to-find bug with%0athe handling of [@[[~Author]]@] links.%0a%0a!! Version 2.1.8 (2006-06-01)%0a%0aThis release simply changes the $NotifyListFmt variable to be%0a$NotifyListPageFmt (more descriptive), and adds a $NotifyList%0aarray that can be used to specify notification entries from%0aa configuration file.%0a%0a!! Version 2.1.7 (2006-05-31)%0a%0aThis release introduces a variety of improvements and bugfixes.%0a%0a'''Vspace paragraphs are now divs:'''%0aVersion 2.1.7 changes the way that PmWiki handles vertical%0aspace in output (the infamous [@%3cp class='vspace>%3c/p>@] sequence).%0aInstead of using paragraphs, PmWiki now generates %0a[@%3cdiv class='vspace'>%3c/div>@] for vertical space sequences.%0aIn addition, PmWiki is able to collapse the vspace %3cdiv> with%0aany subsequent paragraph tags, such that a sequence like%0a%0a    %3cdiv class='vspace>%3c/div>%3cp>...paragraph text...%3c/p>%0a%0ais automatically converted to%0a%0a    %3cp class='vspace'>...paragraph text...%3c/p>%0a%0aThis allows for better control over paragraph spacing.  It is%0aexpected that this change in vspace handling will not have%0aany detrimental effects on existing sites.  Sites that have%0aset custom values for $HTMLVSpace will continue to use the%0acustom value.  A site that wants to restore PmWiki's earlier%0ahandling of vspace can do so by adding the following to%0a''local/config.php'':%0a%0a    $HTMLVSpace = "%3cp class='vspace'>%3c/p>";%0a%0a'''Improved email notifications of changes:'''  Version 2.1.7%0aincorporates a ''notify.php'' script that provides improved%0acapabilities for sending email notifications in response to%0apage changes.  This script is intended to replace the previous%0a[[MailPosts]] capability, which is now deprecated (but will%0acontinue to be supported in PmWiki 2.1.x).  Details and %0ainstructions for using notify.php are in the [[PmWiki.Notify]] page.%0a%0a'''Added 'group home page' syntax:''' A group name followed%0aby only a dot or slash is automatically treated as a reference%0ato the group's home page, whatever it happens to be.  This simplifies%0asome pagelist templates as well as a number of other items. %0aIn particular, group links in pagelist output now points to the%0acorrect locations (instead of being a page in the current group).%0a%0aSeveral bugs and vulnerabilities have been fixed:%0a* The default width of edit forms is now more appropriate for Internet Explorer.%0a* Authentication failure messages from LDAP are now suppressed.%0a* Some cross-site scripting vulnerabilities in uploads and page links have been corrected (courtesy Moritz Naumann, http://moritz-naumann.com).%0a* A problem with invalid pagenames resulting in redirect loops has been corrected.%0a%0a!! Version 2.1.6 (2006-05-22)%0a%0aThe primary improvement in this release is the addition of %0aa pagename argument to the [@(:if auth:)@] conditional markup.%0aThus one can display markup based on a visitor's authorization%0ato a page other than the current one.  For example, to test%0afor edit privileges to `Main.WikiSandbox, one would use%0a[@(:if auth edit Main.WikiSandbox:)@].  As before, if the%0apagename is omitted the directive tests authorization to%0athe current page.%0a%0aThis release also restores the ability to have hyphens in%0aInterMap link names.%0a%0aLastly, the release closes a potential cross-site scripting%0avulnerability in the WikiTrail markup, and provides some small%0aperformance improvements.%0a%0a!! Version 2.1.4, 2.1.5 (2006-03-29)%0a%0aThis release fixes a few more bugs:%0a* Pagelist-based feeds using ?action=rss work again.%0a* Multi-term searches with special characters is fixed.%0a%0aThe release also adds a couple of items:%0a* There is now an [@{$Action}@] page variable.%0a* Usernames and passwords submitted to authuser.php can contain quotes.%0a* The [@(:attachlist:)@] command now uses a natural case sort.%0a%0a!! Version 2.1.3 (2006-03-17)%0a%0aThis release fixes a bug that prevents the [@lines=@] option from%0aworking on sites running PHP 5.1.1 or later.  It also re-fixes%0aa bug involving empty passwords and LDAP authentication.%0a%0a!! Version 2.1.2 (2006-03-16)%0a%0aThis release fixes a bug with handling "nopass" passwords.  It also%0amakes some speed improvements to large web feeds, and fixes a couple%0aof minor HTML tag mismatches.%0a%0a!! Version 2.1.1 (2006-03-13)%0a%0aThis release primarily fixes a bug with passwords containing%0amultiple authorization groups, and in the process slightly liberalized%0athe formatting of "@group" and "id:name" handling.  This release also %0aadds a new mechanism for managing and displaying FAQ pages.%0a%0a!! Version 2.1.0 (2006-03-12)%0a%0aThis set of release notes is fairly lengthy, as it chronicles all of the changes since 2.0.13 (four months of development).  A lot remains the same, but some changes warrant extra care when upgrading from a 2.0.x version to 2.1.0 (thus the major revision number change).  As always, questions and issues can be mailed to the pmwiki-users mailing list.%0a%0aHere's the list:%0a%0a* WikiWords are now disabled by default.  To enable them, set "$LinkWikiWords = 1;" in a [[local customization(s)]] file.  As of 2.1.beta2, you can now leave WikiWords enabled but have links to non-existent pages display without decoration -- to do this, place the following lines in ''pub/css/local.css'':%0a%0a    span.wikiword a.createlink { display:none; }%0a    span.wikiword a.createlinktext %0a      { border-bottom:none; text-decoration:none; color:inherit; }%0a%0a* The [@(:pagelist:)@] code has been substantially revised.  Pagelist formatting can now be specified using markup, and several defaults are available from [[Site.PageListTemplates]].  Also, several built-in pagelist formatting functions (FPLSimple, FPLByGroup, FPLGroup) are now removed in favor of the template code.  The FPLByGroup function can be restored by setting $Transition['fplbygroup']=1; . '''Remark:''' Check to see if your page [[Site.PageListTemplates]] is not passwordprotected for viewing, otherwise the resulting pagelist will not be shown. %0a%0a* [@(:pagelist:)@] now also understands wildcards in @@group=@@ and @@name=@@ arguments, as well as excluding specific names and groups.%0a%0a* [@(:pagelist:)@] now has an "order=random" option.%0a%0a* [@(:searchbox:)@] now accepts "group=", "link=", "list=", etc. options to be passed along to the search results.  It also accepts a "target=" option that identifies the page on which to send the search query.%0a%0a* [@?action=search@] will display the contents of the current page if it contains a [@(:@][@searchresults:)@] directive, otherwise it uses the content of the page identified by $PageSearchForm (default is the search page for the current language translation).  %0a%0a* PmWiki no longer maintains a ".linkindex" file -- it now has a ".pageindex" file that contains not only a table of links, but also words used in each page (to speed up term searches).  The maintenance of the .pageindex file can be disabled by setting $PageIndexFile=''; %0a       %0a* The $EnablePageListProtect variable now defaults to true, so that read-only pages appear in pagelists only if the visitor has read authorization.  Note that this can also slow down some [@(:pagelist:)@] and search commands, so if the site doesn't have any read-only pages or if you aren't worried with cloaking read-only pages from searchlists, it might be worth setting $EnablePageListProtect=0; .%0a%0a* Whitespace indentation rules now exist and are enabled by default.  Any line that begins with whitespace and aligns with a previous list item is considered to be "within" that list item.  Text folds and wraps as normal, and the [@(:linebreaks:)@] directive is honored.  To turn off whitespace indentation, use [@DisableMarkup('^ws');@].%0a%0a* A single blank line after a [@!!Heading@] is silently ignored.%0a%0a* The [@(:redirect:)@] directive is now a true markup, and can be embedded inside conditional markups or includes.  It also allows redirecting to an anchor in a page, such as [@(:redirect PageName#anchor:)@].  A new [@from=@] option allows the redirect to take place only from pages that match the given wildcard specification.  The [@status=@] option allows a 301, 302, 303, or 307 HTTP status code to be returned.%0a%0a* The built-in authorization function has gone through some substantial internal changes, however these changes should be fully backward compatible so that it doesn't impact any existing sites.  (If it ''does'' cause a problem, please let me know so I can investigate why!)  The password prompts are now specified by an admin-customizable Site.AuthForm page.  In addition, the authorization function no longer creates PHP sessions for visitors that aren't being authenticated.%0a%0a* The authuser.php has likewise been substantially updated.  The new version should have complete backwards compatibility with previous authuser.php settings, but this version also offers the ability to configure authentication resources and authorization groups through the [[Site.AuthUser]] page.  Note that by default the Site.AuthUser page can only be edited using the admin password.%0a%0a* The $Author variable now defaults to $AuthId if not otherwise set by a script or cookie.%0a%0a* The [[Site.SideBar]] page now defaults its edit password to the sitewide edit password (in $DefaultPasswords['edit']).%0a%0a* PmWiki now supports a "draft edit" mode, enabled by $EnableDrafts = 1.  This creates a "Save as draft" button that will save a page under a "-Draft" suffix, for intermediate edits.%0a%0a* There is now an ?action=login action available.%0a%0a* A potential security vulnerability for sites running PHP 5 with register_globals enabled has been fixed.%0a%0a* The [@[[PageName |+]]@] markup is now available by default; this creates a link to `PageName and uses that page's title as the link text.%0a%0a* What used to be "markup variables" are now "[[page variables]]".  These are always specified using the @@{$''variable''}@@ syntax, and can be used in markup and in $...Fmt strings.  In addition, one can request a value for a specific page by placing the pagename in front of the variable, as in @@{''pagename''$''variable''}@@.%0a%0a* The ''scripts/rss.php'' script is now ''scripts/feeds.php'', and is a complete redesign for [[web feed(s)]] generation.  The new version supports UTF-8 and other encodings, can generate Atom 1.0 ([@?action=atom@]), Dublin Core Metadata ([@?action=dc@]) output, and enclosures for podcasting.  It also allows feeds to be generated from trails, groups, categories, and backlinks, and provides options (same as pagelists) for sorting and filtering the contents of the feed.  Most sites can simply switch to using [@include_once("scripts/feeds.php");@] instead of the previous ''rss.php'' include.  The ''rss.php'' file has been removed from the distribution (but still works with PmWiki 2.1 for those sites that wish to continue using it).%0a%0a* [[PmWiki/InterMap]] entries can now come from a `Site.InterMap page as well as the ''local/localmap.txt'' and ''local/farmmap.txt'' files.  The format of these files has changed slightly, in that the InterMap name should now have a colon after it (previously the colon was omitted).%0a%0a* We can now provide better control of robot (webcrawler) interactions with a site to reduce server load and bandwidth.  The $RobotPattern variable is used to detect robots based on the user-agent string, and any actions not listed in the $RobotActions array will return a 403 Forbidden response to robots.  In addition, setting $EnableRobotCloakActions will eliminate any forbidden ?action= values from page links returned to robots, which will reduce bandwidth loads from robots even further (PITS:00563).%0a%0a* Non-existent page handling has been improved; whenever a browser hits a non-existent page, PmWiki returns the contents of Site.PageNotFound and a 404 ("Not Found") status code.%0a%0a* Page links that have "?action=" in their query arguments are now treated as "existing page" links even if the page does not exist.%0a%0a* The PmWiki default skin now adds rel='nofollow' to various action links.%0a%0a* Some of the CSS styles in the PmWiki default skin have been changed for better presentation.%0a%0a* The gui edit buttons have transparent (instead of white) borders so they integrate better into skins.%0a%0a* The $EnableIMSCaching variable is now much smarter, it can detect changes in local customization files as well as pages.%0a%0a* [[PmWiki/WikiStyles]] can now make percentage specifications by using "pct" to mean "%25".%0a%0a* Class attributes in [[WikiStyle(s)]] shortcuts are now cumulative, so that [@%25class1 class2%25@] results in [@class='class1 class2'@] instead of just [@class='class2'@] in the output.%0a%0a* A problem with the [@(:include PageName#from#:)@] markup not working has been fixed (PITS:00560).%0a%0a* Viewing a GroupHeader or GroupFooter page no longer displays the contents twice.%0a%0a* It's now easier to share pages among multiple sites (e.g., [[WikiFarms]]), see Cookbook:SharedPages (PITS:00459).%0a%0a* A problem with nested apostrophe markups has been fixed (PITS:00590).%0a%0a* PmWiki is now smarter about not surrounding block HTML tags with %3cp>...%3c/p> tags.%0a%0a* If an [@[[#anchor]]@] is used more than once in a page, only the first generates an actual anchor (to preserve XHTML validity).%0a%0a* There are now [@(:if equal ...:)@] and [@(:if exists pagename:)@] [[conditional markup]]s.%0a%0a* Compound conditional markup expressions are now possible -- e.g. [@(:if [ group PmWiki && ! name PmWiki ] :)@] .%0a%0a* Added an $InputValues array that can supply default values for certain form controls (PITS:00566).%0a%0a* The default setting of $UploadUrlFmt is now based on $PubDirUrl instead of $ScriptUrl.%0a%0a* The $text global variable has been removed (use $_GET['text'], $_POST['text'], or $_REQUEST['text']).%0a%0a* A possible problem with url-encoding of attachments with non-ASCII characters has been addressed (PITS:00588).%0a%0a* Page actions in non-existent pages no longer display with non-existent link decorations.%0a%0a* A README.txt file has been added, and several documentation files are now available through the docs/ directory.%0a  %0a* PmWiki is no longer available through CVS on sourceforge.net.  It is now available via SVN on pmwiki.org, at svn://pmwiki.org/pmwiki/tags/latest .  For more details, see PmWiki:Subversion.%0a%0a* The $NewlineXXX variable (deprecated in 2.0.0) has been removed.%0a%0a* There is experimental support for server-side caching of pages that take a long time to render; this is currently an unsupported feature and may be removed in future releases.%0a%0a%0a!! Version 2.0.13 (2005-11-10)%0a%0aThis is a release containing minor bugfixes and improvements%0ain preparation for the 2.1.beta series.%0a%0a%25red%25Wiki administrators should note that after this release PmWiki will default to having WikiWords disabled.\\%0a%0aTo make sure WikiWords are enabled, use [@$LinkWikiWords = 1;@] in%0athe ''local/config.php'' file.%0a%0a%0a!! Version 2.0.12 (19-Oct-2005)%0a%0aThis release cleans up problems with page validation for page links%0acontaining query fragments and ampersands, changes PmWiki to use a%0aPHP "return" statement instead of "exit", and fixes a warning in%0ascripts/transition.php.%0a%0a!! Version 2.0.11 (17-Oct-2005)%0a%0aThis release fixes a couple of important bugs and adds some new%0afeatures to PmWiki.%0a%0aMost importantly, this release fixes bug with ?action=attr%0aaffecting the page history.%0a%0aFor sites using LDAP authentication with authuser.php, PmWiki%0anow provides $AuthLDAPBindDN and $AuthLDAPBindPassword variables%0ato specify the binding to be used for searching.  It also works%0aaround a PHP oddity that causes users to appear authenticated%0awhen an empty password is provided.  Authuser.php also now%0ahandles straight md5 password encryptions (commonly used by%0a`MySQL databases).%0a%0aThe core now includes the [@(:linebreaks:)@] markup%0a(from Cookbook:LineBreaks), which causes text on separate%0alines in the markup to appear as separate lines in the output%0a(i.e., no auto-joining of one line to the previous one).%0a%0aThere have been some internal changes designed to provide%0abetter support for leading-whitespace rules (more details on%0athis in a future release).%0a%0aThe core now provides an [@(:if date:)@] markup to display%0atext only if the current day is within a range of supplied%0adates.%0a%0a!! Version 2.0.10 (29-Sep-2005)\\%0aVersion 2.0.9 (28-Sep-2005)%0a%0aThis release fixes an oversight in xlpage-utf-8.php that failed to uppercase ASCII letters when mb_strtoupper isn't present.%0a%0a!! Version 2.0.8 (27-Sep-2005)%0a%0aThis release simply adds the capability to use quotes to enter%0apass phrases (passwords containing spaces) using ?action=attr,%0aand fixes a bug with displaying the name instead of the title in%0athe default print skin.%0a%0a!! Version 2.0.7 (26-Sep-2005)%0a%0aThis version changes the xlpage-utf-8.php case conversion slightly%0ato use a more direct conversion table, and completed the table%0afor more characters in the utf-8 set.%0a%0aThis release also fixes the $VersionNum variable that was supposed to%0aappear in 2.0.6.%0a%0aAn accesskey shortcut (ak_textedit) is being added to the edit form%0atext area.%0a%0aLastly, this release adds a timelimit to the generation of .linkindex,%0ato avoid long page times when generating the .linkindex.%0a%0a%0a!! Version 2.0.6 (16-Sep-2005)%0a%0aIn this release, we provide quite a few more updates for sites that%0awant or need to use utf-8 encoding, fix a large number of utf-8 %0arelated bugs, introduce better handling of author cookies, and%0abetter support for keeping track of version releases.%0a%0aThe biggest change is to the xlpage-utf-8.php recipe, which has%0abeen substantially rewritten from the previous version.  This new%0aversion of xlpage-utf-8.php no longer depends on the %0a[[http://www.php.net/mb_strtoupper | mb_strtoupper()]]%0afunction, which seems to be not available in many PHP installations.%0aThe new version of xlpage-utf-8.php uses mb_strtoupper() if it's%0aavailable, but if not available then it manually performs case %0aconversions from a Unicode table that is directly encoded in the%0ascript.  At present this table only understands case conversions%0afor Western European (Latin-1 or ISO-8859-1) and Cyrillic characters,%0awe'll want to expand the table to support other language character%0asets as needed.  Just contact me on the listserv if a particular%0acharacter isn't yet supported.%0a%0aIn addition to the above, author names and cookies in utf-8 environments%0anow work again, and link suffixes containing non-ASCII characters work%0aagain also.%0a%0aThe GUI button handling in IE has been greatly improved; text selection%0ain IE now works as you would expect it to work when a gui button is%0apressed.  Possibly still no hope for Mac Safari browsers, unfortunately...%0a%0aA $CookiePrefix variable has been introduced; a wiki administrator%0acan set $CookiePrefix to prevent PmWiki's cookies from interfering with%0acookies set from other applications under the same domain name.%0a%0aSome XHTML validation issues surrounding the use of %3cscript> tags %0ahave been fixed.%0a%0aAnd lastly, for script and recipe authors, there is now a $VersionNum%0anumeric value that makes it easier to determine if the currently running%0aversion of PmWiki is older or newer than a known release.  $VersionNum%0ais composed from the release number by padding the major and minor%0arelease numbers with zeroes to three digits, thus $VersionNum for this%0arelease (2.0.6) is 2000006, while a release like "2.1.24" will have%0a$VersionNum set to 2001024.%0a%0aAs mentioned on the pmwiki-users mailing list, we are also now maintaining%0aPITS entries for enhancements and changes to consider making in the %0acore distribution.  The list can be found at %0ahttp://www.pmwiki.org/PITS/CoreCandidate, all are welcome to add %0acomments and vote on the items under consideration.%0a%0a%0a!! Version 2.0.5 (9-Sep-2005)%0a%0aThis version adds an [@?action=logout@] and cleans up a few things %0afor internationalization (i18n) support.  %0a%0aWe've also formally deprecated and eliminated the $Newline variable %0afrom the core code -- sites that absolutely need pages stored in%0athe 1.x format can set $NewlineXXX.  (Note that this version %0acontinues to be able to read pages from all previous PmWiki%0aformats.)%0a%0a!! Version 2.0.4 (8-Sep-2005)%0a%0aOne week after the release of 2.0.0 we're now up to 2.0.4, most%0achanges have been minor bug fixes and improvements.  This release%0aprovides a few improvements here and there.%0a%0aThe biggest change is the addition of a link indexing system for%0aimproving the speed of [[Categories]] and backlinks (using the %0a[@(:pagelist link=...:)@] markup.  The system uses a ''.linkindex'' %0afile to keep track of all page links within the site, generating and%0aupdating the file as needed and using the file to avoid scanning pages%0athat are known to not link to the target.  The ''.linkindex''%0afile can be removed at anytime to cause it to be regenerated from%0ascratch.  Link indexing can be disabled by setting $EnableLinkIndex=0;%0ain ''local/config.php''.%0a%0aThe "change summary" associated with each edit is now limited to%0aa maximum of 100 characters.  A local customization can increase%0athe size of the summary.%0a%0aThe tilde sequences used to generate signatures are now precise;%0aonly a sequence of exactly three or four tildes result in a signature.%0aLonger sequences of tildes such as ~~~~~~~~ are left alone and not%0aconverted to signatures.  (Generating a sequence of three or four%0atildes still requires creative use of escapes, as in [@[=~~=]~@] and%0a[@[=~~=]~~@].)%0a%0aA number of previously hard-coded prompts are now internationalized.%0a%0aMany PHP E_NOTICE messages (displayed when error_reporting() is%0aset to its maximum value) are now eliminated.%0a%0a%0a!! Version 2.0.3 (6-Sep-2005)%0a%0aThis is a minor update; it enhances the core to display change%0asummaries in the page history, and makes additional attributes%0aavailable to input forms in forms.php.%0a%0aThis release also fixes a bug in the setting of the $sub parameter%0afor LDAP authentication, improves the setting of default values%0ain scripts/urlapprove.php, and fixes the search pages and skin%0ato use $SiteGroup instead of the hard-coded "Site" variable.%0a%0aLastly, this update changes the [@(:searchbox:)@] markup to%0abe a bit smarter about form generation when $EnablePathInfo%0ais set.%0a%0a!! Version 2.0.2 (3-Sep-2005)\\%0aVersion 2.0.1 (2-Sep-2005)%0a%0aThese versions correct some minor bugs in the loading and saving%0aof pages, the MailPosts feature, and documentation.%0a%0a!! [+ Version 2.0.0 (1-Sep-2005) +]%0a%0aAt long last, I'm very pleased to announce the official release of%0aPmWiki 2.0.0, now available at http://www.pmwiki.org/pub/pmwiki .%0a%0aPmWiki 2.0 has been in development for well over a year, with more%0athan eighty development and beta releases.  In addition, the%0acookbook for 2.0 continues to expand, and currently has over 200%0arecipes and more on the way.%0a%0a'''Not available at press time:''' For those who may be concerned%0athat their "must-have feature" didn't make it into the 2.0.0 release,%0adon't be.  The 2.0.0 release isn't the end of development, but%0ajust the stable basis for the next set of features and improvements.%0aEven if some features (e.g., discuss/comments pages, table of%0acontents, authorization groups, faster backlinks/categories)%0aaren't in the 2.0.0 release, I'm comfortable that we're at a point%0awhere these features can be added as 2.0.x releases with minimal%0aimpact to existing 2.0 sites.  And if not, then we'll start on 2.1.  :-)%0a%0a'''Upgrading to 2.0.0:''' Many sites have been keeping relatively%0aup-to-date with the latest 2.0 beta releases; for most of these%0asites upgrading to 2.0.0 is a minor upgrade (but see the notes below).%0aFor sites running beta versions of PmWiki older than 2.0.beta44,%0athe upgrade may require a bit of extra work -- check the ReleaseNotes%0afor more details.  For sites running 1.x or 0.6 versions of PmWiki,%0asee http://www.pmwiki.org/wiki/PmWiki/UpgradingFromPmWiki1 for%0atips on successfully migrating the site to PmWiki 2.0.0.%0a%0aPmWiki 2.0.0 does have some changes over the previous (beta55)%0arelease:%0a%0a* Lots of changes and improvements to the documentation.  Some documentation pages still need work, but the documentation is now sufficiently far along that I'm comfortable with making the release.%0a%0a* The release comes with a new default skin, matching the one currently available at http://www.pmwiki.org.  For those sites that wish to retain the old skin, it is available from http://www.pmwiki.org/wiki/Cookbook/PmWikiV1Skin .%0a%0a* The storage format for pages in wiki.d/ has changed somewhat.  PmWiki 2.0.0 can seamlessly read and interact with pages stored in previous formats, but any external scripts that may attempt to read wiki.d/ files directly will need to be adjusted to understand the new format.  In particular, the $Newline variable has been deprecated in this release and is no longer used.  (Sites that need file-level compatibility with previous versions can set a value for $Newline and PmWiki 2.0 will use that, however.)%0a%0a* Deleted pages now have a ",del-1234567890" suffix instead of just the timestamp.%0a%0a* The Site.SideBar is now unprotected by default.  Other pages in the Site group continue to be protected against edits and require the admin password to unlock.%0a%0a* Several relatively small improvements and bug fixes -- see the ChangeLog for details.%0a%0a'''What's next:'''  Next I plan to work on getting internationalizations updated to 2.0.0 -- many i18n items "broke" in beta44 and need to be cleaned up.  In conjunction with this will be page improvements and cleanups on pmwiki.org, as well as addressing outstanding PITS entries.  After that will come more feature enhancements, including comments pages, section edits, and improved indexing/search capabilities.%0a%0a----%0a%0a'''Thank you:''' My sincere and humble thanks to everyone who has contributed so much of their time, ideas, opinions, writing, and code to PmWiki.  I notice that the PmWiki:Contributors page is way out of date, so if you've helped at all with PmWiki core development, don't be shy or modest -- feel free to add yourself to the list and be associated with an outstanding group.%0a%0aAnd, as always, comments, suggestions, questions, and bug reports can be reported to the mailing list or the PmWiki Issue Tracking System.%0a%0aThanks again,%0a%0aPm%0a%0a----%0a%0a!!!Version 2.0.beta55 (25-Aug-2005)%0aI was really hoping that the next release would be 2.0.0, but it %0adidn't work out that way.  Really all that needs to be done now is %0ato finish cleaning up the documentation.%0a%0aThis release has a number of important changes and bugfixes.  First,%0athe 'value=' wikistyle is working again, having been broken in an%0aearlier release.  WikiStyles now also accept dots and parens in values,%0aso that things like "1.5em" and "rgb(255,255,255)" work.  There's a%0anew "[@%25cframe%25@]" wikistyle, which centers content in a 200-pixel frame%0a(this can be adjusted with a "width=" parameter in the wikistyle).%0a%0aThe [@(:include:)@] directive now allows a list of pages to be searched%0afor inclusion; the first existing page is selected.  Thus the markup%0a%0a    [@(:include Page1 Page2 Page3:)@]%0a%0aincludes the contents of the first available of Page1, Page2, or Page3.%0a%0aThe [=[@...@]=] markup is now the "preformatted text" markup.  It can be%0aused instead of the space [@[=...=]@] markup to generate blocks of%0apreformatted and escaped text.  It's also fairly smart about handling%0aextra newlines inside the [=[@...@]=], so that there isn't a lot of%0aunwanted vertical space displayed in the output.%0a%0aAnd speaking of unwanted vertical space, PmWiki's handling of "blank lines"%0ain the markup text has been changed somewhat.  In previous versions%0aof PmWiki, some directives %0a(e.g., [@(:comment:), (:keyword:), (:noleft:), (:if:)@]) often %0aresulted in blank lines in the markup text, which then%0agenerated vertical space on the output.  In this release, only those%0alines that are blank in the original source markup (before processing)%0aend up generating vertical space in the output.  This ends up being%0amuch more natural for authors and allows cleaner markup sequences.%0a%0aThis change may have some ramifications for selected recipe authors.%0aIf a custom markup rule produces other wiki markup to be processed by%0aPmWiki, and the output wiki markup contains blank lines that is intended%0ato generate vertical space in the page output, then the custom markup rule%0aneeds to either generate '%3c:vspace>' tags for the blank lines or call%0athe PVS() function to convert blank lines into vertical space tags.%0a(For more details or assistance, query the mailing list.)%0a%0aSome may have noticed that pmwiki.org now has a new skin; some version of%0athis skin is expected to become the standard skin in the next release.  %0aThe current 2.0.beta skin will be made available for download in the %0aCookbook for sites that want to continue using it.%0a%0a!!!Version 2.0.beta54 (1-Aug-2005)\\%0aVersion 2.0.beta53 (30-Jul-2005)%0a%0aThis release restores ?action=search, to be able to perform searches%0ain the context of a group or current page.  It also modifies the%0a[@(:searchbox:)@] directive to allow a "group=" option to limit%0asearches to certain groups.%0a%0a!!!Version 2.0.beta52 (29-Jul-2005)%0a%0aThis release provides a number of minor bugfixes and introduces improvements%0ato image handling.  Most of the improvements for images are described%0aon the [[PmWiki.Images]] page.  Other changes are in the [[ChangeLog]].%0a%0a!!!Version 2.0.beta51 (22-Jul-2005)%0a%0aThis release corrects a problem introduced by the "Save and Edit"%0acapabilities introduced in 2.0.beta44 -- posts made with "Save and Edit"%0acould bypass blocklists, urlapprovals, and simultaneous edits.%0a%0aFor administrators and recipe writers who have been working with%0aposting capabilities, posting is now controlled by an $EnablePost%0avariable.  Setting $EnablePost to zero suppresses the actual post --%0apreviously this was generally performed with [@unset($_POST['post'])@].%0aIf appropriate, a message for why the post was suppressed can%0ausually be placed in the $MessagesFmt array.%0a%0a!!!Version 2.0.beta50 (20-Jul-2005)%0a%0aThis release makes two major improvements to the authorization%0asemantics in PmWiki:%0a%0a1.  The $HandleAuth array can be used to set the authorization%0alevel required for executing a corresponding action.  For example,%0asetting $HandleAuth['diff'] to 'edit' means that edit authorizations%0aare required to view the page history ([@?action=diff@]).  Similarly,%0asetting $HandleAuth['source'] to 'admin' means that only the%0aadmin would be able to use [@?action=source@].%0a%0a2.  Passwords can now "cascade" -- that is, if a page sets a 'read'%0apassword but not an 'edit' password, then the read password%0ais also used as the edit password.  Similarly, if a page sets%0aan 'edit' password but not an 'attr' password, then the edit%0apassword is also used as the attr password.%0a%0aThis prevents situations where authors set an edit password%0aon a page but don't set a corresponding attr password.%0a%0aThis does not change PmWiki's other passwording characteristics --%0ai.e., page passwords still override group passwords, and group%0apasswords still override site passwords.  Password cascading%0ais only used where there's no page, group, or site password set %0afor a given authorization level.%0a%0a!!!Version 2.0.beta49 (19-Jul-2005)%0a%0aThis release adds a Content-Disposition: header for sites that have%0adirect downloads disabled (automatically fills in a browser's filename%0afor such downloads).  It also fixes some issues with \\ markup at the%0aends of lines.%0a%0a!!!Version 2.0.beta48 (13-Jul-2005)\\%0aVersion 2.0.beta47 (12-Jul-2005)\\%0aVersion 2.0.beta46 (11-Jul-2005)\\%0aVersion 2.0.beta45 (10-Jul-2005)\\%0aVersion 2.0.beta44 (10-Jul-2005)%0a%0aThis release has a number of major changes, and is hopefully the%0alast such "major" release before 2.0.0.  %0a%0aIncluded with this release is a special ''transition.php'' script%0athat reconfigures PmWiki as needed to cause it to work as it did%0ain previous releases.  In the release notes below any changes%0athat are handled by the transition script are marked by [ ].%0aThis transition script is automatically loaded by default so the%0asite admin doesn't need to do anything to use it.%0a%0aEventually the transition script will also provide diagnostic%0aoptions to inform site admins of places where they may be relying%0aon outdated or deprecated features, and how they can change their%0asettings to be up-to-date.%0a%0aPmWiki now sets CSS stylings so that all images within a page are%0adisplayed without a border (HTML's default is a 1-pixel border).%0aTo restore the behavior of previous versions, add the following to%0a''local/config.php'':%0a%0a    $HTMLStylesFmt['img'] = ' img { border:1px solid; } ';%0a    $ImgTagFmt="%3cimg src='\$LinkUrl' style='border:0px;' alt='\$LinkAlt' />";%0a%0aWith this release we are officially initiating use of the "Site"%0agroup discussed on the pmwiki-users mailing list.  The Site group %0ais intended to hold a variety of utility and configuration pages %0aused by PmWiki, and many of PmWiki's pages have moved from the %0a"Main" group into this new location.  More on this in a bit.%0a%0aThe major internal change is that this release provides support%0afor input forms.  Notably, the "Edit Page" form layout can now%0abe specified using wiki markup in the Site.EditForm page.  ( [ ] However,%0aPmWiki still honors the $PageEditFmt variable for those sites or%0askins that may have customized edit forms.)%0a%0aThe edit form now includes a "change summary" line where authors%0acan summarize the edits.  The edit form can also contain %0aa "Save and edit" button to save changes but continue editing, and%0aa "Cancel" button for abandoning changes.%0a%0aThe $EditMessageFmt variable for displaying messages to authors%0ais now the $MessagesFmt array, which can be displayed using the%0a[=(:messages:)=] markup.  [ ] The transition script takes care%0aof moving messages between $EditMessageFmt and $MessagesFmt as%0aneed to preserve correct operation.%0a%0aA number of traditional locations for pages have now been moved%0ainto the Site group, many of which are handled by the transition%0ascript:%0a%0a* The new location for the `AllRecentChanges page is Site.AllRecentChanges.  [ ] However, if `Main.AllRecentChanges exists then it will continue to be updated also.  Administrators may wish to move `Main.AllRecentChanges to Site.AllRecentChanges and/or remove `Main.AllRecentChanges entirely.%0a%0a* The search results page is now [[Site.Search]] instead of `Main.SearchWiki.  `Main.SearchWiki will be removed entirely in a future release.  [ ] The transition script takes care of mapping some instances of `Main.SearchWiki in links to Site.Search.%0a%0a* Approved urls are now stored in `Site.ApprovedUrls .  [ ] However, if `Main.ApprovedUrls exists it is used and updated as appropriate.%0a%0a* `Main.SideBar is now `Site.SideBar.  Unfortunately, it's very difficult to manage this particular change among all possible skin combinations, so it's up to the admin to correctly move existing sidebar pages into the appropriate group, or to update the skin template accordingly.%0a%0a* `PmWiki.EditQuickReference and `PmWiki.UploadQuickReference are now stored in the Site group.%0a%0a* `PmWiki.WikiHelp is being deprecated and will be removed from a future release.%0a%0aThe $PagePreviewFmt variable no longer exists in standard PmWiki (it's now handled by Site.EditForm).  [ ] However, to preserve backwards compatibility it is loaded by the transition script in certain situations.%0a%0aThe $PageName substitution (deprecated in 2.0.devel14) is now gone.%0aUse $FullName instead.%0a%0aThe GUI buttons can now have accesskeys associated with them.%0a%0aGUI buttons are now displayed via a [@(:e_guibuttons:)@] directive in Site.EditForm, instead of being attached to $EditMessagesFmt.%0a%0aThis release now provides the ability for user and browser-specific%0apreferences and customizations, including accesskeys and form element%0asizes.  More details about this will be forthcoming in documentation.%0a%0aThe release adds standard [@(:noleft:)@] and [@(:noright:)@] directives for suppressing the display of the left and right sidebars (depending on skin template).%0a%0a%0a!!!Version 2.0.beta43 (8-Jul-2005)%0a%0aThis release adds the long awaited [@(:div:)@] markup.  The format of%0athe markup is%0a    [=%0a    (:div:)%0a    ...%0a    (:divend:)%0a    =]%0aAttributes (e.g., [@id='name'@] and [@class='class'@] can be supplied %0ato the [@(:div:)@] directive.  [@(:div:)@] lives in the same markup%0alayer as advanced tables [@(:table:)@], so divs and tables do not%0anest, and any div or advanced table directive ends any previous%0a[@(:div:)@].  (We may change this in a future release; for now we'll go%0awith the non-nesting version.)%0a%0aThe release also adds a div shortcut, any line beginning with >>%3c%3c%0amarks a new div section.  In addition, wikistyle specifications%0acan go between the >> and %3c%3c, thus [@>>bgcolor=#ffffdd%3c%3c@] will create%0aa division with a light yellow background.  Similarly, one can%0ado things like [@>>id=foo%3c%3c@], [@>>class=bar%3c%3c@], and even make%0ause of author-defined wikistyles such as >>center%3c%3c or >>Don%3c%3c.%0a%0aLastly, the wikistyle code now supports [@%25id=name%25@], which%0aallows an HTML [@id='name'@] attribute to be added to the%0aaffected text.%0a%0a!!!Version 2.0.beta42 (7-Jul-2005)%0a%0aThis minor release adds the [@(:if attachments:)@] conditional markup, to include/exclude markup based on the (non)existence of attachments to the current page.%0a%0a!!!Version 2.0.beta41 (7-Jul-2005)%0a%0aThis is a minor release with some small bugfixes to uploads, adding the ability to set the item number for ordered lists with [@%25item value=nn%25@], and enabling nested Keep()s for module writers.%0a%0a!!!Version 2.0.beta40 (22-Jun-2005)%0a%0aThis very minor release simply updates the authuser.php script to %0asupport Apache `MD5 encryption in .htpasswd files.%0a%0a!!!Version 2.0.beta39 (20-Jun-2005)%0a%0aThis release primarily fixes some bugs with wikistyles and their interactions with block structures such as tables and headings.  In addition, the release fixes some nagging errors with opening directories in PITS and other recipes.%0a%0aThis release also adds definition lists to the available syntaxes for building WikiTrails.%0a%0aFinally, this release adds ''scripts/authuser.php'', which is a preliminary script for user-authentication based on .htpasswd (and similarly formatted) files.%0a%0a!!!Version 2.0.beta38 (14-Jun-2005)%0a%0aThis version performs a minor bug fix to the `ListPages() function for those sites that are storing pages in per-group subdirectories.%0a%0a!!!Version 2.0.beta37 (26-May-2005)%0a%0aThis version performs some minor bug fixes and improvements:%0a* Changed the location in which $SearchIncl, $SearchExcl, and $SearchGroup are set %0a* Fixed bug in setting of $SearchExcl %0a* Added filesize check after new page is written to disk but before replacing existing page%0a* Added $LinkUrl and $LinkAlt to urlapprove.php %0a%0a!!!Version 2.0.beta36 (30-Apr-2005)%0a%0aThis release fixes a rather large bug with excluded terms in the %0apagelist code, and a very minor bug with generating cells if there%0aare spaces after the final '||' in a simple table.%0a%0a!!!Version 2.0.beta35 (24-Apr-2005)%0a%0aThis release fixes some bugs in the new pagelist code.%0a%0a!!!Version 2.0.beta34 (23-Apr-2005)%0a!!!Version 2.0.beta33 (22-Apr-2005)%0a%0aThis version introduce a major redesign of working and speed of  scripts/pagelist.php, which defines [@(:pagelist:)@] and [@(:@][@searchresults:)@] markups. This version now have a parameter [@link=@] to display pages with links to target page (i.e. "backlinks"). There is also "order=" and  "count=" parameters which can be used for sorting listed pages and limit display length.%0a%0aHowever, the changes also mean that it's possible that any%0alocal customizations or cookbook recipes that depended on the%0aprevious pagelist code will no longer work, so be careful%0awhen upgrading.%0a%0aThis release also optimizes the rendering of page links and%0afixes a performance bug in the `FmtPageName() function.  These%0achanges have been observed to improve page rendering times by%0aup to 40%25.%0a%0aWhat remains before the 2.0 official release:  redesign of the%0aedit page form, addition of a "comments" feature, and fixing%0aPmWiki documentation.  %0a%0aLastly, the trailing ?> sequences have been removed from all%0ascripts to simplify installations on VMS and other environments%0athat have trouble with newlines after the closing ?>.%0a%0a%0a!!!Version 2.0.beta32 (17-Apr-2005)%0a%0aVersion beta32 adds the $RCLinesMax variable, which limits the maximum%0anumber of lines that are saved in `RecentChanges files.  The default%0ais set to zero, meaning "no limit".%0a%0a!!!Version 2.0.beta31 (15-Apr-2005)%0a%0aThis release adds the ability to store and serve attachments (uploads)%0afrom directories that is not directly accessible to the webserver.  %0aThe "download" action ([@?action=download@]) tells PmWiki to retrieve%0aan attachment associated with the current page.  This can be used for%0aprotecting attachments via a page's passwords, or for working around%0awebservers that cannot access files in the PmWiki-created ''uploads/''%0adirectories.%0a%0aSetting $EnableDirectDownload=0; tells PmWiki to generate links to %0a[@?action=download@] to retrieve attachments instead of accessing%0athe attachments directly through the webserver.  Note that this%0asetting by itself may not be enough to protect uploads; one may need%0aalso need to to configure the webserver or ''uploads/'' directory%0ato block direct requests to the webserver for attachment files.%0a%0aThis release also adds $EnableFixedUrlRedirect.  When PmWiki receives%0aa url with a "partial pagename" (such as the name of a WikiGroup),%0ait first determines the correct "full name" for the page.  Normally%0aPmWiki then issues a "redirect" to the browser requesting the browser%0ato reload the page with its full, "official" url, but setting%0a$EnableFixedUrlRedirect to zero will suppress the reload so that the%0adetermined page is sent immediately (and keeps the same url used to%0aaccess the page).%0a%0a%0a!!!Version 2.0.beta30 (14-Apr-2005)%0a%0aThis release works around some problems with PHP sessions resulting in%0adeadlocked web processes.  The changes to the authorization code in%0a2.0.beta29 greatly increased the likelihood of such deadlocks, so%0aall sites running 2.0.beta29 are encouraged to upgrade to this one.%0a%0aThis release also changes the wikiword-handling functions so that%0awikiwords are no longer spaced if $LinkWikiWords is disabled.%0a%0aFinally, this release adds $PageTextStartFmt and%0a$PageTextEndFmt to allow local customization of the container%0asurrounding %3c!--`PageText--> in skin templates.%0a%0a%0a!!!Version 2.0.beta29 (11-Apr-2005)%0aThis release incorporates some significant changes in the authorization%0aand page storage code, so production-level sites might want to wait for%0aany new bugs to found and fixed before upgrading.  Or, go ahead and%0aupgrade but be prepared to revert back to beta28 or earlier if you%0astart to notice problems.%0a%0aHowever, I do need lots of testers for the new code in this release,%0aof which there's a fair bit.  Thus, I'd greatly appreciate any%0ahelp people can provide with testing the new system and suggesting%0aimprovements.  I'm particularly looking for suggestions about how%0athe interfaces can be made easier to understand.%0a%0aThe Page Attributes form (reached via ?action=attr and used to set%0apasswords) has been improved so that it's now possible to see which%0apasswords have been set, and if those passwords are coming from the%0agroup or site defaults.  For an example, see%0ahttp://www.pmwiki.org/wiki/Test/AttrExample?action=attr .  These%0aprompts are not yet internationalized -- I want to get the english%0ainterface finalized first and then we'll make the i18n strings for it.%0a%0aMultiple passwords (separated by spaces) can now be set on pages and groups,%0athus entering "one two" for an edit password will means that either "one" or%0a"two" will be accepted.  Because of this, passwords cannot contain%0aspaces (I hope this won't be a major loss -- let me know if it will).%0a%0aThe password request field now appears within a normal skin layout%0a(i.e., with header, sidebar, footer); previously requests for%0apasswords were undecorated forms that appeared alone in the browser%0awindow.%0a%0aThere is an [=(:if auth ...:)=] conditional markup available for%0aprocessing depending on the current authorizations in effect.  For%0aexample, one can create a bullet list with%0a    [=%0a    (:if auth read:)* [[View page -> {$Name}?action=browse]]%0a    (:if auth edit:)* [[Edit page -> {$Name}?action=edit]]%0a    (:if auth upload:)* [[Attachments -> {$Name}?action=upload]]%0a    (:if auth attr:)* [[Page Attributes -> {$Name}?action=attr]]%0a    (:if auth admin:)* You're logged in as admin%0a    (:ifend:)%0a    =]%0aand only those items corresponding to the user's current authorizations%0awill appear.  This should be very useful in creating action buttons.%0a%0aAssuming there's already some mechanism in place for identifying%0aand authenticating someone, pages can specify a password field of%0a"id:xyz", which means to allow only user "xyz" the specified%0aaccess.  For example, specifying an edit password of "id:alice"%0ameans that only user "alice" (and the admin) is allowed to edit the%0apage.  Multiple ids can be specified as either "id:alice,bob,carol"%0aor "id:alice id:bob id:carol".  The special value "id:*" is used%0ato mean any authenticated user, and users can be excluded via the%0aminus sign, as in "id:-eve,*".%0a%0aUser-based authentication can completely coexist and mix freely with%0apassword-based authentication, thus an edit password of%0a"id:alice glorp" will allow Alice and anyone who knows the%0apassword "glorp" to edit the page.%0a%0a2.0.beta29 supports only REMOTE_USER authentication; future releases%0awill add other authentication mechanism.%0a%0a!!!Version 2.0.beta28 (27-Mar-2005)%0a%0aThis release makes some substantial improvements to the attachments/uploads feature in PmWiki.  The specific enhancements include:%0a%0a* The Attach: markup can now be used to reference attachments on other pages; the syntax is [@Attach:pagename/file.ext@].  The "pagename" can refer to pages in other groups.  %0a%0a* Attachments automatically have the file extension (if any) converted to lowercase.%0a%0a* The [@(:attachlist:)@] markup now accepts parameters; ''ext='' can be used to limit the list of attachments to specific extensions, and one can supply a page's name to obtain a list of attachments for that page (e.g., [@(:attachlist Group.PageName:)@].%0a%0a%0a!!!Version 2.0.beta27 (26-Mar-2005)%0a%0aThis release makes a number of minor changes and bugfixes.  The more significant changes are listed below.%0a%0a* The localmap.txt and farmmap.txt files can now contain $-variable substitutions (same as any variables available through `FmtPageName).%0a%0a* Most built-in directives are now case insensitive.%0a%0a* The (:markup:) directive now has a (:markup:) ... (:markupend:) version.  The previous [=(:markup:)=] [@[=...=]@] syntax is still supported, but may change in future releases.%0a%0a* A bug was fixed with preformatted text eating the leading whitespace character.%0a%0a* Added the missing [@{$FullName}@] markup.%0a%0a* Fixed a bug in the handling of $MetaRobots.%0a%0a!!!Version 2.0.beta26 (5-Mar-2005)%0a%0aThis release adds support for edit page templates; i.e., site administrators can specify the default text for new pages.  More details are available at Cookbook:EditTemplates.%0a%0a!!!Version 2.0.beta25 (2-Mar-2005)%0a!!!Version 2.0.beta24 (1-Mar-2005)%0a%0aThis release contains an important correction to the processing of QUERY_STRING parameters, and changes to the way that `PageNotFound messages are generated.  These are needed to prevent webcrawlers (notably the one used by inktomi) from generating long sequences of links to non-existent pages.%0a%0aThis release also adds a `ParseArgs() function to make it easier for cookbook recipes and other components to parse directive arguments.  Documentation for the function will be forthcoming at Cookbook:ParseArgs.%0a%0aList and heading markups have been changed to consume any single space character that follows the list or heading marker.%0a%0aA $EnablePostAttrClearSession switch has been added to control whether or not changing a page's attributes causes any existing passwords to be forgotten.  The default is that changing attributes forgets any passwords entered; this can be changed by setting $EnablePostAttrClearSession to zero.%0a%0a%0a!!!Version 2.0.beta23 (24-Feb-2005)%0a%0aThis release adds a couple of improvements.%0a%0aFirst, the passwording system has been improved slightly to hopefully make passwords a little less confusing (although more improvements are coming).  Previously PmWiki would remember all passwords previously entered during the current browser session.  In this release, changing a page's password causes PmWiki to "forget" all of the previously entered passwords, thus eliminating the confusion that arose when a page would appear unprotected when in fact a previously entered password was authorizing access.%0a%0aThis release also adds as $EnablePageListProtect option.  When set, the [@(:pagelist:)@] and [@(:@][@searchresults:)@] directives will exclude pages for which the browser does not have read authorization.%0a%0a!!!Version 2.0.beta22 (23-Feb-2005)%0a%0aThis release makes some feature enhancements and some bugfixes.%0a%0aThe skins loading code has undergone some enhancements and substantial rewriting, but it should have no negative impacts on existing skins.  The $BasicLayoutVars variable has been deprecated and is no longer needed.  This version introduces a `SetTmplDisplay() function that makes it easier for local customizations to disable sections of a skin template.%0a%0aThe password prompt form has been customized so that the cursor is%0aautomatically placed in the form when the page is loaded.%0a%0aThe ?action=source action has been fixed for pages with characters%0aoutside of ASCII.%0a%0aThe graphical button bar can now be used for buttons with arbitrary%0aHTML elements (e.g., "save" and "preview" buttons).%0a%0aOther changes are noted in the ChangeLog.%0a%0a!!!Version 2.0.beta21 (13-Feb-2005)%0a%0aThis version has a number of changes.  The major change that could (but shouldn't) affect some sites is that PmWiki has changed its default umask from 000 to 002, which will improve the default permissions for files and directories created by PmWiki for some sites, while (hopefully) not affecting others.%0a%0aMany of you probably don't know (or care) what a umask is.  If everything still works after upgrading to this version, you can continue to not know or care.  However, if after upgrading to this version you start seeing file permission errors where you weren't seeing them before, try adding the line%0a%0a    umask(0);%0a%0ato your ''local/config.php'' and things should work again.  (And be sure to report that you ran into trouble so we can investigate and improve things for the next version!)%0a%0aThis release also changes the %3ctitle> tag generated by ?action=rss%0ato properly honor the [@(:title:)@] setting on various pages.%0a%0aFinally, the release fixes some minor bugs in the HTML generation for [[tables]], corrects some bugs with settings for $AuthorPage and $AuthorLink, and makes some cookbook-related additions to the v1 conversion script.%0a%0aFor more details, see the [[ChangeLog]].%0a%0a!!!Version 2.0.beta20 (30-Jan-2005)%0a%0aThis version has a number of relatively minor changes.%0a%0aFirst, the $UrlLinkFmt variable has been modified so that links to external urls automatically have a rel='nofollow' attribute added to them, to help combat wiki spam as described in http://www.google.com/googleblog/2005/01/preventing-comment-spam.html.  Site administrators can customize $UrlLinkFmt and $UnapprovedLinkFmt to supply or omit rel='nofollow' as appropriate.%0a%0aThe algorithm for creating page names from [@[[free links]]@] has been modified slightly.  First, letters following a hyphen are no longer automatically capitalized, thus [@[[page-link]]@] refers to a page named "Page-link" and not "Page-Link".  This is more compatible with version 1's naming syntax.  Also, single quotes don't promote the following letter to uppercase, thus [@[[John's page]]@] now links to [@JohnsPage@] and not [@JohnSPage@].%0a%0aSites that want to keep PmWiki 2's prior behavior can do so with the following:%0a    [=%0a    $PageNameChars = '-[:alnum:]';%0a    $MakePageNamePatterns = array(%0a      "/[^$PageNameChars] /" => ' ',%0a      "/(\\b\\w)/e" => "strtoupper('$1')",%0a      "/ /" => '');%0a    =]%0a%0aThe localmap.txt InterMap file can now contain comments (denoted by leading '#' in the file).%0a%0aHeadings (!! markup) can now have block wikistyles.%0a%0aMore information is available in the PmWiki.ChangeLog.%0a%0a%0a!!!Version 2.0.beta19 (17-Jan-2005)%0a%0aPmWiki uses PHP's sessions for tracking passwords and page authorizations;  however, if a session times out (or is otherwise lost) while an author is in the middle of editing a password-protected page, the author's edits may be lost when re-prompted for the password.  This release fixes this problem by preserving the edit text and other posted form variables when prompting for a password.%0a%0a!!!Version 2.0.beta18 (17-Jan-2005)%0a%0aThis release makes improvements to the gui buttons, fixes some bugs, and minor other improvements and changes.%0a%0aAlternate text is now valid inside of WikiTrails; i.e., one can use [@%3c%3c|[[TrailPage | alternate text]]|>>@]  to change the text of the link to the trailpage.%0a%0aThe GUI button module has a number of changes.  %0a* New images are provided for lists, indentation, headings, and tables, and the sample-config.php file has examples for configuring these additional buttons into the bar.  %0a* The "Heading 3" button has now been changed into separate "Heading" and optional "Subheading" buttons.%0a* The "Attach:" (paperclip) button appears in the bar only if uploads are enabled for that page.%0a* For browsers that support it, clicking one of the buttons that adds text will leave the text highlighted (to make it easier to replace the text).%0a%0aThis release also eliminates the %3cp>...%3c/p> tags that were being generated around markup lines that contained other HTML block markups (e.g., search results, page listings, forms).  As a result, these pages are now valid HTML and pass the `W3C validator.%0a%0a$HTMLHeaderFmt has been changed so that skin designers can completely turn off the inline-styles mechanism used by PmWiki and other cookbook modules.  To disable the inline styles, use [@ $HTMLHeaderFmt['styles'] = ''; @].%0a%0aFinally, this release fixes a call to setlocale() which was supposed to only return the current locale but instead was causing the locale to change.%0a%0a%0a!!!Version 2.0.beta17 (12-Jan-2005)%0a%0aThis release simply makes some minor bug fixes to wikistyles (colors set in wikistyles extend to anchor tags), arrays of default passwords, and advanced table handling.%0a%0a!!!Version 2.0.beta16 (11-Jan-2005)%0a!!!Version 2.0.beta15 (10-Jan-2005)%0a%0aThe major feature of this release is the addition of the graphical buttons in the edit page.  By default this feature is disabled -- to enable it, use the following in config.php.%0a%0a    $EnableGUIButtons = 1;%0a%0aIf your site customizes the $PageEditFmt variable, then note that the buttons are placed at the end of the $EditMessageFmt and that the %3ctextarea> needs to have [@id='edit'@] in order for the buttons to work.%0a%0aThe rss.php script has also been improved -- it now automatically translates named character entities (from HTML 4) into their numeric equivalents.  This eliminates a lot of feed validation errors and problems in specific RSS feed consumers.%0a%0aThis release adds a $Titlespaced variable and [@{$Titlespaced}@] markup; $Titlespaced is replaced by either a page's title (if defined by the [@(:title:)@] directive) or by the spaced version of the page's name.%0a%0aFinally, a number of WikiStyles bugs have been fixed.%0a%0a%0a!!!Version 2.0.beta14 (28-Dec-2004)%0a%0aThis release introduces a number of relatively minor optimizations and improvements, summarized below.  If you don't understand what any of these mean, they probably don't affect you.  :-) %0a%0a* PmWiki's %3cimg ...> tags now use style='border:0px;' instead of border='0'.%0a%0a* `PrintFmt() now calls Lock(0) to release any locks prior to sending output to the browser.  This is important because some webservers (notably Apache) sometimes get stuck when they're unable to send output to the browser, and thus inadvertently lock others from being able to edit/post pages.%0a%0a* $PageEditFmt now includes id='text' to make for easier styling/referencing.%0a%0a* `MarkupToHTML()'s "posteval" code has been changed considerably.%0a%0a* `PageExists() now caches results of checking for page existence.%0a%0a* Page urls are now automatically url-encoded as needed.%0a%0a* Many of PmWiki's internal regex patterns have been optimized to (hopefully) improve matching speed.%0a%0a* Comparisons to substr() have been replaced with more efficient comparison functions.%0a%0a%0a!!!Version 2.0.beta13 (22-Dec-2004)%0a%0aThis release fixes a bug introduced in 2.0.beta7 that prevented the refcount.php (for ?action=refcount) from generating links correctly.  It also cleans up the handling of wikistyles and %25-in-urls (which is what 2.0.beta7 was supposed to fix).%0a%0aIn general, all sites using the 2.0.betaXX series are recommended to upgrade to this latest release.%0a%0a%0a!!!Version 2.0.beta12 (21-Dec-2004)%0a%0aThis release adds a number of %3cdiv> tags and identifiers around the%0avarious forms that PmWiki produces (e.g., uploads, search results,%0aattribute pages, etc.).  This makes such forms easier to style in CSS.%0a%0aIn addition, this release adds some functionality to the urlapprove.php%0ascript to limit the number of unapproved urls that can be saved in%0aa page (helps to combat wikispam).%0a%0aFinally the release adds the [@(:description:)@] markup for generating %3cmeta name='description' ... /> tags in the output.  [@(:description:)@] may also get used for other features later on (e.g., excerpts in search results, etc.).%0a%0a!!!Version 2.0.beta11 (19-Dec-2004)%0a%0aThis release primarily cleans up a number of items in the handling of uploads:%0a# A new $LinkUpload variable has been defined for $...Fmt strings -- it contains the URL of the upload page for the current attachment%0a# [@(:attachlist:)@] automatically adds "replace-attachment" links (denoted by triangles) to the items in the list%0a# After performing an upload, the "upload name" field is automatically cleared%0a# Fixed error message when upload exceeds maximum allowed by PHP%0a%0aThis release also changes the `StopWatch() function (used internally for benchmarking/timing PmWiki performance) to only have an effect when $EnableStopWatch is set to 1 (wall clock timings only) or 2 (wall clock and user-process timings).%0a%0a!!!Version 2.0.beta10 (14-Dec-2004)%0a%0aThis release makes some substantial improvements in the installation%0aprocedure.  First, the installation steps have been simplified, and PmWiki%0aprovides accurate instructions when it encounters a PHP "safe_mode"%0aenvironment.  %0a%0aThe release also provides better handling of the '.flock' file -- if%0aPmWiki discovers it cannot open an existing .flock file for writing,%0ait removes the file and tries again rather than complaining about it.%0aThis makes the system more robust when page directories are going%0athrough backup restore.%0a%0a%0a!!!Version 2.0.beta9 (14-Dec-2004)%0a%0aThis release provides some very minor bugfixes to the [@[[target |#]]@] markup, to the appearance of $...variables in documentation, and extends uploads.php to be able to work better with url rewriting.%0a%0a!!!Version 2.0.beta8  (13-Dec-2004)%0a%0aThis release makes a number of reasonably significant changes.  First and%0aforemost, it changes the [@?pagename=@] uri syntax to be [@?n=@], and%0ainstallation now defaults to $EnablePathInfo = 0; to make better%0acompatibility.%0a%0aSites which wish to continue using the [@.../Main/HomePage@] form of uri%0ainstead of [@?n=Main.HomePage@] should set $EnablePathInfo = 1 in%0aconfig.php.  %0a%0aThis release also fixes a probable bug in the handling of author%0anames which was causing spaces to be incorrectly removed.%0a%0a2.0.beta8 includes features for advanced CSS styling of [[tables]]%0avia the $TableRowAttrFmt and $TableCellAttrFmt variables, more description %0awill be forthcoming in a Cookbook recipe.  %0a%0aAlso, this release includes vastly improved support for UTF-8 sites,%0aincluding the ability to have UTF-8 characters in pagenames and%0a[@[[utf-8 links]]@].  We're still working out the details to be%0aable to support UTF-8 wikiwords -- PHP's functions don't provide%0agood support for this.  See scripts/xlpage-utf-8.php for more%0ainformation on UTF-8.%0a%0aFinally, the Q: and A: markups are back, and a few other minor%0abug fixes and documentation improvements have been included.%0a%0a%0a!!!Version 2.0.beta7  (8-Dec-2004)%0a%0aThis release has a number of improvements and changes to it.  First,%0athis release provides a ''scripts/xlpage-utf-8.php'' file, which adapts%0aPmWiki to be able to work somewhat with utf-8 characters in pagenames.%0aSince PHP's preg_* functions seem to be unable to detect UTF-8 alphanumeric%0acharacters, the trade-off at the moment is that WikiWord links are limited%0ato the ASCII character set.  We're working on ways to get around this%0arestriction, however.%0a%0aThe xlpage-utf-8.php script can be automatically loaded by any `XLPage %0atranslation that specifies 'xlpage-i18n' => 'utf-8'.%0a%0aThis release also:%0a%0a* fixes up the .htaccess files that are placed in local/ and wiki.d/%0a* changes the default textarea size for the pmwiki skin, %0a* restores the link/citation markup ([@[[target |#]]@])%0a* fixes the default value of $DefaultPageTextFmt (note this may change again)%0a* automatically converts instances of $Newline in posted text%0a%0a%0a!!!Version 2.0.beta6  (5-Dec-2004)%0a%0aThis release contains a number of relatively minor bugfixes (see the ChangeLog), and it also restores the $WikiWordCount functionality from PmWiki 1 in which the wiki administrator can limit the number of conversions for each WikiWord.%0a%0aThe ''sample-config.php'' file has been updated with more comments and suggestions for customizations.%0a%0aFinally, this release increases the default value of $MaxIncludes to 50 (and provides better documentation of the $MaxIncludes variable).%0a%0a!!!Version 2.0.beta5  (1-Dec-2004)%0a!!!Version 2.0.beta4  (1-Dec-2004)%0a%0aThese releases fix a number of bugs introduced by the changes in 2.0.beta3.%0aUsers of 2.0.beta3 are encouraged to upgrade directly to this release.%0a%0a!!!Version 2.0.beta3  (30-Nov-2004)%0a%0aThis release provides a simple version of the [@(:attachlist:)@] markup (different sorting orders are not available yet as the syntax is likely to change), as well as fixes the `PmWiki.EditQuickReference and `PmWiki.UploadQuickReference pages.  It also provides default pages to lock passwords in the Main and PmWiki groups and adds uppercase versions for ".GIF", ".JPG", and ".PNG" files.%0a%0aInternally, this release also changes the edit page sequence to use the $_POST autoglobal instead of $_REQUEST (i.e., posting edits is only allowed via method='post' and not via query string parameters).%0a%0a!!!Version 2.0.beta2%0a%0aThis release fixes the bug that caused $PageTemplateFmt to no longer%0awork in pmwiki-2.0.beta1.%0a%0a!!!Version 2.0.beta1%0a%0aThis release marks PmWiki 2.0 as entering "beta" status, as it finally%0abegins moving towards official release.  The major change for this release%0ais in the skins code -- previous versions of PmWiki used $PageTemplateFmt%0ato specify the location of the template file to be used; newer versions%0anow use the $Skin variable to specify the location of the skins directory%0a(in pub/skins/) that contains the skin template file, php configuration%0ascript, and other files.%0a%0aIn general, if you previously had $PageTemplateFmt set to "pub/skins/myskin/myskin.tmpl", then you now simply set $Skin='myskin'; to get things to work.  See `PmWiki.LayoutBasics for more details.%0a%0a!!!Version 2.0.devel releases%0a%0aThese are the release notes for the development releases of PmWiki 2.0.%0a%0aFirst, this is definitely still in the development stages, so many%0athings are likely to change between now and the official releases.%0a%0aSecond, at present there's not a good way to upgrade from PmWiki 1.0%0ato PmWiki 2.0, although upgrade support is expected to arrive in future%0a(development) releases.  So, you can use this version just to see the%0anew developments and gain some experience, but migrating from 1.0%0ato this version is still likely to be a bit of a chore.%0a%0aBugs and other requests can be reported to the PmWiki Issue Tracking %0aSystem at http://www.pmwiki.org/wiki/PITS/PITS.  Any help%0ain testing, development, and/or documentation is greatly appreciated.%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a
time=1157982116
