<!DOCTYPE html 
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Type" content="$HTMLDocType" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>CoolCleveland.com - PmWiki - Release Notes</title>
	
	
    <link href='https://wiki.coolcleveland.com/wiki/pub/skins/triad/css/pm-core.css' rel='stylesheet' type='text/css' />
<!--HTMLHeader--><style type='text/css'><!--
span.anchor {
	float: left;
	font-size: 10px;
	margin-left: -10px;
	width: 10px;
    position:relative; top:-0.1em;
	text-align: center;
}
span.anchor a { text-decoration: none; }
span.anchor a:hover { text-decoration: underline; }
ol.toc { text-indent:-20px; list-style: none; }
ol.toc ol.toc { text-indent:-40px; }
div.tocfloat { font-size: smaller; margin-bottom: 10px;
    border-top: 1px dotted #555555; border-bottom: 1px dotted #555555;
    padding-top: 5px; padding-bottom: 5px; 
    width: 38%; float: right; margin-left: 10px; clear: right;
    margin-right:-13px; padding-right: 13px; padding-left: 13px;
    background-color: #eeeeee; }
div.toc { font-size: smaller; 
    padding: 4px; border: 1px dotted #cccccc;
    background: #f7f7f7;
    margin-bottom: 10px; }
  #left-box { width: 170px; }  
  #right-box { width: 170px; }

--></style><script type="text/javascript">
function toggle(obj) {
    var elstyle = document.getElementById(obj).style;
    var text    = document.getElementById(obj + "tog");
    if (elstyle.display == 'none') {
        elstyle.display = 'block';
        text.innerHTML = "hide";
    } else {
        elstyle.display = 'none';
        text.innerHTML = "show";
    }
}
</script>  <meta name='robots' content='noindex,nofollow' />

<script type='text/javascript' >
    var fontSizeDefault = 90;
    var increment = 10;
    var cookieName = 'setfontsize';
    var fsLabel = 'Text Size';
    var fsBigger = 'bigger';
    var fsNormal = 'default';
    var fsSmaller = 'smaller';
 </script>
<script type='text/javascript' src='https://wiki.coolcleveland.com/wiki/pub/skins/triad/fontsizer.js'></script>

<script type='text/javascript' >
    var toggleCookies = '1';
    var lcookie = 'triad_setLshow';
    var rcookie = 'triad_setRshow';
    var lshow = '1';
    var rshow = '1';
    var show = 'Show';
    var hide = 'Hide';
    var lwidth = '170px';
    var rwidth = '170px';
</script>
<script type='text/javascript' src='https://wiki.coolcleveland.com/wiki/pub/skins/triad/togglebars.js'></script>

   <link href='https://wiki.coolcleveland.com/wiki/pub/skins/triad/css/layout-triad.css' rel='stylesheet' type='text/css' />
   <link href='https://wiki.coolcleveland.com/wiki/pub/skins/triad/css/layout-main.css' rel='stylesheet' type='text/css' />
   <link href='https://wiki.coolcleveland.com/wiki/pub/skins/triad/css/layout-print.css' rel='stylesheet' type='text/css' media='print' />  
   <link href='https://wiki.coolcleveland.com/wiki/pub/skins/triad/css/font-verdana.css' rel='stylesheet' type='text/css' media='screen' />   
   <link href='https://wiki.coolcleveland.com/wiki/pub/skins/triad/css/c-white.css' rel='stylesheet' type='text/css' media='screen' />
   
<script type="text/javascript" src="https://wiki.coolcleveland.com/wiki/pub/js/coolcleveland.js"></script>
<link rel="stylesheet" href="https://wiki.coolcleveland.com/wiki/pub/css/user_management.css" type="text/css" />
</head>

<body >
 <script type='text/javascript' ><!--
   document.cookie = 'javascript=1; path=/';
   if (fontSize) { fontSize.fontSizeInit();}
//   document.write("<a href='#'></a >");
 --></script>
<table id="outer-box" border="0" cellspacing="0" cellpadding="0" >
<tr>
<td id="header-box" colspan="3" valign="top">

<!--PageHeaderFmt-->
 <div id='header' class='pageheader'><div class='rfloat' > 
<form  class='wikisearch' action='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes' method='get'><div><input type='text' name='q' value='Search' class='inputbox searchbox' size='18' 
    onfocus="preval=this.value; this.value=''; "  /> <input type='submit' class='inputbutton searchbutton' value='Go' /><input type='hidden' name='focus' value='on' /><input type='hidden' name='action' value='search' /></div></form> <span style='font-size:83%'> 
    <script type='text/javascript' >
    <!--
      if (fsinit==1) document.write(fontSize.allLinks);
      else if (fontSize) { 
          fontSize.fontSizeInit();
          document.write(fontSize.allLinks); }
    --></script>  
 </span>
</div><div class='lfloat' > 
<p><span  style='color: maroon;'><big><strong><a style='color: maroon' class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/HomePage'>CoolCleveland Sandbox</a></strong></big></span>
</p></div>

  <div class="clearer"><!-- this is a clearer div --></div>
 </div>
<!--/PageHeaderFmt-->

<!--PageTopMenuFmt-->
 <div id="topnavbox">
  <div id="topnav" class="nav">
   <div id="toggleleft">
   <script type='text/javascript' ><!--
   if (toggleLeft) document.write("<input name='lb' type='button' class='togglebox' value='Hide &darr;' onclick='toggleLeft()' />") 
   --></script>
   </div>
   <div id="toggleright"><script type='text/javascript' ><!--
   if (toggleRight) document.write("<input name='rb' type='button' class='togglebox' value='&darr; Hide' onclick='toggleRight()' />")
   --></script>
   </div>
	  	<div class='lnav' > 
</div>
<div class='rnav' > 
<ul><li><big><a accesskey='e'  rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes?action=edit'>Edit</a></big>
</li><li><big><a accesskey='ak_htmlt'  rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes?type=htmlsource'>HTML</a></big>
</li><li><big><a accesskey='ak_attr'  rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes?action=attr'>Attr</a></big>
</li><li><big><a accesskey='ak_attr'  rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/GroupAttributes?action=attr'>GroupAttr</a></big>
</li><li><big><a accesskey='h'  rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes?action=diff'>History</a></big>
</li><li><big><a accesskey='c'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/RecentChanges'>Recent Changes</a></big>
</li></ul></div>

 </div></div>
<!--/PageTopMenuFmt-->
</td>
</tr>

<tr>
<!--PageLeftFmt-->
<td id="left-box" valign="top">
 <div id='sidebar'>
  <div id='sidebarpage'><p><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/Admin'>Sandbox Admin</a><br /><br />
<strong><span style='font-size:144%'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/ThomasMulready'>TM</a></span></strong><br /><br /><br />
<strong><span style='font-size:144%'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/Podcasts'>PODCASTS</a></span></strong><br /><br /><br />
<strong><span style='font-size:144%'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/Jenna'>Jenna</a></span></strong><br /><br /><br />
<strong><span style='font-size:144%'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/Stephan'>Stephan</a></span></strong><br /><br /><br />
<strong><span style='font-size:144%'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/ThomasMulreadyAds'>ADS</a></span></strong><br /><br /><br />
<strong><span style='font-size:144%'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/NewsletterSandbox'>ISSUES</a></span></strong><br /><br /><br />
<strong><span style='font-size:144%'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/CurrentIndex'>CURRENT</a></span></strong><br /><br /><br /><br />
</p>
<p class='vspace'><span style='font-size:69%'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/SideBar?action=edit'>Edit this Menu</a></span>
</p>
</div>
  <div id="sidebarfooter">
   <p><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/TriadSkin'>TriadSkin</a><br />powered by <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PmWiki'>PmWiki</a>
</p>

  </div>
 </div>
</td><!-- end div left -->
<!--/PageLeftFmt-->
<td id="center-box" valign="top">
 <div id="contentbox">

<!--PageTitleFmt-->
  <div id= 'titlebarbox'>
   <div id='titlebar' >
	   <div class='pagegroup' > 
<p><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PmWiki'>PmWiki</a>
</p></div><div class='pagetitle' style='text-align: center;' > 
<h1></h1>
</div>

	 </div>
	</div>
<!--/PageTitleFmt-->
  <div id='content'>

<!--PageText-->
<div id='wikitext'>
<p>
<a name='trailstart' id='trailstart'></a> 
</p><div style='clear:right; float:right; font-size:smaller; background-color:#eee;' >
<p><span class='wikitrail'>&lt; <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Design?action=edit'>notes</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Design?action=edit'>?</a> | <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Documentation?action=edit'>index(#trailstart#trailend)|+</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Documentation?action=edit'>?</a> | <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Change?action=edit'>log</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Change?action=edit'>?</a> &gt;</span> 
</p></div>
<div style='clear:right;' >
</div>
<p>See also: <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Upgrades'>Upgrades</a>, <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Change?action=edit'>log</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Change?action=edit'>?</a> and <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/Road' rel='nofollow'>map</a>.
</p>
<div class='vspace'></div><h2>Version 2.2.107  (2017-02-02) <a name='v22107' id='v22107'></a></h2>
<p>This version includes more fixes for PHP 7.2 for forms and pagelists. A new variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Notify#MailFunction'><code class='varlink'>&#036;MailFunction</code></a> allows administrators and developers to write replacement functions for the PHP function "mail()". Styles were improved for right-to-left text blocks embedded into left-to-right texts (and vice versa). The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.106  (2017-12-01) <a name='v22106' id='v22106'></a></h2>
<p>This version has a rewrite of the function <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageListSort?action=edit'>Page List Sort</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageListSort?action=edit'>?</a></span>() to allow it to work with PHP 7.2, and fixes a bug with the backtick (escape) <code class='escaped'>`WikiWord</code> markup. The helper function pmsetcookie() and the variables <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#EnableCookieSecure'><code class='varlink'>&#036;EnableCookieSecure</code></a>, <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#EnableCookieHTTPOnly'><code class='varlink'>&#036;EnableCookieHTTPOnly</code></a> were added to allow easy setting of secure cookies. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.105  (2017-11-07) <a name='v22105' id='v22105'></a></h2>
<p>This version fixes a bug with the PQA() function causing invalid HTML with attributes glued together. The function <code><span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HandleUpload?action=edit'>Handle Upload</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HandleUpload?action=edit'>?</a></span>()</code> was refactored and <code><span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadSetVars?action=edit'>Upload Set Vars</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadSetVars?action=edit'>?</a></span>(<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#pagename'><code class='varlink'>&#036;pagename</code></a>)</code> was added to allow upload-managing add-ons to set variables more easily.
</p>
<p class='vspace'>If you upgrade from 2.2.98 or earlier, and you have custom markup rules relative to author signatures, please see note about <a href='#v2299change'>in 2.2.99</a> (documented November 2017).
</p>
<div class='vspace'></div><h2>Version 2.2.104  (2017-10-11) <a name='v22104' id='v22104'></a></h2>
<p>This version fixes a bug with  reported today.
</p>
<div class='vspace'></div><h2>Version 2.2.103  (2017-10-01) <a name='v22103' id='v22103'></a></h2>
<p>This version is a major upgrade on the internal processing of markups and patterns, all core scripts were updated to be compatible with PHP version 7.2. Whether you use that PHP version or another one, with any local configurations and custom add-ons, there should be no change for what you see, but if any problems please contact us immediately.
</p>
<p class='vspace'>Pagelists can now have optimized <code>list=grouphomes</code> and <code>fmt=#grouphomes</code> arguments to list only the home pages of your wiki groups, whether they are named <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/Group/HomePage?action=edit'>Group.Home Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/Group/HomePage?action=edit'>?</a></span>, Group.Group, or a custom Group.<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#DefaultName'><code class='varlink'>&#036;DefaultName</code></a>. Minor bugs in older xlpage scripts were fixed, the responsive skin is now compatible with even older <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PmWiki'>Pm Wiki</a></span>/PHP versions, web subtitles (*.vtt) were added as an allowed extension, input form fields can now have a "title" attribute (usually rendered as a tooltip/help balloon when the mouse cursor is over the input element), and a configuration variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#AuthLDAPReferrals'><code class='varlink'>&#036;AuthLDAPReferrals</code></a> was added for wikis running <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> over LDAP to force enable or disable referrals when needed.
</p>
<p class='vspace'>The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.102  (2017-08-05) <a name='v22102' id='v22102'></a></h2>
<p>This version reverts the patterns for text variables changed in 2.2.99, because we found that a longer text variable content may cause a blank page or an internal server error. In the page <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/SiteAdmin/AuthList'>SiteAdmin.AuthList</a> an input box was added to allow filtering of the groups or pages.
</p>
<div class='vspace'></div><h2>Version 2.2.101  (2017-07-30) <a name='v22101' id='v22101'></a></h2>
<p>This version renames the internal constructor of the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>Page Store</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>?</a></span> class to be compatible with both PHP 5 and PHP 7. Previously, the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>Page Store</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>?</a></span> class had two constructors for PHP 4 and PHP 5 compatibility of which one was silently ignored, but recent PHP 7 versions display strict or deprecated notices when the PHP 4 constructor is used.
</p>
<p class='vspace'>If you must use <span class="wikiword">Pm Wiki</span> 2.2.101 or newer on a PHP 4 installation, please contact me so I can provide you with a workaround.
</p>
<div class='vspace'></div><h2>Version 2.2.100  (2017-07-30) <a name='v22100' id='v22100'></a></h2>
<p>This version provides a workaround for an incompatibility with our Subversion version control system, where the <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Author'><code class='varlink'>&#036;Author</code></a> wiki variable was considered a Subversion variable. A fix for the responsive skin adds some spacing above the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiText?action=edit'>Wiki Text</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiText?action=edit'>?</a></span> block. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.99  (2017-06-26) <a name='v2299' id='v2299'></a></h2>
<p>This version fixes a bug where an incomplete text variable without a closing parenthesis like "<code class='escaped'>(:Var:Value</code>" could hide the remaining of the page.
</p>
<p class='vspace'>A bug was fixed where previewing a page didn't show changes to be done by replace-on-save patterns (the function <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/ReplaceOnSave?action=edit'>Replace On Save</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReplaceOnSave?action=edit'>?</a></span> was refactored). Markup rules for previewing author signatures are no longer needed and were removed. <span  style='font-style: italic; color: green;'> Note that if you had custom markup rules processed before or after the <code>~~~</code> or <code>~~~~</code> author signatures may need to be set to <code class='escaped'>'&lt;[[~'</code> (second argument of the <code>Markup</code> call).</span>
</p>
<p class='vspace'>A bug and a warning for PHP 4 installations were fixed. Two minor bugs with the <code class='escaped'>[[&lt;&lt;]]</code> line break for the responsive skin and the <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Version'><code class='varlink'>&#036;Version</code></a> variable link in the documentation were fixed. 
</p>
<p class='vspace'>The <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/InterMap'>Inter Map</a></span> prefix to Wikipedia was corrected to use the secure HTTPS protocol and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.98 (2017-05-31) <a name='v2298' id='v2298'></a></h2>
<p>This version adds a new skin that is better adaptable to both large and small screens, desktop and mobile devices (touchscreens). The new skin "pmwiki-responsive" is not enabled by default but available as an option, and as a base for customized copies. It requires a relatively modern browser (post-2009). The old skin is still available and enabled by default.
</p>
<p class='vspace'>The Vardoc links now use <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/MakeLink?action=edit'>Make Link</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/MakeLink?action=edit'>?</a></span>() to allow a custom <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/LinkPage?action=edit'>Link Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LinkPage?action=edit'>?</a></span> function. The function <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/ReplaceOnSave?action=edit'>Replace On Save</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReplaceOnSave?action=edit'>?</a></span>() was refactored to allow easier calling from recipes. Markup processing functions now can access besides <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#pagename'><code class='varlink'>&#036;pagename</code></a>, a $markupid variable that contains the "name" of the processed markup rule, allowing a single function to process multiple markup rules. The "*.mkv" video extension was added to the list of allowed uploads.
</p>
<p class='vspace'>A bug was fixed with the <code class='escaped'>(:markup:)</code> output where a leading space was lost. Note that the "markup" frame is now wrapped in a &lt;pre&gt; block with a "pre-wrap" style instead of &lt;code&gt;.
</p>
<p class='vspace'>A number of other (minor) bugs were fixed: see <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ChangeLog'>Change Log</a></span>, and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.97 (2017-04-07) <a name='v2297' id='v2297'></a></h2>
<p>This version fixes a bug concerning <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#ScriptUrl'><code class='varlink'>&#036;ScriptUrl</code></a> when <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#EnablePathInfo'><code class='varlink'>&#036;EnablePathInfo</code></a> is set, introduced in 2.2.96 and reported by 3 users.
</p>
<div class='vspace'></div><h2>Version 2.2.96 (2017-04-05) <a name='v2296' id='v2296'></a></h2>
<p>This version fixes a severe PHP code injection vulnerability, reported by Gabriel Margiani. <span class="wikiword">Pm Wiki</span> versions 2.2.56 to 2.2.95 are concerned.
</p>
<p class='vspace'>Only certain local customizations enable the vulnerability. Your website may be at risk if your local configuration or recipes call too early some core functions like <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/CondAuth?action=edit'>Cond Auth</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/CondAuth?action=edit'>?</a></span>(), <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/RetrievePageName?action=edit'>Retrieve Page Name</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/RetrievePageName?action=edit'>?</a></span>() or <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/FmtPageName'>Fmt Page Name</a></span>(), before the <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#pagename'><code class='varlink'>&#036;pagename</code></a> variable is sanitized by <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/ResolvePageName?action=edit'>Resolve Page Name</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ResolvePageName?action=edit'>?</a></span>() in stdconfig.php. A specific URL launched by a malicious visitor may trigger the vulnerability.
</p>
<p class='vspace'>Most recipes call core functions from a &#36;HandleActions function, or from a Markup expression rule, these do not appear to be affected by the current exploit.
</p>
<p class='vspace'>If your wiki may be at risk, it is recommended to upgrade to version 2.2.96 or most recent at the earliest opportunity. If you cannot immediately upgrade, you should place the following line in your local (farm)config.php file:
</p>
<div class='vspace'></div><pre>  <code class='escaped'>$pagename = preg_replace('![${}\'"\\\\]+!', '', $pagename);</code>
</pre><p class='vspace'>Place this line near the top of the file but after you include scripts/xlpage-utf-8.php or other character encoding file.
</p>
<p class='vspace'>This version filters the <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#pagename'><code class='varlink'>&#036;pagename</code></a> variable to exclude certain characters. A new variable $pagename_unfiltered is added in case a recipe requires the previous behavior. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.95 (2017-02-28) <a name='v2295' id='v2295'></a></h2>
<p>This is a documentation update version.
</p>
<div class='vspace'></div><h2>Version 2.2.94 (2017-01-31) <a name='v2294' id='v2294'></a></h2>
<p>This version allows webmasters to configure and use both .html and .htm extensions. The cached information about whether a page exists or not will now be cleared when that page is created or deleted. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.93 (2016-12-31) <a name='v2293' id='v2293'></a></h2>
<p>This is a documentation update version.
</p>
<div class='vspace'></div><h2>Version 2.2.92 (2016-11-30) <a name='v2292' id='v2292'></a></h2>
<p>This version allows administrators to disable the "nopass" password by setting <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#AllowPassword'><code class='varlink'>&#036;AllowPassword</code></a> to false. The function <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/FmtPageName'>Fmt Page Name</a></span>() will now expand <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageVariables'>Page Variables</a></span> with asterisks like <code class='escaped'>{*$FullName}</code>. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.91 (2016-09-30) <a name='v2291' id='v2291'></a></h2>
<p>This is a documentation update version.
</p>
<div class='vspace'></div><h2>Version 2.2.90 (2016-08-31) <a name='v2290' id='v2290'></a></h2>
<p>This version adds a parameter to the upload form which can improve analytics from the server logs. Two new CSS classes were added to help skin developers: <code>imgonly</code> and <code>imgcaption</code>, for standalone embedded pictures with or without a caption. A bug with the plus-links was fixed. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.89 (2016-07-30) <a name='v2289' id='v2289'></a></h2>
<p>This version allows to set a default class name for simple tables. The <code class='escaped'>(:searchbox:)</code> directive can now have a "placeholder" attribute, and the input type can be changed from "text" to "search" for <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>HTML 5</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>?</a></span> websites. The edit form elements have now identifier attributes to allow easier styling. All core scripts will now inject CSS into the skin only if it hasn't already been defined. The vardoc.php script now recognizes and links to the documentation for the variables <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#pagename'><code class='varlink'>&#036;pagename</code></a>, <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Author'><code class='varlink'>&#036;Author</code></a> and <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Skin'><code class='varlink'>&#036;Skin</code></a>. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.88 (2016-06-29) <a name='v2288' id='v2288'></a></h2>
<p>This version fixes invalid HTML output of some <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiTrail?action=edit'>Wiki Trail</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiTrail?action=edit'>?</a></span> links. The function PHSC() can now have an optional fourth argument for a safe replacement of htmlspecialchars(). A new page variable <code class='escaped'>{$SiteAdminGroup}</code> was added and the documentation was updated. 
</p>
<div class='vspace'></div><h2>Version 2.2.87 (2016-05-31) <a name='v2287' id='v2287'></a></h2>
<p>This version adds the <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#HTMLTagAttr'><code class='varlink'>&#036;HTMLTagAttr</code></a> variable to be used in the &lt;html&gt; tag in skins for additional attributes like "lang" or "manifest". To enable it, use it in your skin, for example:
</p>
<div class='vspace'></div><pre>  &lt;html xmlns="<a class='urllink' href='http://www.w3.org/1999/xhtml' rel='nofollow'>http://www.w3.org/1999/xhtml</a>" <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#HTMLTagAttr'><code class='varlink'>&#036;HTMLTagAttr</code></a>&gt;
</pre><p class='vspace'>The variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#EnableRevUserAgent'><code class='varlink'>&#036;EnableRevUserAgent</code></a>, if set to 1, will cause the User-Agent string from browsers to be stored with each page history entry (as opposed to only storing the last user agent string). The output variable &#36;DiffUserAgent can be used in history templates like &#36;DiffStartFmt.
</p>
<p class='vspace'>A wrong page variable in <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/UploadQuickReference'>Site.UploadQuickReference</a> was corrected, and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.86 (2016-04-28) <a name='v2286' id='v2286'></a></h2>
<p>This version adds updates for PHP 7, for the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>Page Store</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>?</a></span>() class and for the <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#DefaultPasswords'><code class='varlink'>&#036;DefaultPasswords</code></a> default/unset definitions (no action should be needed upon upgrades). The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.85 (2016-03-31) <a name='v2285' id='v2285'></a></h2>
<p>This version adds Scalable Vector Graphics (*.svg, *.svgz) as allowed uploads and as embeddable picture extensions (with the html tag &lt;img/&gt;). The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.84 (2016-02-21) <a name='v2284' id='v2284'></a></h2>
<p>This version fixes "indent" and "outdent" styles for right-to-left languages. A new variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LinkVariables#EnableLinkPlusTitlespaced'><code class='varlink'>&#036;EnableLinkPlusTitlespaced</code></a> allows "plus links" <code class='escaped'>[[Link|+]]</code> to display the "Spaced Title" of the page instead the "Title". The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.83 (2015-12-31) <a name='v2283' id='v2283'></a></h2>
<p>This is a documentation update version.
</p>
<div class='vspace'></div><h2>Version 2.2.82 (2015-11-30) <a name='v2282' id='v2282'></a></h2>
<p>This version enables stripmagic() to process arrays recursively and updates the documentation.
</p>
<div class='vspace'></div><h2>Version 2.2.81 (2015-10-31) <a name='v2281' id='v2281'></a></h2>
<p>This version fixes an inconsistency with single line page text variables. International wikis enabling UTF-8 will now be able to use the CSS classes "rtl" and "ltr" to override the text direction when inserting right to left languages. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.80 (2015-09-30) <a name='v2280' id='v2280'></a></h2>
<p>This version modifies the <code class='escaped'>(:searchbox:)</code> directive to use type="search" semantic input, and updates the documentation.
</p>
<div class='vspace'></div><h2>Version 2.2.79 (2015-08-27) <a name='v2279' id='v2279'></a></h2>
<p>This version adds <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiStyles'>Wiki Styles</a></span> for the CSS basic colors "fuchsia", "olive", "lime", "teal", "aqua", "orange" and "gray"/"grey". New input elements "email", "url", "number", "date", and "search" can now be used in wiki forms. 
</p>
<p class='vspace'>Note: the "target" attribute of input forms which was added in the previous version broke the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PmForm?action=edit'>Pm Form</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PmForm?action=edit'>?</a></span> processor, and was removed until we find a solution. If you don't use <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PmForm?action=edit'>Pm Form</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PmForm?action=edit'>?</a></span> and require this attribute (or others), the usual way to add it is to redefine the &#36;InputAttrs array in your local configuration.
</p>
<p class='vspace'>A new variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#EnableROSEscape'><code class='varlink'>&#036;EnableROSEscape</code></a> can be set to 1 if <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#ROSPatterns'><code class='varlink'>&#036;ROSPatterns</code></a> and <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#ROEPatterns'><code class='varlink'>&#036;ROEPatterns</code></a> should not process source text wrapped with <code class='escaped'>[=...=]</code> or <code>[@...@]</code>. By default "replace on edit" patterns are performed even in such text.
</p>
<p class='vspace'>The insMarkup() function in guiedit.js was refactored to allow custom input ids and/or custom functions to process the selected text.
</p>
<p class='vspace'>The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.78 (2015-07-21) <a name='v2278' id='v2278'></a></h2>
<p>This version updates the &#36;RobotPattern list with currently active user agents. <del>Input forms can have a "target" attribute</del> (removed in 2.2.79). The documentation was updated.
</p>
<p class='vspace'>Note, this release broke the <a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/PmForm' rel='nofollow'>Cookbook:PmForm</a> module. Please do upgrade to 2.2.79 or newer if your wiki uses <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PmForm?action=edit'>Pm Form</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PmForm?action=edit'>?</a></span>.
</p>
<div class='vspace'></div><h2>Version 2.2.77 (2015-06-19) <a name='v2277' id='v2277'></a></h2>
<p>This version extends the <code class='escaped'>(:if attachments:)</code> conditional to specify file and page names. A <code class='escaped'>{$WikiTitle}</code> page variable was added. A <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/MatchNames?action=edit'>Match Names</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/MatchNames?action=edit'>?</a></span>() function was introduced as a generic way to match array values the same way <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/MatchPageNames?action=edit'>Match Page Names</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/MatchPageNames?action=edit'>?</a></span>() does currently with lists of pages -- recipe authors can use it to get a subset of attachments for example. The <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>Page Store</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>?</a></span>() class was slightly optimized when recoding pages from-to UTF-8. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.76 (2015-05-31) <a name='v2276' id='v2276'></a></h2>
<p>This version improves support for arrays in form elements: setting default values and recovering values from posted forms. A new "label" argument to checkbox and radio input elements allows easy insertion of clickable text labels after the form elements. Division blocks wrapping standalone images, and standalone image captions, now receive CSS classes allowing greater control via stylesheets. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.75 (2015-04-26) <a name='v2275' id='v2275'></a></h2>
<p>This version adds a pmcrypt($pass, $salt) function which can be used as a replacement for the PHP crypt() function when encrypting passwords. From PHP 5.6 on, crypt() should not be used without a $salt parameter and would raise a notice. If pmcrypt() is called with a $salt parameter it will simply call crypt() in order to check a password. If it is called without a $salt parameter,  pmcrypt() will create a password hash with the password_hash() function or with crypt() depending on your installation. You can replace any calls to crypt() with pmcrypt(), notably in config.php when defining <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#DefaultPasswords'><code class='varlink'>&#036;DefaultPasswords</code></a> entries.
</p>
<p class='vspace'>Markup was added for the semantic <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>HTML 5</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>?</a></span> tags article, section, nav, header, footer, aside, address.
</p>
<p class='vspace'>A bug with the uploads feature was fixed when &#36;EnableReadOnly is set, and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.74 (2015-03-28) <a name='v2274' id='v2274'></a></h2>
<p>This version allows the translation of the word "OK" in authentication forms. The documentation was updated to the latest state on pmwiki.org.
</p>
<div class='vspace'></div><h2>Version 2.2.73 (2015-02-28) <a name='v2273' id='v2273'></a></h2>
<p>This release only updates the documentation to the latest state on pmwiki.org.
</p>
<div class='vspace'></div><h2>Version 2.2.72 (2015-01-27) <a name='v2272' id='v2272'></a></h2>
<p>This version improves the ?action=ruleset display for markup rules potentially incompatible with PHP 5.5 when the function debug_backtrace() is not available. It restores the ability to set a custom function handling the (:markup:) demos. A variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/DebugVariables#AbortFunction'><code class='varlink'>&#036;AbortFunction</code></a> was added allowing administrators to override the core Abort() function. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.71 (2014-12-29) <a name='v2271' id='v2271'></a></h2>
<p>This version removes the hard word wrap in <code class='escaped'>(:markup:)</code> wikicode examples, and instead of &lt;pre&gt; tags, it wraps it in &lt;code&gt; tags. This allows newcomers to copy and paste the code in their wikis without inserted line breaks (which often cause the markup to not work).
</p>
<p class='vspace'>The release also adds back-tracing for markup rules potentially incompatible with PHP 5.5. Such rules, often added by recipes, can trigger "Deprecated: preg_replace()" warnings. To find out which recipes may trigger the warnings, enable diagnostic tools in config.php with <code><a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/DebugVariables#EnableDiag'><code class='varlink'>&#036;EnableDiag</code></a> = 1;</code> then open a page with the 'ruleset' action, eg. <code class='escaped'>[[HomePage?action=ruleset]]</code>. The PHP-5.5-incompatible rules will be flagged with filenames, line numbers and patterns. See also the pages <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/Troubleshooting' rel='nofollow'>Troubleshooting</a> and <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/CustomMarkup' rel='nofollow'>CustomMarkup</a> on pmwiki.org.
</p>
<p class='vspace'>The variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#DraftActionsPattern'><code class='varlink'>&#036;DraftActionsPattern</code></a> was added, the pagelist "request" parameter can now contain a list of allowed or disallowed parameters that can be overridden by the user, the "input default source" parameter can now contain multiple pages, and a minor bug was fixed in upload.php ('strict' warning). See the updated documentation for more information. 
</p>
<div class='vspace'></div><h2>Version 2.2.70 (2014-11-08) <a name='v2270' id='v2270'></a></h2>
<p>This release only updates the documentation to the latest state on pmwiki.org.
</p>
<div class='vspace'></div><h2>Version 2.2.69 (2014-10-13) <a name='v2269' id='v2269'></a></h2>
<p>This version fixes a bug when dates are defined as relative to other dates, eg. "2014-10-13 -3 days". The documentation was updated; note that the instructions in <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/UploadQuickReference'>Site.Upload Quick Reference</a></span> were updated to reflect the display of the upload form in current browsers.
</p>
<div class='vspace'></div><h2>Version 2.2.68 (2014-09-01) <a name='v2268' id='v2268'></a></h2>
<p>This version adds a Skins: <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/InterMap'>Inter Map</a></span> prefix pointing to the Skins section on <span class="wikiword">Pm Wiki</span>.org, a "signature" markup in the edit quick reference, new <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiStyles'>Wiki Styles</a></span> clear, min-width and max-width and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.67 (2014-08-02) <a name='v2267' id='v2267'></a></h2>
<p>This version fixes an inconsistency with input forms when values are taken from <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageTextVariables'>Page Text Variables</a></span>. The documentation was updated to the latest state on pmwiki.org.
</p>
<div class='vspace'></div><h2>Version 2.2.66 (2014-07-02) <a name='v2266' id='v2266'></a></h2>
<p>This version fixes a minor longstanding bug in the default Notification format when a page is deleted. In custom patterns, the "_" character will no longer be considered a function name. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.65 (2014-06-07) <a name='rel2.2.65' id='rel2.2.65'></a></h2>
<p>This version fixes Pagelist handling of <code class='escaped'>{$$PseudoVars}</code> when they contain page variables. File permissions handling was improved when the current directory is owned by "root". The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.64 (2014-05-08) <a name='rel2.2.64' id='rel2.2.64'></a></h2>
<p>This version adds the "{(mod)}" markup expression for modulo/remainder calculations, and the "tel:" and "geo:"  URI schemes which, on compatible devices like smartphones, allow the creation of links to dial telephone numbers and open map/location applications. 
</p>
<p class='vspace'>The &#36;SysMergePassthru switch was added, if enabled, it allows the "Simultaneous Edits" conflict resolution to use the passthru() function instead of popen().
</p>
<p class='vspace'>The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.63 (2014-04-05) <a name='rel2.2.63' id='rel2.2.63'></a></h2>
<p>This version allows for form elements to have custom attributes containing a dash in the attribute names and enables the attributes 'required', 'placeholder' and 'autocomplete' for <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>HTML 5</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>?</a></span> forms. A minor bug with pagelist {$$RequestVariables} appearing on some installations was fixed. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.62 (2014-02-28) <a name='rel2.2.62' id='rel2.2.62'></a></h2>
<p>This version adds the variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#EnableTableAutoValignTop'><code class='varlink'>&#036;EnableTableAutoValignTop</code></a> which allows to make advanced tables compatible with <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>HTML 5</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>?</a></span>. For developers, a fourth argument $template was added to the Markup_e() function, and a callback template 'return' was added. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.61 (2014-01-31) <a name='rel2.2.61' id='rel2.2.61'></a></h2>
<p>This version removes unnecessary snippets of code and adds the variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#TableCellAlignFmt'><code class='varlink'>&#036;TableCellAlignFmt</code></a> which allows to make simple tables compatible with <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>HTML 5</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTML5?action=edit'>?</a></span>. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.60 (2014-01-12) <a name='rel2.2.60' id='rel2.2.60'></a></h2>
<p>This version reverts the changes to the pmwiki.css file made in 2.2.59. 
</p>
<div class='vspace'></div><h2>Version 2.2.59 (2014-01-11) <a name='rel2.2.59' id='rel2.2.59'></a></h2>
<p>This version has an improvement for Blocklist when multiple text fields are posted. A bug with some nested markup conditionals was fixed. The default skin switched font sizes from points (fixed) to percents (relative). A couple of other minor bugs were fixed and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.58 (2013-12-25) <a name='rel2.2.58' id='rel2.2.58'></a></h2>
<p>This version enables customization of (:input auth_form:), and fixes a couple of minor bugs. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.57 (2013-11-03)</h2>
<p>This version enables the use of the Attach: link format in the  directive. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.56 (2013-09-30)</h2>
<p>This version aims to fix a PHP 5.5 compatibility issue with a deprecated feature of the preg_replace() function. The <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>Page Store</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageStore?action=edit'>?</a></span>() class now detects and works around a bug with the iconv() function, and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.55 (2013-09-16)</h2>
<p>This version adds the variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#EnableDraftAtomicDiff'><code class='varlink'>&#036;EnableDraftAtomicDiff</code></a>. If enabled, publishing from a draft version will clear the history of intermediate draft edits, and the published version will contain a single combined diff from the previous published version. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.54 (2013-08-13)</h2>
<p>This version fixes a bug when old versions are restored from draft pages. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.53 (2013-07-08)</h2>
<p>This version enables a message to be shown when a post is blocked because of too many unapproved links. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.52 (2013-06-08)</h2>
<p>This version hides warnings about a deprecated feature in PHP 5.5 installations (preg_replace with /e eval flag). Three new upload extensions were added: docx, pptx and xlsx produced by recent versions of some office suites. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.51 (2013-05-08)</h2>
<p>This version updates the addresses for the remote blocklists. A minor XSS vulnerability for open wikis, which was discovered today, was fixed. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.50 (2013-04-08)</h2>
<p>This release only updates the documentation to the latest state on pmwiki.org.
</p>
<div class='vspace'></div><h2>Version 2.2.49 (2013-03-09)</h2>
<p>This version adds an array <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadBlacklist'><code class='varlink'>&#036;UploadBlacklist</code></a> containing forbidden strings of an uploaded filename (case insensitive). Some Apache installations try to execute a file which has ".php", ".pl" or ".cgi" anywhere in the filename, for example, "test.php.txt" may be executed. To disallow such files to be uploaded via the <span class="wikiword">Pm Wiki</span> interface, add to config.php such a line:
</p>
<div class='vspace'></div><pre>  <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadBlacklist'><code class='varlink'>&#036;UploadBlacklist</code></a> = array('.php', '.pl', '.cgi', '.py', '.shtm', '.phtm', '.pcgi', '.asp', '.jsp', '.sh');
</pre><p class='vspace'>The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.48 (2013-02-11)</h2>
<p>This version fixes a bug introduced yesterday with some links. 
</p>
<div class='vspace'></div><h2>Version 2.2.47 (2013-02-10)</h2>
<p>This version enables tooltip titles in links to anchors in the same page, and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.46 (2013-01-07)</h2>
<p>This version adds <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadPermAdd'><code class='varlink'>&#036;UploadPermAdd</code></a> and <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadPermSet'><code class='varlink'>&#036;UploadPermSet</code></a> variables, and the documentation was updated.
</p>
<p class='vspace'>If your wiki has uploads enabled, it is recommended to set the variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadPermAdd'><code class='varlink'>&#036;UploadPermAdd</code></a> to 0. 
</p>
<p class='vspace'>The <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadPermAdd'><code class='varlink'>&#036;UploadPermAdd</code></a> variable sets additional unix permissions applied to newly uploaded files, and should be 0 (recommended as of 2013). If uploaded files cannot be downloaded and displayed on the website, for example with the error 403 Forbidden, set this value to 0444 (core setting, default since 2004). 
</p><pre>    <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadPermAdd'><code class='varlink'>&#036;UploadPermAdd</code></a> = 0; # recommended
</pre><p class='vspace'>The <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadPermSet'><code class='varlink'>&#036;UploadPermSet</code></a> variable unconditionally sets the file permissions on newly uploaded files. Only advanced administrators should use it.
</p>
<div class='vspace'></div><h2>Version 2.2.45 (2012-12-02)</h2>
<p>This version fixes some PHP notices appearing on some installations. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.44 (2012-10-21)</h2>
<p>This version improves the display of consecutive whitespaces in page histories, and fixes the definition of <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageTextVariables'>Page Text Variables</a></span> containing a dash. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.43 (2012-09-20)</h2>
<p>This version makes it possible to use HTML attribute names that contain dashes, and removes a warning when editing and previewing <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/EditForm'>Site.Edit Form</a></span>. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.42 (2012-08-20)</h2>
<p>This version provides a workaround for cases when a wiki page contains a character nonexistent in the active encoding. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.41 (2012-08-12)</h2>
<p>This version changes the internal &#36;KeepToken separator to be compatible with more encodings. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.40 (2012-07-21)</h2>
<p>This version provides a helper function replacing htmlspecialchars() and compatible with PHP 5.4. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.39 (2012-06-25)</h2>
<p>This version provides a fix for links to attachments containing international characters. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.38 (2012-05-21)</h2>
<p>This version fixes a "parameter count" warning which appeared on some websites.
</p>
<div class='vspace'></div><h2>Version 2.2.37 (2012-05-01)</h2>
<p>This version provides a workaround for installations with broken iconv() function, while optimizing the recode function. This should fix the "Unable to retrieve edit form" problem in some wikis. Dots in <a name='anchor_1.2' id='anchor_1.2'></a> sections are now better supported, <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageVariables'>Page Variables</a></span> are expanded in <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageList?action=edit'>Page List</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageList?action=edit'>?</a></span> template defaults, and the documentation is updated.
</p>
<div class='vspace'></div><h2>Version 2.2.36 (2011-12-28)</h2>
<p>This version fixes the recode function to try to recover Windows-1252 characters in ISO-8859-1 files. A new variable &#36;EnableOldCharset enables the $page["=oldcharset"] entry which will be used in the future. A couple of minor bugs were fixed and the documentation was updated.
</p>
<div class='vspace'></div><h2><a name='v2235' id='v2235'></a> Version 2.2.35 (2011-11-11)</h2>
<p>This release fixes a critical PHP injection vulnerability, reported today by Egidio Romano. <span class="wikiword">Pm Wiki</span> versions 2.2.X, 2.1.X, 2.0.X and 2.0.beta33 and newer are vulnerable. When you upgrade, please read carefully the Release notes for all <span class="wikiword">Pm Wiki</span> versions since yours.
</p>
<p class='vspace'>If you cannot upgrade, it is recommended to disable Searches at the earliest opportunity (even if your wiki skin doesn't have a search form). Add to config.php such a line:
</p><pre>  if ($action == 'search') $action = 'browse';
</pre><p class='vspace'>If your old version wiki allows editing by not entirely trusted visitors, even on limited pages like a <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiSandbox'>Wiki Sandbox</a></span>, you should also disable <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageLists'>Page Lists</a></span>. Add to config.php this line:
</p><pre>  &#36;EnablePageList = 0;
</pre><p class='vspace'>This version has an important change for international wikis: the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>XL Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>?</a></span>() function no longer loads encoding scripts such as xlpage-utf-8.php. When you upgrade, you need to include those scripts from config.php, before calling <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>XL Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>?</a></span>():
</p>
<div class='vspace'></div><pre>  include_once("scripts/xlpage-utf-8.php"); # if your wiki uses UTF-8
  <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>XL Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>?</a></span>('bg','<span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWikiBg/XLPage?action=edit'>Pm Wiki Bg.XL Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWikiBg/XLPage?action=edit'>?</a></span>');
</pre><p class='vspace'>All links can now have tooltip titles. Previously, only images and external links could have tooltip titles, now this feature is enabled for internal links. To set a tooltip title, add it in quotes after the link address:
</p><pre class='escaped'>
  [[Main.HomePage"This is a tooltip title"]]
  [[Main.HomePage"This is a tooltip title"|Home]]
  [[http://www.pmwiki.org"Home of PmWiki"]]
  Attach:image.jpg"Tooltip title of the image"
</pre>
<p class='vspace'>The following new upload extensions were added: svg, xcf, ogg, flac, ogv, mp4, webm, odg, epub. A couple of minor optimizations were added (<span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/MarkupExpressions'>Markup Expressions</a></span> and rendering of page history) and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.34 (2011-10-10)</h2>
<p>This version resets the timestamps of the default pages Site(Admin).<span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> which are expected in case of upgrades from the versions 2.1.*. Core <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/MarkupExpressions'>Markup Expressions</a></span> which manipulate strings should now work better with international characters. The documentation was updated to its latest state from pmwiki.org.
</p>
<div class='vspace'></div><h2>Version 2.2.33 (2011-09-23) <a name='v2233' id='v2233'></a></h2>
<p>This version fixes a security bug introduced in 2.2.32 which left the groups Site and <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/SiteAdmin/SiteAdmin'>Site Admin</a></span> open for reading and editing because the pages <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/GroupAttributes'>Site.Group Attributes</a></span> and <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/SiteAdmin/GroupAttributes'>Site Admin.Group Attributes</a></span> didn't have all necessary attributes. 
</p>
<p class='vspace'>All wikis running 2.2.32 should upgrade. If you cannot immediately upgrade, you can set the attributes from your wiki:
</p><ul><li>open the attributes page [[SiteAdmin.GroupAttributes?action=attr]] and set a "read" and an "edit" password, <code> @lock </code> is recommended.
</li><li>open the attributes page [[Site.GroupAttributes?action=attr]] and set an "edit" password, <code> @lock </code> is recommended. Do not set a "read" password here.
</li></ul><p class='vspace'>The release also fixes the refcount.php script to produce valid HTML, and updates intermap.txt entries PITS: and Wikipedia: to point to their current locations.
</p>
<div class='vspace'></div><h2>Version 2.2.32 (2011-09-18)</h2>
<p>This is the first version shipping with the core documentation in the UTF-8 encoding. <span class="wikiword">Pm Wiki</span> will automatically convert it on the fly for wikis using an older encoding.
</p>
<p class='vspace'>It is recommended that all <strong>new</strong> <span class="wikiword">Pm Wiki</span> installations enable UTF-8. Migration of <em>existing</em> wikis from an older encoding to UTF-8 shouldn't be rushed: it is not trivial and will be documented in the future.
</p>
<p class='vspace'>A required HTML xmlns attribute was added to the print skin template. The history rendering is now faster when many lines are added or removed.
</p>
<p class='vspace'><span  style='font-style: italic; color: green;'> Note: Due to a manipulation error, a version 2.2.31 was created before it was ready for a release.</span>
</p>
<div class='vspace'></div><h2>Version 2.2.30 (2011-08-13)</h2>
<p>This version fixes a $Charset definition in international iso-8859-*.php files. This will help for a future transition to UTF-8. 
</p>
<p class='vspace'>A variable &#36;EnableRangeMatchUTF8 was added, set it to 1 to enable range matches of pagenames in UTF-8 like [A-D]. Previously the range matches were always enabled in UTF-8, but we found out that on some installations this feature breaks all pagelists, even those without range matches. In case the feature worked for you, you can re-enable it.
</p>
<div class='vspace'></div><h2>Version 2.2.29 (2011-07-24)</h2>
<p>This release fixes Attach links that were broken with the Path fix in 2.2.28 earlier today.
</p>
<div class='vspace'></div><h2>Version 2.2.28 (2011-07-24)</h2>
<p>This release fixes 2 potential XSS vulnerabilities and a bug with Path: links.
</p>
<div class='vspace'></div><h2>Version 2.2.27 (2011-06-19)</h2>
<p>This release fixes a validation bug on pages after a redirection. A new block <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiStyle?action=edit'>Wiki Style</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiStyle?action=edit'>?</a></span> <code class='escaped'>%justify%</code> was added, allowing left and right aligned text. The page history now accepts a URL parameter <code>?nodiff=1</code> which hides the rendering of edit differences, showing only timestamps, authors, summaries and "Restore" links; it allows to restore a vandalized page with a huge contents or history which otherwise would break the memory or time limits of the server.
</p>
<div class='vspace'></div><h2>Version 2.2.26 (2011-05-21)</h2>
<p>This release fixes a redundant removal of link hashes from <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiTrails'>Wiki Trails</a></span>, and updates the documentation to the most recent version from <span class="wikiword">Pm Wiki</span>.org.
</p>
<div class='vspace'></div><h2>Version 2.2.25 (2011-03-22)</h2>
<p>This release only updates the documentation to the latest state on pmwiki.org.
</p>
<div class='vspace'></div><h2>Version 2.2.24 (2011-02-15)</h2>
<p>This version reverts the way existing <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageVariables'>Page Variables</a></span> are processed, like version 2.2.21 or earlier, but it adds a special variable $authpage which can be used in <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageVar?action=edit'>Page Var</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageVar?action=edit'>?</a></span> definitions. It is the same as the $page array, but exists only if the visitor has read permissions. For example, an administrator can set to config.php:
</p>
<div class='vspace'></div><pre>  <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/OtherVariables#FmtPV'><code class='varlink'>&#036;FmtPV</code></a>['&#36;LastModifiedSummary'] = '@$authpage["csum"]'; # instead of '@$page["csum"]'
</pre><p class='vspace'>Then, the edit summary metadata will only be available if the user has read permissions.
</p>
<div class='vspace'></div><h2>Version 2.2.23 (2011-01-25)</h2>
<p>This version sets the default value of <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#EnablePageVarAuth'><code class='varlink'>&#036;EnablePageVarAuth</code></a> to 0 until we investigate a reported problem with authentication.
</p>
<div class='vspace'></div><h2>Version 2.2.22 (2011-01-16)</h2>
<p>This version adds the variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/I18nVariables#EnableXLPageScriptLoad'><code class='varlink'>&#036;EnableXLPageScriptLoad</code></a> which, if set to 0, will prevent authors to load scripts from <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>XL Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>?</a></span> and to accidentally change the encoding of the wiki. If you use it, make sure you include the required files, eg. xlpage-utf-8.php from local config files.
</p>
<p class='vspace'><span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageVariables'>Page Variables</a></span> should now respect authentications: without read permissions, the title, description, change summary, author of a protected page are unavailable. <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageVariables'>Page Variables</a></span> that are computed without reading the page are still available (eg. $Group, $Namespaced, <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Version'><code class='varlink'>&#036;Version</code></a> etc.). Administrators can revert the previous behavior by adding to config.php such a line:
</p>
<p class='vspace'><code> <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#EnablePageVarAuth'><code class='varlink'>&#036;EnablePageVarAuth</code></a> = 0; </code>
</p>
<div class='vspace'></div><h2>Version 2.2.21 (2010-12-14)</h2>
<p>Due to a mis-configuration of a local svn repository, some of the changes intended for 2.2.20 didn't make it in the correct branch. This release corrects this.
</p>
<div class='vspace'></div><h2>Version 2.2.20 (2010-12-14)</h2>
<p>This version fixes a potential XSS vulnerability, reported today. An <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> bug with excluding users from authgroups was fixed. A new <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/InterMap'>Inter Map</a></span> prefix <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PmL10n?action=edit'>Pm L10n</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PmL10n?action=edit'>?</a></span>: was added, it leads to the Localization section on <span class="wikiword">Pm Wiki</span>.org and should help the work of translators. A couple of other minor bugs were fixed and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.19 (2010-11-10)</h2>
<p>This is a documentation-update release.
</p>
<div class='vspace'></div><h2>Version 2.2.18 (2010-09-04)</h2>
<p>This version fixes 3 minor bugs, and updates the documentation.
</p>
<div class='vspace'></div><h2>Version 2.2.17 (2010-06-20)</h2>
<p>This version adds a variable &#36;PostConfig containing functions and scripts to be loaded after stdconfig.php. Tabindex was added as a valid form field attribute. Protected downloads now respect existing browser caches. <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> now allows more flexible cookbook recipe integration. A couple of bugs were fixed and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.16 (2010-05-10)</h2>
<p>This version fixes a bug with parsing html attributes which could allow XSS injection. Wikis allowing unprotected editing are encouraged to upgrade.
</p>
<p class='vspace'>A bug with the "center" button of the GUI edit toolbar was corrected.
</p>
<p class='vspace'>The "exists" conditional now accepts wildcards, for example:
</p><pre>  <code class='escaped'>(:if exists Main.*:)There are pages in the Main group (:if:)</code>
</pre><p class='vspace'>The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.15 (2010-03-27)</h2>
<p>This version adds some minor bugfixes and optimizations notably a bug with <code>(:template none:)</code> introduced in the last version 2.2.14.
</p>
<div class='vspace'></div><h2>Version 2.2.14 (2010-02-27)</h2>
<p>This release corrects inline styles for <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiTrail?action=edit'>Wiki Trail</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiTrail?action=edit'>?</a></span> links. Undefined include/template <code> {$$variables} </code> are now removed from the included section, like Page(Text)Variables, and can be used in conditional expressions. If needed, this change can be reverted by adding to config.php such a line:
</p>
<div class='vspace'></div><pre class='escaped'>
  $EnableUndefinedTemplateVars = 1; # keep and display unset {$$variables}
</pre>
<p class='vspace'><span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/PageList?action=edit'>Page List</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PageList?action=edit'>?</a></span> templates now accept the sections <code> !first </code> and <code> !last </code> for markup to appear for every page in list <em>except</em> the first or last one.
</p>
<p class='vspace'>"Title" attributes were added to external links. You can have tooltip titles on external links, including <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/InterMap'>Inter Map</a></span> and attachments, by adding the link title in double quotes after the URL:
</p><pre>  [[http://www.pmwiki.org"Home of PmWiki"| External link]]
</pre><p class='vspace'>For international wikis, <span class="wikiword">Pm Wiki</span> now automatically translates the titles of technical pages like <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/GroupAttributes?action=edit'>Group Attributes</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/GroupAttributes?action=edit'>?</a></span> or <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/RecentChanges'>Recent Changes</a></span> -- just define these strings as usual in <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>XL Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPage?action=edit'>?</a></span>, for example, in French:
</p><pre>  '<span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/AllRecentChanges?action=edit'>All Recent Changes</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AllRecentChanges?action=edit'>?</a></span>' =&gt; 'Tous les changements r�cents',
</pre><p class='vspace'>Some minor optimizations were done and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.13 (2010-02-21)</h2>
<p>This release fixes a bug with <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#DiffKeepNum'><code class='varlink'>&#036;DiffKeepNum</code></a> introduced in 2.2.10 -- the count of revisions was incorrect and a page could drop more revisions than it should.
</p>
<p class='vspace'>The <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Page?action=edit'>history</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Page?action=edit'>?</a> layout was modified with a rough consensus in the community. The history now defaults to "source" view with word-level highlighting of the differences. Authors can see the changes in rendered output by clicking on the link "Show changes to output". Admins can switch back the default by adding such a line to config.php:
</p>
<div class='vspace'></div><pre>  &#36;DiffShow['source'] = (@$_REQUEST['source']=='y')?'y':'n';
</pre><p class='vspace'>To disable word-level highlighting and show plain text changes:
</p>
<div class='vspace'></div><pre>  <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#EnableDiffInline'><code class='varlink'>&#036;EnableDiffInline</code></a> = 0;
</pre><p class='vspace'>In the page history rendering, a few minor bugs were fixed and the code was slightly optimized.
</p>
<p class='vspace'>The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.12 (2010-02-17)</h2>
<p>This release adds simple word-level highlighting of differences in the page history, when "Show changes to markup" is selected. To enable the feature, add to config.php such a line:
</p><pre>  <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#EnableDiffInline'><code class='varlink'>&#036;EnableDiffInline</code></a> = 1;
</pre><p class='vspace'>This feature is like what the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/InlineDiff?action=edit'>Inline Diff</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/InlineDiff?action=edit'>?</a></span> recipe provides, but not exactly the same, and the implementation is simpler. It is enabled on <span class="wikiword">Pm Wiki</span>.org and can be improved -- your comments are welcome.
</p>
<div class='vspace'></div><h2>Version 2.2.11 (2010-02-14)</h2>
<p>This release adds two new table directives for header cells, (:head:) and (:headnr:). They work the same way as (:cell:) and (:cellnr:) except that create &lt;th&gt; instead of &lt;td&gt; html tags.
</p>
<p class='vspace'>The pagerev.php script was refactored into separate functions to allow easier integration of recipes displaying the page history.
</p>
<p class='vspace'>A couple of minor bugs were fixed and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.9, 2.2.10 (2010-01-17)</h2>
<p>Most important in this release is the official change of <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a> to 1. The change is about how {$Variable} in included pages is understood by <span class="wikiword">Pm Wiki</span>.
</p><ul><li>When <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a> is set to 0, {$Name} displays the name of the currently browsed page. Even if {$Name} is in an included page, it will display the name of the browsed page.
</li><li>When <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a> is set to 1, {$Name} displays the name of the physical page where it written. If {$Name} is in an included page, it will display the name of the included page.
</li><li>{*$Name} always displays the name of the currently browsed page, regardless of <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a>.
</li></ul><p class='vspace'>So, if your wiki relies on page variables from included pages, and doesn't have <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a> set to 1, after upgrading to 2.2.9, you can revert to the previous behavior by adding to config.php such a line:
</p><pre>  <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a> = 0;
</pre><p class='vspace'>More information about page variables can be found at:
</p><pre>  <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/PageVariables' rel='nofollow'>http://www.pmwiki.org/wiki/PmWiki/PageVariables</a>
</pre><p class='vspace'>This release adds a new variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#EnablePageTitlePriority'><code class='varlink'>&#036;EnablePageTitlePriority</code></a> which defines how to treat multiple (:title..:) directives. If set to 1, the first title directive will be used, and if a page defines a title, directives from included pages cannot override it. <span class="wikiword">Pm Wiki</span> default is 0, for years, the last title directive was used (it could come from an included page or <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/GroupFooter'>Group Footer</a></span>).
</p>
<p class='vspace'>This release also adds a new variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#DiffKeepNum'><code class='varlink'>&#036;DiffKeepNum</code></a>, specifying the minimum number (default 20) of edits that will be kept even if some of them are older than the limit of <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#DiffKeepDays'><code class='varlink'>&#036;DiffKeepDays</code></a>.
</p>
<p class='vspace'>A number of bugs were fixed and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.8 (2009-12-07)</h2>
<p>This release fixes another PHP 5.3 compatibility issue with conditional markup. The Author field now handles apostrophes correctly. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.7 (2009-11-08)</h2>
<p>This release fixes most PHP 5.3 compatibility issues. Unfortunately some specific builds for Windows may still have problems, which are unrelated to <span class="wikiword">Pm Wiki</span>. Notably, on Windows, all passwords need to be 4 characters or longer.
</p>
<p class='vspace'>Upload names with spaces are now correctly quoted. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.6 (2009-10-04)</h2>
<p>With this release it is now possible to display recently uploaded files to the <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/RecentChanges'>Recent Changes</a></span> pages -- if you have been using the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/RecentUploadsLog?action=edit'>Recent Uploads Log</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/RecentUploadsLog?action=edit'>?</a></span> recipe, please uninstall it and follow the instructions at <a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/RecentUploadsLog' rel='nofollow'>http://www.pmwiki.org/wiki/Cookbook/RecentUploadsLog</a>.
</p>
<p class='vspace'>The release also introduces <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#MakeUploadNamePatterns'><code class='varlink'>&#036;MakeUploadNamePatterns</code></a> to allow custom filename normalization for attachements. It is now possible to replace &#36;PageListFilters and &#36;FPLTemplateFunctions with custom functions. Notify should now work in safe_mode. Some bugs were fixed, among which one with conditional markup with dates. The documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.5 (2009-08-25)</h2>
<p>This release adds a new markup for Pagelist templates, <code class='escaped'>(:template none:)</code> which allows a message to be set when the search found no pages. The <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLTemplate?action=edit'>FPL Template</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLTemplate?action=edit'>?</a></span>() function was broken into configurable sub-parts to allow development hooks. A number of bugs were fixed, and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.4 (2009-07-16)</h2>
<p>This release fixes a bug introduced earlier today with HTML entities in <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPages?action=edit'>XL Pages</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/XLPages?action=edit'>?</a></span>.
</p>
<div class='vspace'></div><h2>Version 2.2.3 (2009-07-16)</h2>
<p>This release fixes six potential XSS vulnerabilities, reported by Michael Engelke. The vulnerabilities may affect wikis open for editing and may allow the injection of external <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/JavaScripts?action=edit'>Java Scripts</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/JavaScripts?action=edit'>?</a></span> in their pages. Public open wikis should upgrade.
</p>
<p class='vspace'>A new variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#EnableUploadGroupAuth'><code class='varlink'>&#036;EnableUploadGroupAuth</code></a> was added; if set to 1, it allows password-protected <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Uploads'>uploads</a> to be checked against the Group password. 
</p>
<p class='vspace'>It is now possible to use <code> @_site_edit, @_site_read, @_site_admin</code> or <code> @_site_upload </code> global <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Passwords'>passwords</a> in <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/GroupAttributes?action=edit'>Group Attributes</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/GroupAttributes?action=edit'>?</a></span> pages.
</p>
<p class='vspace'>A number of other small bugs were fixed, and the documentation was updated.
</p>
<div class='vspace'></div><h2>Version 2.2.2 (2009-06-21)</h2>
<p>The major news in this release is a fix of an <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> vulnerability.
</p>
<p class='vspace'>The vulnerability affects only wikis that (1) rely on the <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> core module 
for User:Password authentication, -AND- (2) where the PHP installation runs 
with the variable "magic_quotes_gpc" disabled.
</p>
<p class='vspace'>All <span class="wikiword">Pm Wiki</span> 2.1.x versions from pmwiki-2.1.beta6 on, all 2.2.betaX, 2.2.0, and 
2.2.1 are affected.
</p>
<p class='vspace'>The <span class="wikiword">Pm Wiki</span> <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/SiteAnalyzer?action=edit'>SiteAnalyzer</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SiteAnalyzer?action=edit'>?</a> can detect if your wiki needs to upgrade:
</p><pre>  <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/SiteAnalyzer' rel='nofollow'>http://www.pmwiki.org/wiki/PmWiki/SiteAnalyzer</a>
</pre><p class='vspace'>If your wiki is vulnerable, you should do one of the following at the earliest 
opportunity:
</p>
<div class='vspace'></div><ul><li>Upgrade to a version of <span class="wikiword">Pm Wiki</span> at least 2.2.2 or greater.
</li><li>Turn on magic_quotes_gpc in the php.ini file or in a .htaccess file.
</li></ul><p class='vspace'>Alternatively, you can temporarily disable <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> until you upgrade.
</p>
<p class='vspace'>Note that even if your wiki does not have the <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> vulnerability at the 
moment, you are strongly encouraged to upgrade to <span class="wikiword">Pm Wiki</span> version 2.2.2 or 
later, as some future configuration of your hosting server might put you at 
risk.
</p>
<p class='vspace'>This release also comes with minor updates in the local documentation; fixes 
were applied for international wikis - notably global variables in 
xlpage-utf-8.php and a new variable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Notify#EnableNotifySubjectEncode'><code class='varlink'>&#036;EnableNotifySubjectEncode</code></a>, which allows 
e-mail clients to correctly display the Subject header; and a number of other 
small bugs were fixed.
</p>
<div class='vspace'></div><h2>Version 2.2.1 (2009-03-28)</h2>
<p>This release comes with an updated local documentation; <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Wiki?action=edit'>trails</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Wiki?action=edit'>?</a> now work cross-group; guiedit.php now produces valid HTML, and other small bugs were fixed.  We also added <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LinkVariables#EnableRedirectQuiet'><code class='varlink'>&#036;EnableRedirectQuiet</code></a>, which allows redirects to take place without any mention of "redirected from page ....".
</p>
<p class='vspace'><a name='v220' id='v220'></a>
</p><h2>Version 2.2.0 (2009-01-18)</h2>
<p>This is a summary of changes from 2.1.x to 2.2.0.
</p>
<div class='vspace'></div><ul><li>Several pages that were formerly in the <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/Site'>Site</a>.* group are now in a separate <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/SiteAdmin/SiteAdmin'>SiteAdmin</a>.* group, which is read-restricted by default.  The affected pages include <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/AuthUser'>Site.Auth User</a></span>, <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/Site/AuthList?action=edit'>Site.Auth List</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/Site/AuthList?action=edit'>?</a></span>, <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/Site/NotifyList?action=edit'>Site.Notify List</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/Site/NotifyList?action=edit'>?</a></span>, Site.Blocklist, and <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/Site/ApprovedUrls?action=edit'>Site.Approved Urls</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/Site/ApprovedUrls?action=edit'>?</a></span> .  If upgrading from an earlier version of <span class="wikiword">Pm Wiki</span>, <span class="wikiword">Pm Wiki</span> will prompt to automatically copy these pages to their new location if needed.  If a site wishes to continue using the old Site.* group for these pages, simply set
</li></ul><div class='vspace'></div><div class='indent'><a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#SiteAdminGroup'><code class='varlink'>&#036;SiteAdminGroup</code></a> = <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#SiteGroup'><code class='varlink'>&#036;SiteGroup</code></a>;
<div class='vspace'></div></div><div class='indent'>when carrying out this upgrade inspect your config files for lines such as
<div class='indent'><a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Blocklist#BlocklistDownload'><code class='varlink'>&#036;BlocklistDownload</code></a>['Site.Blocklist-<span class="wikiword">Pm Wiki</span>'] = array('format' =&gt; 'pmwiki');
</div></div><div class='indent'>as you may wish to fix then, eg
<div class='indent'><a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Blocklist#BlocklistDownload'><code class='varlink'>&#036;BlocklistDownload</code></a>[<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#SiteAdminGroup'><code class='varlink'>&#036;SiteAdminGroup</code></a> . '.Blocklist-<span class="wikiword">Pm Wiki</span>'] = array('format' =&gt; 'pmwiki');
</div></div><div class='vspace'></div><ul><li>Important Change in Passwords in <span class="wikiword">Pm Wiki</span> 2.2 indicating that the group can be edited even if a site password is set will be done by <code>"@nopass"</code> prior it was done by <code>"nopass"</code>
</li></ul><div class='indent'>When migrating a wiki you will have to manually modify the permission or by a script replace in all the page concerned <code>passwdread=nopass:</code> by <code>passwdread=@nopass</code> (see <a class='urllink' href='http://www.pmwiki.org/wiki/PITS/00961' rel='nofollow'>PITS:00961</a>) --isidor
</div><div class='vspace'></div><ul><li><span class="wikiword">Pm Wiki</span> now ships with <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWords'>Wiki Words</a></span> entirely disabled by default.  To re-enable them, set either <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#LinkWikiWords'><code class='varlink'>&#036;LinkWikiWords</code></a> or <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableWikiWords'><code class='varlink'>&#036;EnableWikiWords</code></a> to 1.  To get the 2.1 behavior where <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWords'>Wiki Words</a></span> are spaced and parsed but don't form links, use the following:
</li></ul><div class='indent'><a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableWikiWords'><code class='varlink'>&#036;EnableWikiWords</code></a> = 1;
</div><div class='indent'><a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#LinkWikiWords'><code class='varlink'>&#036;LinkWikiWords</code></a> = 0;
</div><div class='vspace'></div><ul><li>It's now easy to disable the rule that causes lines with leading spaces to be treated as preformatted text -- simply set <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableWSPre'><code class='varlink'>&#036;EnableWSPre</code></a>=0; to disable this rule.
<div class='vspace'></div><div class='indent'><strong>Important:</strong> There is ongoing discussion that the leading whitespace rule may be disabled <em>by default</em> in a future versions of <span class="wikiword">Pm Wiki</span>.  If you want to make sure that the rule will continue to work in future upgrades, set <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableWSPre'><code class='varlink'>&#036;EnableWSPre</code></a>=1; in <em>local/config.php</em>.
</div><div class='vspace'></div></li><li>The <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#ROSPatterns'><code class='varlink'>&#036;ROSPatterns</code></a> variable has changed somewhat -- replacement strings are no longer automatically passed through <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/FmtPageName'>Fmt Page Name</a></span>() prior to substitution (i.e., it must now be done explicitly).
<div class='vspace'></div></li><li>Page variables and page links inside of <code class='escaped'>(:include:)</code> pages are now treated as relative to the included page, instead of the currently browsed page.  In short, the idea is that links and page variables should be evaluated with respect to the page in which they are written, as opposed to the page in which they appear.  This seems to be more in line with what authors expect.  There are a number of important ramifications of this change:
</li></ul><p class='vspace'><a name='relativeurls' id='relativeurls'></a>
</p><dl><dd><ul><li>We now have a new <code class='escaped'>{*$var}</code> form of page variable, which always refers to "the currently displayed page".  Pages such as <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/PageActions'>Site.Page Actions</a></span> and <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/EditForm'>Site.Edit Form</a></span> that are designed to work on "the currently browsed page" should generally switch to using <code class='escaped'>{*$FullName}</code> instead of <code class='escaped'>{$FullName}</code>.
<div class='vspace'></div></li><li>The &#36;EnableRelativePageLinks and <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a> settings control the treatment of links and page variables in included pages.  However, to minimize disruption to existing sites, <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a> defaults to <strong>disabled</strong>.  This will give existing sites an opportunity to convert any absolute <code class='escaped'>{$var}</code> references to be <code class='escaped'>{*$var}</code> instead.
<div class='vspace'></div></li><li>Eventually <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#EnableRelativePageVars'><code class='varlink'>&#036;EnableRelativePageVars</code></a> will be enabled by default, so we highly recommend setting <code class='escaped'>$EnableRelativePageVars = 1;</code> in <em>local/config.php</em> to see how a site will react to the new interpretation.  Administrators should especially check any customized versions of the following:
<div class='indent'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/PageActions'>Site.PageActions</a>
</div><div class='indent'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/EditForm'>Site.EditForm</a>
</div><div class='indent'><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/PageNotFound'>Site.PageNotFound</a>
</div><div class='indent'><span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/SideBar?action=edit'>Side Bar</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SideBar?action=edit'>?</a></span> pages with ?action= links for the current page
</div><div class='indent'><a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#GroupHeaderFmt'><code class='varlink'>&#036;GroupHeaderFmt</code></a>, <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#GroupFooterFmt'><code class='varlink'>&#036;GroupFooterFmt</code></a>
</div><div class='indent'><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Page?action=edit'>lists</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Page?action=edit'>?</a> that refer to the current group or page, etc in sidebars, headers, and footers
</div><div class='vspace'></div></li><li>The <code class='escaped'>(:include:)</code> directive now has a <code class='escaped'>basepage=</code> option whereby an author can explicitly specify the page upon which relative links and page variables should be based.  If no basepage= option is specified, the included page is assumed to be the base.
</li></ul></dd></dl><div class='vspace'></div><ul><li>Sites that want to retain the pre-2.2 behavior of <code class='escaped'>(:include:)</code> and other items can set <code class='escaped'>$Transition['version'] = 2001900;</code> to automatically retain the 2.1.x defaults.
<div class='vspace'></div></li><li>Text inserted via <code class='escaped'>(:include:)</code> can contain "immediate substitutions" of the form <code class='escaped'>{$$option}</code> -- these are substituted with the value of any options provided to the include directive.
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> now recognizes when it is being accessed via "https:" and switches its internal links appropriately.  This can be overridden by explicitly setting <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#ScriptUrl'><code class='varlink'>&#036;ScriptUrl</code></a> and <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#PubDirUrl'><code class='varlink'>&#036;PubDirUrl</code></a>.
<div class='vspace'></div></li><li>A new <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LinkVariables#EnableLinkPageRelative'><code class='varlink'>&#036;EnableLinkPageRelative</code></a> option allows <span class="wikiword">Pm Wiki</span> to generate relative urls for page links instead of absolute urls.
<div class='vspace'></div></li><li>Draft handling capabilities have been greatly improved.  When <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#EnableDrafts'><code class='varlink'>&#036;EnableDrafts</code></a> is set, then the "Save" button is relabeled to "Publish" and a "Save draft" button appears.  In addition, an <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#EnablePublishAttr'><code class='varlink'>&#036;EnablePublishAttr</code></a> configuration variable adds a new "publish" authorization level to distinguish editing from publishing.  See <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/Drafts' rel='nofollow'>PmWiki:Drafts</a> for more details.
</li></ul><p class='vspace'><a name='ptvstart' id='ptvstart'></a>
</p><ul><li>There is a new <code class='escaped'>{$:var}</code> "page text variable" available that is able to grab text excerpts out of markup content.  For example, <code class='escaped'>{SomePage$:Xyz}</code> will be replaced by a definition of "Xyz" in <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/SomePage?action=edit'>Some Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SomePage?action=edit'>?</a></span>.  Page text variables can be defined using definition markup, a line beginning with the variable name and a colon, or a special directive form (that doesn't display anything on output):
<div class='vspace'></div><div class='indent'><pre class='escaped'>
:Xyz: some value            # definition list form
Xyz: some value             # colon form
(:Xyz: some value:)         # directive form
</pre>
</div></li></ul><p><a name='ptvend' id='ptvend'></a>
</p>
<div class='vspace'></div><ul><li>The <code class='escaped'>(:pagelist:)</code> command can now filter pages based on the contents of page variables and/or page text variables.  For example, the following directive displays only those pages that have an "Xyz" page text variable with "some value":
<div class='vspace'></div><div class='indent'><code class='escaped'>(:pagelist $:Xyz="some value":)</code>
</div><div class='vspace'></div>Wildcards also work here, thus the following pagelist command lists pages where the page's title starts with the letter "a":
<div class='vspace'></div><div class='indent'><code class='escaped'>(:pagelist $Title=A* :)</code>
</div><div class='vspace'></div></li><li>The if= option to <code class='escaped'>(:pagelist)</code> can be used to filter pages based on conditional markup:
<div class='vspace'></div><div class='indent'><code class='escaped'>(:pagelist if="auth upload {=$FullName}":)</code>  pages with upload permission
</div><div class='indent'><code class='escaped'>(:pagelist if="date today.. {=$Name}":)</code> pages with names that are dates later than today
</div><div class='vspace'></div></li><li>Spaces no longer separate wildcard patterns -- use commas.  (Most people have been doing this already.)
<div class='vspace'></div></li><li>Because page variables are now "relative", the <code class='escaped'>{$PageCount}, {$GroupCount}, {$GroupPageCount}</code> variables used in pagelist templates are now <code class='escaped'>{$$PageCount}, {$$GroupCount}, {$$GroupPageCount}</code>.
<div class='vspace'></div></li><li>One can now use <code class='escaped'>{$$option}</code> in a pagelist template to obtain the value of any 'option=' provided to the <code class='escaped'>(:pagelist:)</code> command.
<div class='vspace'></div></li><li>The <code class='escaped'>(:pagelist:)</code> directive no longer accepts parameters from urls or forms by default.  In order to have it accept such parameters (which was the default in 2.1 and earlier), add a <code class='escaped'>request=1</code> option to the <code class='escaped'>(:pagelist:)</code> directive.
<div class='vspace'></div></li><li>The <code class='escaped'>count=</code> option to pagelists now accepts negative values to count from the end of the list.  Thus <code class='escaped'>count=5</code> returns the the first five pages in the list, and <code class='escaped'>count=-5</code> returns the last five pages in the list.  In addition, ranges of pages may be specified, as in <code class='escaped'>count=10..19</code> or <code class='escaped'>count=-10..-5</code>.
<div class='vspace'></div></li><li>Pagelist templates may have special <code class='escaped'>(:template first ...:)</code> and <code class='escaped'>(:template last ...:)</code> sections to specify output for the first or last page in the list or a group.  There's also a <code class='escaped'>(:template defaults ...:)</code> to allow a template to specify default options.
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> comes with an ability to cache the results of certain <code class='escaped'>(:pagelist:)</code> directives, to speed up processing on subsequent visits to the page.  To enable this feature, set <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PagelistVariables#PageListCacheDir'><code class='varlink'>&#036;PageListCacheDir</code></a> to the name of a writable directory (e.g., <em>work.d/</em>).
<div class='vspace'></div></li><li><a name='elseifelse' id='elseifelse'></a>The <code class='escaped'>(:if ...:)</code> conditional markup now also understands <code class='escaped'>(:elseif ...:)</code> and <code class='escaped'>(:else:)</code>.  In addition, markup can nest conditionals by placing digits after if/elseif/else, as in <code class='escaped'>(:if1 ...)</code>, <code class='escaped'>(:elseif1 ...:)</code>, <code class='escaped'>(:else1:)</code>, etc.
<div class='vspace'></div></li><li>The <code class='escaped'>(:if date ...:)</code> conditional markup can now perform date comparisons for dates other than the current date and time.
<div class='vspace'></div></li><li><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiTrails'>WikiTrails</a> can now specify #anchor identifiers to use only sections of pages as a trail.
<div class='vspace'></div></li><li>A new <code class='escaped'>(:if ontrail ...:)</code> condition allows testing if a page is listed on a trail.
<div class='vspace'></div></li><li>The extensions .odt, .ods, and .odp (from <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/OpenOffice?action=edit'>Open Office</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/OpenOffice?action=edit'>?</a></span>.org) are now recognized as valid attachment types by default.
<div class='vspace'></div></li><li>A new <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Blocklist'>blocklist</a> capability has been added to the core distribution.  It allows blocking of posts based on IP address, phrase, or regular expression, and can also make use of publicly available standard blocklists.  See <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Blocklist'>PmWiki.Blocklist</a> for details.
<div class='vspace'></div></li><li>There is a new <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/SiteAdmin/AuthList'>SiteAdmin.AuthList</a> page that can display a summary of all password and permissions settings for pages on a site.  This page is restricted to administrators by default.
<div class='vspace'></div></li><li>There are new <code class='escaped'>{$PasswdRead}</code>, <code class='escaped'>{$PasswdEdit}</code>, etc. variables that display the current password settings for a page (assuming the browser has attr permissions or whatever permissions are set in &#36;PasswdVarAuth).
<div class='vspace'></div></li><li>Forms creation via the <code class='escaped'>(:input:)</code> markup has been internally refactored somewhat (and may still undergo some changes prior to 2.2.0 release).  The new <code class='escaped'>(:input select ...:)</code> markup can be used to create select boxes, and <code class='escaped'>(:input default ...:)</code> can be used to set default control values, including for radio buttons and checkboxes.
<div class='vspace'></div></li><li>The <code class='escaped'>(:input textarea:)</code> markup now can take values from other sources, including page text variables from other pages.
<div class='vspace'></div></li><li>Specifying <code class='escaped'>focus=1</code> on an <code class='escaped'>(:input:)</code> control causes that control to receive the input focus when a page is loaded.  If a page has multiple controls requesting the focus, then the first control with the lowest value of <code class='escaped'>focus=</code> "wins".
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> now provides a <em>scripts/creole.php</em> module to enable Creole standard markup.  To enable this, add <code class='escaped'>include_once('scripts/creole.php')</code> to a local customization file.
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> adds a new <code class='escaped'>{(...)}</code> <em>markup expression</em> capability, which allows various simple string and data processing (e.g., formatting of dates and times).  This is extensible so that recipe authors and system administrators can easily add custom expression operators.
<div class='vspace'></div></li><li>It's now possible to configure <span class="wikiword">Pm Wiki</span> to automatically create Category pages whenever a page is saved with category links and the corresponding category doesn't already exist.  Pages are created only if the author has appropriate write permissions into the group.  To enable this behavior, add the following to <em>local/config.php</em>:
<div class='vspace'></div><div class='indent'><code class='escaped'>$AutoCreate['/^Category\\./'] = array('ctime' =&gt; $Now);</code>
</div><div class='vspace'></div></li><li>Sites with wikiwords enabled can now set <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LinkVariables#WikiWordCount'><code class='varlink'>&#036;WikiWordCount</code></a>['<span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWord'>Wiki Word</a></span>'] to -1 to indicate that '<span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWord'>Wiki Word</a></span>' should not be spaced according to <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#SpaceWikiWords'><code class='varlink'>&#036;SpaceWikiWords</code></a>.
<div class='vspace'></div></li><li><span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWords'>Wiki Words</a></span> that follow # or &amp; are no longer treated as <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWords'>Wiki Words</a></span>.
<div class='vspace'></div></li><li>Links to non-existent group home pages (e.g., <code class='escaped'>[[Group.]]</code> and <code class='escaped'>[[Group/]]</code>) will now go to the first valid entry of <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#PagePathFmt'><code class='varlink'>&#036;PagePathFmt</code></a>, instead of being hardcoded to "Group.Group".  For example, to set <span class="wikiword">Pm Wiki</span> to default group home pages to <code class='escaped'>$DefaultName</code>, use
<div class='vspace'></div><div class='indent'><code class='escaped'>$PagePathFmt = array('{$Group}.$1', '$1.{$DefaultName}', '$1.$1');</code>
</div><div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> now provides a &#36;CurrentTimeISO and &#36;TimeISOFmt variables, for specifying dates in ISO format.
<div class='vspace'></div></li><li><a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/Cookbook' rel='nofollow'>Cookbook</a> authors can use the internal <span class="wikiword">Pm Wiki</span> function <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/UpdatePage?action=edit'>Update Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UpdatePage?action=edit'>?</a></span> (temporarily documented at <a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/DebuggingForCookbookAuthors' rel='nofollow'>DebuggingForCookbookAuthors</a>) to change page text while preserving history/diff information, updating page revision numbers, updating <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/RecentChanges'>Recent Changes</a></span> pages, sending email notifications, etc.
<div class='vspace'></div></li><li><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Skin?action=edit'>templates</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Skin?action=edit'>?</a> are now required to have &lt;!--<span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTMLHeader?action=edit'>HTML Header</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTMLHeader?action=edit'>?</a></span>--&gt; and &lt;!--<span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTMLFooter?action=edit'>HTML Footer</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTMLFooter?action=edit'>?</a></span>--&gt; directives.  Setting &#36;EnableSkinDiag causes <span class="wikiword">Pm Wiki</span> to return an error if this isn't the case for a loaded skin.  Skins that explicitly do not want <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTMLHeader?action=edit'>HTML Header</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTMLHeader?action=edit'>?</a></span> or <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/HTMLFooter?action=edit'>HTML Footer</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/HTMLFooter?action=edit'>?</a></span> sections can use &lt;!--<span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/NoHTMLHeader?action=edit'>No HTML Header</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/NoHTMLHeader?action=edit'>?</a></span>--&gt; and &lt;!--<span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/NoHTMLFooter?action=edit'>No HTML Footer</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/NoHTMLFooter?action=edit'>?</a></span>--&gt; to suppress the warning.
<div class='vspace'></div></li><li>Added a new "pre" wikistyle for preformatted text blocks.
<div class='vspace'></div></li><li>The xlpage-utf-8.php script now understands how to space UTF-8 wikiwords.  
<div class='vspace'></div></li><li>Searches on utf-8 site are now case-insensitive for utf-8 characters.
<div class='vspace'></div></li><li>Many Abort() calls now provide a link to pages on pmwiki.org that can explain the problem in more detail and provide troubleshooting assistance.
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> no longer reports "?cannot acquire lockfile" if the visitor is simply browsing pages or performing other read-only actions.
<div class='vspace'></div></li><li>The &#36;EnableReadOnly configuration variable can be set to signal <span class="wikiword">Pm Wiki</span> that it is to run in "read-only" mode (e.g., for distribution on read-only media).  Attempts to perform actions that write to the disk are either ignored or raise an error via Abort().
<div class='vspace'></div></li><li>Including authuser.php no longer automatically calls <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/ResolvePageName?action=edit'>Resolve Page Name</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ResolvePageName?action=edit'>?</a></span>().
<div class='vspace'></div></li><li>Authentication using Active Directory is now simplified.  In <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/AuthUser'>Site.Auth User</a></span> or the &#36;AuthUser variable, set "ldap://name.of.ad.server/" with no additional path information (see <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Pm Wiki.Auth User</a></span> for more details).
<div class='vspace'></div></li><li>Pages are now saved with a "charset=" attribute to identify the character set in effect when the page was saved.
<div class='vspace'></div></li><li>The phpdiff.php algorithm has been optimized to be smarter about finding smaller diffs.
<div class='vspace'></div></li><li>Removed the (deprecated) "#wikileft h1" and "#wikileft h5" styles from the pmwiki default skin.
<div class='vspace'></div></li><li>The mailposts.php and compat1x.php scripts have been removed from the distribution.
</li></ul><div class='vspace'></div><h2>Version 2.1.27 (2006-12-11)</h2>
<p>This version backports from 2.2.0-beta a bugfix for <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#TableRowIndexMax'><code class='varlink'>&#036;TableRowIndexMax</code></a> and also support for the <code class='escaped'>{*$Variable}</code> markup.
</p>
<div class='vspace'></div><h2>Version 2.1.26 (2006-09-11)</h2>
<p>This version fixes a bug in feeds.php that would cause feed entries to be mixed up.
</p>
<div class='vspace'></div><h2>Version 2.1.25 (2006-09-08)</h2>
<p>This release fixes a bug in authuser.php introduced by the 2.1.24 release.
</p>
<p class='vspace'>The skin template code has also been extended to allow <code class='escaped'>&lt;!--XMLHeader--&gt;</code> and <code class='escaped'>&lt;!--XMLFooter--&gt;</code> as aliases for <code class='escaped'>&lt;!--HTMLHeader--&gt;</code> and <code class='escaped'>&lt;!--HTMLFooter--&gt;</code>.
</p>
<div class='vspace'></div><h2>Version 2.1.24 (2006-09-06)</h2>
<p>This release makes some improvements and fixes to the <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>AuthUser</a>
capability.
</p>
<p class='vspace'>A bug in authuser.php that had trouble dealing with non-array values in &#36;AuthUser has been fixed.
</p>
<p class='vspace'>It is now possible to specify group memberships from <em>local/config.php</em> (remember that such entries must come <em>before</em> including the <em>authuser.php</em> script):
</p>
<div class='vspace'></div><pre>    # alice and bob's passwords
    &#36;AuthUser['alice'] = crypt('alicepassword');
    &#36;AuthUser['bob'] = crypt('bobpassword');

    # members of the @writers and @admins groups
    &#36;AuthUser['@writers'] = array('alice',  'bob');
    &#36;AuthUser['@admins'] = array('alice', 'dave');

    # carol is a member of @editors and @writers
    &#36;AuthUser['carol'] = array('@editors', '@writers');
</pre><p class='vspace'><span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span> can now read from Apache-formatted .htgroup files.  The location of the .htgroup file can be done either in <em>local/config.php</em> or <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/AuthUser'>Site.AuthUser</a>
</p>
<div class='vspace'></div><pre>    # local/config.php:
    &#36;AuthUser['htgroup'] = '/path/to/.htgroup';

    # <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/AuthUser'>Site.Auth User</a></span>
    htgroup: /path/to/.htgroup
</pre><div class='vspace'></div><h2>Versions 2.1.21, 2.1.22, 2.1.23 (2006-09-05, 2006-09-06)</h2>
<p>This release closes a potential security vulnerability for sites 
that are running with 'register_globals' set to on.  Details of
the vulnerability will be forthcoming on the mailing list
and site.
</p>
<p class='vspace'>Sites that are running with PHP 'register_globals' and 'allow_url_fopen'
set to 'On' should upgrade to this release at the earliest
opportunity.  If upgrading isn't an option, contact Pm for
a patch to older versions.
</p>
<p class='vspace'>There is now a tool available to analyze <span class="wikiword">Pm Wiki</span> sites for security
and other configuration settings, see <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/SiteAnalyzer' rel='nofollow'>PmWiki:SiteAnalyzer</a>.
</p>
<p class='vspace'>Version 2.1.23 also corrects a bug that prevented <span class="wikiword">Pm Wiki</span> from being
able to read pagefiles created by versions of <span class="wikiword">Pm Wiki</span> before 0.5.6.
</p>
<div class='vspace'></div><h2>Version 2.1.20 (2006-09-04)</h2>
<p>More minor bugfixes:
</p><ul><li>Corrected a bug with <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWord'>Wiki Word</a></span> references appearing in the <code class='escaped'>(:attachlist:)</code> markup.
</li><li>Restore ability to remove/override <span class="wikiword">Pm Wiki</span>'s default CSS settings.
</li></ul><div class='vspace'></div><h2>Version 2.1.19 (2006-08-30)</h2>
<p>This release provides a number of very minor bugfixes and
enhancements:
</p>
<div class='vspace'></div><ul><li>Fixed a bug in the pageindex code that was causing it to not regenerate as quickly as it should.
</li><li>Fixed image/object/embed handling in wikistyles to better support the <a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/Flash' rel='nofollow'>Cookbook:Flash</a> recipe.
</li><li>Fixed a bug with wikistyles and input form tags.
</li></ul><p class='vspace'>The next release(s) may have a number of substantial code
enhancements and changes, so this release simply closes out
a few items before introducing those changes.
</p>
<div class='vspace'></div><h2>Version 2.1.18 (2006-08-28)</h2>
<p>This release closes a potential cross-site scripting vulnerability
that could allow authors to inject Javascript code through the
various table markups.
</p>
<p class='vspace'>The release also adds a new <code class='escaped'>(:input image:)</code> markup to generate
image input tags in forms.
</p>
<p class='vspace'>Finally, this release corrects a problem with <code class='escaped'>?action=print</code>
failing to properly set the <code class='escaped'>{$Action}</code> page variable.
</p>
<div class='vspace'></div><h2>Version 2.1.17 (2006-08-26)</h2>
<p>This release fixes a long-standing bug with <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/DebugVariables#EnableIMSCaching'><code class='varlink'>&#036;EnableIMSCaching</code></a>
(<a class='urllink' href='http://www.pmwiki.org/wiki/PITS/00573' rel='nofollow'>PITS:00573</a>), whereby login/logout operations wouldn't invalidate 
browser caches, causing some people to see versions of a page prior
to the login/logout taking place.  
</p>
<p class='vspace'>The new IMS caching code maintains a "imstime" cookie in the 
visitor's browser that keeps track of the time of last login, 
logout, author name change, or site modification.  This cookie
is then used to determine the proper response to browser requests
containing If-Modified-Since headers.  (Previously only the
time of the last site modification was available.)  
</p>
<p class='vspace'>Browsers which do not accept cookies will effectively act as
though IMS caching is disabled.
</p>
<div class='vspace'></div><h2>Version 2.1.16 (2006-08-26) <a name='v2116' id='v2116'></a></h2>
<p>This release makes some improvements to skin handling -- primarily
this improves the capability of relocating skin files to other
locations, and to provide the ability for recipes to insert items
at the <em>end</em> of HTML output.
</p>
<p class='vspace'>This release introduces a <code class='escaped'>&lt;!--HTMLFooter--&gt;</code> directive into
<a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Skin?action=edit'>templates</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Skin?action=edit'>?</a>, which allows recipes and local
customizations to insert output near the end of a document 
using a <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#HTMLFooterFmt'><code class='varlink'>&#036;HTMLFooterFmt</code></a> array from PHP.
</p>
<p class='vspace'>Also, the <code class='escaped'>&lt;!--HeaderText--&gt;</code> directive, which inserts the
contents of <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#HTMLHeaderFmt'><code class='varlink'>&#036;HTMLHeaderFmt</code></a> into the output, has now been
renamed to <code class='escaped'>&lt;!--HTMLHeader--&gt;</code>.  <span class="wikiword">Pm Wiki</span> will continue to
recognize <code class='escaped'>&lt;!--HeaderText--&gt;</code> to preserve compatibility with
existing skins, but <code class='escaped'>&lt;!--HTMLHeader--&gt;</code> is preferred.
</p>
<p class='vspace'>A new <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#SkinLibDirs'><code class='varlink'>&#036;SkinLibDirs</code></a> array has been introduced which allows
the source locations and urls for skins to be specified from
a customization file.  By default <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#SkinLibDirs'><code class='varlink'>&#036;SkinLibDirs</code></a> is set as
</p>
<div class='vspace'></div><pre>  <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#SkinLibDirs'><code class='varlink'>&#036;SkinLibDirs</code></a> = array("./pub/skins/\<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Skin'><code class='varlink'>&#036;Skin</code></a>"      =&gt; "<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#PubDirUrl'><code class='varlink'>&#036;PubDirUrl</code></a>/skins/\<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Skin'><code class='varlink'>&#036;Skin</code></a>",
                  "<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#FarmD'><code class='varlink'>&#036;FarmD</code></a>/pub/skins/\<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Skin'><code class='varlink'>&#036;Skin</code></a>" =&gt; "<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#FarmPubDirUrl'><code class='varlink'>&#036;FarmPubDirUrl</code></a>/skins/\<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Skin'><code class='varlink'>&#036;Skin</code></a>");
</pre><p class='vspace'>The keys (on the left) indicate the places to look for a "skin .tmpl 
file" in the filesystem, while the values (on the right) indicate the
url location of the "skin css file".  Modifying the value of 
<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#SkinLibDirs'><code class='varlink'>&#036;SkinLibDirs</code></a> allows a skin .tmpl file to be located anywhere on the 
filesystem.
</p>
<p class='vspace'>As far as I can see, none of the changes introduced by this
release should have any sort of negative impact on existing
sites, so it should be safe to upgrade.  (If I'm wrong, please
let me know.)
</p>
<div class='vspace'></div><h2>Version 2.1.15 (2006-08-25)</h2>
<p>This release includes a number of feature enhancements and code cleanups
as reported or requested by administrators.
</p>
<p class='vspace'>First, <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>Auth User</a></span>'s LDAP authentication system now allows the use of
a <code class='escaped'>?filter</code> parameter, consistent with urls used for mod_auth_ldap
authorization in Apache.  See the newly updated LDAP section of the
<a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>AuthUser</a> documentation for more details.
</p>
<p class='vspace'>A chicken-and-egg problem with the <code class='escaped'>@_site_*</code> authorization groups
has been resolved.  It's now possible to have a page's read authorization
refer to things such as <code class='escaped'>_site_edit</code>.
</p>
<p class='vspace'>Also, the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/RetrieveAuthPage?action=edit'>Retrieve Auth Page</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/RetrieveAuthPage?action=edit'>?</a></span>() function -- used for retrieving pages only
if the visitor is authorized to do so -- now recognizes a special
level parameter of 'ALWAYS', which means to always authorize access
regardless of the browser or visitors current permissions.  This
may be useful for allowing certain operations to take place from
within trusted scripts without having to grant full authorization
to the browser.
</p>
<p class='vspace'>Hardcoded instances of the <em>local/</em> directory now use a
customizable <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#LocalDir'><code class='varlink'>&#036;LocalDir</code></a> variable.  This variable controls where
<span class="wikiword">Pm Wiki</span> looks for <em>local/config.php</em> and per-group customization 
files.  It may be useful for some <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Wiki?action=edit'>Farm(s)</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Wiki?action=edit'>?</a> contexts.  Note that
this does not change or affect the location of 
<em><a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#FarmD'><code class='varlink'>&#036;FarmD</code></a>/local/farmconfig.php</em>.
</p>
<p class='vspace'>Some minor internal changes have been made to 
<em>scripts/wikistyles.php</em> to better accommodate the 
wikipublisher recipe.  It's probably better if we don't try
to explain them.  :-)
</p>
<div class='vspace'></div><h2>Version 2.1.13, 2.1.14 (2006-08-15, 2006-08-16)</h2>
<p>This release fixes a bug in handling numeric passwords, and also
allows ldaps:// authentication sources.
</p>
<div class='vspace'></div><h2>Version 2.1.12 (2006-08-07)</h2>
<p>This version introduces the ability to nest divs and tables.
The standard <code class='escaped'>(:table:)</code> and <code class='escaped'>(:div:)</code> markups are still
available, except that a <code class='escaped'>(:div:)</code> may contain a <code class='escaped'>(:table:)</code>
and vice-versa.  
</p>
<p class='vspace'>As in previous versions of <span class="wikiword">Pm Wiki</span>, the <code class='escaped'>(:div:)</code> markup
automatically closes any previous <code class='escaped'>(:div:)</code>.  However, there
are now <code class='escaped'>(:div1:)</code>, <code class='escaped'>(:div2:)</code>, etc. markups (and the
corresponding <code class='escaped'>(:div1end:)</code>, <code class='escaped'>(:div2end:)</code>, ...) which can be
used to uniquely distinguish divs for nesting purposes.
</p>
<p class='vspace'>To restore <span class="wikiword">Pm Wiki</span>'s previous "non-nested" div behavior, set
$Transition['nodivnest'] = 1; in a local customization file.
</p>
<p class='vspace'>Other changes in this release:
</p><ul><li>Add a <code class='escaped'>(:noaction:)</code> directive to suppress display of page actions.
</li><li>Allow anchor tags to contain colons, hyphens, and dots.
</li><li>Add "white-space" as an allowed wikistyle.
</li><li>Other minor bug fixes and typographical corrections.
</li></ul><div class='vspace'></div><h2>Version 2.1.11 (2006-06-09)</h2>
<p>This is a minor update that prevents <code class='escaped'>%define=%</code> wikistyles
from generating empty paragraphs in the HTML output.  Prior to
this release, markup lines containing only wikistyle definitions
would often generate empty paragraphs (&lt;p&gt;&lt;/p&gt;), this release
changes things so that a markup line beginning with <code class='escaped'>%define=</code>
and containing only wikistyle definitions will not initiate
a new paragraph.
</p>
<div class='vspace'></div><h2>Version 2.1.10 (2006-06-03)</h2>
<p>Version 2.1.4 introduced an <code class='escaped'>{$Action}</code> page variable that would
contain the current <code class='escaped'>?action=</code> value.  Unfortunately, this page
variable conflicted with a pre-existing <code class='escaped'>$Action</code> global variable
that was being used by skins to display a human-friendly form of
the current action.  Since there's not really a clean way to resolve
this, I've decided to keep <code class='escaped'>{$Action}</code> as a page variable
with the current action value (as introduced in 2.1.4), and change 
the global for skins to be &#36;ActionTitle.  This will require updating
skins to use &#36;ActionTitle instead of $Action.  I apologize for the
conflict.
</p>
<p class='vspace'>This release adds a <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/Site/LocalTemplates?action=edit'>Site.Local Templates</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/Site/LocalTemplates?action=edit'>?</a></span> page for the <code class='escaped'>fmt=#xyz</code>
option in pagelist and search results.  The list of pages to be
searched can be customized via the <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PagelistVariables#FPLTemplatePageFmt'><code class='varlink'>&#036;FPLTemplatePageFmt</code></a> variable.
The <code class='escaped'>fmt=#xyz</code> option will now also search the current page for
a matching template before searching <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/Site/LocalTemplates?action=edit'>Site.Local Templates</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/Site/LocalTemplates?action=edit'>?</a></span>
and <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/PageListTemplates'>Site.Page List Templates</a></span>.
</p>
<p class='vspace'>The 'pmwiki' skin now places a &lt;span&gt; around the "Recent Changes"
link in the header to make it somewhat easier to style.
</p>
<div class='vspace'></div><h2>Version 2.1.9 (2006-06-02)</h2>
<p>This release fixes a long-standing and difficult-to-find bug with
the handling of <code class='escaped'>[[~Author]]</code> links.
</p>
<div class='vspace'></div><h2>Version 2.1.8 (2006-06-01)</h2>
<p>This release simply changes the &#36;NotifyListFmt variable to be
<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Notify#NotifyListPageFmt'><code class='varlink'>&#036;NotifyListPageFmt</code></a> (more descriptive), and adds a <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Notify#NotifyList'><code class='varlink'>&#036;NotifyList</code></a>
array that can be used to specify notification entries from
a configuration file.
</p>
<div class='vspace'></div><h2>Version 2.1.7 (2006-05-31)</h2>
<p>This release introduces a variety of improvements and bugfixes.
</p>
<p class='vspace'><strong>Vspace paragraphs are now divs:</strong>
Version 2.1.7 changes the way that <span class="wikiword">Pm Wiki</span> handles vertical
space in output (the infamous <code class='escaped'>&lt;p class='vspace&gt;&lt;/p&gt;</code> sequence).
Instead of using paragraphs, <span class="wikiword">Pm Wiki</span> now generates 
<code class='escaped'>&lt;div class='vspace'&gt;&lt;/div&gt;</code> for vertical space sequences.
In addition, <span class="wikiword">Pm Wiki</span> is able to collapse the vspace &lt;div&gt; with
any subsequent paragraph tags, such that a sequence like
</p>
<div class='vspace'></div><pre>    &lt;div class='vspace&gt;&lt;/div&gt;&lt;p&gt;...paragraph text...&lt;/p&gt;
</pre><p class='vspace'>is automatically converted to
</p>
<div class='vspace'></div><pre>    &lt;p class='vspace'&gt;...paragraph text...&lt;/p&gt;
</pre><p class='vspace'>This allows for better control over paragraph spacing.  It is
expected that this change in vspace handling will not have
any detrimental effects on existing sites.  Sites that have
set custom values for <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#HTMLVSpace'><code class='varlink'>&#036;HTMLVSpace</code></a> will continue to use the
custom value.  A site that wants to restore <span class="wikiword">Pm Wiki</span>'s earlier
handling of vspace can do so by adding the following to
<em>local/config.php</em>:
</p>
<div class='vspace'></div><pre>    <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LayoutVariables#HTMLVSpace'><code class='varlink'>&#036;HTMLVSpace</code></a> = "&lt;p class='vspace'&gt;&lt;/p&gt;";
</pre><p class='vspace'><strong>Improved email notifications of changes:</strong>  Version 2.1.7
incorporates a <em>notify.php</em> script that provides improved
capabilities for sending email notifications in response to
page changes.  This script is intended to replace the previous
<a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/MailPosts' rel='nofollow'>MailPosts</a> capability, which is now deprecated (but will
continue to be supported in <span class="wikiword">Pm Wiki</span> 2.1.x).  Details and 
instructions for using notify.php are in the <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Notify'>PmWiki.Notify</a> page.
</p>
<p class='vspace'><strong>Added 'group home page' syntax:</strong> A group name followed
by only a dot or slash is automatically treated as a reference
to the group's home page, whatever it happens to be.  This simplifies
some pagelist templates as well as a number of other items. 
In particular, group links in pagelist output now points to the
correct locations (instead of being a page in the current group).
</p>
<p class='vspace'>Several bugs and vulnerabilities have been fixed:
</p><ul><li>The default width of edit forms is now more appropriate for Internet Explorer.
</li><li>Authentication failure messages from LDAP are now suppressed.
</li><li>Some cross-site scripting vulnerabilities in uploads and page links have been corrected (courtesy Moritz Naumann, <a class='urllink' href='http://moritz-naumann.com' rel='nofollow'>http://moritz-naumann.com</a>).
</li><li>A problem with invalid pagenames resulting in redirect loops has been corrected.
</li></ul><div class='vspace'></div><h2>Version 2.1.6 (2006-05-22)</h2>
<p>The primary improvement in this release is the addition of 
a pagename argument to the <code class='escaped'>(:if auth:)</code> conditional markup.
Thus one can display markup based on a visitor's authorization
to a page other than the current one.  For example, to test
for edit privileges to Main.WikiSandbox, one would use
<code class='escaped'>(:if auth edit Main.WikiSandbox:)</code>.  As before, if the
pagename is omitted the directive tests authorization to
the current page.
</p>
<p class='vspace'>This release also restores the ability to have hyphens in
<span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/InterMap'>Inter Map</a></span> link names.
</p>
<p class='vspace'>Lastly, the release closes a potential cross-site scripting
vulnerability in the <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiTrail?action=edit'>Wiki Trail</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiTrail?action=edit'>?</a></span> markup, and provides some small
performance improvements.
</p>
<div class='vspace'></div><h2>Version 2.1.4, 2.1.5 (2006-03-29)</h2>
<p>This release fixes a few more bugs:
</p><ul><li>Pagelist-based feeds using ?action=rss work again.
</li><li>Multi-term searches with special characters is fixed.
</li></ul><p class='vspace'>The release also adds a couple of items:
</p><ul><li>There is now an <code class='escaped'>{$Action}</code> page variable.
</li><li>Usernames and passwords submitted to authuser.php can contain quotes.
</li><li>The <code class='escaped'>(:attachlist:)</code> command now uses a natural case sort.
</li></ul><div class='vspace'></div><h2>Version 2.1.3 (2006-03-17)</h2>
<p>This release fixes a bug that prevents the <code class='escaped'>lines=</code> option from
working on sites running PHP 5.1.1 or later.  It also re-fixes
a bug involving empty passwords and LDAP authentication.
</p>
<div class='vspace'></div><h2>Version 2.1.2 (2006-03-16)</h2>
<p>This release fixes a bug with handling "nopass" passwords.  It also
makes some speed improvements to large web feeds, and fixes a couple
of minor HTML tag mismatches.
</p>
<div class='vspace'></div><h2>Version 2.1.1 (2006-03-13)</h2>
<p>This release primarily fixes a bug with passwords containing
multiple authorization groups, and in the process slightly liberalized
the formatting of "@group" and "id:name" handling.  This release also 
adds a new mechanism for managing and displaying FAQ pages.
</p>
<div class='vspace'></div><h2>Version 2.1.0 (2006-03-12)</h2>
<p>This 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.
</p>
<p class='vspace'>Here's the list:
</p>
<div class='vspace'></div><ul><li><span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWords'>Wiki Words</a></span> are now disabled by default.  To enable them, set "<a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#LinkWikiWords'><code class='varlink'>&#036;LinkWikiWords</code></a> = 1;" in a <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Local?action=edit'>customization(s)</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Local?action=edit'>?</a> file.  As of 2.1.beta2, you can now leave <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWords'>Wiki Words</a></span> enabled but have links to non-existent pages display without decoration -- to do this, place the following lines in <em>pub/css/local.css</em>:
</li></ul><div class='vspace'></div><pre>    span.wikiword a.createlink { display:none; }
    span.wikiword a.createlinktext 
      { border-bottom:none; text-decoration:none; color:inherit; }
</pre><div class='vspace'></div><ul><li>The <code class='escaped'>(:pagelist:)</code> code has been substantially revised.  Pagelist formatting can now be specified using markup, and several defaults are available from <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/PageListTemplates'>Site.PageListTemplates</a>.  Also, several built-in pagelist formatting functions (<span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLSimple?action=edit'>FPL Simple</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLSimple?action=edit'>?</a></span>, <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLByGroup?action=edit'>FPL By Group</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLByGroup?action=edit'>?</a></span>, <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLGroup?action=edit'>FPL Group</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLGroup?action=edit'>?</a></span>) are now removed in favor of the template code.  The <span class="wikiword"><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLByGroup?action=edit'>FPL By Group</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/FPLByGroup?action=edit'>?</a></span> function can be restored by setting $Transition['fplbygroup']=1; . <strong>Remark:</strong> Check to see if your page <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/PageListTemplates'>Site.PageListTemplates</a> is not passwordprotected for viewing, otherwise the resulting pagelist will not be shown. 
<div class='vspace'></div></li><li><code class='escaped'>(:pagelist:)</code> now also understands wildcards in <code>group=</code> and <code>name=</code> arguments, as well as excluding specific names and groups.
<div class='vspace'></div></li><li><code class='escaped'>(:pagelist:)</code> now has an "order=random" option.
<div class='vspace'></div></li><li><code class='escaped'>(:searchbox:)</code> 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.
<div class='vspace'></div></li><li><code class='escaped'>?action=search</code> will display the contents of the current page if it contains a <code class='escaped'>(:</code><code class='escaped'>searchresults:)</code> directive, otherwise it uses the content of the page identified by <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PagelistVariables#PageSearchForm'><code class='varlink'>&#036;PageSearchForm</code></a> (default is the search page for the current language translation).  
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> 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 <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PagelistVariables#PageIndexFile'><code class='varlink'>&#036;PageIndexFile</code></a>=''; 
<div class='vspace'></div></li><li>The <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PagelistVariables#EnablePageListProtect'><code class='varlink'>&#036;EnablePageListProtect</code></a> 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 <code class='escaped'>(:pagelist:)</code> 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 <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PagelistVariables#EnablePageListProtect'><code class='varlink'>&#036;EnablePageListProtect</code></a>=0; .
<div class='vspace'></div></li><li>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 <code class='escaped'>(:linebreaks:)</code> directive is honored.  To turn off whitespace indentation, use <code class='escaped'>DisableMarkup('^ws');</code>.
<div class='vspace'></div></li><li>A single blank line after a <code class='escaped'>!!Heading</code> is silently ignored.
<div class='vspace'></div></li><li>The <code class='escaped'>(:redirect:)</code> 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 <code class='escaped'>(:redirect PageName#anchor:)</code>.  A new <code class='escaped'>from=</code> option allows the redirect to take place only from pages that match the given wildcard specification.  The <code class='escaped'>status=</code> option allows a 301, 302, 303, or 307 HTTP status code to be returned.
<div class='vspace'></div></li><li>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 <em>does</em> cause a problem, please let me know so I can investigate why!)  The password prompts are now specified by an admin-customizable <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/AuthForm'>Site.Auth Form</a></span> page.  In addition, the authorization function no longer creates PHP sessions for visitors that aren't being authenticated.
<div class='vspace'></div></li><li>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 <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/AuthUser'>Site.AuthUser</a> page.  Note that by default the <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/AuthUser'>Site.Auth User</a></span> page can only be edited using the admin password.
<div class='vspace'></div></li><li>The <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#EnableSessionPasswords'><code class='varlink'>&#036;EnableSessionPasswords</code></a> variable can be used to control whether passwords are held in PHP sessions.  (This does not affect user authentication via <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/AuthUser'>AuthUser</a>, however.)
<div class='vspace'></div></li><li>The <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#Author'><code class='varlink'>&#036;Author</code></a> variable now defaults to <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/BasicVariables#AuthId'><code class='varlink'>&#036;AuthId</code></a> if not otherwise set by a script or cookie.
<div class='vspace'></div></li><li>The <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/SideBar'>Site.SideBar</a> page now defaults its edit password to the sitewide edit password (in <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/SecurityVariables#DefaultPasswords'><code class='varlink'>&#036;DefaultPasswords</code></a>['edit']).
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> now supports a "draft edit" mode, enabled by <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/EditVariables#EnableDrafts'><code class='varlink'>&#036;EnableDrafts</code></a> = 1.  This creates a "Save as draft" button that will save a page under a "-Draft" suffix, for intermediate edits.
<div class='vspace'></div></li><li>There is now an ?action=login action available.
<div class='vspace'></div></li><li>A potential security vulnerability for sites running PHP 5 with register_globals enabled has been fixed.
<div class='vspace'></div></li><li>The <code class='escaped'>[[PageName |+]]</code> markup is now available by default; this creates a link to PageName and uses that page's title as the link text.
<div class='vspace'></div></li><li>What used to be "markup variables" are now "<a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Page?action=edit'>variables</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Page?action=edit'>?</a>".  These are always specified using the <code>{$<em>variable</em>}</code> 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 <code>{<em>pagename</em>$<em>variable</em>}</code>.
<div class='vspace'></div></li><li>The <em>scripts/rss.php</em> script is now <em>scripts/feeds.php</em>, and is a complete redesign for <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Web?action=edit'>feed(s)</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Web?action=edit'>?</a> generation.  The new version supports UTF-8 and other encodings, can generate Atom 1.0 (<code class='escaped'>?action=atom</code>), Dublin Core Metadata (<code class='escaped'>?action=dc</code>) 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 <code class='escaped'>include_once("scripts/feeds.php");</code> instead of the previous <em>rss.php</em> include.  The <em>rss.php</em> file has been removed from the distribution (but still works with <span class="wikiword">Pm Wiki</span> 2.1 for those sites that wish to continue using it).
<div class='vspace'></div></li><li><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/InterMap'>InterMap</a> entries can now come from a Site.InterMap page as well as the <em>local/localmap.txt</em> and <em>local/farmmap.txt</em> files.  The format of these files has changed slightly, in that the <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/InterMap'>Inter Map</a></span> name should now have a colon after it (previously the colon was omitted).
<div class='vspace'></div></li><li>We can now provide better control of robot (webcrawler) interactions with a site to reduce server load and bandwidth.  The &#36;RobotPattern variable is used to detect robots based on the user-agent string, and any actions not listed in the &#36;RobotActions array will return a 403 Forbidden response to robots.  In addition, setting &#36;EnableRobotCloakActions will eliminate any forbidden ?action= values from page links returned to robots, which will reduce bandwidth loads from robots even further (<a class='urllink' href='http://www.pmwiki.org/wiki/PITS/00563' rel='nofollow'>PITS:00563</a>).
<div class='vspace'></div></li><li>Non-existent page handling has been improved; whenever a browser hits a non-existent page, <span class="wikiword">Pm Wiki</span> returns the contents of <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/PageNotFound'>Site.Page Not Found</a></span> and a 404 ("Not Found") status code.
<div class='vspace'></div></li><li>Page links that have "?action=" in their query arguments are now treated as "existing page" links even if the page does not exist.
<div class='vspace'></div></li><li>The <span class="wikiword">Pm Wiki</span> default skin now adds rel='nofollow' to various action links.
<div class='vspace'></div></li><li>Some of the CSS styles in the <span class="wikiword">Pm Wiki</span> default skin have been changed for better presentation.
<div class='vspace'></div></li><li>The gui edit buttons have transparent (instead of white) borders so they integrate better into skins.
<div class='vspace'></div></li><li>The <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/DebugVariables#EnableIMSCaching'><code class='varlink'>&#036;EnableIMSCaching</code></a> variable is now much smarter, it can detect changes in local customization files as well as pages.
<div class='vspace'></div></li><li><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiStyles'>WikiStyles</a> can now make percentage specifications by using "pct" to mean "%".
<div class='vspace'></div></li><li>Class attributes in <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiStyles'>WikiStyle</a> shortcuts are now cumulative, so that <code class='escaped'>%class1 class2%</code> results in <code class='escaped'>class='class1 class2'</code> instead of just <code class='escaped'>class='class2'</code> in the output.
<div class='vspace'></div></li><li>A problem with the <code class='escaped'>(:include PageName#from#:)</code> markup not working has been fixed (<a class='urllink' href='http://www.pmwiki.org/wiki/PITS/00560' rel='nofollow'>PITS:00560</a>).
<div class='vspace'></div></li><li>Viewing a <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/GroupHeader'>Group Header</a></span> or <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/GroupFooter'>Group Footer</a></span> page no longer displays the contents twice.
<div class='vspace'></div></li><li>It's now easier to share pages among multiple sites (e.g., <a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiFarms'>WikiFarms</a>), see <a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/SharedPages' rel='nofollow'>Cookbook:SharedPages</a> (<a class='urllink' href='http://www.pmwiki.org/wiki/PITS/00459' rel='nofollow'>PITS:00459</a>).
<div class='vspace'></div></li><li>A problem with nested apostrophe markups has been fixed (<a class='urllink' href='http://www.pmwiki.org/wiki/PITS/00590' rel='nofollow'>PITS:00590</a>).
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> is now smarter about not surrounding block HTML tags with &lt;p&gt;...&lt;/p&gt; tags.
<div class='vspace'></div></li><li>If an <code class='escaped'>[[#anchor]]</code> is used more than once in a page, only the first generates an actual anchor (to preserve XHTML validity).
<div class='vspace'></div></li><li>There are now <code class='escaped'>(:if equal ...:)</code> and <code class='escaped'>(:if exists pagename:)</code> <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Conditional?action=edit'>markups</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Conditional?action=edit'>?</a>.
<div class='vspace'></div></li><li>Compound conditional markup expressions are now possible -- e.g. <code class='escaped'>(:if [ group PmWiki &amp;&amp; ! name PmWiki ] :)</code> .
<div class='vspace'></div></li><li>Added an &#36;InputValues array that can supply default values for certain form controls (<a class='urllink' href='http://www.pmwiki.org/wiki/PITS/00566' rel='nofollow'>PITS:00566</a>).
<div class='vspace'></div></li><li>The default setting of <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/UploadVariables#UploadUrlFmt'><code class='varlink'>&#036;UploadUrlFmt</code></a> is now based on <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#PubDirUrl'><code class='varlink'>&#036;PubDirUrl</code></a> instead of <a class='varlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/PathVariables#ScriptUrl'><code class='varlink'>&#036;ScriptUrl</code></a>.
<div class='vspace'></div></li><li>The $text global variable has been removed (use $_GET['text'], $_POST['text'], or $_REQUEST['text']).
<div class='vspace'></div></li><li>A possible problem with url-encoding of attachments with non-ASCII characters has been addressed (<a class='urllink' href='http://www.pmwiki.org/wiki/PITS/00588' rel='nofollow'>PITS:00588</a>).
<div class='vspace'></div></li><li>Page actions in non-existent pages no longer display with non-existent link decorations.
<div class='vspace'></div></li><li>A README.txt file has been added, and several documentation files are now available through the docs/ directory.
<div class='vspace'></div></li><li><span class="wikiword">Pm Wiki</span> 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 <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/Subversion' rel='nofollow'>PmWiki:Subversion</a>.
<div class='vspace'></div></li><li>The &#36;NewlineXXX variable (deprecated in 2.0.0) has been removed.
<div class='vspace'></div></li><li>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.
</li></ul><p class='vspace'><span  style='color: red;'>Wiki administrators should note that from this release on <span class="wikiword">Pm Wiki</span> defaults to having <span class="wikiword"><a style='color: red' class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWords'>Wiki Words</a></span> disabled.</span>
</p>
<p class='vspace'>To make sure <span class="wikiword"><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/WikiWords'>Wiki Words</a></span> are enabled, use <code class='escaped'>$LinkWikiWords = 1;</code> in
the <em>local/config.php</em> file.
</p>
<div class='vspace'></div><hr />
<p>Bugs and other requests can be reported to the <span class="wikiword">Pm Wiki</span> Issue Tracking 
System at <a class='urllink' href='http://www.pmwiki.org/wiki/PITS/PITS' rel='nofollow'>http://www.pmwiki.org/wiki/PITS/PITS</a>.  Any help
in testing, development, and/or documentation is greatly appreciated..
</p>
<p class='vspace'><a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/Release' rel='nofollow'>Notes archive</a> - notes for versions older than 2.1.0.
</p>
<p class='vspace'> 
</p><div style='clear:right; float:right; font-size:smaller; background-color:#eee;' >
<p><span class='wikitrail'>&lt; <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Design?action=edit'>notes</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Design?action=edit'>?</a> | <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Documentation?action=edit'>index(#trailstart#trailend)|+</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Documentation?action=edit'>?</a> | <a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/Change?action=edit'>log</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/Change?action=edit'>?</a> &gt;</span> 
</p></div>
<p><a name='trailend' id='trailend'></a>
<a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/PmWiki/LtLt?action=edit'>&lt;&lt;</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/PmWiki/LtLt?action=edit'>?</a>
</p><div  style='background-color: #ffe; border-top: 1px solid black; font-size: .8em;' > 
<p>This page may have <span class='commentout-pmwikiorg'> a more recent version on <a class='urllink' href='http://www.pmwiki.org' rel='nofollow'>pmwiki.org</a>: <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/ReleaseNotes' rel='nofollow'>PmWiki:ReleaseNotes</a>, and </span> a talk page: <a class='urllink' href='http://www.pmwiki.org/wiki/PmWiki/ReleaseNotes-Talk' rel='nofollow'>PmWiki:ReleaseNotes-Talk</a>.
</p></div>
</div>

	  <div class="clearer"><!-- this is a clearer div --></div>
	</div>
 </div><!-- end div contentbox -->
<!--PageFootMenuFmt-->
 <div id ='footnavbox'>
  <div id='footnav' class='navbuttons'><ul><li><a rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes?action=edit'>Edit</a>
</li><li><a rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes?action=diff'>Page History</a>
</li><li><a accesskey='ak_source'  rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes?action=source'>Source</a>
</li><li><a accesskey='ak_upload'  rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/PmWiki/ReleaseNotes?action=upload'>Attach File</a>
</li><li><a rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/Search?q=link=PmWiki.ReleaseNotes'>Backlinks</a>
</li><li><a rel='nofollow'  class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/Search?q=PmWiki/'>List Group</a>
</li></ul><div class='vspace'></div><div class='indent'><em>Page last modified on February 02, 2018, at 05:47 PM</em>
</div>
</div>
 </div>
<!--/PageFootMenuFmt-->
</td><!-- end div center -->

<!--PageRightFmt-->
<td id="right-box" valign="top">
  <div id="rightbar"><p><br />
</p><ul><li><a class='urllink' href='http://www.coolcleveland.com/' rel='nofollow'>Home</a>
</li><li><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Sandbox/Admin'>Admin</a>
</li><li><a class='urllink' href='https://wiki.coolcleveland.com/wiki/AdminPanel/AdminPanel' rel='nofollow'>Admin Panel</a>
</li><li><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Main/UserSettings'>UserSettings</a>
</li><li><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Main/UserAccount'>UserAccount</a>
</li></ul><p class='vspace'><span class='rfloat'> </span>
<small><a class='wikilink' href='https://wiki.coolcleveland.com/wiki/Site/RightBar?action=edit'>Edit this menu</a></small>
</p>
<div class='vspace'></div>
</div>
</td><!-- end div right -->
<!--/PageRightFmt-->
</tr>

<tr>
<!--PageFooterFmt-->
 <td id="footer-box" colspan="3" valign="top">
	<div id="footer"><p  style='text-align: center;'><a class='createlinktext' rel='nofollow'
    href='https://wiki.coolcleveland.com/wiki/Site/Triad-ConfigurationSkin?action=edit'>config</a><a rel='nofollow' 
    class='createlink' href='https://wiki.coolcleveland.com/wiki/Site/Triad-ConfigurationSkin?action=edit'>?</a> <em>** pmwiki-2.2.107 **</em>
</p>
</div>
 </td>
<!--/PageFooterFmt-->
</tr>
</table><!-- end div outer -->
<!--HTMLFooter-->
</body>
</html>