aboutsummaryrefslogtreecommitdiff
path: root/wikilib.d
diff options
context:
space:
mode:
authorpetko <petko@524c5546-5005-0410-9a3e-e25e191bd360>2023-11-19 13:54:26 +0000
committerpetko <petko@524c5546-5005-0410-9a3e-e25e191bd360>2023-11-19 13:54:26 +0000
commit7f01f88ce213ff972ed1ba847fba826e3e010a4e (patch)
tree1897912c7aa41647c323fd246f702fde2e3a5c37 /wikilib.d
parentab9ce0d03a1665a8df289c9a1782bcd2df52c451 (diff)
downloadpmwiki.svn-7f01f88ce213ff972ed1ba847fba826e3e010a4e.tar.bz2
Documentation update.
git-svn-id: svn://pmwiki.org/pmwiki/trunk@4528 524c5546-5005-0410-9a3e-e25e191bd360
Diffstat (limited to 'wikilib.d')
-rw-r--r--wikilib.d/PmWiki.ChangeLog8
-rw-r--r--wikilib.d/PmWiki.LayoutVariables10
-rw-r--r--wikilib.d/PmWiki.ReleaseNotes8
-rw-r--r--wikilib.d/PmWiki.Tables10
-rw-r--r--wikilib.d/PmWiki.Troubleshooting12
-rw-r--r--wikilib.d/PmWiki.Upgrades10
6 files changed, 29 insertions, 29 deletions
diff --git a/wikilib.d/PmWiki.ChangeLog b/wikilib.d/PmWiki.ChangeLog
index c3f3d572..83449b33 100644
--- a/wikilib.d/PmWiki.ChangeLog
+++ b/wikilib.d/PmWiki.ChangeLog
@@ -1,9 +1,9 @@
version=pmwiki-2.3.27 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
-csum=Add input ''month'' and ''color'' fields. (+19)
+csum= (+98)
name=PmWiki.ChangeLog
-rev=1771
+rev=1772
targets=Cookbook.RecentChanges,PmWiki.MailingLists,PmWiki.Subversion,PITS.01495,PITS.01493,PmWiki.LayoutVariables,PmWiki.PagelistVariables,PITS.01494,PmWiki.UploadVariables,Cookbook.FuseEdit,PmWiki.EditVariables,PmWiki.BasicVariables,PmWiki.SecurityVariables,PITS.01488,PITS.01489,PmWiki.OtherVariables,Cookbook.SectionEdit,PITS.01486,PITS.01297,PITS.01485,Cookbook.EditHelp,PITS.01484,PITS.01208,PITS.01483,PITS.01480,PmWiki.PageVariables,PITS.01478,PITS.01477,Cookbook.PmSyntax,Cookbook.CustomSyntax,PITS.01418,PITS.00447,PITS.01475,PITS.00908,PITS.01095,PITS.01472,PITS.01461,PITS.01465,PITS.01454,PmWiki.Skins-Talk,Skins.SkinChange,Cookbook.ToggleNext,PmWiki.Links,PmWiki.Forms,PmWiki.TableOfContents,PITS.01448,Cookbook.RecipeCheck,PITS.01145,PmWiki.BlockMarkup,Cookbook.DeObMail,Cookbook.FixURL,Cookbook.NotSavedWarning,Cookbook.AutoTOC,Cookbook.DeltaBytesRecentChanges,Cookbook.RowspanInSimpleTables,Cookbook.LocalCSS,PmWiki.LinkVariables,Cookbook.PreviewChanges,PmWiki.MarkupExpressions,PmWiki.DebugVariables,PmWiki.Notify,PITS.01425,PITS.01422,PITS.01300,SiteAdmin.AuthList,PITS.01408,PITS.01404,Skins.2016,PITS.01406,PITS.01407,PITS.01400,PmWiki.PathVariables,Cookbook.HtmlUrls-Talk,PITS.01401,PITS.01390,PITS.01392,PITS.00638,PITS.01388,PITS.00951,Site.UploadQuickReference,PITS.00197,PITS.00435,PITS.01378,PITS.01379,PITS.01140,PITS.01373,PmWiki.TextFormattingRules-Talk,PITS.01087,PITS.00835,PITS.01110,PITS.01367,PITS.01032,PITS.00489,PITS.00497,PmWiki.Functions,PITS.01363,PITS.01360,PITS.01359,Site.EditQuickReference,PITS.01350,PmWiki.WikiStyles,PITS.00860,PITS.01337,PITS.01112,PmWiki.PageListTemplates,PITS.01345,PITS.01346,PmWiki.LinkSchemes,PITS.01278,PmWiki.PageDirectives,PITS.01319,PITS.01007,PITS.01259,PITS.01308,PITS.01304,PITS.00978,PITS.01292,PITS.01285,PITS.01282,PITS.01275,PITS.01271,PITS.01266,PmWiki.I18nVariables,PITS.01262,PITS.01260,PITS.01263,PITS.01253,PITS.01255,PITS.01242,PITS.01213,PITS.01212,PITS.01188,PITS.01180,PITS.01201,PITS.01217,PITS.01198,PITS.01190,PITS.01192,PITS.01199,PITS.01191,PITS.01132,PITS.01202,PITS.01197,PITS.01184,PITS.01164,PITS.01121,PITS.01127,PITS.01152,PITS.00657,PITS.01157,PITS.00571,PITS.01106,PITS.00796,PITS.00535,PITS.01098,PITS.00266,PITS.00779,PITS.01155,PITS.01156,PITS.01149,PITS.01150,PITS.01141,PmWiki.CustomMarkup,PITS.01125,PITS.00703,PITS.00088,PITS.00976,PITS.01146,PITS.00813,PITS.01126,PITS.01131,PITS.01071,PITS.00802,PITS.01102,PITS.00238,PITS.01114,PITS.01062,PITS.01103,PITS.01104,PITS.00915,PITS.01099,PITS.00396,PITS.01037,PITS.00836,PITS.00998,PITS.01073,PITS.00980,Cookbook.UTF-8,PmWiki.ReleaseNotes,PITS.00407,PITS.00919,PITS.01081,PITS.01066,PITS.00984,PmWiki.ChangeLogArchive
-text=(:Summary: Log of changes made to PmWiki by [[Release(Notes)]]:)\%0aSee [[Cookbook:RecentChanges | the cookbook recent changes page]] for additional updates and activity by other developers, or join the [[PmWiki (/) mailing lists]] to discuss feature development with us.%0a%0a(:Prerelease:Changes made to the [[PmWiki:Subversion | subversion pre-release]] of PmWiki. You can get \%0a[[https://www.pmwiki.org/pub/pmwiki-devel/pmwiki-latest-svn.zip|a full ZIP archive]] of the nightly version, or \%0a[[https://www.pmwiki.org/pub/pmwiki-devel/pmwiki-nightly.zip|a partial export]] with only the files changed since {$Version}.:)\%0a{$:Prerelease}%0a%0a* Add input ''month'' and ''color'' fields.%0a[[#svn-revision-4525]]%0a* Update documentation.%0a%0a!!! Version 2.3.27 (2023-10-23) [[#v2327]]%0a* When merging last edit, if there is no change summary, reuse the last one. %0a* Keep unknown date/time formats for undefined timezone (PITS:01495).%0a* DiffRenderSource() fix for PHP 8, keep ins/del tags on the same line.%0a* The ".diffmarkup" element now has the style "white-space: pre-wrap".%0a* Add new keyword shortcuts Ctrl+B (bold), Ctrl+I (italic), Ctrl+K (link/unlink).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.26 (2023-09-28) [[#v2326]]%0a* Add configurable $InputLabelFmt snippet (PITS:01493).%0a* Add configurable $TrailFmt snippets.%0a* Add $EnableSearchAtLeastOneTerm, default disabled.%0a* Unset upload extensions if size for the extension is set to 0.%0a* Update feeds.php for PHP 8.2 (PITS:01494).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.25 (2023-07-29) [[#v2325]]%0a* Updates for PHP 8.2.%0a* Fix pagelist when 2+ directives on the same line, reported by Simon.%0a* Fix possible bug with internal group(header|footer) directives caused by PRR().%0a* Update documentation.%0a%0a%0a!!! Version 2.3.24 (2023-06-06) [[#v2324]]%0a* Add $EnableUploadMimeMatch.%0a* Add $EnableMergeLastMinorEdit, edit functions MergeLastMinorEdit (based on Cookbook:FuseEdit), SaveChangeSummary (refactored out of HandleEdit).%0a* Fix LogoutCookies() doesn't use a $pagename argument.%0a* PmForm add condition 'validemail' for use in template require.%0a* Add $PmCryptAlgo, pmcrypt() to call password_verify() if it exists. %0a* Refactor HandleDownload() split ServeDownload($filepath, $upname).%0a* Add InsertEditFunction($newfn, $where='%3cPostPage').%0a* Add $AuthFormRespCode.%0a* Add $EnableDownloadRanges, default 1.%0a* When the token is expired, reopen edit form rather than abort.%0a* LocalTimes add $EnableRCListLastEdit.%0a* Update documentation.%0a%0a!!! Version 2.3.23 (2023-05-03) [[#v2323]]%0a* Refactor pmtoken() to use session tokens, enable for core actions.%0a* Add %25pmhlt%25[@(:input pmtoken:)@] helper.%0a* PmForm add $PmFormEnablePmToken.%0a* Refactor @@HandleLogoutA()@@ split @@LogoutCookies()@@. %0a* Fix PRCB() for PHP %3c 7.4.%0a* Update documentation.%0a%0a!!! Version 2.3.22 (2023-04-06) [[#v2322]]%0a* Add scripts/pmform.php, Site.PmFormTemplates.%0a* FmtDateTimeZ() can now accept Unix timestamps.%0a* Pagelists fix bug with multiple category=+A,+B entries.%0a* Update for PHP 8.1 (PITS:01488).%0a* MarkupDirectiveFunctions will now cast numeric arguments to floats.%0a* Prevent errors in custom PageVariables from generating internal server errors (PITS:01489).%0a* Improve inline diff for rare cases (end of page).%0a* Forms/buttons with @@data-pmconfirm="Question"@@ will ask the question before they are submitted.%0a* Update documentation.%0a%0a%0a!!! Version 2.3.21 (2023-03-06) [[#v2321]]%0a* Add $IsPmArchive, $PmArchiveDir.%0a* Sortable tables with %3ctime datetime=""> elements can be sorted by the datetime attribute. Fix for tables with preexisting %3cthead> element.%0a* Updates for PHP8.%0a* Add CSV upload extension.%0a* LocalTimes add mode=3 to show old dates as MM'YY.%0a* Fix bug with multiline $MarkupDirectiveFunctions, reported by Antti Tikanm&auml;ki.%0a* Add $EnableCopyCode and Copy code button to %3cpre> blocks, suggested by Alex Dor&eacute;.%0a* Update PmTOC to work better with Cookbook:SectionEdit.%0a* Update documentation.%0a%0a!!! Version 2.3.20 (2023-02-12) [[#v2320]]%0a* Fix undefined variable warning, reported by Gregor Klari&ccaron;.%0a%0a!!! Version 2.3.19 (2023-02-11) [[#v2319]]%0a* Only set cookie params if headers not sent. %0a* Update for PHP8.2, reported by Dfaure. PageVar() update for PHP 8.%0a* Add variable $DiffPrepareInlineFunction.%0a* PageListCache() remove unused global $PageIndexFile.%0a* Add configurable $LocalCSSDir, $LocalCSSDirUrl.%0a* DownloadUrl() add $FmtV['$LinkDownload'] with current or future download link.%0a* Add pm_recode() helper function (based on PageStore::recodefn), check for more transcode options.%0a* HandleBrowse() add $FmtV['$PageSourceText'].%0a* Add helper function KeepBlock().%0a* Add $FarmPubDirPrefix, pm_servefile(), $ServeFileExts.%0a* Update documentation.%0a%0a!!! Version 2.3.18 (2023-01-15) [[#v2318]]%0a* Refactor scripts/utils.php, add pm_json_encode() (PITS:01486).%0a* EditAutoText() fix for lines ending with multiple backslashes.%0a* PmSyntax optimize/refactor for large pages (cont.), fix inline escaped texts could ignore line markups, add EnableStopwatch.%0a* Notify fix typo in regular expression.%0a* Add $EnableUploadVersions >=10 to rename base.ext to base-1.ext, base-2.ext,...%0a* CondAuth() fix bug with global $AuthList.%0a* Add helper function PRCB() for simpler preg_replace_callback passing variables.%0a* Update scripts/refcount.php for PHP 8, reported by George Murray.%0a* Add PageVariable $PageLogoUrl (PITS:01297).%0a* Update documentation.%0a%0a!!! Version 2.3.17 (2022-12-17) [[#v2317]]%0a* WikiStyles trim class names (PITS:01485).%0a* GUIEditButtons refactor to enable Undo in textarea; allow for custom functions to configure mopen, mclose, and unselect for their buttons.%0a* [[Cookbook:EditHelp|EditHelp]] refactor to allow undo; add shortcuts Ctrl+L convert selection to lowercase, Ctrl+Shift+L to uppercase, Ctrl+Shift+ArrowUp and ArrowDown to swap lines.%0a* Skip upgrade check if $EnableReadOnly.%0a* Fix bug with multiple $MarkupDirectiveFunctions.%0a* Add $EnableBaseNameConfig.%0a* PmSyntax optimize for larger pages (cont.).%0a* Input password add class "inputbox" like the other fields.%0a* CondAuth() added way to check for usergroup permissions.%0a* Update in pagelist.php for PHP 8.%0a* Documentation update.%0a%0a!!! Version 2.3.16 (2022-11-28) [[#v2316]]%0a* Class PPRC add generic callbacks.%0a* IncludeText() update for PHP 8, reported by V.Krishn.%0a* WikiStyle add 'overflow', 'notoc'.%0a* Add PmNonce().%0a* PmTOC update indented link style->classname. %0a* Responsive skin: replace %25pmhlt%25[@[[%3c%3c]]@] with %25hlt html%25[@%3cbr class='clearboth' />@], update PmTOC styles.%0a* $EnableListIncludedPages use class name instead of style. %0a* guiedit.js remove unneeded style.%0a* PmSyntax realign font for nested programming languages in the edit form, optimize for large pages.%0a* Only call session_status() if function exists.%0a* Edit form remove unsafe-inline script.%0a* Revert WikiStyleToClassName(), PrePrintFmt() -- need more work (PITS:01484).%0a* Documentation update.%0a%0a!!! Version 2.3.15 (2022-11-21) [[#v2315]]%0a* CSS pre, code relative/scalable font-size (pmwiki-responsive skin).%0a* PmSyntax add variable --pmsyntax-fontsize-editform and split from --pmsyntax-fontsize [[https://www.pmichaud.com/pipermail/pmwiki-users/2022-November/064936.html|#]].%0a* PmSyntax fix [@[[Highlight]]@] label font size and family (reported by Hans).%0a* Add variable $CookieSameSite default to 'Lax'%0a* Add argument $samesite to pmsetcookie(), default to $CookieSameSite, refactor for old and new PHP versions. %0a* Add function pm_session_start() respecting local configuration.%0a* CSP header add base-uri=self; object-src 'none'.%0a* Add $HTTPHeaders['XSSP'] = 'X-XSS-Protection: 1; mode=block'.%0a* Rewrite GUIButtons logic to avoid unsafe-inline JavaScript.%0a* Refactor WikiStyles, replace inline styles with class names to avoid unsafe-inline CSS.%0a* Refactor PQA(), tables, cells, to replace inline style="..." with class names to avoid unsafe-inline CSS.%0a* Add PrePrintFmt(), refactor PrintFmt(), PrintSkin() to process wiki pages, skin parts, and skin functions to HTML before outputting headers.%0a* Fix XSS vulnerability.%0a* Documentation update.%0a%0a!!! Version 2.3.14 (2022-11-03) [[#v2314]]%0a* Searchbox also escape custom field names.%0a* Prevent double-encoded entities in searchbox (reported by Simon).%0a* Trim $Author (PITS:01208).%0a* Replace autofocus inline JavaScript with attributes.%0a* Edit form: the label next to the "Minor edit" checkbox now toggles the checkbox.%0a* PmSyntax recognize %25pmhlt%25[@(:template requires? ...:)@].%0a* Update for PHP 8. %0a* Obsolete PCCF() from PHP 7.2 not 8.0.%0a* Add array $ObsoleteMarkups, function TraceMarkup(), update Markup(), Markup_e() and ObsoleteMarkup(), to retrieve and show files and line numbers for obsolete/disabled markup rules.%0a* Fix bug with PSFT format %25L.%0a* Update documentation.%0a%0a!!! Version 2.3.13 (2022-10-07) [[#v2313]]%0a* Close potential XSS vulnerability, reported by lukystreik (PITS:01483).%0a* Refactor $MultiFactorAuthFunction, add $FailedLoginsFunction.%0a* Update documentation.%0a%0a!!! Version 2.3.12 (2022-09-25) [[#v2312]]%0a* Stripmagic() cast null to "" and other fixes for PHP 8.%0a* Fix parse error for complex conditionals with empty variables (PITS:01480).%0a* PSFT() and MarkupExpression [@ftime@] add %25L as human readable local timestamp. %0a* MarkupRestore() fix wrong cast to empty string of false-ish values.%0a* PrintAuthForm() split from PmWikiAuth(). %0a* Fix warning for unneeded session_regenerate_id() (reported by George Murray).%0a* Update documentation.%0a%0a!!! Version 2.3.11 (2022-08-30) [[#v2311]]%0a* Add [[PageVariables]] %25pmhlt%25 [@{$GroupHomePage}@], [@{$GroupHomePageName}@], [@{$GroupHomePageTitle}@], [@{$GroupHomePageTitlespaced}@].%0a* Add $MarkupDirectiveFunctions.%0a* Fix stripmagic() for arrays recently broke after PHP8 update.%0a* Update documentation.%0a%0a!!! Version 2.3.10 (2022-08-20) [[#v2310]]%0a* Update for PHP 8.1 (reported by Armin Bühler).%0a* Forms will now prefill wildcard variables from $DefaultUnsetPageTextVars or $DefaultEmptyPageTextVars.%0a* $EnablePmSyntax = 3; will enable syntax highlighting in the edit form by default, without the user clicking on "Highlight". Fix occasional text mis-alignment between the text area and the highlighted block.%0a* Update documentation.%0a%0a!!! Version 2.3.9 (2022-08-18) [[#v239]]%0a* Add non-wildcard $DefaultUnsetPageTextVars to %25pmhlt%25[@(:input default:)@] (reported by Johnny).%0a* PmSyntax handles new selectors pre.pmhlt, code.pmhlt.%0a* Update for PHP 8 (PITS:01478).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.8 (2022-07-22) [[#v238]]%0a* PmSyntax fix for 2 different %25pmhlt%25 [@%25hlt%25@] on the same line (reported by Simon).%0a* Fix broken include when the first page doesn't exist.%0a* Update documentation.%0a%0a!!! Version 2.3.7 (2022-06-28) [[#v237]]%0a* $HTTPHeaders add X-Frame-Options (suggested by Imagine Dragon) and Content-Security-Policy to disallow embedding in external websites by default.%0a* $EnableHighlight will now remember any links to PmWiki variables and restore them after the highlighting, see [[thread->https://www.pmwiki.org/pipermail/pmwiki-users/2022-June/064887.html]].%0a* $EnablePmSyntax will now process %25pmhlt%25[@%25hlt pmwiki%25@] in addition to [@%25pmhlt%25@] blocks, and escaped markup after it will be tentatively highlighted.%0a* Update documentation.%0a%0a!!! Version 2.3.6 (2022-06-19) [[#v236]]%0a* Fixes for PHP 8.%0a* Add form attribute "lang".%0a* Sortable tables allow for table headers to have markup such as bold (except links). It will now use a case-insensitive natural ordering.%0a* Allow for $UploadVerifyFunction to modify $upname.%0a* Add variable $PageIndexTermsFunction.%0a* Searchbox allow for removal of submit button if [@label=""@]; add default [@placeholder="$[Search]"@].%0a* Fix author.php may be included before some variables are defined, reported by Said Achmiz.%0a* $EnableHighlight convert code blocks to plain text, see [[thread->https://www.pmwiki.org/pipermail/pmwiki-users/2022-June/064887.html]].%0a* Documentation update.%0a%0a%0a!!! Version 2.3.5 (2022-05-23) [[#v235]]%0a* Fix broken list=grouphomes (PITS:01477).%0a* Add DisableSkinParts() helper function for recipes.%0a* HandlePostUpload: add @@$FmtV["$filepath"]@@ and @@$FmtV["$upurl"]@@ with the file path and direct URL to the newly uploaded file.%0a* In pmwiki-utils.js, replace forgotten ''let'' with ''var'' (suggested by SteP).%0a* Update for PHP 8.1.%0a* Update documentation.%0a%0a!!! Version 2.3.4 (2022-04-22) [[#v234]]%0a* Fixes for PHP 8 warnings, reported by Siegfried Seibert.%0a* Update documentation.%0a%0a!!! Version 2.3.3 (2022-03-26) [[#v233]]%0a* Fix for PHP 8 warnings, reported by Jean-Patrick Charrey, Dominique Faure and Siegfried Seibert.%0a* Update README.txt and docs/ files, suggested by Simon Davis.%0a* Update documentation.%0a%0a!!! Version 2.3.2 (2022-02-09) [[#v232]]%0a* Allow for $EnableLocalTimes to define custom duration of the pulled page history.%0a* Rename variable $EnableIncludedPages to $EnableListIncludedPages (avoid ambiguity).%0a* Remove $LinkAlt when an embedded picture without an alternative text fails to load.%0a* PmSyntax:%0a** Allow for line breaks \\ inside headings, tables, list items (like the core).%0a** Parallel processing of multiple blocks.%0a* Add scripts/utils.php; move loading of pmwiki-utils.js and PmSyntax to scripts/utils.js.%0a** Add $EnablePmUtils, default enabled.%0a** Parallel processing of the pmwiki-utils.js utility functions.%0a** Move pmwiki-utils.js move to $HTMLHeaderFmt (often prevents page redraw with the TOC/PmToggle/LocalTimes).%0a* Fix bug causing invalid page name when the name is "Group.0".%0a* Fix PHP 8.1.2 warnings, reported by J&uuml;rgen Godau and Dominique Faure.%0a* LocaltTimes fix "rcnew" classes for wikis with the older format.%0a* Update documentation.%0a%0a!!! Version 2.3.1 (2022-01-15) [[#v231]]%0a%0a* Fix the release script which broke the $VersionNum variable and the [@[[#anchor]]@] markup with the PmWiki-responsive skin.%0a%0a!!! Version 2.3.0 (2022-01-15) [[#v230]]%0a* Add PmSyntax, $EnablePmSyntax, $CustomSyntax, [@{$EnabledIMap}@], see Cookbook:PmSyntax, Cookbook:CustomSyntax.%0a* [@(:markup:)@] can now have @@class=norender@@ to only show the source code without processing it.%0a* Updates for PHP 8.1, hide warnings, add PSFT() replacement for strftime() and 2 callbacks, $EnableFTimeNew, update core function calls, add [@%25o@] for the ordinal suffix of the date (PITS:01418).%0a* Notify: @@tz=@@ (timezone) per-user.%0a* PageList add category= argument (PITS:00447, PITS:01475); link= and category= now accept multiple pages, wildcards, and negations (PITS:00908).%0a* [=[[!Category]]=] links can have alternative text (PITS:01095).%0a* Simplify/optimize pmwiki-utils.js when using datasets, simplify sorting of table rows without cloning, add LocalTimes().%0a* Page history diff anchors to also have "id=" attributes in addition to "name=".%0a* Add $EnableLocalTimes (default disabled) and styles, add HandleDiffList().%0a* Add markup %25pmhlt%25[@@2022-01-09T08:35:00Z@]%25%25 output as %3ctime>; localized if $EnableLocalTimes.%0a** Add $CurrentLocalTime in the above format, used by default in $RecentChangesFmt.%0a* Add $EnableRecentUploads (only Site.AllRecentChanges, only if $RecentUploadsFmt not defined).%0a* PmTOC update CSS for properly indented subheadings.%0a* Edit form $EnableIncludedPages, add placeholders to e_changesummary and e_author. Enable $EnableNotSavedWarning, add to sample-config.php. EditHelp to behave more like a word processor, typing "Enter" twice without writing text removes the preceding bullet.%0a* Responsive skin details>summary:hover {color:navy, cursor: pointer;}.%0a* PrintDiff() add classes for the delay between edits: diffday, diffweek, diffmonth, diffyear.%0a* Add helper function @@DownloadUrl($pagename, $path)@@ moved from @@LinkUpload()@@.%0a* Add [=$[ULby]=] i18n string 'uploaded by'.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.145 (2021-12-11) [[#v22145]]%0a* Hide undefined variable notices for PHP8. %0a* Pagelist searches with wrong $SearchPatterns (list=abc argument) will now use $SearchPatterns["default"] rather than an empty array (effectively all pages). This is to allow admins to limit search locations.%0a* Obsolete markups: change &#9888; emoji for entity [=&#9888;=] (emoji doesn't work in non-UTF8 wikis).%0a* Update documentation.%0a%0a!!! Version 2.2.144 (2021-11-06) [[#v22144]]%0a* Fix CmpPageAttr() for PHP 8 (suggested by Chris Caputo).%0a* Optimize conditional "exists" if called many times, like from a pagelist.%0a* Allow for CondExists(), MatchPageNames(), and MatchNames() to be called with a $caseinsensitive argument set to ''false'' (default case insensitive is ''true'' like before).%0a* Update intermap.txt for Meatball wiki (PITS:01472).%0a* Update documentation.%0a%0a!!! Version 2.2.143 (2021-10-02) [[#v22143]]%0a* Prevent PHP from crashing with older markups and patterns.%0a* Add ObsoleteMarkup(). Obsolete markup rules are now disabled and will appear framed with a "warning" icon.%0a* Update documentation.%0a%0a!!! Version 2.2.142 (2021-08-31) [[#v22142]]%0a* Mute some PHP notices.%0a* Add form attributes autofocus, accept.%0a* Update documentation.%0a%0a!!! Version 2.2.141 (2021-07-09) [[#v22141]]%0a* Add $MultiFactorAuthFunction.%0a* Add $PageIndexFoldFunction.%0a* Update documentation%0a%0a!!! Version 2.2.140 (2021-06-26) [[#v22140]]%0a* Fix warnings for undefined variables in PHP 8 (PITS:01461).%0a* Update pub/drt-utils.js to use the new API function call for Highlight.js, the old one having been deprecated. This change requires Highlight.js version 10.7.0 or newer (currently 11.0.0).%0a* Update documentation.%0a%0a!!! Version 2.2.139 (2021-05-05) [[#v22139]]%0a* Remove empty title attributes, reported by Martin Cuno.%0a* Hide warning in pagelist.php for PHP 8, reported by Dominique Faure.%0a* Hide warning in wikiwords.php for PHP 8, reported by Jue (PITS:01461).%0a* Update documentation.%0a%0a!!! Version 2.2.138 (2021-03-02) [[#v22138]]%0a* Fix details summary incorrectly escaped HTML, reported by Jack Applin (PITS:01465).%0a* Update documentation.%0a%0a!!! Version 2.2.137 (2021-02-26) [[#v22137]]%0a* Fix bug with twice encoded entities in PQA() quoted arguments.%0a%0a!!! Version 2.2.136 (2021-02-26) [[#v22136]]%0a* Fix XSS vulnerability for WikiStyles reported today by Igor Sak-Sakovskiy.%0a* The PQA() function accepts a second argument $keep default true.%0a%0a!!! Version 2.2.135 (2021-01-31) [[#v22135]]%0a* Fix a number of PHP8 compatibility issues. Report others at PITS:01461.%0a* Add pmtoken(), AutoCheckToken() currently transparent.%0a* Blocklists: disabled a defunct one.%0a* PmTOC: rewrite handling of section editing links.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.134 (2020-11-30) [[#v22134]]%0a* Update documentation.%0a%0a!!! Version 2.2.133 (2020-10-25) [[#v22133]]%0a* Escape unintended variable evaluation in link tooltip titles, reported by Finar.%0a* Responsive skin css: remove ul/ol forced padding (clips numbered list markers in long lists, reported by Colin Cody; complex to override cross-browser).%0a* Add image extensions WEBP and APNG (PITS:01454) and upload extensions.%0a* Fix potential vulnerability to CWE-384: Session Fixation, reported by Dominique Faure. Add $EnableAuthPostRegenerateSID default enabled.%0a* RecipeCheck - only inject CSS when the action is called.%0a* Update documentation.%0a%0a!!! Version 2.2.132 (2020-09-30) [[#v22132]]%0a* Update documentation.%0a%0a!!! Version 2.2.131 (2020-08-30) [[#v22131]]%0a* Update documentation.%0a%0a!!! Version 2.2.130 (2020-07-04) [[#v22130]]%0a* Update documentation.%0a%0a!!! Version 2.2.129 (2020-05-21) [[#v22129]]%0a* Mute some PHP notices.%0a* Copy "simpletable" styles from the "pmwiki-responsive" skin into the old "pmwiki" skin.%0a* Update documentation.%0a%0a!!! Version 2.2.128 (2020-04-26) [[#v22128]]%0a* Strip some trailing spaces and convert some tabs to spaces.%0a* Add comments next to preg_replace() and create_function() where old addons may cause PHP deprecation notices.%0a* Mute some PHP notices.%0a* Print the invalid pagename in the error message.%0a* Update documentation.%0a%0a!!! Version 2.2.127 (2020-03-23) [[#v22127]]%0a* Mute some PHP "undefined variable" notices.%0a* Responsive skin set #wikiedit textarea max-height: 60vh (after discussion+tests at PmWiki:Skins-Talk). %0a* Prefix PmTOC classes "pmtoc-show" and "pmtoc-hide" to avoid processing by other frameworks (reported by Finar).%0a* Add Skins:SkinChange to the core, enabled by either of the variables $EnableAutoSkinList and/or $PageSkinList.%0a* Add FileSizeCompact() and DiffTimeCompact() (can be used by recipes).%0a* Add $FmtV["$upresult"] can be intercepted by recipes.%0a* Update documentation.%0a%0a!!! Version 2.2.126 (2020-02-01) [[#v22126]]%0a* Mute some "Undefined" notices. %0a* Fix caches.php to write an updated .htaccess format.%0a* Fix bug with $PmTOC['MinNumber'] = -1 reported by SteP.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.124, 2.2.125 (2020-01-27) [[#v22124]] [[#v22125]]%0a* Hide .PmTOCdiv if empty.%0a* Add $SetCookieFunction.%0a* Add $ToggleNextSelector, see Cookbook:ToggleNext.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.123 (2019-12-31) [[#v22123]]%0a* Allow for [[Links#escaped | escaped [@[=link address=]@]]] to have any special characters, including quotes, parentheses and pipes.%0a* Fix PmXMail when the link contains a quote, and to work from headers, footers and sidebars.%0a* Add [[forms|form]] attribute "formnovalidate" (suggested by Robert Riebisch).%0a* Allow [[table of contents]] to work better with Cookbook:SectionEdit (reported by Johan Bengtsson).%0a* Mute a number of PHP notices for undefined variables. %0a* Add that "URL" means in browser in sample-config.php (PITS:01448). %0a* Add Cookbook:RecipeCheck in diag.php.%0a* Refactor functions that handle $EnableRCDiffBytes to show the deltas in the page histories.%0a* Remove $EnableRelativePageVars from sample-config.php (confusing, PITS:01145).%0a* Add upload extensions [[https://developers.google.com/speed/webp | @@webp@@ ]] image format and [[https://www.opus-codec.org/ | @@opus@@]] audio codec.%0a* Update documentation.%0a%0a!!! Version 2.2.122 (2019-11-19) [[#v22122]]%0aVersion 2.2.121 was released by mistake and contained some experimental code that was meant to be tested first.%0a* ObfuscateLinkIMap: Fix bug with special or international characters in custom subject fields, reported by FidelioEspoir.%0a* Add $DefaultUnsetPageTextVars, $DefaultEmptyPageTextVars.%0a* Mute "Uninitialized string offset messages" for error_reporting(E_ALL), reported by DFaure.%0a* Fix PmTOC, when NumberedHeadings is enabled, to number headings even when the TOC would not be created.%0a* Add [@{$$EachCount}@] pagelist template pseudovariable, containing the count for the current "each" loop.%0a* Add $InputAttrs @@role@@ and @@aria-*@@ form attributes, allow aria-\\w* attributes for the [@(:searchbox:)@] field.%0a* Update documentation.%0a%0a!!! Version 2.2.120 (2019-10-13) [[#v22120]]%0a* Add @@(:[[forms#datalist|input datalist]]:)@@ form element.%0a* Add [@(:details summary="...":)...(:detailsend:)@] [[block markup]].%0a* Fix bugs with guiedit.php/guiedit.js reported by FidelioEspoir.%0a* PmTOC: add max-height and overflow-auto to the block.%0a* Update documentation.%0a%0a!!! Version 2.2.119 (2019-10-03) [[#v22119]]%0a* Update for PHP 7.4 "string offset with curly braces is deprecated".%0a* Add @@required="required"@@ attributes to input author/uploader fields when $EnableUploadAuthorRequired or $EnablePostAuthorRequired are set.%0a* Add @@required="required"@@ attributes to the "upload file" element (to prevent posting the form without an attached file).%0a* Add ObfuscateLinkIMap() based on Cookbook:DeObMail, default disabled.%0a* GuiEdit: Add FixUrl button based on Cookbook:FixURL default disabled, add $EnableGuiEditFixUrl;%0a* EditForm: Add features from Cookbook:NotSavedWarning, default disabled, add $EnableNotSavedWarning.%0a* EditForm: Add scroll position to edit text area will be remembered on save-and-edit and preview.%0a* EditForm: Add $EnableEditAutoText and features from Cookbook:EditHelp. %0a* Add $PmTOC, [@(:toc:)@], [@(:notoc:)@], based on a simplified variant of Cookbook:AutoTOC.%0a* Fix bug with pagelist while preview, reported by Finar.%0a* Add $EnableSortable, basic sortable tables based on public domain code from [[https://github.com/tofsjonas/sortable|Jonas Earendel]].%0a* Add $EnableRCDiffBytes based on Cookbook:DeltaBytesRecentChanges. %0a* Add $EnableSimpleTableRowspan replicating features of Cookbook:RowspanInSimpleTables.%0a* Add $WikiPageCSSFmt enables CSS in a wiki page, based on Cookbook:LocalCSS.%0a* Add $EnableHighlight code highlight feature compatible with "highlight.js".%0a* Attachlist @@ext=@@ and @@names=@@ arguments now accept patterns and negatives like @@ext=jpg,png@@, @@ext=-pdf@@, or @@names=-th*---*.jpg@@.%0a* Attachlist: allow both ext= and names= to cohabitate.%0a* MarkupExpr: remove unused declaration.%0a* EditAutoText: use event.ctrlKey and event.shiftKey instead of 2 functions.%0a* Redirect: add 3rd argument $redirecturl which can be provided directly%0a* Add $AddLinkCSS['othergroup'] and $AddLinkCSS['samedomain'] can contain link CSS classes.%0a* Update documentation.%0a%0a!!! Version 2.2.118 (2019-08-28) [[#v22118]]%0a* Add $EnablePreviewChanges and PreviewDiff() based on Cookbook:PreviewChanges.%0a* Update documentation.%0a%0a!!! Version 2.2.117 (2019-07-28) [[#v22117]]%0a* Add $EnableUploadAuthorRequired default to $EnablePostAuthorRequired, add Author field in upload form.%0a* Implement partial content indirect downloads (suggested by Christopher Cox, required for embedded video on iOS).%0a* Add allowed upload video extensions 'm4v' and '3gp'.%0a* Fix lowercase "Content-Disposition" header for downloads.%0a* Update documentation.%0a%0a!!! Version 2.2.116 (2019-06-19) [[#v22116]]%0a* Add $PageListVarFoldFn, defaults to $StrFoldFunction, for international case-insensitive matches of page (text) variables.%0a* Update documentation.%0a%0a!!! Version 2.2.115 (2019-05-13) [[#v22115]]%0a* Responsive skin: Simplify CSS for custom backgrounds, remove repetition.%0a* Update documentation.%0a%0a!!! Version 2.2.114 (2019-04-02) [[#v22114]]%0a* Fix bug with input select lists where an already defined id= attribute may get overwritten.%0a* Vardoc: Move the id= attribute from a standalone anchor to the definition term element (allows ":target" styling).%0a* Vardoc: Localize table header and link text (suggested by Michael F. Wolff).%0a* Add $SkinTemplateIncludeLevel, IncludeTemplate skin directive.%0a* Add input "tel" type, and attribute "pattern". Fix classnames of new input types.%0a* Update documentation.%0a%0a!!! Version 2.2.113 (2019-03-01) [[#v22113]]%0a* Add input button element.%0a* Add $EnableInputDataAttr.%0a* Update documentation.%0a%0a!!! Version 2.2.112 (2019-01-09) [[#v22112]]%0a* Fix switch break for PHP 7.3, reported by Hans-Jürgen Godau.%0a* Update documentation.%0a%0a!!! Version 2.2.111 (2018-12-08) [[#v22111]]%0a* Add @@$[==]Id$@@ subversion keyword to pmwiki.php, requested by Peter Gragert.%0a* Fix responsive skin search form max-width in desktop mode, reported by Moni Kellermann. %0a* Add $DenyHtaccessContent variable. Update protective .htaccess files.%0a* Add tz= and locale= arguments to [@{(ftime )}@] [[MarkupExpression(s)]] (PHP5+).%0a* Update documentation.%0a%0a!!! Version 2.2.110 (2018-11-05) [[#v22110]]%0a* Fix [@{(substr )}@] markup expression with non-number arguments could cause warnings, reported by Simon.%0a* Add $PageListSortCmpFunction, default to current 'strcasecmp'.%0a* Add global $MarkupMarkupLevel which changes when the processing is inside [@(:markup:)@] blocks.%0a* Fix inconsistent white space with inline @@[=[@escaped code@]=]@@, reported by Dannybpng.%0a* Update documentation.%0a%0a!!! Version 2.2.109 (2018-07-09) [[#v22109]]%0a* Update pmcrypt() to exclude negative -@groups from hash checking.%0a* Add $EnableMarkupDiag to backtrace all markup calls, suggested by ChuckG.%0a* Fix Path InterMap broken in 2.2.108, reported by ChuckG.%0a* Update documentation.%0a%0a!!! Version 2.2.108 (2018-07-05) [[#v22108]]%0a* Add $PCCFOverrideFunction.%0a* $AuthUserPageFmt can now be an array of page names.%0a* Add $PageCacheFileFmt default to "%25s/%25s,cache" (like before), allowing custom cache filenames.%0a* Form checkbox labels now have the same tooltip title as the checkbox.%0a* Add [@%25reversed%25@] WikiStyle.%0a* RefCount: add label to checkbox, class to table.%0a* Vardoc: fix markup call, reported by Hans-Jürgen Godau.%0a* pmcrypt() return false when salt appears to be some old PmWiki attribute.%0a* Default InterMap PmWiki URLs have now the HTTPS protocol (suggested by Simon).%0a* Update documentation.%0a%0a!!! Version 2.2.107 (2018-02-02) [[#v22107]]%0a* Fix Forms and Pagelists warnings in PHP 7.2, reported by DFaure.%0a** Fix order=title broken with the previous commit, reported by ChuckG.%0a* Add $MailFunction.%0a* Add ".rtl *" styles.%0a* Update documentation.%0a%0a!!! Version 2.2.106 (2017-12-01) [[#v22106]]%0a* Add pmsetcookie(), $EnableCookieSecure, $EnableCookieHTTPOnly (PITS:01425).%0a* Refactor PageListSort() to make it work for PHP 7.2 without requiring create_function().%0a** Fix ordering broken with the previous commit, reported by ChuckG.%0a* Fix `wikiword markup, reported by Steve Glover.%0a* Update documentation.%0a%0a!!! Version 2.2.105 (2017-11-07) [[#v22105]]%0a* Refactor @@HandleUpload()@@ - add @@UploadSetVars($pagename)@@ to allow custom upload add-ons to set variables.%0a* Fix bug with PQA() that caused invalid HTML with attributes glued together.%0a%0a!!! Version 2.2.104 (2017-10-11) [[#v22104]]%0a* Fix bug with WikiTrails introduced with 2.2.103 (PITS:01422).%0a%0a!!! Version 2.2.103 (2017-10-01) [[#v22103]]%0a* Add pagelist list=grouphomes and fmt=#grouphomes.%0a* Update all scripts for PHP 7.2 (bugtrack).%0a* Make responsive skin also compatible with PmWiki versions 2.2.55 or earlier.%0a* Add *.vtt (web subtitles) as allowed upload extension.%0a* Fix Charset headers for xlpage-iso-*.php%0a* Refactor PageStore class to remove create_function() calls.%0a* Add "title" attribute to input form elements.%0a* Re-add the definition of the $rrep variable in Markup expressions, reported by ChuckG.%0a* Add $AuthLDAPReferrals to set LDAP_OPT_REFERRALS if needed, reported by Kirk Zurell.%0a* Fix missing $pagename for WikiWord links.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.102 (2017-08-05) [[#v22102]]%0a* Revert fix for PITS:01300, the markup engine breaks when a text variable content is longer than 2699 characters.%0a* Add a text box in [[SiteAdmin.AuthList]] to allow filtering of the results.%0a%0a!!! Version 2.2.101 (2017-07-30) [[#v22101]]%0a* Rename function PageStore to __construct, to prevent PHP 7 strict or deprecated notices.%0a%0a!!! Version 2.2.100 (2017-07-30) [[#v22100]]%0a* Workaround around Subversion incompatibility with @@$Author[==]:...$@@ string not intended as SVN keyword.%0a* Responsive skin: add spacing above the #wikitext block, similar to the default skin.%0a* Update documentation.%0a%0a!!! Version 2.2.99 (2017-06-26) [[#v2299]]%0a* Fix Preview didn't show changes due to $ROSPatterns (PITS:01408).%0a* Remove markup rules for previewing author signature not needed anymore.%0a* Fix bug and warning appearing in PHP 4 installations.%0a* Update Wikipedia intermap entry (secure https).%0a* Fix bug with [@[[%3c%3c]]@] styles "clear:both".%0a* {-Fix incomplete definition of page text variable halts the rendering (PITS:01300).-}%0a* Fix $Version didn't work as a vardoc link.%0a* Update documentation.%0a%0a!!! Version 2.2.98 (2017-05-31) [[#v2298]]%0a* Fix WikiStyles where "pct" was incorrectly dropped from some classnames (PITS:01404).%0a* Hide warning about missing intermap file.%0a* Add pmwiki-responsive skin, based on modified Skins:2016.%0a* Responsive skin: Hide icon if PageActions empty. Fix "close" icon didn't appear for the PageActions block. Unrestrict menu height. Switching from portrait view with menu open to landscape: page should not be greyed out (PITS:01406). Landscape view: fix overflow for search form in Epiphany (likely Safari and other AppleWebKit-based browsers). Move the %3cmain> tag up to allow scrolling of the whole #wikibody. Large preformatted blocks will also scroll in the mobile view. Set limit for desktop layout to 50em~800px. Scrollable tables via cosmetic JavaScript.%0a* Both skins: Set default text color (PITS:01406).%0a* Fix Deprecated notice for Site.AuthUser password attributes.%0a* Vardoc links now use MakeLink() to allow a custom LinkPage function, fix bug reported by ChuckG.%0a* $InclCount now counts per browsed page (for multi-page processing recipes).%0a* Make $markupid variable available to markup replacement functions.%0a* Refactor function ReplaceOnSave to allow easier calling from recipes (PITS:01407).%0a* Enable *.mkv as allowed video extension.%0a* Fix bug with attachlist markup.%0a* Fix alternative bold/italics markup in sample-config.php (PITS:01400).%0a* Fix lost space in markup tables, replace markup tables %3ccode> with %3cpre> and add style "pre-wrap" (reported by ChuckG).%0a* Update documentation.%0a%0a!!! Version 2.2.97 (2017-04-07) [[#v2297]]%0a* Fix bug concerning $ScriptUrl when $EnablePathInfo is set, introduced in 2.2.96, reported by 3 users.%0a* Update documentation.%0a%0a!!! Version 2.2.96 (2017-04-05) [[#v2296]]%0a* Fix severe PHP code injection vulnerability, reported by Gabriel Margiani.%0a** Filter $pagename to exclude certain characters.%0a** Add $pagename_unfiltered in case a recipe requires it.%0a* Update documentation.%0a%0a!!! Version 2.2.95 (2017-02-28) [[#v2295]]%0a* Update documentation.%0a%0a!!! Version 2.2.94 (2017-01-31) [[#v2294]]%0a* Strip both .html and .htm extensions (Cookbook:HtmlUrls-Talk).%0a* Clear $PageExistsCache[$pagename] when a page is created or deleted (PITS:01401).%0a* Update documentation.%0a%0a!!! Version 2.2.93 (2016-12-31) [[#v2293]]%0a* Update documentation.%0a%0a!!! Version 2.2.92 (2016-11-30) [[#v2292]]%0a* Skip checking for $AllowPassword if empty or false.%0a* Enable FmtPageName() to expand PageVariables with asterisks.%0a* Update documentation.%0a%0a!!! Version 2.2.91 (2016-09-30) [[#v2291]]%0a* Update documentation.%0a%0a!!! Version 2.2.90 (2016-08-31) [[#v2290]]%0a* Add action parameter to upload form URL.%0a* Add @@imgonly@@ and @@imgcaption@@ CSS classes (PITS:01390).%0a* Fix plus-links with suffix [@[[Page|+]]s@] (PITS:01392).%0a* Update documentation.%0a%0a!!! Version 2.2.89 (2016-07-30) [[#v2289]]%0a* Add identifiers to Site.EditForm elements to enable easier styling.%0a* Add $SimpleTableDefaultClassName, default unset (PITS:00638).%0a* Add temporary $new['=html'] entry, in SaveAttributes().%0a* Fix superfluous line breaks in SiteAdmin.AuthList.%0a* Add optional placeholder attribute in [@(:searchbox:)@].%0a* Add $SearchBoxInputType, default 'text'.%0a* Set $HTMLStylesFmt via SDVA() in vardoc.php, urlapprove.php, and xlpage-utf-8.php.%0a* Fix vardoc.php to recognize and link variables $pagename, $Author, $Skin, and to sort case insensitively.%0a* Update documentation.%0a%0a!!! Version 2.2.88 (2016-06-29) [[#v2288]]%0a* Fix invalid HTML output of WikiTrail links (PITS:01388).%0a* Add 4th argument $double_encode to PHSC() for safe replacement of htmlspecialchars().%0a* Add page variable [@{$SiteAdminGroup}@] (PITS:00951).%0a* Update documentation.%0a%0a!!! Version 2.2.87 (2016-05-31) [[#v2287]]%0a* Add $HTMLTagAttr, to allow inclusion of lang, manifest and other attributes.%0a* Add $EnableRevUserAgent, $FmtV['$DiffUserAgent'].%0a* Fix relative link in [[Site.UploadQuickReference]].%0a* Update documentation.%0a%0a!!! Version 2.2.86 (2016-04-28) [[#v2286]]%0a* Fix PageStore() for PHP 7.%0a* Fix $DefaultPasswords for PHP 7.%0a* Update documentation.%0a%0a!!! Version 2.2.85 (2016-03-31) [[#v2285]]%0a* Add svg(z) and SVG(Z) as embeddable image extensions (PITS:00197, PITS:00435).%0a* Add *.svgz as allowed upload extension.%0a* Update documentation.%0a%0a!!! Version 2.2.84 (2016-02-21) [[#v2284]]%0a* Update/fix URL in UPGRADES.txt (PITS:01378).%0a* Fix indent and outdent CSS for RTL languages (PITS:01379).%0a* Add $EnableLinkPlusTitlespaced (PITS:01140).%0a* Update documentation.%0a%0a!!! Version 2.2.83 (2015-12-31) [[#v2283]]%0a* Update documentation.%0a%0a!!! Version 2.2.82 (2015-11-30) [[#v2282]]%0a* Enable stripmagic() to process arrays recursively.%0a* Update documentation.%0a%0a!!! Version 2.2.81 (2015-10-31) [[#v2281]]%0a* Fix single line PageTextVariable definition (reported by HansB).%0a* Add .ltr and .rtl CSS classes for UTF-8.%0a* Update documentation.%0a%0a!!! Version 2.2.80 (2015-09-30) [[#v2280]]%0a* Modify [@(:searchbox:)@] to use type="search" input.%0a* Update documentation.%0a%0a!!! Version 2.2.79 (2015-08-27) [[#v2279]]%0a* Modify guiedit.js::insMarkup() to accept a custom function name processing the text, and a custom id for the text area.%0a* Add CSS basic colors 'fuchsia','olive','lime','teal','aqua','orange' and 'grey' as WikiStyles (PITS:01373).%0a* Add $EnableROSEscape, default 0 (PmWiki:TextFormattingRules-Talk).%0a* Remove 'target' attribute in input forms (breaks PmForm).%0a* Add HTML5 input types email, url, number, date, search.%0a* Add attribution in script comments.%0a* Update documentation.%0a%0a!!! Version 2.2.78 (2015-07-21) [[#v2278]]%0a* Update $RobotPattern with current user agents.%0a* Accept 'target' attribute in input forms.%0a* Update documentation.%0a%0a!!! Version 2.2.77 (2015-06-19) [[#v2277]]%0a* Add generic function MakeNames() to process MakePageNames().%0a* Extend [@(:if attachments:)@] to specify file and page names (PITS:01087).%0a* Optimize PageStore::recode() to cache utf8_decode and utf8_encode callbacks.%0a* Add [@{$WikiTitle}@] page variable.%0a* Update documentation.%0a%0a!!! Version 2.2.76 (2015-05-31) [[#v2276]]%0a* Recover posted arrays (indexed or associative, not multidimensional) when a password is required (PITS:00835, PITS:01110).%0a* Add label argument to checkbox and radio inputs (PITS:01367).%0a* Enable PHSC() to process arrays recursively.%0a* Enable processing of arrays as input values (PITS:01032).%0a* Add CSS classes to standalone image div and caption (PITS:00489, PITS:00497).%0a* Update documentation.%0a%0a!!! Version 2.2.75 (2015-04-26) [[#v2275]]%0a* Fix uploads to respect $EnableReadOnly.%0a* Escape HTML special characters when printing failed callback creation.%0a* Add [[Functions#pmcrypt | pmcrypt()]] for PHP 5.6 compatibility.%0a* Add markup for HTML5 [[PmWiki:BlockMarkup#semantic | semantic ]] tags article, section, nav, header, footer, aside, address.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.74 (2015-03-28) [[#v2274]]%0a* Allow translation of the "OK" string in forms (PITS:01363).%0a* Update documentation.%0a%0a!!! Version 2.2.73 (2015-02-28) [[#v2273]]%0a* Update documentation.%0a%0a!!! Version 2.2.72 (2015-01-27) [[#v2272]]%0a* Enable markup debug messages even when debug_backtrace() is not available.%0a* Add $AbortFunction.%0a* Restore ability to set a custom $MarkupWordwrapFunction, add $MarkupWrapTag (related to earlier fix for PITS:01360).%0a* Update documentation.%0a%0a!!! Version 2.2.71 (2014-12-29) [[#v2271]]%0a* Add $DraftActionsPattern.%0a* Enable "input default source" parameter to contain multiple pages.%0a* Enable "pagelist request" parameter to contain a list of (dis)allowed parameters.%0a* Enable Markup() backtrace for ?action=ruleset.%0a* Fix strict warning for blacklisted uploads (PITS:01359).%0a* Fix wrong hard wrap in [@(:markup:)@] code examples (PITS:01360).%0a* Update documentation.%0a%0a!!! Version 2.2.70 (2014-11-08) [[#v2270]]%0a* Update documentation.%0a%0a!!! Version 2.2.69 (2014-10-13) [[#v2269]]%0a* Fix DRange() for ISO-8601 dates +/- X days.%0a* Fix wording in [[Site.UploadQuickReference]].%0a* Update documentation.%0a%0a!!! Version 2.2.68 (2014-09-01) [[#v2268]]%0a* Add Skins: InterMap prefix.%0a* Add signature to [[Site.EditQuickReference]] (PITS:01350).%0a* Allow $PostConfig entries to be launched after per-page customization, before other stdconfig.php inclusions if values%3c50.%0a* Add [[WikiStyles]] clear, min and max width and height (PITS:00860), fix [=%25p class=...%25=] with more than one space.%0a* Update documentation.%0a%0a!!! Version 2.2.67 (2014-08-02) [[#v2267]]%0a* Fix InputDefault/PageTextVariables inconsistency (PITS:01337).%0a* Update documentation.%0a%0a!!! Version 2.2.66 (2014-07-02) [[#v2266]]%0a* Fix Author in Notifcations when deleting pages (PITS:01112).%0a* Exclude "_" to be considered as a function name in various $*Patterns.%0a* Update documentation.%0a%0a!!! [[#v2265]] Version 2.2.65 (2014-06-07)%0a* Fix [={$$PseudoVars}=] containing [={*$PageVars}=] in [[PageList Templates]].%0a* Fix wording in scripts/.htaccess (PITS:01345).%0a* Fix fixperms() if directory owner is root (PITS:01346).%0a* Update documentation.%0a%0a!!! [[#v2264]] Version 2.2.64 (2014-05-08)%0a* Add [={(mod)}=] [[PmWiki/MarkupExpressions | markup expression]].%0a* Add tel: and geo: [[PmWiki/LinkSchemes | URI schemes]].%0a* Add $SysMergePassthru to allow Merge() to use passthru() instead of popen().%0a* Update documentation.%0a%0a!!! [[#v2263]] Version 2.2.63 (2014-04-05)%0a* Allow [[PmWiki/Forms | form]] elements to have a dash in the attribute names.%0a* Strip magic slashes for pagelist/search request vars.%0a* Allow input attributes readonly, placeholder and autocomplete for HTML5 sites.%0a* Update documentation.%0a%0a!!! [[#v2262]] Version 2.2.62 (2014-02-28)%0a* Add $CallbackFnTemplates["return"].%0a* Add 4th argument to Markup_e() - $template.%0a* Add $EnableTableAutoValignTop.%0a* Update documentation.%0a%0a!!! [[#v2261]] Version 2.2.61 (2014-01-31)%0a* Add $TableCellAlignFmt.%0a* Remove unused snippet in prefs.php (reported by Oliver Betz).%0a* Remove unused calls to PSS() (reported by John Rankin).%0a* Update documentation.%0a%0a!!! [[#v2260]] Version 2.2.60 (2014-01-12)%0a* Revert to previous pmwiki.css file.%0a%0a!!! [[#v2259]] Version 2.2.59 (2014-01-11)%0a* Fix checking multiple posted fields in blocklist.php (reported by Randy Brown).%0a* Allow Markup_e() to accept a callback as well as code.%0a* Fix "+" shortcut for internal anchor links.%0a* Disable HTML cache if count($_GET)>1 not >2 (PITS:01278).%0a* Fix query string if a "?" is encoded to uppercase "%253F".%0a* Replace CSS font sizes from points (fixed) to percents (relative) for the default skin.%0a* Fix nested conditionals containing $pagename (reported by Benjamin Grassineau).%0a* Update documentation.%0a%0a!!! [[#v2258]] Version 2.2.58 (2013-12-25)%0a* Allow $LinkUpload to be usable in [=(:attachlist:)=].%0a* Enable customizations of [=(:input auth_form:)=].%0a* Remove unused variable $Block in FormatTableRow(), reported by Klonk.%0a* Fix $EnableBlocklistImmediate to check all posted fields for blocked terms.%0a* Add $GLOBALS['MarkupToHTML'] to pass parameters such as $pagename to markup calls.%0a* Update documentation.%0a%0a!!! [[#v2257]] Version 2.2.57 (2013-11-03)%0a* Encode international character used for detection of a recode function.%0a* Enable $IMapLinkFmt['Attach:'] to be used in [[PmWiki/PageDirectives#attachlist|[=(:attachlist:)=]]] links.%0a* Add $MakePageNameSplitPattern.%0a* Update documentation.%0a%0a!!! [[#v2256]] Version 2.2.56 (2013-09-30)%0a* Work in progress to remove the core dependency of the deprecated "eval" feature of the preg_replace() function (PITS:01319).%0a* Add functions PCCF(), PPRE(), PPRA(), Markup_e(), migrating all core calls to these functions.%0a* Fix detection of proper PageStore->recodefn.%0a* Update documentation.%0a%0a%0a!!! [[#v2255]] Version 2.2.55 (2013-09-16)%0a* Add $EnableDraftAtomicDiff (PITS:01007).%0a* Update documentation.%0a%0a!!! [[#v2254]] Version 2.2.54 (2013-08-13)%0a* Fix broken page history for draft pages, reported by ChuckG.%0a* Update documentation.%0a%0a!!! [[#v2253]] Version 2.2.53 (2013-07-08)%0a* Show a message when the post has been blocked because of too many unapproved links.%0a* Update documentation.%0a%0a!!! [[#v2252]] Version 2.2.52 (2013-06-08)%0a* Add docx, pptx, xlsx upload extentions.%0a* Hide E_DEPRECATED warnings for PHP 5.5.%0a* Update documentation.%0a%0a!!! [[#v2251]] Version 2.2.51 (2013-05-08)%0a* Update url to MoinMoin's blocklist.%0a* Comment-out blacklist.chongqed.org as the domain appears to have expired.%0a* Fix possible XSS vulnerability in prefs.php, discovered today.%0a* Fix access keys to be a single character.%0a* Fix $AuthorPage if there is a group named the same as the author (PITS:01259).%0a* Update documentation.%0a%0a!!! [[#v2250]] Version 2.2.50 (2013-04-08)%0a* Update documentation.%0a%0a!!! [[#v2249]] Version 2.2.49 (2013-03-09)%0a* Add $UploadBlacklist array.%0a* Update documentation.%0a%0a!!! [[#v2248]] Version 2.2.48 (2013-02-11)%0a* Fix bug introduced yesterday with some links, reported by Michael Weiner (PITS:01308).%0a%0a!!! [[#v2247]] Version 2.2.47 (2013-02-10)%0a* Enable tooltip titles for links to anchors on the same page.%0a* Update documentation.%0a%0a!!! [[#v2246]] Version 2.2.46 (2013-01-07)%0a* Add third parameter to fixperms() explicitly setting the permissions.%0a* Add $UploadPermAdd and $UploadPermSet variables.%0a* Update documentation.%0a%0a!!! [[#v2245]] Version 2.2.45 (2012-12-02)%0a* Cleanup some PHP notices (PITS:01304).%0a* Update documentation.%0a%0a!!! [[#v2244]] Version 2.2.44 (2012-10-21)%0a* Better display of whitespace in page histories.%0a* Fix definition for PageTextVariables containing a dash (PITS:00978).%0a* Update documentation.%0a%0a!!! [[#v2243]] Version 2.2.43 (2012-09-20)%0a* Allow for HTML attribute names to contain dashes, eg. data-transition, data-role etc.%0a* Remove warning when previewing Site.EditForm.%0a* Update documentation.%0a%0a!!! [[#v2242]] Version 2.2.42 (2012-08-20)%0a* Convert the line-endings in the docs/ directory to \r\n compatible with Windows.%0a* Modify PHSC() to call htmlspecialchars() with a single-byte encoding argument.%0a* Update documentation.%0a%0a!!! [[#v2241]] Version 2.2.41 (2012-08-12)%0a* Change $KeepToken to "\034\034" which is compatible with more encodings.%0a* Update documentation.%0a%0a!!! [[#v2240]] Version 2.2.40 (2012-07-21)%0a* Add PHSC() helper function as a replacement of htmlspecialchars() for PHP 5.4 (PITS:01292).%0a* Update documentation.%0a%0a!!! [[#v2239]] Version 2.2.39 (2012-06-25)%0a* Fix URL encoding of attachment links.%0a* Update documentation.%0a%0a!!! [[#v2238]] Version 2.2.38 (2012-05-21)%0a* Fix "Wrong parameter count for utf8_decode" warning, reported by Simon.%0a* Update documentation.%0a%0a!!! [[#v2237]] Version 2.2.37 (2012-05-01)%0a* Add page filename encoding functions.%0a* Better handling of dots in [@[[#anchor_1.2]]@] sections (PITS:01285).%0a* Expand PageVariables in [[PageList templates]] defaults (PITS:01282).%0a* Add test for iconv() and mb_convert_encoding(), refactor recode().%0a* Update documentation.%0a%0a!!! [[#v2236]] Version 2.2.36 (2011-12-28)%0a* Add $EnableOldCharset variable and $page["=oldcharset"] entry.%0a* Refactor PageStore->recode() to recover Windows-1252 characters.%0a* Add exit line to xlpage-iso-8859-2.php (PITS:01275).%0a* Fix difference in defining and removing "invisible" PTVs.%0a* Update documentation.%0a%0a!!! [[#v2235]] Version 2.2.35 (2011-11-11)%0a* Fix critical PHP injection vulnerability (PITS:01271, reported by Egidio Romano).%0a* Important change: Disable script loading from XLPage().%0a* Move the processing of [@[[link|+]]@] inside LinkPage() and delete markup rule from stdmarkup.php.%0a* Modify MakeLink() to better handle link titles.%0a* Add optional $LinkTitleFunction allowing recipes to customize the link titles.%0a* Fix ReadTrail() to better handle links with titles.%0a* Add title attributes for the HTML templates in the @@ $LinkPage*Fmt @@ variables.%0a* Add upload extensions svg, xcf, ogg, flac, ogv, mp4, webm, odg, epub.%0a* Minor optimization for the MarkupExpressions for UTF-8 strings.%0a* Minor optimization of the rendering of page history.%0a%0a!!! [[#v2234]] Version 2.2.34 (2011-10-10)%0a* Add [[PmWiki/MarkupExpressions]] replacements for UTF-8.%0a* Reset timestamps of Site(Admin).AuthUser to 1000000000, used in upgrades.php.%0a* Update documentation.%0a%0a!!! [[#v2233]] Version 2.2.33 (2011-09-23)%0a* Fix locked states for Site and SiteAdmin GroupAttributes (reported by Brijesh Kothari).%0a* Fix intermap.txt entries PITS: and Wikipedia: to point to their current locations.%0a* Fix refcount.php to produce valid HTML (PITS:01266).%0a%0a!!! [[#v2232]] Version 2.2.32 (2011-09-18)%0a* Add required html xmlns attribute to the print skin template.%0a* Add PageStore->recode() function.%0a* Add $DefaultPageCharset array.%0a* Optimize for speed the inline diff for page history when too many lines were added or deleted.%0a* Update and convert to UTF-8 the documentation.%0a%0a%25note%25 Note: Due to a manipulation error, a version 2.2.31 was created before it was ready for a release.%0a%0a!!! [[#v2230]] Version 2.2.30 (2011-08-13)%0a* Fix $Charset definition in iso-8859-*.php files.%0a* Add $EnableRangeMatchUTF8, set it to 1 to enable range matches in UTF-8.%0a* Update documentation.%0a%0a!!! [[#v2229]] Version 2.2.29 (2011-07-24)%0a* Fix Attach links that were broken with the Path fix in 2.2.28.%0a* Add $IMapLocalPath array containing InterMap prefixes that should be treated as local.%0a%0a!!! [[#v2228]] Version 2.2.28 (2011-07-24)%0a* Fix potential XSS vulnerability in refcount.php (PITS:01262).%0a* Fix bug in Path: links (PITS:01260).%0a* Fix potential XSS vulnerability in custom SitePreferences (PITS:01263).%0a* Update documentation.%0a%0a!!! [[#v2227]] Version 2.2.27 (2011-06-19)%0a* Add block WikiStyle [=%25justify%25=] (PITS:01253).%0a* Remove unused %3cvspace> after a redirection (PITS:01255).%0a* Add ?nodiff=1 parameter for page history to disable diff rendering and show only restore links.%0a* Update documentation.%0a%0a!!! [[#v2226]] Version 2.2.26 (2011-05-21)%0a* Fix ReadTrail(), redundant replacing of hashes, already done in MakePageName().%0a* Update documentation.%0a%0a!!! [[#v2225]] Version 2.2.25 (2011-03-22)%0a* Update documentation.%0a%0a!!! [[#v2224]] Version 2.2.24 (2011-02-15)%0a* Add [@{$$PageTrailDepth}@] pseudovariable for [[PageList templates]].%0a* Fix PageVar(), add $authpage array for an authenticated page data, removed $EnablePageVarAuth.%0a* Update documentation.%0a%0a!!! [[#v2223]] Version 2.2.23 (2011-01-25)%0a* Default $EnablePageVarAuth to 0 until the resolution of PITS:01242.%0a%0a!!! [[#v2222]] Version 2.2.22 (2011-01-16)%0a* Add $EnableXLPageScriptLoad to XLPage() to prevent editors from changing the encoding.%0a* PageVariables now respect authentications (PITS:01213).%0a* Add $EnablePageVarAuth.%0a* Update documentation.%0a%0a!!! [[#v2221]] Version 2.2.21 (2010-12-14)%0a* Fix potential XSS vulnerability, reported by DFaure.%0a* Fix invalid HTML for simple table captions, reported by JL.%0a* Fix WikiStyles could work not properly if a value was empty like accesskey="".%0a%0a!!! [[#v2220]] Version 2.2.20 (2010-12-14)%0a* Fix Pagelist [={$$variable}=] didn't work in template none (PITS:01212).%0a* Fix interface access keys in browse mode (PITS:01188).%0a* Add PmL10n: intermap prefix for the Localization/ group on pmwiki.org (PITS:01180).%0a* Fix AuthUser excluding members didn't work (PITS:01201).%0a* Update documentation.%0a%0a!!! [[#v2219]] Version 2.2.19 (2010-11-10)%0a* Update documentation.%0a%0a!!! [[#v2218]] Version 2.2.18 (2010-09-04)%0a* Fix $SaveAttrPatterns to skip nested conditionals (reported by RandyB).%0a* Fix RecentChanges when an edit summary contains the dollar sign (PITS:01217).%0a* Fix RDF feed number of elements (PITS:01198).%0a* Update documentation.%0a%0a!!! [[#v2217]] Version 2.2.17 (2010-06-20)%0a* Add tabindex as a valid form attribute (PITS:01190).%0a* Collapse adjacent insertions in DiffRenderSource (PITS:01192).%0a* Fix HandleDownload to flush() output before exit (PITS:01199).%0a* Fix HandleDownload to respect $EnableIMSCaching (PITS:01191).%0a* Add $PostConfig functions and scripts, loaded after stdconfig.php (PITS:01132).%0a* Add $AuthUserPat variable for the regexp pattern in AuthUserId() (PITS:01202).%0a* Pass $authlist as last parameter to $AuthUserFunctions (PITS:01197).%0a* Fix "exists" conditional to work with old link markup.%0a* Update documentation.%0a%0a!!! [[#v2216]] Version 2.2.16 (2010-05-10)%0a* Allow "exists" conditional to accept wildcards (PITS:01184)%0a* Fix GUI button [=%25center%25=] which didn't work correctly.%0a* Fix incorrectly parsed quote in PQA(), possible script injection (discovered by Hanno Boeck).%0a%0a!!! [[#v2215]] Version 2.2.15 (2010-03-27)%0a* Add @@ (Auth|Edit)Form @@ to auto-translated titles.%0a* Fix [@ (:if auth LEVEL:) @] to respect $HandleAuth (PITS:01164).%0a* Skip loading of the second half of draft.php if $action!="edit".%0a* Fix bug with [@ (:template none:) @] introduced in 2.2.14, reported by Holger.%0a* Fix HandleDownload() to use binary file-read.%0a%0a!!! [[#v2214]] Version 2.2.14 (2010-02-27)%0a* Fix inline styles in WikiTrails (PITS:01121).%0a* Add a negation parameter to pagelist first/last templates (PITS:01127).%0a* Refactor FPLTemplateFormat(), move repeated code blocks into FPLExpandItemVars().%0a* Add $EnableUndefinedTemplateVars allowing to hide or show undefined template/include [={$$variables}=] (PITS:01152).%0a* Add "title" attribute to external links (PITS:00657).%0a* Add FmtPageTitle() to allow automatic i18n titles for RecentChanges and other technical pages (PITS:01157).%0a* Update documentation.%0a%0a!!! [[#v2213]] Version 2.2.13 (2010-02-21)%0a* Replace deprecated in PHP 5.3 function split() with explode().%0a* Add $WordDiffFunction default to PHPDiff().%0a* Use existing border colors as highlighting background.%0a* Refactor/optimize DiffRenderSource(), merge with DiffRenderInline().%0a* Change default history to show word-level highlighting.%0a* Fix bug with $DiffKeepNum which kept less revisions than it should.%0a* Fix RetrieveAuthPage() call from HandleDiff().%0a* Update documentation.%0a%0a!!! [[#v2212]] Version 2.2.12 (2010-02-17)%0a* Allow a custom $DiffHTMLFunction to skip the line rendering if it returns false.%0a* Add $EnableDiffInline, simple word-level diffs (PITS:00571).%0a* Update documentation.%0a%0a!!! [[#v2211]] Version 2.2.11 (2010-02-14)%0a* Break PrintDiff() into customizable functions (PITS:01106).%0a* Add anchors to individual diffs (PITS:00796).%0a* Remove unused $RecipeInfo definition in markupexpr.php (reported by P.Bowers).%0a* Add [=(:head:) and (:headnr:)=] table directives (PITS:00535).%0a* Fix $GroupPattern and $NamePattern in xlpage-utf-8.php.%0a* Update documentation.%0a%0a!!! [[#v229]] [[#v2210]] Version 2.2.9, 2.2.10 (2010-01-17)%0a* Fix i18n string in PasswdVar(), reported by SteP.%0a* Fix sample-config.php with correct information about $EnableWSPre (PITS:01145).%0a* Fix range searches for wikis in UTF-8 (reported by Maxim).%0a* Fix global variable $StringFolding in scripts/xlpage-utf-8.php.%0a* Fix markup for italics in creole.php.%0a* Fix previews for PTVs, [[PageList templates]] and included sections (PITS:01098).%0a* Add $DiffKeepNum - number of revisions kept, even if older than $DiffKeepDays.%0a* Add Yandex to robots.php.%0a* Change default $EnableRelativePageVars to 1 (PITS:01145).%0a* Add fifth parameter to SetProperty() : keep existing property.%0a* Add $EnablePageTitlePriority (PITS:00266, PITS:00779).%0a* Update documentation.%0a%0a!!! [[#v228]] Version 2.2.8 (2009-12-07)%0a* Fix apostrophes in Author field (PITS:01155).%0a* Fix Condition "exists" for PHP 5.3 (PITS:01156).%0a* Update documentation.%0a%0a!!! [[#v227]] Version 2.2.7 (2009-11-08)%0a* Fix GlobToPCRE() to work with !excl and -excl with PHP 5.3 (PITS:01149).%0a* Fix HandleDownload() correctly quote the filenames (PITS:01150).%0a* Fix SessionAuth() for PHP 5.3, the $_REQUEST array doesn't contain the $_COOKIE array (PITS:01141).%0a* Fix default timezone for PHP 5.3 (PITS:01141).%0a* Update documentation.%0a%0a!!! [[#v226]] Version 2.2.6 (2009-10-04)%0a* Escape apostrophes for multiline textarea/hidden form fields.%0a* Fix global unset of $MarkupRules in [[PmWiki/CustomMarkup|Markup()]] and DisableMarkup(), reported by D.Faure.%0a* Fix call to BuildMarkupRules() in MarkupToHTML(), suggested by Pm.%0a* Allow disabling of $PageListFilters and $FPLTemplateFunctions if set to -1 and thus allow replacing a core function with a custom one.%0a* Fix DRange() returned timestamps +1min or +1day when it shouldn't (PITS:01125).%0a* Add $MarkupWordwrapFunction to allow custom [@(:markup:)@] line width for multibyte wikis (PITS:00703).%0a* Add $MakeUploadNamePatterns to allow custom filename normalization for uploads.%0a* Add a fourth argument to PostRecentChanges() to allow this function to be called with a custom $RecentChangesFmt array.%0a* Add $RecentUploadsFmt, to allow logging of new uploads to the RecentChanges pages (PITS:00088).%0a* Fix Notify for some installations in safe_mode (PITS:00976).%0a* Add $HTMLHeaderFmt['guiedit'] variable in guiedit.php to allow customization (PITS:01146).%0a* Update documentation.%0a%0a!!! [[#v225]] Version 2.2.5 (2009-08-25)%0a* Add *.7z as accepted upload extension (PITS:00813).%0a* Fix global variable $HandleAttrFmt in HandleAttr (PITS:01126).%0a* Allow brackets in input element names (PITS:01131).%0a* Fix CSS class applied twice (PITS:01071).%0a* Fix Not-Modified headers could prevent caching (PITS:00802).%0a* Break FPLTemplate() into configurable sub-parts (PITS:01102).%0a* Add [@(:template none:)@] section for [[PageList templates]].%0a* Fix attr-protected page could be deleted with edit permissions (PITS:00238).%0a* Update documentation.%0a%0a!!! [[#v224]] Version 2.2.4 (2009-07-16)%0a* Fix bug with page attributes, which somehow didn't make it in the 2.2.3 release.%0a* Fix bug with HTML entities in XLPages introduced earlier today in 2.2.3 (reverted, PITS:01114).%0a%0a!!! [[#v223]] Version 2.2.3 (2009-07-16)%0a* Fix action=logout could incorrectly set a session cookie (PITS:01062).%0a* Fix page history trim in vardoc.php (PITS:01103).%0a* Add $EnableUploadGroupAuth, use group password for downloads (PITS:01104).%0a* Fix recursive PTV loops, added $MaxPageTextVars (PITS:00915, PITS:01099).%0a* Fix mkdirp() messages for absolute paths (PITS:00396).%0a* Fix sample-config.php order for urlapprove.php (PITS:01037).%0a* Fix broken signature links on preview.%0a* Fix crypt.php (action=crypt) could malfunction for passwords with quotes or apostrophes.%0a* Fix @@ @_site_*@@ passwords to work in GroupAttributes (PITS:00836, PITS:00998).%0a* Fix possible XSS vulnerabilities, reported by Michael Engelke.%0a* Update documentation.%0a%0a!!! [[#v222]] Version 2.2.2 (2009-06-21)%0a* Fix class in pages not on the breadcrumbs trail, reported by Ed W.%0a* Fix @@tabindex@@ and @@onclick@@ to guiedit buttons.%0a* Fix $GroupPrintHeaderFmt in print.php (PITS:01073).%0a* Fix global vars in xlpage-utf-8.php (PITS:00980).%0a* Fix $txt in LinkPage (reported by Eemeli Aro).%0a* Add $EnableNotifySubjectEncode for international wikis (Cookbook:UTF-8).%0a* Fix international message in Abort().%0a* Fix security bug with AuthUser, reported by Eemeli Aro. See [[Release notes]].%0a* Fix $ActionTitleFmt for login and upload, reported by Eemeli Aro.%0a%0a!!! [[#v221]] Version 2.2.1 (2009-03-28)%0a* Fix $FPLTemplateMarkupFunction which somehow didn't get in the 2.2.0 archive.%0a* Fix wikitrails to work cross-group (PITS:00407).%0a* Add $EnableRedirectQuiet variable (PITS:00919).%0a* Fix [={$Title}=] could display global variables (reported by HansB).%0a* Fix reloaded form submissions could lose values (reported by DaveG).%0a* Fix preview while restoring a version from history (PITS:01081).%0a* Fix relative links with international characters (reported by G. Hermanowicz).%0a* Add in sample-config.php example call to xlpage-utf-8.php (PITS:01066).%0a* Update documentation.%0a* Fix guiedit.php to produce valid HTML.%0a%0a!!! [[#v220]] Version 2.2.0 (2009-01-18)%0a* Convert beta series to official release series.%0a* Add $FPLTemplateMarkupFunction (PITS:00984, requested by John Rankin).%0a%0a!!! [[#older]] Older versions%0a[[(PmWiki:)ChangeLog Archive]] - changes prior to version 2.2.0.%0a
-time=1698315788
+text=(:Summary: Log of changes made to PmWiki by [[Release(Notes)]]:)\%0aSee [[Cookbook:RecentChanges | the cookbook recent changes page]] for additional updates and activity by other developers, or join the [[PmWiki (/) mailing lists]] to discuss feature development with us.%0a%0a(:Prerelease:Changes made to the [[PmWiki:Subversion | subversion pre-release]] of PmWiki. You can get \%0a[[https://www.pmwiki.org/pub/pmwiki-devel/pmwiki-latest-svn.zip|a full ZIP archive]] of the nightly version, or \%0a[[https://www.pmwiki.org/pub/pmwiki-devel/pmwiki-nightly.zip|a partial export]] with only the files changed since {$Version}.:)\%0a{$:Prerelease}%0a%0a* Add input ''month'' and ''color'' fields.%0a* Add $NotifyRelatedTrailFmt%0a* Reverse simpletable row backgrounds when there is a thead element.%0a[[#svn-revision-4527]]%0a* Update documentation.%0a%0a!!! Version 2.3.27 (2023-10-23) [[#v2327]]%0a* When merging last edit, if there is no change summary, reuse the last one. %0a* Keep unknown date/time formats for undefined timezone (PITS:01495).%0a* DiffRenderSource() fix for PHP 8, keep ins/del tags on the same line.%0a* The ".diffmarkup" element now has the style "white-space: pre-wrap".%0a* Add new keyword shortcuts Ctrl+B (bold), Ctrl+I (italic), Ctrl+K (link/unlink).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.26 (2023-09-28) [[#v2326]]%0a* Add configurable $InputLabelFmt snippet (PITS:01493).%0a* Add configurable $TrailFmt snippets.%0a* Add $EnableSearchAtLeastOneTerm, default disabled.%0a* Unset upload extensions if size for the extension is set to 0.%0a* Update feeds.php for PHP 8.2 (PITS:01494).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.25 (2023-07-29) [[#v2325]]%0a* Updates for PHP 8.2.%0a* Fix pagelist when 2+ directives on the same line, reported by Simon.%0a* Fix possible bug with internal group(header|footer) directives caused by PRR().%0a* Update documentation.%0a%0a%0a!!! Version 2.3.24 (2023-06-06) [[#v2324]]%0a* Add $EnableUploadMimeMatch.%0a* Add $EnableMergeLastMinorEdit, edit functions MergeLastMinorEdit (based on Cookbook:FuseEdit), SaveChangeSummary (refactored out of HandleEdit).%0a* Fix LogoutCookies() doesn't use a $pagename argument.%0a* PmForm add condition 'validemail' for use in template require.%0a* Add $PmCryptAlgo, pmcrypt() to call password_verify() if it exists. %0a* Refactor HandleDownload() split ServeDownload($filepath, $upname).%0a* Add InsertEditFunction($newfn, $where='%3cPostPage').%0a* Add $AuthFormRespCode.%0a* Add $EnableDownloadRanges, default 1.%0a* When the token is expired, reopen edit form rather than abort.%0a* LocalTimes add $EnableRCListLastEdit.%0a* Update documentation.%0a%0a!!! Version 2.3.23 (2023-05-03) [[#v2323]]%0a* Refactor pmtoken() to use session tokens, enable for core actions.%0a* Add %25pmhlt%25[@(:input pmtoken:)@] helper.%0a* PmForm add $PmFormEnablePmToken.%0a* Refactor @@HandleLogoutA()@@ split @@LogoutCookies()@@. %0a* Fix PRCB() for PHP %3c 7.4.%0a* Update documentation.%0a%0a!!! Version 2.3.22 (2023-04-06) [[#v2322]]%0a* Add scripts/pmform.php, Site.PmFormTemplates.%0a* FmtDateTimeZ() can now accept Unix timestamps.%0a* Pagelists fix bug with multiple category=+A,+B entries.%0a* Update for PHP 8.1 (PITS:01488).%0a* MarkupDirectiveFunctions will now cast numeric arguments to floats.%0a* Prevent errors in custom PageVariables from generating internal server errors (PITS:01489).%0a* Improve inline diff for rare cases (end of page).%0a* Forms/buttons with @@data-pmconfirm="Question"@@ will ask the question before they are submitted.%0a* Update documentation.%0a%0a%0a!!! Version 2.3.21 (2023-03-06) [[#v2321]]%0a* Add $IsPmArchive, $PmArchiveDir.%0a* Sortable tables with %3ctime datetime=""> elements can be sorted by the datetime attribute. Fix for tables with preexisting %3cthead> element.%0a* Updates for PHP8.%0a* Add CSV upload extension.%0a* LocalTimes add mode=3 to show old dates as MM'YY.%0a* Fix bug with multiline $MarkupDirectiveFunctions, reported by Antti Tikanm&auml;ki.%0a* Add $EnableCopyCode and Copy code button to %3cpre> blocks, suggested by Alex Dor&eacute;.%0a* Update PmTOC to work better with Cookbook:SectionEdit.%0a* Update documentation.%0a%0a!!! Version 2.3.20 (2023-02-12) [[#v2320]]%0a* Fix undefined variable warning, reported by Gregor Klari&ccaron;.%0a%0a!!! Version 2.3.19 (2023-02-11) [[#v2319]]%0a* Only set cookie params if headers not sent. %0a* Update for PHP8.2, reported by Dfaure. PageVar() update for PHP 8.%0a* Add variable $DiffPrepareInlineFunction.%0a* PageListCache() remove unused global $PageIndexFile.%0a* Add configurable $LocalCSSDir, $LocalCSSDirUrl.%0a* DownloadUrl() add $FmtV['$LinkDownload'] with current or future download link.%0a* Add pm_recode() helper function (based on PageStore::recodefn), check for more transcode options.%0a* HandleBrowse() add $FmtV['$PageSourceText'].%0a* Add helper function KeepBlock().%0a* Add $FarmPubDirPrefix, pm_servefile(), $ServeFileExts.%0a* Update documentation.%0a%0a!!! Version 2.3.18 (2023-01-15) [[#v2318]]%0a* Refactor scripts/utils.php, add pm_json_encode() (PITS:01486).%0a* EditAutoText() fix for lines ending with multiple backslashes.%0a* PmSyntax optimize/refactor for large pages (cont.), fix inline escaped texts could ignore line markups, add EnableStopwatch.%0a* Notify fix typo in regular expression.%0a* Add $EnableUploadVersions >=10 to rename base.ext to base-1.ext, base-2.ext,...%0a* CondAuth() fix bug with global $AuthList.%0a* Add helper function PRCB() for simpler preg_replace_callback passing variables.%0a* Update scripts/refcount.php for PHP 8, reported by George Murray.%0a* Add PageVariable $PageLogoUrl (PITS:01297).%0a* Update documentation.%0a%0a!!! Version 2.3.17 (2022-12-17) [[#v2317]]%0a* WikiStyles trim class names (PITS:01485).%0a* GUIEditButtons refactor to enable Undo in textarea; allow for custom functions to configure mopen, mclose, and unselect for their buttons.%0a* [[Cookbook:EditHelp|EditHelp]] refactor to allow undo; add shortcuts Ctrl+L convert selection to lowercase, Ctrl+Shift+L to uppercase, Ctrl+Shift+ArrowUp and ArrowDown to swap lines.%0a* Skip upgrade check if $EnableReadOnly.%0a* Fix bug with multiple $MarkupDirectiveFunctions.%0a* Add $EnableBaseNameConfig.%0a* PmSyntax optimize for larger pages (cont.).%0a* Input password add class "inputbox" like the other fields.%0a* CondAuth() added way to check for usergroup permissions.%0a* Update in pagelist.php for PHP 8.%0a* Documentation update.%0a%0a!!! Version 2.3.16 (2022-11-28) [[#v2316]]%0a* Class PPRC add generic callbacks.%0a* IncludeText() update for PHP 8, reported by V.Krishn.%0a* WikiStyle add 'overflow', 'notoc'.%0a* Add PmNonce().%0a* PmTOC update indented link style->classname. %0a* Responsive skin: replace %25pmhlt%25[@[[%3c%3c]]@] with %25hlt html%25[@%3cbr class='clearboth' />@], update PmTOC styles.%0a* $EnableListIncludedPages use class name instead of style. %0a* guiedit.js remove unneeded style.%0a* PmSyntax realign font for nested programming languages in the edit form, optimize for large pages.%0a* Only call session_status() if function exists.%0a* Edit form remove unsafe-inline script.%0a* Revert WikiStyleToClassName(), PrePrintFmt() -- need more work (PITS:01484).%0a* Documentation update.%0a%0a!!! Version 2.3.15 (2022-11-21) [[#v2315]]%0a* CSS pre, code relative/scalable font-size (pmwiki-responsive skin).%0a* PmSyntax add variable --pmsyntax-fontsize-editform and split from --pmsyntax-fontsize [[https://www.pmichaud.com/pipermail/pmwiki-users/2022-November/064936.html|#]].%0a* PmSyntax fix [@[[Highlight]]@] label font size and family (reported by Hans).%0a* Add variable $CookieSameSite default to 'Lax'%0a* Add argument $samesite to pmsetcookie(), default to $CookieSameSite, refactor for old and new PHP versions. %0a* Add function pm_session_start() respecting local configuration.%0a* CSP header add base-uri=self; object-src 'none'.%0a* Add $HTTPHeaders['XSSP'] = 'X-XSS-Protection: 1; mode=block'.%0a* Rewrite GUIButtons logic to avoid unsafe-inline JavaScript.%0a* Refactor WikiStyles, replace inline styles with class names to avoid unsafe-inline CSS.%0a* Refactor PQA(), tables, cells, to replace inline style="..." with class names to avoid unsafe-inline CSS.%0a* Add PrePrintFmt(), refactor PrintFmt(), PrintSkin() to process wiki pages, skin parts, and skin functions to HTML before outputting headers.%0a* Fix XSS vulnerability.%0a* Documentation update.%0a%0a!!! Version 2.3.14 (2022-11-03) [[#v2314]]%0a* Searchbox also escape custom field names.%0a* Prevent double-encoded entities in searchbox (reported by Simon).%0a* Trim $Author (PITS:01208).%0a* Replace autofocus inline JavaScript with attributes.%0a* Edit form: the label next to the "Minor edit" checkbox now toggles the checkbox.%0a* PmSyntax recognize %25pmhlt%25[@(:template requires? ...:)@].%0a* Update for PHP 8. %0a* Obsolete PCCF() from PHP 7.2 not 8.0.%0a* Add array $ObsoleteMarkups, function TraceMarkup(), update Markup(), Markup_e() and ObsoleteMarkup(), to retrieve and show files and line numbers for obsolete/disabled markup rules.%0a* Fix bug with PSFT format %25L.%0a* Update documentation.%0a%0a!!! Version 2.3.13 (2022-10-07) [[#v2313]]%0a* Close potential XSS vulnerability, reported by lukystreik (PITS:01483).%0a* Refactor $MultiFactorAuthFunction, add $FailedLoginsFunction.%0a* Update documentation.%0a%0a!!! Version 2.3.12 (2022-09-25) [[#v2312]]%0a* Stripmagic() cast null to "" and other fixes for PHP 8.%0a* Fix parse error for complex conditionals with empty variables (PITS:01480).%0a* PSFT() and MarkupExpression [@ftime@] add %25L as human readable local timestamp. %0a* MarkupRestore() fix wrong cast to empty string of false-ish values.%0a* PrintAuthForm() split from PmWikiAuth(). %0a* Fix warning for unneeded session_regenerate_id() (reported by George Murray).%0a* Update documentation.%0a%0a!!! Version 2.3.11 (2022-08-30) [[#v2311]]%0a* Add [[PageVariables]] %25pmhlt%25 [@{$GroupHomePage}@], [@{$GroupHomePageName}@], [@{$GroupHomePageTitle}@], [@{$GroupHomePageTitlespaced}@].%0a* Add $MarkupDirectiveFunctions.%0a* Fix stripmagic() for arrays recently broke after PHP8 update.%0a* Update documentation.%0a%0a!!! Version 2.3.10 (2022-08-20) [[#v2310]]%0a* Update for PHP 8.1 (reported by Armin Bühler).%0a* Forms will now prefill wildcard variables from $DefaultUnsetPageTextVars or $DefaultEmptyPageTextVars.%0a* $EnablePmSyntax = 3; will enable syntax highlighting in the edit form by default, without the user clicking on "Highlight". Fix occasional text mis-alignment between the text area and the highlighted block.%0a* Update documentation.%0a%0a!!! Version 2.3.9 (2022-08-18) [[#v239]]%0a* Add non-wildcard $DefaultUnsetPageTextVars to %25pmhlt%25[@(:input default:)@] (reported by Johnny).%0a* PmSyntax handles new selectors pre.pmhlt, code.pmhlt.%0a* Update for PHP 8 (PITS:01478).%0a* Update documentation.%0a%0a%0a!!! Version 2.3.8 (2022-07-22) [[#v238]]%0a* PmSyntax fix for 2 different %25pmhlt%25 [@%25hlt%25@] on the same line (reported by Simon).%0a* Fix broken include when the first page doesn't exist.%0a* Update documentation.%0a%0a!!! Version 2.3.7 (2022-06-28) [[#v237]]%0a* $HTTPHeaders add X-Frame-Options (suggested by Imagine Dragon) and Content-Security-Policy to disallow embedding in external websites by default.%0a* $EnableHighlight will now remember any links to PmWiki variables and restore them after the highlighting, see [[thread->https://www.pmwiki.org/pipermail/pmwiki-users/2022-June/064887.html]].%0a* $EnablePmSyntax will now process %25pmhlt%25[@%25hlt pmwiki%25@] in addition to [@%25pmhlt%25@] blocks, and escaped markup after it will be tentatively highlighted.%0a* Update documentation.%0a%0a!!! Version 2.3.6 (2022-06-19) [[#v236]]%0a* Fixes for PHP 8.%0a* Add form attribute "lang".%0a* Sortable tables allow for table headers to have markup such as bold (except links). It will now use a case-insensitive natural ordering.%0a* Allow for $UploadVerifyFunction to modify $upname.%0a* Add variable $PageIndexTermsFunction.%0a* Searchbox allow for removal of submit button if [@label=""@]; add default [@placeholder="$[Search]"@].%0a* Fix author.php may be included before some variables are defined, reported by Said Achmiz.%0a* $EnableHighlight convert code blocks to plain text, see [[thread->https://www.pmwiki.org/pipermail/pmwiki-users/2022-June/064887.html]].%0a* Documentation update.%0a%0a%0a!!! Version 2.3.5 (2022-05-23) [[#v235]]%0a* Fix broken list=grouphomes (PITS:01477).%0a* Add DisableSkinParts() helper function for recipes.%0a* HandlePostUpload: add @@$FmtV["$filepath"]@@ and @@$FmtV["$upurl"]@@ with the file path and direct URL to the newly uploaded file.%0a* In pmwiki-utils.js, replace forgotten ''let'' with ''var'' (suggested by SteP).%0a* Update for PHP 8.1.%0a* Update documentation.%0a%0a!!! Version 2.3.4 (2022-04-22) [[#v234]]%0a* Fixes for PHP 8 warnings, reported by Siegfried Seibert.%0a* Update documentation.%0a%0a!!! Version 2.3.3 (2022-03-26) [[#v233]]%0a* Fix for PHP 8 warnings, reported by Jean-Patrick Charrey, Dominique Faure and Siegfried Seibert.%0a* Update README.txt and docs/ files, suggested by Simon Davis.%0a* Update documentation.%0a%0a!!! Version 2.3.2 (2022-02-09) [[#v232]]%0a* Allow for $EnableLocalTimes to define custom duration of the pulled page history.%0a* Rename variable $EnableIncludedPages to $EnableListIncludedPages (avoid ambiguity).%0a* Remove $LinkAlt when an embedded picture without an alternative text fails to load.%0a* PmSyntax:%0a** Allow for line breaks \\ inside headings, tables, list items (like the core).%0a** Parallel processing of multiple blocks.%0a* Add scripts/utils.php; move loading of pmwiki-utils.js and PmSyntax to scripts/utils.js.%0a** Add $EnablePmUtils, default enabled.%0a** Parallel processing of the pmwiki-utils.js utility functions.%0a** Move pmwiki-utils.js move to $HTMLHeaderFmt (often prevents page redraw with the TOC/PmToggle/LocalTimes).%0a* Fix bug causing invalid page name when the name is "Group.0".%0a* Fix PHP 8.1.2 warnings, reported by J&uuml;rgen Godau and Dominique Faure.%0a* LocaltTimes fix "rcnew" classes for wikis with the older format.%0a* Update documentation.%0a%0a!!! Version 2.3.1 (2022-01-15) [[#v231]]%0a%0a* Fix the release script which broke the $VersionNum variable and the [@[[#anchor]]@] markup with the PmWiki-responsive skin.%0a%0a!!! Version 2.3.0 (2022-01-15) [[#v230]]%0a* Add PmSyntax, $EnablePmSyntax, $CustomSyntax, [@{$EnabledIMap}@], see Cookbook:PmSyntax, Cookbook:CustomSyntax.%0a* [@(:markup:)@] can now have @@class=norender@@ to only show the source code without processing it.%0a* Updates for PHP 8.1, hide warnings, add PSFT() replacement for strftime() and 2 callbacks, $EnableFTimeNew, update core function calls, add [@%25o@] for the ordinal suffix of the date (PITS:01418).%0a* Notify: @@tz=@@ (timezone) per-user.%0a* PageList add category= argument (PITS:00447, PITS:01475); link= and category= now accept multiple pages, wildcards, and negations (PITS:00908).%0a* [=[[!Category]]=] links can have alternative text (PITS:01095).%0a* Simplify/optimize pmwiki-utils.js when using datasets, simplify sorting of table rows without cloning, add LocalTimes().%0a* Page history diff anchors to also have "id=" attributes in addition to "name=".%0a* Add $EnableLocalTimes (default disabled) and styles, add HandleDiffList().%0a* Add markup %25pmhlt%25[@@2022-01-09T08:35:00Z@]%25%25 output as %3ctime>; localized if $EnableLocalTimes.%0a** Add $CurrentLocalTime in the above format, used by default in $RecentChangesFmt.%0a* Add $EnableRecentUploads (only Site.AllRecentChanges, only if $RecentUploadsFmt not defined).%0a* PmTOC update CSS for properly indented subheadings.%0a* Edit form $EnableIncludedPages, add placeholders to e_changesummary and e_author. Enable $EnableNotSavedWarning, add to sample-config.php. EditHelp to behave more like a word processor, typing "Enter" twice without writing text removes the preceding bullet.%0a* Responsive skin details>summary:hover {color:navy, cursor: pointer;}.%0a* PrintDiff() add classes for the delay between edits: diffday, diffweek, diffmonth, diffyear.%0a* Add helper function @@DownloadUrl($pagename, $path)@@ moved from @@LinkUpload()@@.%0a* Add [=$[ULby]=] i18n string 'uploaded by'.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.145 (2021-12-11) [[#v22145]]%0a* Hide undefined variable notices for PHP8. %0a* Pagelist searches with wrong $SearchPatterns (list=abc argument) will now use $SearchPatterns["default"] rather than an empty array (effectively all pages). This is to allow admins to limit search locations.%0a* Obsolete markups: change &#9888; emoji for entity [=&#9888;=] (emoji doesn't work in non-UTF8 wikis).%0a* Update documentation.%0a%0a!!! Version 2.2.144 (2021-11-06) [[#v22144]]%0a* Fix CmpPageAttr() for PHP 8 (suggested by Chris Caputo).%0a* Optimize conditional "exists" if called many times, like from a pagelist.%0a* Allow for CondExists(), MatchPageNames(), and MatchNames() to be called with a $caseinsensitive argument set to ''false'' (default case insensitive is ''true'' like before).%0a* Update intermap.txt for Meatball wiki (PITS:01472).%0a* Update documentation.%0a%0a!!! Version 2.2.143 (2021-10-02) [[#v22143]]%0a* Prevent PHP from crashing with older markups and patterns.%0a* Add ObsoleteMarkup(). Obsolete markup rules are now disabled and will appear framed with a "warning" icon.%0a* Update documentation.%0a%0a!!! Version 2.2.142 (2021-08-31) [[#v22142]]%0a* Mute some PHP notices.%0a* Add form attributes autofocus, accept.%0a* Update documentation.%0a%0a!!! Version 2.2.141 (2021-07-09) [[#v22141]]%0a* Add $MultiFactorAuthFunction.%0a* Add $PageIndexFoldFunction.%0a* Update documentation%0a%0a!!! Version 2.2.140 (2021-06-26) [[#v22140]]%0a* Fix warnings for undefined variables in PHP 8 (PITS:01461).%0a* Update pub/drt-utils.js to use the new API function call for Highlight.js, the old one having been deprecated. This change requires Highlight.js version 10.7.0 or newer (currently 11.0.0).%0a* Update documentation.%0a%0a!!! Version 2.2.139 (2021-05-05) [[#v22139]]%0a* Remove empty title attributes, reported by Martin Cuno.%0a* Hide warning in pagelist.php for PHP 8, reported by Dominique Faure.%0a* Hide warning in wikiwords.php for PHP 8, reported by Jue (PITS:01461).%0a* Update documentation.%0a%0a!!! Version 2.2.138 (2021-03-02) [[#v22138]]%0a* Fix details summary incorrectly escaped HTML, reported by Jack Applin (PITS:01465).%0a* Update documentation.%0a%0a!!! Version 2.2.137 (2021-02-26) [[#v22137]]%0a* Fix bug with twice encoded entities in PQA() quoted arguments.%0a%0a!!! Version 2.2.136 (2021-02-26) [[#v22136]]%0a* Fix XSS vulnerability for WikiStyles reported today by Igor Sak-Sakovskiy.%0a* The PQA() function accepts a second argument $keep default true.%0a%0a!!! Version 2.2.135 (2021-01-31) [[#v22135]]%0a* Fix a number of PHP8 compatibility issues. Report others at PITS:01461.%0a* Add pmtoken(), AutoCheckToken() currently transparent.%0a* Blocklists: disabled a defunct one.%0a* PmTOC: rewrite handling of section editing links.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.134 (2020-11-30) [[#v22134]]%0a* Update documentation.%0a%0a!!! Version 2.2.133 (2020-10-25) [[#v22133]]%0a* Escape unintended variable evaluation in link tooltip titles, reported by Finar.%0a* Responsive skin css: remove ul/ol forced padding (clips numbered list markers in long lists, reported by Colin Cody; complex to override cross-browser).%0a* Add image extensions WEBP and APNG (PITS:01454) and upload extensions.%0a* Fix potential vulnerability to CWE-384: Session Fixation, reported by Dominique Faure. Add $EnableAuthPostRegenerateSID default enabled.%0a* RecipeCheck - only inject CSS when the action is called.%0a* Update documentation.%0a%0a!!! Version 2.2.132 (2020-09-30) [[#v22132]]%0a* Update documentation.%0a%0a!!! Version 2.2.131 (2020-08-30) [[#v22131]]%0a* Update documentation.%0a%0a!!! Version 2.2.130 (2020-07-04) [[#v22130]]%0a* Update documentation.%0a%0a!!! Version 2.2.129 (2020-05-21) [[#v22129]]%0a* Mute some PHP notices.%0a* Copy "simpletable" styles from the "pmwiki-responsive" skin into the old "pmwiki" skin.%0a* Update documentation.%0a%0a!!! Version 2.2.128 (2020-04-26) [[#v22128]]%0a* Strip some trailing spaces and convert some tabs to spaces.%0a* Add comments next to preg_replace() and create_function() where old addons may cause PHP deprecation notices.%0a* Mute some PHP notices.%0a* Print the invalid pagename in the error message.%0a* Update documentation.%0a%0a!!! Version 2.2.127 (2020-03-23) [[#v22127]]%0a* Mute some PHP "undefined variable" notices.%0a* Responsive skin set #wikiedit textarea max-height: 60vh (after discussion+tests at PmWiki:Skins-Talk). %0a* Prefix PmTOC classes "pmtoc-show" and "pmtoc-hide" to avoid processing by other frameworks (reported by Finar).%0a* Add Skins:SkinChange to the core, enabled by either of the variables $EnableAutoSkinList and/or $PageSkinList.%0a* Add FileSizeCompact() and DiffTimeCompact() (can be used by recipes).%0a* Add $FmtV["$upresult"] can be intercepted by recipes.%0a* Update documentation.%0a%0a!!! Version 2.2.126 (2020-02-01) [[#v22126]]%0a* Mute some "Undefined" notices. %0a* Fix caches.php to write an updated .htaccess format.%0a* Fix bug with $PmTOC['MinNumber'] = -1 reported by SteP.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.124, 2.2.125 (2020-01-27) [[#v22124]] [[#v22125]]%0a* Hide .PmTOCdiv if empty.%0a* Add $SetCookieFunction.%0a* Add $ToggleNextSelector, see Cookbook:ToggleNext.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.123 (2019-12-31) [[#v22123]]%0a* Allow for [[Links#escaped | escaped [@[=link address=]@]]] to have any special characters, including quotes, parentheses and pipes.%0a* Fix PmXMail when the link contains a quote, and to work from headers, footers and sidebars.%0a* Add [[forms|form]] attribute "formnovalidate" (suggested by Robert Riebisch).%0a* Allow [[table of contents]] to work better with Cookbook:SectionEdit (reported by Johan Bengtsson).%0a* Mute a number of PHP notices for undefined variables. %0a* Add that "URL" means in browser in sample-config.php (PITS:01448). %0a* Add Cookbook:RecipeCheck in diag.php.%0a* Refactor functions that handle $EnableRCDiffBytes to show the deltas in the page histories.%0a* Remove $EnableRelativePageVars from sample-config.php (confusing, PITS:01145).%0a* Add upload extensions [[https://developers.google.com/speed/webp | @@webp@@ ]] image format and [[https://www.opus-codec.org/ | @@opus@@]] audio codec.%0a* Update documentation.%0a%0a!!! Version 2.2.122 (2019-11-19) [[#v22122]]%0aVersion 2.2.121 was released by mistake and contained some experimental code that was meant to be tested first.%0a* ObfuscateLinkIMap: Fix bug with special or international characters in custom subject fields, reported by FidelioEspoir.%0a* Add $DefaultUnsetPageTextVars, $DefaultEmptyPageTextVars.%0a* Mute "Uninitialized string offset messages" for error_reporting(E_ALL), reported by DFaure.%0a* Fix PmTOC, when NumberedHeadings is enabled, to number headings even when the TOC would not be created.%0a* Add [@{$$EachCount}@] pagelist template pseudovariable, containing the count for the current "each" loop.%0a* Add $InputAttrs @@role@@ and @@aria-*@@ form attributes, allow aria-\\w* attributes for the [@(:searchbox:)@] field.%0a* Update documentation.%0a%0a!!! Version 2.2.120 (2019-10-13) [[#v22120]]%0a* Add @@(:[[forms#datalist|input datalist]]:)@@ form element.%0a* Add [@(:details summary="...":)...(:detailsend:)@] [[block markup]].%0a* Fix bugs with guiedit.php/guiedit.js reported by FidelioEspoir.%0a* PmTOC: add max-height and overflow-auto to the block.%0a* Update documentation.%0a%0a!!! Version 2.2.119 (2019-10-03) [[#v22119]]%0a* Update for PHP 7.4 "string offset with curly braces is deprecated".%0a* Add @@required="required"@@ attributes to input author/uploader fields when $EnableUploadAuthorRequired or $EnablePostAuthorRequired are set.%0a* Add @@required="required"@@ attributes to the "upload file" element (to prevent posting the form without an attached file).%0a* Add ObfuscateLinkIMap() based on Cookbook:DeObMail, default disabled.%0a* GuiEdit: Add FixUrl button based on Cookbook:FixURL default disabled, add $EnableGuiEditFixUrl;%0a* EditForm: Add features from Cookbook:NotSavedWarning, default disabled, add $EnableNotSavedWarning.%0a* EditForm: Add scroll position to edit text area will be remembered on save-and-edit and preview.%0a* EditForm: Add $EnableEditAutoText and features from Cookbook:EditHelp. %0a* Add $PmTOC, [@(:toc:)@], [@(:notoc:)@], based on a simplified variant of Cookbook:AutoTOC.%0a* Fix bug with pagelist while preview, reported by Finar.%0a* Add $EnableSortable, basic sortable tables based on public domain code from [[https://github.com/tofsjonas/sortable|Jonas Earendel]].%0a* Add $EnableRCDiffBytes based on Cookbook:DeltaBytesRecentChanges. %0a* Add $EnableSimpleTableRowspan replicating features of Cookbook:RowspanInSimpleTables.%0a* Add $WikiPageCSSFmt enables CSS in a wiki page, based on Cookbook:LocalCSS.%0a* Add $EnableHighlight code highlight feature compatible with "highlight.js".%0a* Attachlist @@ext=@@ and @@names=@@ arguments now accept patterns and negatives like @@ext=jpg,png@@, @@ext=-pdf@@, or @@names=-th*---*.jpg@@.%0a* Attachlist: allow both ext= and names= to cohabitate.%0a* MarkupExpr: remove unused declaration.%0a* EditAutoText: use event.ctrlKey and event.shiftKey instead of 2 functions.%0a* Redirect: add 3rd argument $redirecturl which can be provided directly%0a* Add $AddLinkCSS['othergroup'] and $AddLinkCSS['samedomain'] can contain link CSS classes.%0a* Update documentation.%0a%0a!!! Version 2.2.118 (2019-08-28) [[#v22118]]%0a* Add $EnablePreviewChanges and PreviewDiff() based on Cookbook:PreviewChanges.%0a* Update documentation.%0a%0a!!! Version 2.2.117 (2019-07-28) [[#v22117]]%0a* Add $EnableUploadAuthorRequired default to $EnablePostAuthorRequired, add Author field in upload form.%0a* Implement partial content indirect downloads (suggested by Christopher Cox, required for embedded video on iOS).%0a* Add allowed upload video extensions 'm4v' and '3gp'.%0a* Fix lowercase "Content-Disposition" header for downloads.%0a* Update documentation.%0a%0a!!! Version 2.2.116 (2019-06-19) [[#v22116]]%0a* Add $PageListVarFoldFn, defaults to $StrFoldFunction, for international case-insensitive matches of page (text) variables.%0a* Update documentation.%0a%0a!!! Version 2.2.115 (2019-05-13) [[#v22115]]%0a* Responsive skin: Simplify CSS for custom backgrounds, remove repetition.%0a* Update documentation.%0a%0a!!! Version 2.2.114 (2019-04-02) [[#v22114]]%0a* Fix bug with input select lists where an already defined id= attribute may get overwritten.%0a* Vardoc: Move the id= attribute from a standalone anchor to the definition term element (allows ":target" styling).%0a* Vardoc: Localize table header and link text (suggested by Michael F. Wolff).%0a* Add $SkinTemplateIncludeLevel, IncludeTemplate skin directive.%0a* Add input "tel" type, and attribute "pattern". Fix classnames of new input types.%0a* Update documentation.%0a%0a!!! Version 2.2.113 (2019-03-01) [[#v22113]]%0a* Add input button element.%0a* Add $EnableInputDataAttr.%0a* Update documentation.%0a%0a!!! Version 2.2.112 (2019-01-09) [[#v22112]]%0a* Fix switch break for PHP 7.3, reported by Hans-Jürgen Godau.%0a* Update documentation.%0a%0a!!! Version 2.2.111 (2018-12-08) [[#v22111]]%0a* Add @@$[==]Id$@@ subversion keyword to pmwiki.php, requested by Peter Gragert.%0a* Fix responsive skin search form max-width in desktop mode, reported by Moni Kellermann. %0a* Add $DenyHtaccessContent variable. Update protective .htaccess files.%0a* Add tz= and locale= arguments to [@{(ftime )}@] [[MarkupExpression(s)]] (PHP5+).%0a* Update documentation.%0a%0a!!! Version 2.2.110 (2018-11-05) [[#v22110]]%0a* Fix [@{(substr )}@] markup expression with non-number arguments could cause warnings, reported by Simon.%0a* Add $PageListSortCmpFunction, default to current 'strcasecmp'.%0a* Add global $MarkupMarkupLevel which changes when the processing is inside [@(:markup:)@] blocks.%0a* Fix inconsistent white space with inline @@[=[@escaped code@]=]@@, reported by Dannybpng.%0a* Update documentation.%0a%0a!!! Version 2.2.109 (2018-07-09) [[#v22109]]%0a* Update pmcrypt() to exclude negative -@groups from hash checking.%0a* Add $EnableMarkupDiag to backtrace all markup calls, suggested by ChuckG.%0a* Fix Path InterMap broken in 2.2.108, reported by ChuckG.%0a* Update documentation.%0a%0a!!! Version 2.2.108 (2018-07-05) [[#v22108]]%0a* Add $PCCFOverrideFunction.%0a* $AuthUserPageFmt can now be an array of page names.%0a* Add $PageCacheFileFmt default to "%25s/%25s,cache" (like before), allowing custom cache filenames.%0a* Form checkbox labels now have the same tooltip title as the checkbox.%0a* Add [@%25reversed%25@] WikiStyle.%0a* RefCount: add label to checkbox, class to table.%0a* Vardoc: fix markup call, reported by Hans-Jürgen Godau.%0a* pmcrypt() return false when salt appears to be some old PmWiki attribute.%0a* Default InterMap PmWiki URLs have now the HTTPS protocol (suggested by Simon).%0a* Update documentation.%0a%0a!!! Version 2.2.107 (2018-02-02) [[#v22107]]%0a* Fix Forms and Pagelists warnings in PHP 7.2, reported by DFaure.%0a** Fix order=title broken with the previous commit, reported by ChuckG.%0a* Add $MailFunction.%0a* Add ".rtl *" styles.%0a* Update documentation.%0a%0a!!! Version 2.2.106 (2017-12-01) [[#v22106]]%0a* Add pmsetcookie(), $EnableCookieSecure, $EnableCookieHTTPOnly (PITS:01425).%0a* Refactor PageListSort() to make it work for PHP 7.2 without requiring create_function().%0a** Fix ordering broken with the previous commit, reported by ChuckG.%0a* Fix `wikiword markup, reported by Steve Glover.%0a* Update documentation.%0a%0a!!! Version 2.2.105 (2017-11-07) [[#v22105]]%0a* Refactor @@HandleUpload()@@ - add @@UploadSetVars($pagename)@@ to allow custom upload add-ons to set variables.%0a* Fix bug with PQA() that caused invalid HTML with attributes glued together.%0a%0a!!! Version 2.2.104 (2017-10-11) [[#v22104]]%0a* Fix bug with WikiTrails introduced with 2.2.103 (PITS:01422).%0a%0a!!! Version 2.2.103 (2017-10-01) [[#v22103]]%0a* Add pagelist list=grouphomes and fmt=#grouphomes.%0a* Update all scripts for PHP 7.2 (bugtrack).%0a* Make responsive skin also compatible with PmWiki versions 2.2.55 or earlier.%0a* Add *.vtt (web subtitles) as allowed upload extension.%0a* Fix Charset headers for xlpage-iso-*.php%0a* Refactor PageStore class to remove create_function() calls.%0a* Add "title" attribute to input form elements.%0a* Re-add the definition of the $rrep variable in Markup expressions, reported by ChuckG.%0a* Add $AuthLDAPReferrals to set LDAP_OPT_REFERRALS if needed, reported by Kirk Zurell.%0a* Fix missing $pagename for WikiWord links.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.102 (2017-08-05) [[#v22102]]%0a* Revert fix for PITS:01300, the markup engine breaks when a text variable content is longer than 2699 characters.%0a* Add a text box in [[SiteAdmin.AuthList]] to allow filtering of the results.%0a%0a!!! Version 2.2.101 (2017-07-30) [[#v22101]]%0a* Rename function PageStore to __construct, to prevent PHP 7 strict or deprecated notices.%0a%0a!!! Version 2.2.100 (2017-07-30) [[#v22100]]%0a* Workaround around Subversion incompatibility with @@$Author[==]:...$@@ string not intended as SVN keyword.%0a* Responsive skin: add spacing above the #wikitext block, similar to the default skin.%0a* Update documentation.%0a%0a!!! Version 2.2.99 (2017-06-26) [[#v2299]]%0a* Fix Preview didn't show changes due to $ROSPatterns (PITS:01408).%0a* Remove markup rules for previewing author signature not needed anymore.%0a* Fix bug and warning appearing in PHP 4 installations.%0a* Update Wikipedia intermap entry (secure https).%0a* Fix bug with [@[[%3c%3c]]@] styles "clear:both".%0a* {-Fix incomplete definition of page text variable halts the rendering (PITS:01300).-}%0a* Fix $Version didn't work as a vardoc link.%0a* Update documentation.%0a%0a!!! Version 2.2.98 (2017-05-31) [[#v2298]]%0a* Fix WikiStyles where "pct" was incorrectly dropped from some classnames (PITS:01404).%0a* Hide warning about missing intermap file.%0a* Add pmwiki-responsive skin, based on modified Skins:2016.%0a* Responsive skin: Hide icon if PageActions empty. Fix "close" icon didn't appear for the PageActions block. Unrestrict menu height. Switching from portrait view with menu open to landscape: page should not be greyed out (PITS:01406). Landscape view: fix overflow for search form in Epiphany (likely Safari and other AppleWebKit-based browsers). Move the %3cmain> tag up to allow scrolling of the whole #wikibody. Large preformatted blocks will also scroll in the mobile view. Set limit for desktop layout to 50em~800px. Scrollable tables via cosmetic JavaScript.%0a* Both skins: Set default text color (PITS:01406).%0a* Fix Deprecated notice for Site.AuthUser password attributes.%0a* Vardoc links now use MakeLink() to allow a custom LinkPage function, fix bug reported by ChuckG.%0a* $InclCount now counts per browsed page (for multi-page processing recipes).%0a* Make $markupid variable available to markup replacement functions.%0a* Refactor function ReplaceOnSave to allow easier calling from recipes (PITS:01407).%0a* Enable *.mkv as allowed video extension.%0a* Fix bug with attachlist markup.%0a* Fix alternative bold/italics markup in sample-config.php (PITS:01400).%0a* Fix lost space in markup tables, replace markup tables %3ccode> with %3cpre> and add style "pre-wrap" (reported by ChuckG).%0a* Update documentation.%0a%0a!!! Version 2.2.97 (2017-04-07) [[#v2297]]%0a* Fix bug concerning $ScriptUrl when $EnablePathInfo is set, introduced in 2.2.96, reported by 3 users.%0a* Update documentation.%0a%0a!!! Version 2.2.96 (2017-04-05) [[#v2296]]%0a* Fix severe PHP code injection vulnerability, reported by Gabriel Margiani.%0a** Filter $pagename to exclude certain characters.%0a** Add $pagename_unfiltered in case a recipe requires it.%0a* Update documentation.%0a%0a!!! Version 2.2.95 (2017-02-28) [[#v2295]]%0a* Update documentation.%0a%0a!!! Version 2.2.94 (2017-01-31) [[#v2294]]%0a* Strip both .html and .htm extensions (Cookbook:HtmlUrls-Talk).%0a* Clear $PageExistsCache[$pagename] when a page is created or deleted (PITS:01401).%0a* Update documentation.%0a%0a!!! Version 2.2.93 (2016-12-31) [[#v2293]]%0a* Update documentation.%0a%0a!!! Version 2.2.92 (2016-11-30) [[#v2292]]%0a* Skip checking for $AllowPassword if empty or false.%0a* Enable FmtPageName() to expand PageVariables with asterisks.%0a* Update documentation.%0a%0a!!! Version 2.2.91 (2016-09-30) [[#v2291]]%0a* Update documentation.%0a%0a!!! Version 2.2.90 (2016-08-31) [[#v2290]]%0a* Add action parameter to upload form URL.%0a* Add @@imgonly@@ and @@imgcaption@@ CSS classes (PITS:01390).%0a* Fix plus-links with suffix [@[[Page|+]]s@] (PITS:01392).%0a* Update documentation.%0a%0a!!! Version 2.2.89 (2016-07-30) [[#v2289]]%0a* Add identifiers to Site.EditForm elements to enable easier styling.%0a* Add $SimpleTableDefaultClassName, default unset (PITS:00638).%0a* Add temporary $new['=html'] entry, in SaveAttributes().%0a* Fix superfluous line breaks in SiteAdmin.AuthList.%0a* Add optional placeholder attribute in [@(:searchbox:)@].%0a* Add $SearchBoxInputType, default 'text'.%0a* Set $HTMLStylesFmt via SDVA() in vardoc.php, urlapprove.php, and xlpage-utf-8.php.%0a* Fix vardoc.php to recognize and link variables $pagename, $Author, $Skin, and to sort case insensitively.%0a* Update documentation.%0a%0a!!! Version 2.2.88 (2016-06-29) [[#v2288]]%0a* Fix invalid HTML output of WikiTrail links (PITS:01388).%0a* Add 4th argument $double_encode to PHSC() for safe replacement of htmlspecialchars().%0a* Add page variable [@{$SiteAdminGroup}@] (PITS:00951).%0a* Update documentation.%0a%0a!!! Version 2.2.87 (2016-05-31) [[#v2287]]%0a* Add $HTMLTagAttr, to allow inclusion of lang, manifest and other attributes.%0a* Add $EnableRevUserAgent, $FmtV['$DiffUserAgent'].%0a* Fix relative link in [[Site.UploadQuickReference]].%0a* Update documentation.%0a%0a!!! Version 2.2.86 (2016-04-28) [[#v2286]]%0a* Fix PageStore() for PHP 7.%0a* Fix $DefaultPasswords for PHP 7.%0a* Update documentation.%0a%0a!!! Version 2.2.85 (2016-03-31) [[#v2285]]%0a* Add svg(z) and SVG(Z) as embeddable image extensions (PITS:00197, PITS:00435).%0a* Add *.svgz as allowed upload extension.%0a* Update documentation.%0a%0a!!! Version 2.2.84 (2016-02-21) [[#v2284]]%0a* Update/fix URL in UPGRADES.txt (PITS:01378).%0a* Fix indent and outdent CSS for RTL languages (PITS:01379).%0a* Add $EnableLinkPlusTitlespaced (PITS:01140).%0a* Update documentation.%0a%0a!!! Version 2.2.83 (2015-12-31) [[#v2283]]%0a* Update documentation.%0a%0a!!! Version 2.2.82 (2015-11-30) [[#v2282]]%0a* Enable stripmagic() to process arrays recursively.%0a* Update documentation.%0a%0a!!! Version 2.2.81 (2015-10-31) [[#v2281]]%0a* Fix single line PageTextVariable definition (reported by HansB).%0a* Add .ltr and .rtl CSS classes for UTF-8.%0a* Update documentation.%0a%0a!!! Version 2.2.80 (2015-09-30) [[#v2280]]%0a* Modify [@(:searchbox:)@] to use type="search" input.%0a* Update documentation.%0a%0a!!! Version 2.2.79 (2015-08-27) [[#v2279]]%0a* Modify guiedit.js::insMarkup() to accept a custom function name processing the text, and a custom id for the text area.%0a* Add CSS basic colors 'fuchsia','olive','lime','teal','aqua','orange' and 'grey' as WikiStyles (PITS:01373).%0a* Add $EnableROSEscape, default 0 (PmWiki:TextFormattingRules-Talk).%0a* Remove 'target' attribute in input forms (breaks PmForm).%0a* Add HTML5 input types email, url, number, date, search.%0a* Add attribution in script comments.%0a* Update documentation.%0a%0a!!! Version 2.2.78 (2015-07-21) [[#v2278]]%0a* Update $RobotPattern with current user agents.%0a* Accept 'target' attribute in input forms.%0a* Update documentation.%0a%0a!!! Version 2.2.77 (2015-06-19) [[#v2277]]%0a* Add generic function MakeNames() to process MakePageNames().%0a* Extend [@(:if attachments:)@] to specify file and page names (PITS:01087).%0a* Optimize PageStore::recode() to cache utf8_decode and utf8_encode callbacks.%0a* Add [@{$WikiTitle}@] page variable.%0a* Update documentation.%0a%0a!!! Version 2.2.76 (2015-05-31) [[#v2276]]%0a* Recover posted arrays (indexed or associative, not multidimensional) when a password is required (PITS:00835, PITS:01110).%0a* Add label argument to checkbox and radio inputs (PITS:01367).%0a* Enable PHSC() to process arrays recursively.%0a* Enable processing of arrays as input values (PITS:01032).%0a* Add CSS classes to standalone image div and caption (PITS:00489, PITS:00497).%0a* Update documentation.%0a%0a!!! Version 2.2.75 (2015-04-26) [[#v2275]]%0a* Fix uploads to respect $EnableReadOnly.%0a* Escape HTML special characters when printing failed callback creation.%0a* Add [[Functions#pmcrypt | pmcrypt()]] for PHP 5.6 compatibility.%0a* Add markup for HTML5 [[PmWiki:BlockMarkup#semantic | semantic ]] tags article, section, nav, header, footer, aside, address.%0a* Update documentation.%0a%0a%0a!!! Version 2.2.74 (2015-03-28) [[#v2274]]%0a* Allow translation of the "OK" string in forms (PITS:01363).%0a* Update documentation.%0a%0a!!! Version 2.2.73 (2015-02-28) [[#v2273]]%0a* Update documentation.%0a%0a!!! Version 2.2.72 (2015-01-27) [[#v2272]]%0a* Enable markup debug messages even when debug_backtrace() is not available.%0a* Add $AbortFunction.%0a* Restore ability to set a custom $MarkupWordwrapFunction, add $MarkupWrapTag (related to earlier fix for PITS:01360).%0a* Update documentation.%0a%0a!!! Version 2.2.71 (2014-12-29) [[#v2271]]%0a* Add $DraftActionsPattern.%0a* Enable "input default source" parameter to contain multiple pages.%0a* Enable "pagelist request" parameter to contain a list of (dis)allowed parameters.%0a* Enable Markup() backtrace for ?action=ruleset.%0a* Fix strict warning for blacklisted uploads (PITS:01359).%0a* Fix wrong hard wrap in [@(:markup:)@] code examples (PITS:01360).%0a* Update documentation.%0a%0a!!! Version 2.2.70 (2014-11-08) [[#v2270]]%0a* Update documentation.%0a%0a!!! Version 2.2.69 (2014-10-13) [[#v2269]]%0a* Fix DRange() for ISO-8601 dates +/- X days.%0a* Fix wording in [[Site.UploadQuickReference]].%0a* Update documentation.%0a%0a!!! Version 2.2.68 (2014-09-01) [[#v2268]]%0a* Add Skins: InterMap prefix.%0a* Add signature to [[Site.EditQuickReference]] (PITS:01350).%0a* Allow $PostConfig entries to be launched after per-page customization, before other stdconfig.php inclusions if values%3c50.%0a* Add [[WikiStyles]] clear, min and max width and height (PITS:00860), fix [=%25p class=...%25=] with more than one space.%0a* Update documentation.%0a%0a!!! Version 2.2.67 (2014-08-02) [[#v2267]]%0a* Fix InputDefault/PageTextVariables inconsistency (PITS:01337).%0a* Update documentation.%0a%0a!!! Version 2.2.66 (2014-07-02) [[#v2266]]%0a* Fix Author in Notifcations when deleting pages (PITS:01112).%0a* Exclude "_" to be considered as a function name in various $*Patterns.%0a* Update documentation.%0a%0a!!! [[#v2265]] Version 2.2.65 (2014-06-07)%0a* Fix [={$$PseudoVars}=] containing [={*$PageVars}=] in [[PageList Templates]].%0a* Fix wording in scripts/.htaccess (PITS:01345).%0a* Fix fixperms() if directory owner is root (PITS:01346).%0a* Update documentation.%0a%0a!!! [[#v2264]] Version 2.2.64 (2014-05-08)%0a* Add [={(mod)}=] [[PmWiki/MarkupExpressions | markup expression]].%0a* Add tel: and geo: [[PmWiki/LinkSchemes | URI schemes]].%0a* Add $SysMergePassthru to allow Merge() to use passthru() instead of popen().%0a* Update documentation.%0a%0a!!! [[#v2263]] Version 2.2.63 (2014-04-05)%0a* Allow [[PmWiki/Forms | form]] elements to have a dash in the attribute names.%0a* Strip magic slashes for pagelist/search request vars.%0a* Allow input attributes readonly, placeholder and autocomplete for HTML5 sites.%0a* Update documentation.%0a%0a!!! [[#v2262]] Version 2.2.62 (2014-02-28)%0a* Add $CallbackFnTemplates["return"].%0a* Add 4th argument to Markup_e() - $template.%0a* Add $EnableTableAutoValignTop.%0a* Update documentation.%0a%0a!!! [[#v2261]] Version 2.2.61 (2014-01-31)%0a* Add $TableCellAlignFmt.%0a* Remove unused snippet in prefs.php (reported by Oliver Betz).%0a* Remove unused calls to PSS() (reported by John Rankin).%0a* Update documentation.%0a%0a!!! [[#v2260]] Version 2.2.60 (2014-01-12)%0a* Revert to previous pmwiki.css file.%0a%0a!!! [[#v2259]] Version 2.2.59 (2014-01-11)%0a* Fix checking multiple posted fields in blocklist.php (reported by Randy Brown).%0a* Allow Markup_e() to accept a callback as well as code.%0a* Fix "+" shortcut for internal anchor links.%0a* Disable HTML cache if count($_GET)>1 not >2 (PITS:01278).%0a* Fix query string if a "?" is encoded to uppercase "%253F".%0a* Replace CSS font sizes from points (fixed) to percents (relative) for the default skin.%0a* Fix nested conditionals containing $pagename (reported by Benjamin Grassineau).%0a* Update documentation.%0a%0a!!! [[#v2258]] Version 2.2.58 (2013-12-25)%0a* Allow $LinkUpload to be usable in [=(:attachlist:)=].%0a* Enable customizations of [=(:input auth_form:)=].%0a* Remove unused variable $Block in FormatTableRow(), reported by Klonk.%0a* Fix $EnableBlocklistImmediate to check all posted fields for blocked terms.%0a* Add $GLOBALS['MarkupToHTML'] to pass parameters such as $pagename to markup calls.%0a* Update documentation.%0a%0a!!! [[#v2257]] Version 2.2.57 (2013-11-03)%0a* Encode international character used for detection of a recode function.%0a* Enable $IMapLinkFmt['Attach:'] to be used in [[PmWiki/PageDirectives#attachlist|[=(:attachlist:)=]]] links.%0a* Add $MakePageNameSplitPattern.%0a* Update documentation.%0a%0a!!! [[#v2256]] Version 2.2.56 (2013-09-30)%0a* Work in progress to remove the core dependency of the deprecated "eval" feature of the preg_replace() function (PITS:01319).%0a* Add functions PCCF(), PPRE(), PPRA(), Markup_e(), migrating all core calls to these functions.%0a* Fix detection of proper PageStore->recodefn.%0a* Update documentation.%0a%0a%0a!!! [[#v2255]] Version 2.2.55 (2013-09-16)%0a* Add $EnableDraftAtomicDiff (PITS:01007).%0a* Update documentation.%0a%0a!!! [[#v2254]] Version 2.2.54 (2013-08-13)%0a* Fix broken page history for draft pages, reported by ChuckG.%0a* Update documentation.%0a%0a!!! [[#v2253]] Version 2.2.53 (2013-07-08)%0a* Show a message when the post has been blocked because of too many unapproved links.%0a* Update documentation.%0a%0a!!! [[#v2252]] Version 2.2.52 (2013-06-08)%0a* Add docx, pptx, xlsx upload extentions.%0a* Hide E_DEPRECATED warnings for PHP 5.5.%0a* Update documentation.%0a%0a!!! [[#v2251]] Version 2.2.51 (2013-05-08)%0a* Update url to MoinMoin's blocklist.%0a* Comment-out blacklist.chongqed.org as the domain appears to have expired.%0a* Fix possible XSS vulnerability in prefs.php, discovered today.%0a* Fix access keys to be a single character.%0a* Fix $AuthorPage if there is a group named the same as the author (PITS:01259).%0a* Update documentation.%0a%0a!!! [[#v2250]] Version 2.2.50 (2013-04-08)%0a* Update documentation.%0a%0a!!! [[#v2249]] Version 2.2.49 (2013-03-09)%0a* Add $UploadBlacklist array.%0a* Update documentation.%0a%0a!!! [[#v2248]] Version 2.2.48 (2013-02-11)%0a* Fix bug introduced yesterday with some links, reported by Michael Weiner (PITS:01308).%0a%0a!!! [[#v2247]] Version 2.2.47 (2013-02-10)%0a* Enable tooltip titles for links to anchors on the same page.%0a* Update documentation.%0a%0a!!! [[#v2246]] Version 2.2.46 (2013-01-07)%0a* Add third parameter to fixperms() explicitly setting the permissions.%0a* Add $UploadPermAdd and $UploadPermSet variables.%0a* Update documentation.%0a%0a!!! [[#v2245]] Version 2.2.45 (2012-12-02)%0a* Cleanup some PHP notices (PITS:01304).%0a* Update documentation.%0a%0a!!! [[#v2244]] Version 2.2.44 (2012-10-21)%0a* Better display of whitespace in page histories.%0a* Fix definition for PageTextVariables containing a dash (PITS:00978).%0a* Update documentation.%0a%0a!!! [[#v2243]] Version 2.2.43 (2012-09-20)%0a* Allow for HTML attribute names to contain dashes, eg. data-transition, data-role etc.%0a* Remove warning when previewing Site.EditForm.%0a* Update documentation.%0a%0a!!! [[#v2242]] Version 2.2.42 (2012-08-20)%0a* Convert the line-endings in the docs/ directory to \r\n compatible with Windows.%0a* Modify PHSC() to call htmlspecialchars() with a single-byte encoding argument.%0a* Update documentation.%0a%0a!!! [[#v2241]] Version 2.2.41 (2012-08-12)%0a* Change $KeepToken to "\034\034" which is compatible with more encodings.%0a* Update documentation.%0a%0a!!! [[#v2240]] Version 2.2.40 (2012-07-21)%0a* Add PHSC() helper function as a replacement of htmlspecialchars() for PHP 5.4 (PITS:01292).%0a* Update documentation.%0a%0a!!! [[#v2239]] Version 2.2.39 (2012-06-25)%0a* Fix URL encoding of attachment links.%0a* Update documentation.%0a%0a!!! [[#v2238]] Version 2.2.38 (2012-05-21)%0a* Fix "Wrong parameter count for utf8_decode" warning, reported by Simon.%0a* Update documentation.%0a%0a!!! [[#v2237]] Version 2.2.37 (2012-05-01)%0a* Add page filename encoding functions.%0a* Better handling of dots in [@[[#anchor_1.2]]@] sections (PITS:01285).%0a* Expand PageVariables in [[PageList templates]] defaults (PITS:01282).%0a* Add test for iconv() and mb_convert_encoding(), refactor recode().%0a* Update documentation.%0a%0a!!! [[#v2236]] Version 2.2.36 (2011-12-28)%0a* Add $EnableOldCharset variable and $page["=oldcharset"] entry.%0a* Refactor PageStore->recode() to recover Windows-1252 characters.%0a* Add exit line to xlpage-iso-8859-2.php (PITS:01275).%0a* Fix difference in defining and removing "invisible" PTVs.%0a* Update documentation.%0a%0a!!! [[#v2235]] Version 2.2.35 (2011-11-11)%0a* Fix critical PHP injection vulnerability (PITS:01271, reported by Egidio Romano).%0a* Important change: Disable script loading from XLPage().%0a* Move the processing of [@[[link|+]]@] inside LinkPage() and delete markup rule from stdmarkup.php.%0a* Modify MakeLink() to better handle link titles.%0a* Add optional $LinkTitleFunction allowing recipes to customize the link titles.%0a* Fix ReadTrail() to better handle links with titles.%0a* Add title attributes for the HTML templates in the @@ $LinkPage*Fmt @@ variables.%0a* Add upload extensions svg, xcf, ogg, flac, ogv, mp4, webm, odg, epub.%0a* Minor optimization for the MarkupExpressions for UTF-8 strings.%0a* Minor optimization of the rendering of page history.%0a%0a!!! [[#v2234]] Version 2.2.34 (2011-10-10)%0a* Add [[PmWiki/MarkupExpressions]] replacements for UTF-8.%0a* Reset timestamps of Site(Admin).AuthUser to 1000000000, used in upgrades.php.%0a* Update documentation.%0a%0a!!! [[#v2233]] Version 2.2.33 (2011-09-23)%0a* Fix locked states for Site and SiteAdmin GroupAttributes (reported by Brijesh Kothari).%0a* Fix intermap.txt entries PITS: and Wikipedia: to point to their current locations.%0a* Fix refcount.php to produce valid HTML (PITS:01266).%0a%0a!!! [[#v2232]] Version 2.2.32 (2011-09-18)%0a* Add required html xmlns attribute to the print skin template.%0a* Add PageStore->recode() function.%0a* Add $DefaultPageCharset array.%0a* Optimize for speed the inline diff for page history when too many lines were added or deleted.%0a* Update and convert to UTF-8 the documentation.%0a%0a%25note%25 Note: Due to a manipulation error, a version 2.2.31 was created before it was ready for a release.%0a%0a!!! [[#v2230]] Version 2.2.30 (2011-08-13)%0a* Fix $Charset definition in iso-8859-*.php files.%0a* Add $EnableRangeMatchUTF8, set it to 1 to enable range matches in UTF-8.%0a* Update documentation.%0a%0a!!! [[#v2229]] Version 2.2.29 (2011-07-24)%0a* Fix Attach links that were broken with the Path fix in 2.2.28.%0a* Add $IMapLocalPath array containing InterMap prefixes that should be treated as local.%0a%0a!!! [[#v2228]] Version 2.2.28 (2011-07-24)%0a* Fix potential XSS vulnerability in refcount.php (PITS:01262).%0a* Fix bug in Path: links (PITS:01260).%0a* Fix potential XSS vulnerability in custom SitePreferences (PITS:01263).%0a* Update documentation.%0a%0a!!! [[#v2227]] Version 2.2.27 (2011-06-19)%0a* Add block WikiStyle [=%25justify%25=] (PITS:01253).%0a* Remove unused %3cvspace> after a redirection (PITS:01255).%0a* Add ?nodiff=1 parameter for page history to disable diff rendering and show only restore links.%0a* Update documentation.%0a%0a!!! [[#v2226]] Version 2.2.26 (2011-05-21)%0a* Fix ReadTrail(), redundant replacing of hashes, already done in MakePageName().%0a* Update documentation.%0a%0a!!! [[#v2225]] Version 2.2.25 (2011-03-22)%0a* Update documentation.%0a%0a!!! [[#v2224]] Version 2.2.24 (2011-02-15)%0a* Add [@{$$PageTrailDepth}@] pseudovariable for [[PageList templates]].%0a* Fix PageVar(), add $authpage array for an authenticated page data, removed $EnablePageVarAuth.%0a* Update documentation.%0a%0a!!! [[#v2223]] Version 2.2.23 (2011-01-25)%0a* Default $EnablePageVarAuth to 0 until the resolution of PITS:01242.%0a%0a!!! [[#v2222]] Version 2.2.22 (2011-01-16)%0a* Add $EnableXLPageScriptLoad to XLPage() to prevent editors from changing the encoding.%0a* PageVariables now respect authentications (PITS:01213).%0a* Add $EnablePageVarAuth.%0a* Update documentation.%0a%0a!!! [[#v2221]] Version 2.2.21 (2010-12-14)%0a* Fix potential XSS vulnerability, reported by DFaure.%0a* Fix invalid HTML for simple table captions, reported by JL.%0a* Fix WikiStyles could work not properly if a value was empty like accesskey="".%0a%0a!!! [[#v2220]] Version 2.2.20 (2010-12-14)%0a* Fix Pagelist [={$$variable}=] didn't work in template none (PITS:01212).%0a* Fix interface access keys in browse mode (PITS:01188).%0a* Add PmL10n: intermap prefix for the Localization/ group on pmwiki.org (PITS:01180).%0a* Fix AuthUser excluding members didn't work (PITS:01201).%0a* Update documentation.%0a%0a!!! [[#v2219]] Version 2.2.19 (2010-11-10)%0a* Update documentation.%0a%0a!!! [[#v2218]] Version 2.2.18 (2010-09-04)%0a* Fix $SaveAttrPatterns to skip nested conditionals (reported by RandyB).%0a* Fix RecentChanges when an edit summary contains the dollar sign (PITS:01217).%0a* Fix RDF feed number of elements (PITS:01198).%0a* Update documentation.%0a%0a!!! [[#v2217]] Version 2.2.17 (2010-06-20)%0a* Add tabindex as a valid form attribute (PITS:01190).%0a* Collapse adjacent insertions in DiffRenderSource (PITS:01192).%0a* Fix HandleDownload to flush() output before exit (PITS:01199).%0a* Fix HandleDownload to respect $EnableIMSCaching (PITS:01191).%0a* Add $PostConfig functions and scripts, loaded after stdconfig.php (PITS:01132).%0a* Add $AuthUserPat variable for the regexp pattern in AuthUserId() (PITS:01202).%0a* Pass $authlist as last parameter to $AuthUserFunctions (PITS:01197).%0a* Fix "exists" conditional to work with old link markup.%0a* Update documentation.%0a%0a!!! [[#v2216]] Version 2.2.16 (2010-05-10)%0a* Allow "exists" conditional to accept wildcards (PITS:01184)%0a* Fix GUI button [=%25center%25=] which didn't work correctly.%0a* Fix incorrectly parsed quote in PQA(), possible script injection (discovered by Hanno Boeck).%0a%0a!!! [[#v2215]] Version 2.2.15 (2010-03-27)%0a* Add @@ (Auth|Edit)Form @@ to auto-translated titles.%0a* Fix [@ (:if auth LEVEL:) @] to respect $HandleAuth (PITS:01164).%0a* Skip loading of the second half of draft.php if $action!="edit".%0a* Fix bug with [@ (:template none:) @] introduced in 2.2.14, reported by Holger.%0a* Fix HandleDownload() to use binary file-read.%0a%0a!!! [[#v2214]] Version 2.2.14 (2010-02-27)%0a* Fix inline styles in WikiTrails (PITS:01121).%0a* Add a negation parameter to pagelist first/last templates (PITS:01127).%0a* Refactor FPLTemplateFormat(), move repeated code blocks into FPLExpandItemVars().%0a* Add $EnableUndefinedTemplateVars allowing to hide or show undefined template/include [={$$variables}=] (PITS:01152).%0a* Add "title" attribute to external links (PITS:00657).%0a* Add FmtPageTitle() to allow automatic i18n titles for RecentChanges and other technical pages (PITS:01157).%0a* Update documentation.%0a%0a!!! [[#v2213]] Version 2.2.13 (2010-02-21)%0a* Replace deprecated in PHP 5.3 function split() with explode().%0a* Add $WordDiffFunction default to PHPDiff().%0a* Use existing border colors as highlighting background.%0a* Refactor/optimize DiffRenderSource(), merge with DiffRenderInline().%0a* Change default history to show word-level highlighting.%0a* Fix bug with $DiffKeepNum which kept less revisions than it should.%0a* Fix RetrieveAuthPage() call from HandleDiff().%0a* Update documentation.%0a%0a!!! [[#v2212]] Version 2.2.12 (2010-02-17)%0a* Allow a custom $DiffHTMLFunction to skip the line rendering if it returns false.%0a* Add $EnableDiffInline, simple word-level diffs (PITS:00571).%0a* Update documentation.%0a%0a!!! [[#v2211]] Version 2.2.11 (2010-02-14)%0a* Break PrintDiff() into customizable functions (PITS:01106).%0a* Add anchors to individual diffs (PITS:00796).%0a* Remove unused $RecipeInfo definition in markupexpr.php (reported by P.Bowers).%0a* Add [=(:head:) and (:headnr:)=] table directives (PITS:00535).%0a* Fix $GroupPattern and $NamePattern in xlpage-utf-8.php.%0a* Update documentation.%0a%0a!!! [[#v229]] [[#v2210]] Version 2.2.9, 2.2.10 (2010-01-17)%0a* Fix i18n string in PasswdVar(), reported by SteP.%0a* Fix sample-config.php with correct information about $EnableWSPre (PITS:01145).%0a* Fix range searches for wikis in UTF-8 (reported by Maxim).%0a* Fix global variable $StringFolding in scripts/xlpage-utf-8.php.%0a* Fix markup for italics in creole.php.%0a* Fix previews for PTVs, [[PageList templates]] and included sections (PITS:01098).%0a* Add $DiffKeepNum - number of revisions kept, even if older than $DiffKeepDays.%0a* Add Yandex to robots.php.%0a* Change default $EnableRelativePageVars to 1 (PITS:01145).%0a* Add fifth parameter to SetProperty() : keep existing property.%0a* Add $EnablePageTitlePriority (PITS:00266, PITS:00779).%0a* Update documentation.%0a%0a!!! [[#v228]] Version 2.2.8 (2009-12-07)%0a* Fix apostrophes in Author field (PITS:01155).%0a* Fix Condition "exists" for PHP 5.3 (PITS:01156).%0a* Update documentation.%0a%0a!!! [[#v227]] Version 2.2.7 (2009-11-08)%0a* Fix GlobToPCRE() to work with !excl and -excl with PHP 5.3 (PITS:01149).%0a* Fix HandleDownload() correctly quote the filenames (PITS:01150).%0a* Fix SessionAuth() for PHP 5.3, the $_REQUEST array doesn't contain the $_COOKIE array (PITS:01141).%0a* Fix default timezone for PHP 5.3 (PITS:01141).%0a* Update documentation.%0a%0a!!! [[#v226]] Version 2.2.6 (2009-10-04)%0a* Escape apostrophes for multiline textarea/hidden form fields.%0a* Fix global unset of $MarkupRules in [[PmWiki/CustomMarkup|Markup()]] and DisableMarkup(), reported by D.Faure.%0a* Fix call to BuildMarkupRules() in MarkupToHTML(), suggested by Pm.%0a* Allow disabling of $PageListFilters and $FPLTemplateFunctions if set to -1 and thus allow replacing a core function with a custom one.%0a* Fix DRange() returned timestamps +1min or +1day when it shouldn't (PITS:01125).%0a* Add $MarkupWordwrapFunction to allow custom [@(:markup:)@] line width for multibyte wikis (PITS:00703).%0a* Add $MakeUploadNamePatterns to allow custom filename normalization for uploads.%0a* Add a fourth argument to PostRecentChanges() to allow this function to be called with a custom $RecentChangesFmt array.%0a* Add $RecentUploadsFmt, to allow logging of new uploads to the RecentChanges pages (PITS:00088).%0a* Fix Notify for some installations in safe_mode (PITS:00976).%0a* Add $HTMLHeaderFmt['guiedit'] variable in guiedit.php to allow customization (PITS:01146).%0a* Update documentation.%0a%0a!!! [[#v225]] Version 2.2.5 (2009-08-25)%0a* Add *.7z as accepted upload extension (PITS:00813).%0a* Fix global variable $HandleAttrFmt in HandleAttr (PITS:01126).%0a* Allow brackets in input element names (PITS:01131).%0a* Fix CSS class applied twice (PITS:01071).%0a* Fix Not-Modified headers could prevent caching (PITS:00802).%0a* Break FPLTemplate() into configurable sub-parts (PITS:01102).%0a* Add [@(:template none:)@] section for [[PageList templates]].%0a* Fix attr-protected page could be deleted with edit permissions (PITS:00238).%0a* Update documentation.%0a%0a!!! [[#v224]] Version 2.2.4 (2009-07-16)%0a* Fix bug with page attributes, which somehow didn't make it in the 2.2.3 release.%0a* Fix bug with HTML entities in XLPages introduced earlier today in 2.2.3 (reverted, PITS:01114).%0a%0a!!! [[#v223]] Version 2.2.3 (2009-07-16)%0a* Fix action=logout could incorrectly set a session cookie (PITS:01062).%0a* Fix page history trim in vardoc.php (PITS:01103).%0a* Add $EnableUploadGroupAuth, use group password for downloads (PITS:01104).%0a* Fix recursive PTV loops, added $MaxPageTextVars (PITS:00915, PITS:01099).%0a* Fix mkdirp() messages for absolute paths (PITS:00396).%0a* Fix sample-config.php order for urlapprove.php (PITS:01037).%0a* Fix broken signature links on preview.%0a* Fix crypt.php (action=crypt) could malfunction for passwords with quotes or apostrophes.%0a* Fix @@ @_site_*@@ passwords to work in GroupAttributes (PITS:00836, PITS:00998).%0a* Fix possible XSS vulnerabilities, reported by Michael Engelke.%0a* Update documentation.%0a%0a!!! [[#v222]] Version 2.2.2 (2009-06-21)%0a* Fix class in pages not on the breadcrumbs trail, reported by Ed W.%0a* Fix @@tabindex@@ and @@onclick@@ to guiedit buttons.%0a* Fix $GroupPrintHeaderFmt in print.php (PITS:01073).%0a* Fix global vars in xlpage-utf-8.php (PITS:00980).%0a* Fix $txt in LinkPage (reported by Eemeli Aro).%0a* Add $EnableNotifySubjectEncode for international wikis (Cookbook:UTF-8).%0a* Fix international message in Abort().%0a* Fix security bug with AuthUser, reported by Eemeli Aro. See [[Release notes]].%0a* Fix $ActionTitleFmt for login and upload, reported by Eemeli Aro.%0a%0a!!! [[#v221]] Version 2.2.1 (2009-03-28)%0a* Fix $FPLTemplateMarkupFunction which somehow didn't get in the 2.2.0 archive.%0a* Fix wikitrails to work cross-group (PITS:00407).%0a* Add $EnableRedirectQuiet variable (PITS:00919).%0a* Fix [={$Title}=] could display global variables (reported by HansB).%0a* Fix reloaded form submissions could lose values (reported by DaveG).%0a* Fix preview while restoring a version from history (PITS:01081).%0a* Fix relative links with international characters (reported by G. Hermanowicz).%0a* Add in sample-config.php example call to xlpage-utf-8.php (PITS:01066).%0a* Update documentation.%0a* Fix guiedit.php to produce valid HTML.%0a%0a!!! [[#v220]] Version 2.2.0 (2009-01-18)%0a* Convert beta series to official release series.%0a* Add $FPLTemplateMarkupFunction (PITS:00984, requested by John Rankin).%0a%0a!!! [[#older]] Older versions%0a[[(PmWiki:)ChangeLog Archive]] - changes prior to version 2.2.0.%0a
+time=1700402016
diff --git a/wikilib.d/PmWiki.LayoutVariables b/wikilib.d/PmWiki.LayoutVariables
index 618da900..e82b9118 100644
--- a/wikilib.d/PmWiki.LayoutVariables
+++ b/wikilib.d/PmWiki.LayoutVariables
@@ -1,9 +1,9 @@
-version=pmwiki-2.3.25 ordered=1 urlencoded=1
+version=pmwiki-2.3.27 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
-csum=$TrailFmt, $InputLabelFmt (+753)
+csum=$EnableLocalTimes = 3; MM'YY (+136)
name=PmWiki.LayoutVariables
-rev=172
+rev=173
targets=PmWiki.LayoutVariables,PmWiki.BasicVariables,PmWiki.PageDirectives,PmWiki.PageHistory,Cookbook.LocalTimes,Cookbook.PmSyntax,Cookbook.CustomSyntax,PmWiki.WikiStyles,PmWiki.SkinTemplates,PmWiki.WikiGroup,PmWiki.Questions,Cookbook.CustomRecentChanges,Cookbook.RecentUploadsLog,PmWiki.CustomWikiStyles,Cookbook.LocalCSS,PmWiki.TableOfContents,Cookbook.ToggleNext,PmWiki.PathVariables,PmWiki.Tables,PITS.00638,Cookbook.RowspanInSimpleTables,PmWiki.TableDirectives,PmWiki.Skins,Skins.SkinChange,PmWiki.WikiTrails,PmWiki.OtherVariables,PmWiki.EditVariables
-text=(:Summary:variables that control page layout:)%0aVariable substitutions in the skin template are all managed by the %25hlt php%25@@`FmtPageName()@@ %25%25function from @@pmwiki.php@@. Pmwiki variable substitutions available on pages are managed by the {$var} substitutions from @@stdmarkup.php@@ or superseded in @@local/config@@ files. %0a%0a:$ActionSkin:This array is used to override the current skin when performing a given action. The most common use is to set %25hlt php%25@@$ActionSkin['print']='foo'@@ to use the 'foo' skin when printing, regardless of what the @@$Skin@@ variable is set to.%0a%0a:$WikiTitle:A variable which contains the Wiki title as displayed in the browser tab and at the top of the browser window, e.g. "{$WikiTitle}"%0a%0a:$EnablePageTitlePriority:A variable defining how to treat multiple %25pmhlt%25[@(:title ...:)@] [[page directives]] (added in PmWiki 2.2.9).%0a: : %25hlt php%25@@$EnablePageTitlePriority = 0;@@ # PmWiki default, last encountered title wins (the title may be changed from included pages or GroupFooter).%0a: : %25hlt php%25@@$EnablePageTitlePriority = 1;@@ # First title wins; if a title is defined in the page, directives from included pages cannot change it.%0a%0a:$EnableDiffInline:If set to 0, this variable switches off the word-level highlighting on the markup in the [[page history]].%0a: : %25hlt php%25@@$EnableDiffInline = 0;@@ # Disable colors, show plain text differences%0a%0a:$EnableRCDiffBytes:If set to 1, @@(All)RecentChanges@@ pages will display the difference in bytes of the page content from the previous version like %25diffmarkup%25{+(+123)+} or {-(-42)-}%25%25%0a: : %25hlt php%25@@$EnableRCDiffBytes = 1;@@ # Show bytes difference from previous version%0a%0a: : The colors are the same as those in the page history; if your skin doesn't provide them, add to ''@@pub/css/local.css@@'' something like: %25hlt css%25[@%0a.diffmarkup { font-family: monospace; font-size: 0.9em; } %0a.diffmarkup del { background: #ff9; text-decoration: none; }%0a.diffmarkup ins { background: #9f9; text-decoration: none; }@]%0a%0a:$CurrentTime: This variable contains the current date and time formatted with $TimeFmt. It is used in @@RecentChanges@@ (before 2.3.0), and in user signatures.%0a%0a:$CurrentLocalTime: This variable contains the current date and time stamp, saved in @@RecentChanges@@ (since 2.3.0). This time stamp will be saved in the wiki source text in Greenwich Mean Time (UTC/GMT), but will be shown according to $TimeFmt in the timezone of the wiki. When $EnableLocalTimes is enabled, then it will be shown in the visitor's time zone. The same format is also saved in user signatures if $EnableLocalTimes is enabled.%0a%0a:$EnablePmUtils: This variable controls whether the script @@pub/pmwiki-utils.js@@ should be loaded or not. The script contains JavaScript utility functions for the table of contents, the syntax highlighting, the recent changes, and the email obfuscation. By default $EnablePmUtils is 1 (enabled), but its functions should be enabled individually ($EnableLocalTimes, $EnableHighlight, $PmTOC, $LinkFunctions['mailto:']). Set this variable to 0 to disable all these functions.%0a%0a:$EnableLocalTimes: (Default disabled) Enables the rewriting of date and time stamps into the timezone of the visitor, see documentation at Cookbook:LocalTimes. Dates affected are in RecentChanges pages, in page histories, and in user signatures.%0a: : %25hlt php%25@@ $EnableLocalTimes = 2; @@ Enables '''long''' local times, as in MM/DD/YYYY HH:MM:SS.%0a: : %25hlt php%25@@ $EnableLocalTimes = 1; @@ Enables '''compact''' local times, either HH:MM (within 24 hours), MM/DD or DD/MM (within 11 months), and MM/DD/YYYY or DD/MM/YYYY if earlier than 11 months. The long format appears in a tooltip title when the mouse is over the short format.%0a%0a:$EnablePmSyntax: (Not to be confused with $EnableHighlight) When set to 1, enables [[Cookbook:PmSyntax|PmSyntax]], a syntax highlighting for the PmWiki markup language, which makes the documentation easy to read (from 2.3.0). When set to 2, it also enables the experimental syntax highlighting in the basic edit form: %25hlt php%25[@%0a$EnablePmSyntax = 1; # highlight documentation blocks%0a$EnablePmSyntax = 2; # both documentation and edit form%0aif ($action=='edit') $EnablePmSyntax = 2; # only edit form@]%0a%0a:$CustomSyntax:(From 2.3.0) An array where custom rules for syntax highlighting can be defined. See documentation at Cookbook:CustomSyntax.%0a%0a:$EnableHighlight: (Not to be confused with $EnablePmSyntax) If set to 1, enables compatibility with the [[https://github.com/highlightjs/highlight.js|highlight.js]] library to highlight program code. In addition, you need to include the library and mark your code blocks with the wikistyle [@%25highlight%25@], see [[WikiStyles#highlight]].%0a%0a:$EnableCopyCode: (From 2.3.21) When set to 1, adds a [@[+]@] button near the top right of preformatted blocks. A user clicking on the button will have the text of the preformatted block copied to their system clipboard: %25hlt php%25[@%0a$EnableCopyCode = 1; # add a [+] copy code button to pre blocks@]%0a%0a:$HTMLTagAttr:A string containing attributes of the %25hlt html%25@@%3chtml...>@@ tag in the skin template, default empty. For example, to add a "lang" attribute, set in @@config.php@@: %25hlt php%25[@%0a$HTMLTagAttr = 'lang="en" xml:lang="en"';@]%0a: : For this variable to work in a custom skin, add it in the template file, for example:%25hlt html%25[@%0a%3chtml xmlns="http://www.w3.org/1999/xhtml" $HTMLTagAttr>@]%0a%0a:$HTMLStylesFmt:An array of CSS statements to be included in the page's output along with other HTML headers. This array provides an easy place for scripts to add custom CSS statements.%0a%0a:$HTMLHeaderFmt:An array of HTML text to be included in the page's %25hlt html%25@@%3chead>@@ section, at the point where the [[skin template(s)]] specifies a [@%3c!--HTMLHeader-->@] directive. This array provides an easy place for scripts to add custom HTML headers.%0a%0a->For example, if you want to specify a [[Wikipedia:Favicon|favicon]] for all the pages of your wiki (a png image for Firefox (and others...), an ico for Internet Explorer):%0a-->%25hlt php%25[@%0a$HTMLHeaderFmt['favicon'] =%0a'%3clink href="http://path/to/icon.png" type="image/png" rel="icon" />%0a %3clink href="http://path/to/icon.ico" type="image/x-icon" rel="shortcut icon" />';%0a@]%0a%0a->Another example, if you want to get the RSS notification on some browsers (the RSS icon in Firefox for instance):%0a-->%25hlt php%25[@%0a$HTMLHeaderFmt['rss'] =%0a'%3clink rel="alternate" type="application/rss+xml" title="Rss All recent Changes" %0a href="$ScriptUrl/Site/AllRecentChanges?action=rss" />';%0a@]%0a%0a->Javascript example%0a-->%25hlt php%25[@%0a$HTMLHeaderFmt['the-javascript'] =%0a'%3cscript>%0a // the javascript code%0a %3c/script>';@]%0a%0a:$HTMLFooterFmt:Like $HTMLHeaderFmt above, this contains an array of HTML text to be included near the end of an HTML document, at the point where the [[skin template(s)]] specifies a %25hlt php%25[@%3c!--HTMLFooter-->@] directive (usually just before a closing @@%3c/body>@@ tag). Primarily used by scripts to add custom HTML output after the body of the page output. %0a%0a:$MetaRobots:Sets the value of the %25hlt php%25[@%3cmeta name='robots' ... />@] tag generated by PmWiki to control search engine robots accessing the site. PmWiki's default setting tells robots to not index anything but the normal page view, and to not index pages in the PmWiki [[wiki group]]. Explicitly setting $MetaRobots overrides this default.%0a--> %25hlt php%25[@# never index this site%0a$MetaRobots = 'noindex,nofollow';%0a# disable the robots tag entirely%0a$MetaRobots = ''; @]%0a%0a:$MessagesFmt:An array of HTML text to be displayed at the point of any %25pmhlt%25[@(:messages:)@] markup. Commonly used for displaying messages with respect to editing pages.%0a%0a:$RecentChangesFmt:An array specifying the format of the RecentChanges listing.%0a%0a->The key of the array specifies the page where changes will be logged, as in%0a-->%25hlt php%25[@%0a$RecentChangesFmt['$SiteGroup.AllRecentChanges']%0a@]%0a->The value of the array specifies the format in which the changes will be logged, as in%0a-->%25pmhlt%25[@%0a'* [[{$Group}.{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]'%0a@]%0a->Note the two consecutive spaces before the three dots (@@. . .@@). The two spaces separate two parts of the format: the first part doesn't change (e.g. a link to the changed page) and the second part does change (e.g. the date and author of the change). Upon saving a page, PmWiki removes a line that matches the first part and adds a line with the current format before the first line with 2 spaces. This way, any line without two consecutive spaces stays at the top of the recent changes page.%0a%0a->You can use and adapt the following to change the format (put it in config.php):%0a-->%25hlt php%25[@%0a$RecentChangesFmt['$SiteGroup.AllRecentChanges'] = %0a '* [[{$Group}.{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';%0a$RecentChangesFmt['$Group.RecentChanges'] =%0a '* [[{$Group}/{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';%0a@]%0a-> Since PmWiki 2.3.0, the format uses $CurrentLocalTime by default which shows exactly what $CurrentTime previously showed, but when $EnableLocalTimes is set, will rewrite the time and date in the local format and timezone of the visitor. %0a%0a->Note that changes made to the format will only affect new edits. In other words, you will need to edit a page for your new format to be visible. Note also that you need to have two spaces between the page name and the other information about the edit.%0a%0a->Also note that this variable has other uses, such as not reporting at all to RecentChanges and AllRecentChanges as found here [[PmWiki:Questions|PmWiki Questions]]. More informations on customizing RecentChanges pages here : [[Cookbook/CustomRecentChanges]].%0a%0a:$RecentUploadsFmt:An array specifying the format for uploaded files at the RecentChanges listing. It is similar to $RecentChangesFmt. If enabled, newly uploaded files will be logged to the RecentChanges pages. Default is disabled. See Cookbook:RecentUploadsLog for more information. See also $EnableRecentUploads.%0a%0a:$EnableRecentUploads: When set to 1, and when $RecentUploadsFmt is not set, it enables Recent uploads in a default format, only on the page Site.AllRecentChanges. This was added in 2.3.0 to easily enable the feature with some default settings that may be good enough for many wikis.%0a%0a:$DraftRecentChangesFmt:An array specifying the format of the RecentChanges listing when saving Draft pages.%0a%0a->$RecentChangesFmt is set to $DraftRecentChangesFmt when a Draft page is saved. For example, you could save drafts in a separate Recent Draft Changes page and not list in the normal group's Recent Changes page:%0a-->%25hlt php%25[@%0a$DraftRecentChangesFmt['$Group.RecentDraftChanges'] =%0a '* [[{$Group}/{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';%0a$DraftRecentChangesFmt['$Group.RecentChanges'] = '';%0a@]%0a%0a:$RCLinesMax:The maximum number of lines to be stored in RecentChanges pages. The default is zero, meaning "no limit".%0a $RCLinesMax = 1000; # maintain at most 1000 recent changes%0a%0a:$PageRedirectFmt:The text to be used when a page is redirected via the [@(:redirect:)@] markup.%0a-->%25hlt php%25[@%0a$PageRedirectFmt = '%3cp>%3ci>redirected from $FullName%3c/p>';%0a$PageRedirectFmt = '';%0a@]%0a->For display options, see also the FAQ on [[(PmWiki:)PageDirectives(#faq)]].%0a%0a:$WikiStyle:An array which contains the predefined WikiStyles which can be used on a textpage.[[%3c%3c]]See: [[PmWiki.CustomWikiStyles]]%0a%0a:$WikiStyleApply:An array which defines the scope of wiki styling per HTML element. Default settings are:%0a->%25hlt php%25[@%0a'item' => 'li|dt',%0a'list' => 'ul|ol|dl',%0a'div' => 'div',%0a'pre' => 'pre',%0a'img' => 'img',%0a'block' => 'p(?!\\sclass=)|div|ul|ol|dl|li|dt|pre|h[1-6]',%0a'p' => 'p(?!\\sclass=)'%0a@]%0a%0a->This defines that we can apply wiki styling on:%0a* LI elements using the ''item'' keyword%0a* UL, OL, DL elements using the ''list'' keyword%0a* etc.%0a%0a->An example of applying scope to an LI element is below. For more information refer to [[PmWiki/WikiStyles#Scope | WikiStyle scope]].%0a(:markup class=horiz:) %0a* %25apply=item red%25Here is a red styled list item%0a* This item would not be styled.%0a(:markupend:)%0a%0a->You can [[PmWiki.WikiStyles#WikiStyleApply | add additional HTML elements to $WikiStyleApply]] to apply wiki styles to other HTML elements. For example to allow styling on table rows, or anchor tags.%0a%0a:$WikiPageCSSFmt: This variable holds a page name where you can add CSS rules applied to specific page patterns (default disabled). See Cookbook:LocalCSS as an example.%0a: : %25hlt php%25@@$WikiPageCSSFmt = 'Site.LocalCSS'; # global Site.LocalCSS page@@%0a: : %25hlt php%25@@$WikiPageCSSFmt = '[={$Group}=].LocalCSS'; # per-group LocalCSS pages@@%0a%0a:$WikiPageCSSVars: If a "wiki CSS page" is enabled with $WikiPageCSSFmt, this is an array with global PHP $variables available as pre-processor @variables in that page. By default the array contains: @@'FarmPubDirUrl', 'PubDirUrl', 'Skin', 'action', 'SkinDirUrl'@@.%0a%0a:$EnableSelfWikiPageCSS: If a "wiki CSS page" is enabled with $WikiPageCSSFmt, that specific page doesn't have CSS applied to itself when browsed or edited. In case a grave mistake is made in the styles and the site becomes unusable, this page will still be viewable and editable. People familiar with CSS can set this to 1 and the styles will be applied to the page itself, also in "Preview" mode:%0a: : %25hlt php%25@@$EnableSelfWikiPageCSS = 1; # Apply styles to the "wiki CSS page" itself@@%0a%0a:$PmTOC: Enable and configure the built-in table of contents, see [[Table of contents]] (TOC).%0a: : %25hlt php%25@@$PmTOC['Enable'] = 1; # Enable TOC; default is 0 (disabled).@@%0a%0a:$ToggleNextSelector: A CSS selector to enable interactive toggling of hidden sections, see Cookbook:ToggleNext. By default it is disabled.%0a%0a:$MaxIncludes:Controls the number of times that pages can be included via the %25pmhlt%25[@(:include:)@] and other directives, used to control recursion and otherwise pose a sanity check on page contents. $MaxIncludes defaults to 50, but can be set to any value by the wiki administrator.%0a--> %25hlt php%25[@$MaxIncludes = 50; # default%0a$MaxIncludes = 1000; # allow lots of includes%0a$MaxIncludes = 0; # turn off includes @]%0a%0a:$Skin:Lists the name(s) of skins to load, unless overridden by $ActionSkin. Normally $Skin contains a single string which is the name of a skin directory, but it may also be an array of names, in which case the first skin found from the list is used.%0a%0a:$SkinDirUrl:Set by ''@@scripts/skins.php@@'' to be the base url of the current skin's directory (i.e., within a '@@pub/skins/@@' directory). This variable is typically used inside of a skin @@.tmpl@@ file to provide access to @@.css@@ files and graphic images associated with the skin.%0a%0a:$SkinLibDirs:An array which, given the filesystem path (array key) to a skin (or a directory containing several skins), provides the corresponding URL (array value).%0a%0a->The array key is the directory containing the @@skin.tmpl@@ and @@skin.php@@ files, as seen by the PmWiki program. It does not have to be publicly accessible.%0a%0a-> The value is the URL (web address) of the directory containing the @@.css@@, @@.gif@@, and other files which appear in the HTML code sent by PMWiki to the browser. This directory must be publicly accessible.%0a%0a->By default $SkinLibDirs is set to:%0a--> %25hlt php%25[@%0a$SkinLibDirs = array(%0a "./pub/skins/\$Skin" => "$PubDirUrl/skins/\$Skin",%0a "$FarmD/pub/skins/\$Skin" => "$FarmPubDirUrl/skins/\$Skin");%0a@]%0a%0a->Extra details: When PMWiki is searching for a skin it looks for a directory named for the skin in the array index/keys, and if it finds it then it will use the files in that directory and also the files in the matching array value url. The two sides normally point to the same publicly accessible directory, but they do not have to.%0a%0a:$SkinTemplateIncludeLevel: how many levels of inclusion are allowed for [[skin templates]] with the %25hlt html%25[@%3c!--IncludeTemplate:...-->@]%25%25 directive. By default this directive is disabled. Setting it to 1 allows one level of inclusions, setting it to 2 allows included templates to include more templates. There can be up to 10 levels of inclusion. This variable can be defined either in @@local/config.php@@ or in @@pub/skins/skinname/skinname.php@@ (with SDV):%25hlt php%25[@%0a # in config.php, allow one level of inclusions%0a $SkinTemplateIncludeLevel = 1; %0a%0a # in skinname.php, allow 3 levels of inclusions%0a SDV($GLOBALS['SkinTemplateIncludeLevel'], 3); %0a@]%0a%0a:$PageLogoUrl: is the url that refers to a logo image which most skins display somewhere in the page's header (top left usually), e.g. "{$PageLogoUrl}"%0a%0a:$EnablePathInfo:Changes the handling of the page URL. When set to @@1@@ page URL will be @@...wiki.php/Main/Main@@, when set to @@0@@ (default) it will be @@...wiki.php?n=Main.Main@@.%0a%0a:$EnableFixedUrlRedirect:When PmWiki is given a partial page name (e.g., just the name of a WikiGroup), it uses $PagePathFmt in order to make a complete page name from the partial one, then issues a "redirect" to the browser to tell it to reload the page with the correct full page name. Setting %25hlt php%25@@$EnableFixedUrlRedirect=0;@@ blocks the redirect, so that PmWiki continues processing with the adjusted page name rather than issuing the redirect. %0a%0a:$GroupHeaderFmt:Defines the markup placed at the top of every page. Default value is:%0a [=$GroupHeaderFmt = '(:include {$Group}.GroupHeader self=0 basepage={*$FullName}:)(:nl:)';=]%0a%0a:$GroupPrintHeaderFmt:Defines the markup placed at the top of every page when [@action=print@]. Default value is:%0a [=SDV($GroupPrintHeaderFmt,'(:include $Group.GroupPrintHeader basepage={*$FullName}:)(:nl:)');=]%0a%0a:$GroupFooterFmt:Defines the markup placed at the bottom of every page. Default value is:%0a [=$GroupFooterFmt = '(:nl:)(:include {$Group}.GroupFooter self=0 basepage={*$FullName}:)';=]%0a%0a:$GroupPrintFooterFmt:Defines the markup placed at the bottom of every page when [@action=print@]. Default value is:%0a [=SDV($GroupPrintFooterFmt,'(:nl:)(:include $Group.GroupPrintFooter basepage={*$FullName}:)');=]%0a%0a:$PageNotFoundHeaderFmt:Specifies the HTTP header to send when attempting to browse a page that doesn't exist. Some webserver packages (notably Microsoft's "Personal Web Server") require that this variable be changed in order to work.%0a%0a-->%25hlt php%25[@%0a# default%0a$PageNotFoundHeaderFmt = 'HTTP/1.1 404 Not Found';%0a# return all pages as found%0a$PageNotFoundHeaderFmt = 'HTTP/1.1 200 Ok';%0a@]%0a%0a->Beware when expecting to return the content of a Group(header|footer) for an non existent page! By default PmWiki returns 404 (because the page does not exist), despite there is some content to show. Firefox shows the content, while Internet Explorer displays its default 404 page. $PageNotFoundHeaderFmt MUST be set to return 200 as described above in order to get the expected behaviour with all browsers.%0a%0a:$HTMLVSpace:Setting %25hlt php%25[@$HTMLVSpace = '';@]%25%25 in a local customizationfile (e.g., [@local/config.php@]) prevents insertion of spacer paragraphs (%25hlt html%25[@%3cp class='vspace'>%3c/p>@]%25%25) in generated HTML code. To limit this change to a single skin, place the %25hlt php%25[@$HTMLVSpace = '';@] statement in a @@skin.php@@ file, preceded by the statement %25hlt php%25[@global $HTMLVSpace;@].%0a%0a:$HTMLPNewline:This variable allows to enable linebreaks by default, i.e. without having the directive %25pmhlt%25[@(:linebreaks:)@] in a page or in a GroupHeader. To enable line breaks, add to @@config.php@@ such a line:\\%0a %25hlt php%25@@$HTMLPNewline = '%3cbr/>'; @@%0a%0a:$SimpleTableDefaultClassName:This variable can contain a CSS classname to be used for [[tables|simple tables]], if a "class=" attribute is not defined in the wiki page (default unset):\\%0a%25hlt php%25@@ $SimpleTableDefaultClassName = "wikisimpletable";@@\\%0aSee for sample code PITS:00638.%0a%0a:$EnableSimpleTableRowspan:If set to 1, will enable features replicating the recipe Cookbook:RowspanInSimpleTables (default disabled).\\%0a@@ $EnableSimpleTableRowspan = 1; @@ # See [[Cookbook:RowspanInSimpleTables|recipe]]%0a%0a:$EnableSortable:Set this variable to 1 to enable sortable tables, see [[Tables#sortable]] (default disabled):%25hlt php%25[@%0a$EnableSortable = 1; # Enable sortable tables@]%0a%0a:$TableCellAttrFmt:For [[Tables]], defines the HTML attributes given to each @@%3ctd>@@ or @@%3cth>@@ cell in the output. Can contain references to $TableCellCount which holds the horizontal column number of the current cell.%0a%0a:$TableCellAlignFmt:For [[Tables]], defines the HTML attributes for alignment of each @@%3ctd>@@ or @@%3cth>@@ cell. Default is @@" align='%25s'"@@ where %25s will be replaced with 'center', 'left' or 'right'. For a valid HTML5 output you may want to change this in @@config.php@@:\\%0a%25hlt php%25@@$TableCellAlignFmt = " class='%25s'";@@\\%0athen define the CSS classes td.center, td.right and td.left (also th).%0a%0a:$TableRowAttrFmt:For [[Tables]], defines the HTML attributes given to each @@%3ctr>@@ element in the output. Can contain references to $TableRowCount to give the absolute row number within the table, or $TableRowIndex to provide a repeating row index from 1 to $TableRowIndexMax.%0a-> %25hlt php%25[@# Give each row a unique CSS class based on row number (tr1, tr2, tr3, ... )%0a$TableRowAttrFmt = "class='tr\$TableRowCount'";%0a# Give each row alternating CSS classes (ti1, ti2, ti1, ti2, ti1, ... )%0a$TableRowIndexMax = 2;%0a$TableRowAttrFmt = "class='ti\$TableRowIndex'"; @]%0a%0a:$TableRowIndexMax:The maximum value for $TableRowIndex in [[Tables]].%0a-> %25hlt php%25[@# Set rows indexes as 1, 2, 3, 1, 2, 3, 1, 2, ...%0a$TableRowIndexMax = 3; @]%0a%0a:$EnableTableAutoValignTop:[[TableDirectives|Advanced tables]] are intended for layout, and automatically insert the @@valign='top'@@ attribute if there is no @@valign@@ attribute defined in the markup source. Setting this variable to 0 in config.php will prevent the automatic addition.%0a-> %25hlt php%25@@$EnableTableAutoValignTop = 0; # disable automatic valign='top' attr@@%0a%0a:$EnableAutoSkinList:This variable enables the change of the [[PmWiki/skins|skin]] from the URL to any skin available on the wiki installation. See also $PageSkinList and Skins:SkinChange.%0a%0a:$PageSkinList:This is an array of allowed skins that can be changed by the visitor with @@?skin=@@ or @@?setskin=@@ URL query to the wiki. See also $EnableAutoSkinList and Skins:SkinChange.%0a%0a:$TrailFmt: An array of HTML snippets containing the layout of the [[WikiTrails]] output. If you define one or more custom values in config.php, they will be used. Here are the default values:\\%0a%25hlt php%25[@%0a$TrailFmt['%3c%3c|'] = "%3cspan class='wikitrail'>&lt;&lt; \$prev | \$trailname | \$next &gt;&gt;%3c/span>";%0a$TrailFmt['%3c|'] = "%3cspan class='wikitrail'>\$prev\$trailname\$next%3c/span>";%0a$TrailFmt['^|'] = "%3cspan class='wikitrail'>\$crumbs%3c/span>";%0a@]%0a%0a:$InputLabelFmt: A HTML snippet containing the layout of the "label" after an input form field. If you define a custom value in config.php, it will be used. The default value has initial and trailing spaces: \\%0a%25hlt php%25[@$InputLabelFmt = ' %3clabel for="$LabelFor" $LabelTitle>$LabelText%3c/label> '; @]%0a%0a:$FmtV['$TableCellCount']:PMWiki internal variable - Horizontal column number of the current cell. For use in $TableCellAttrFmt and $TableRowAttrFmt. Administrators can use in $TableCellAttrFmt and/or $TableRowAttrFmt.%0a-> Example: %25hlt php%25@@$TableCellAttrFmt = 'class=col\$TableCellCount';@@ %0a%0a:$FmtV['$TableRowCount']:PMWiki internal variable - Current row number. Administrators can use in $TableCellAttrFmt and/or $TableRowAttrFmt.%0a-> Example: %25hlt php%25@@TableRowAttrFmt = "class='row\$TableRowCount'";@@%0a%0a:$FmtV['$TableRowIndex']:PMWiki internal variable - Row index number derived from $TableRowIndexMax. (1,2,3,1,2,3,...). Administrators can use in $TableCellAttrFmt and/or $TableRowAttrFmt.%0a-> Example: %25hlt php%25@@$TableRowAttrFmt = "class='ind\$TableRowIndex'";@@%0a%0aSee also: [[Edit Variables]]%0a
-time=1695896620
+text=(:Summary:variables that control page layout:)%0aVariable substitutions in the skin template are all managed by the %25hlt php%25@@`FmtPageName()@@ %25%25function from @@pmwiki.php@@. Pmwiki variable substitutions available on pages are managed by the {$var} substitutions from @@stdmarkup.php@@ or superseded in @@local/config@@ files. %0a%0a:$ActionSkin:This array is used to override the current skin when performing a given action. The most common use is to set %25hlt php%25@@$ActionSkin['print']='foo'@@ to use the 'foo' skin when printing, regardless of what the @@$Skin@@ variable is set to.%0a%0a:$WikiTitle:A variable which contains the Wiki title as displayed in the browser tab and at the top of the browser window, e.g. "{$WikiTitle}"%0a%0a:$EnablePageTitlePriority:A variable defining how to treat multiple %25pmhlt%25[@(:title ...:)@] [[page directives]] (added in PmWiki 2.2.9).%0a: : %25hlt php%25@@$EnablePageTitlePriority = 0;@@ # PmWiki default, last encountered title wins (the title may be changed from included pages or GroupFooter).%0a: : %25hlt php%25@@$EnablePageTitlePriority = 1;@@ # First title wins; if a title is defined in the page, directives from included pages cannot change it.%0a%0a:$EnableDiffInline:If set to 0, this variable switches off the word-level highlighting on the markup in the [[page history]].%0a: : %25hlt php%25@@$EnableDiffInline = 0;@@ # Disable colors, show plain text differences%0a%0a:$EnableRCDiffBytes:If set to 1, @@(All)RecentChanges@@ pages will display the difference in bytes of the page content from the previous version like %25diffmarkup%25{+(+123)+} or {-(-42)-}%25%25%0a: : %25hlt php%25@@$EnableRCDiffBytes = 1;@@ # Show bytes difference from previous version%0a%0a: : The colors are the same as those in the page history; if your skin doesn't provide them, add to ''@@pub/css/local.css@@'' something like: %25hlt css%25[@%0a.diffmarkup { font-family: monospace; font-size: 0.9em; } %0a.diffmarkup del { background: #ff9; text-decoration: none; }%0a.diffmarkup ins { background: #9f9; text-decoration: none; }@]%0a%0a:$CurrentTime: This variable contains the current date and time formatted with $TimeFmt. It is used in @@RecentChanges@@ (before 2.3.0), and in user signatures.%0a%0a:$CurrentLocalTime: This variable contains the current date and time stamp, saved in @@RecentChanges@@ (since 2.3.0). This time stamp will be saved in the wiki source text in Greenwich Mean Time (UTC/GMT), but will be shown according to $TimeFmt in the timezone of the wiki. When $EnableLocalTimes is enabled, then it will be shown in the visitor's time zone. The same format is also saved in user signatures if $EnableLocalTimes is enabled.%0a%0a:$EnablePmUtils: This variable controls whether the script @@pub/pmwiki-utils.js@@ should be loaded or not. The script contains JavaScript utility functions for the table of contents, the syntax highlighting, the recent changes, and the email obfuscation. By default $EnablePmUtils is 1 (enabled), but its functions should be enabled individually ($EnableLocalTimes, $EnableHighlight, $PmTOC, $LinkFunctions['mailto:']). Set this variable to 0 to disable all these functions.%0a%0a:$EnableLocalTimes: (Default disabled) Enables the rewriting of date and time stamps into the timezone of the visitor, see documentation at Cookbook:LocalTimes. Dates affected are in RecentChanges pages, in page histories, and in user signatures.%0a: : %25hlt php%25@@ $EnableLocalTimes = 2; @@ Enables '''long''' local times, as in MM/DD/YYYY HH:MM:SS.%0a: : %25hlt php%25@@ $EnableLocalTimes = 1; @@ Enables '''compact''' local times, either HH:MM (within 24 hours), MM/DD or DD/MM (within 11 months), and MM/DD/YYYY or DD/MM/YYYY if earlier than 11 months. The long format appears in a tooltip title when the mouse is over the short format.%0a: : %25hlt php%25@@ $EnableLocalTimes = 3; @@ Like the '''compact''' local times, but when the date is earlier than 11 months, shows MM'YY.%0a%0a:$EnablePmSyntax: (Not to be confused with $EnableHighlight) When set to 1, enables [[Cookbook:PmSyntax|PmSyntax]], a syntax highlighting for the PmWiki markup language, which makes the documentation easy to read (from 2.3.0). When set to 2, it also enables the experimental syntax highlighting in the basic edit form: %25hlt php%25[@%0a$EnablePmSyntax = 1; # highlight documentation blocks%0a$EnablePmSyntax = 2; # both documentation and edit form%0aif ($action=='edit') $EnablePmSyntax = 2; # only edit form@]%0a%0a:$CustomSyntax:(From 2.3.0) An array where custom rules for syntax highlighting can be defined. See documentation at Cookbook:CustomSyntax.%0a%0a:$EnableHighlight: (Not to be confused with $EnablePmSyntax) If set to 1, enables compatibility with the [[https://github.com/highlightjs/highlight.js|highlight.js]] library to highlight program code. In addition, you need to include the library and mark your code blocks with the wikistyle [@%25highlight%25@], see [[WikiStyles#highlight]].%0a%0a:$EnableCopyCode: (From 2.3.21) When set to 1, adds a [@[+]@] button near the top right of preformatted blocks. A user clicking on the button will have the text of the preformatted block copied to their system clipboard: %25hlt php%25[@%0a$EnableCopyCode = 1; # add a [+] copy code button to pre blocks@]%0a%0a:$HTMLTagAttr:A string containing attributes of the %25hlt html%25@@%3chtml...>@@ tag in the skin template, default empty. For example, to add a "lang" attribute, set in @@config.php@@: %25hlt php%25[@%0a$HTMLTagAttr = 'lang="en" xml:lang="en"';@]%0a: : For this variable to work in a custom skin, add it in the template file, for example:%25hlt html%25[@%0a%3chtml xmlns="http://www.w3.org/1999/xhtml" $HTMLTagAttr>@]%0a%0a:$HTMLStylesFmt:An array of CSS statements to be included in the page's output along with other HTML headers. This array provides an easy place for scripts to add custom CSS statements.%0a%0a:$HTMLHeaderFmt:An array of HTML text to be included in the page's %25hlt html%25@@%3chead>@@ section, at the point where the [[skin template(s)]] specifies a [@%3c!--HTMLHeader-->@] directive. This array provides an easy place for scripts to add custom HTML headers.%0a%0a->For example, if you want to specify a [[Wikipedia:Favicon|favicon]] for all the pages of your wiki (a png image for Firefox (and others...), an ico for Internet Explorer):%0a-->%25hlt php%25[@%0a$HTMLHeaderFmt['favicon'] =%0a'%3clink href="http://path/to/icon.png" type="image/png" rel="icon" />%0a %3clink href="http://path/to/icon.ico" type="image/x-icon" rel="shortcut icon" />';%0a@]%0a%0a->Another example, if you want to get the RSS notification on some browsers (the RSS icon in Firefox for instance):%0a-->%25hlt php%25[@%0a$HTMLHeaderFmt['rss'] =%0a'%3clink rel="alternate" type="application/rss+xml" title="Rss All recent Changes" %0a href="$ScriptUrl/Site/AllRecentChanges?action=rss" />';%0a@]%0a%0a->Javascript example%0a-->%25hlt php%25[@%0a$HTMLHeaderFmt['the-javascript'] =%0a'%3cscript>%0a // the javascript code%0a %3c/script>';@]%0a%0a:$HTMLFooterFmt:Like $HTMLHeaderFmt above, this contains an array of HTML text to be included near the end of an HTML document, at the point where the [[skin template(s)]] specifies a %25hlt php%25[@%3c!--HTMLFooter-->@] directive (usually just before a closing @@%3c/body>@@ tag). Primarily used by scripts to add custom HTML output after the body of the page output. %0a%0a:$MetaRobots:Sets the value of the %25hlt php%25[@%3cmeta name='robots' ... />@] tag generated by PmWiki to control search engine robots accessing the site. PmWiki's default setting tells robots to not index anything but the normal page view, and to not index pages in the PmWiki [[wiki group]]. Explicitly setting $MetaRobots overrides this default.%0a--> %25hlt php%25[@# never index this site%0a$MetaRobots = 'noindex,nofollow';%0a# disable the robots tag entirely%0a$MetaRobots = ''; @]%0a%0a:$MessagesFmt:An array of HTML text to be displayed at the point of any %25pmhlt%25[@(:messages:)@] markup. Commonly used for displaying messages with respect to editing pages.%0a%0a:$RecentChangesFmt:An array specifying the format of the RecentChanges listing.%0a%0a->The key of the array specifies the page where changes will be logged, as in%0a-->%25hlt php%25[@%0a$RecentChangesFmt['$SiteGroup.AllRecentChanges']%0a@]%0a->The value of the array specifies the format in which the changes will be logged, as in%0a-->%25pmhlt%25[@%0a'* [[{$Group}.{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]'%0a@]%0a->Note the two consecutive spaces before the three dots (@@. . .@@). The two spaces separate two parts of the format: the first part doesn't change (e.g. a link to the changed page) and the second part does change (e.g. the date and author of the change). Upon saving a page, PmWiki removes a line that matches the first part and adds a line with the current format before the first line with 2 spaces. This way, any line without two consecutive spaces stays at the top of the recent changes page.%0a%0a->You can use and adapt the following to change the format (put it in config.php):%0a-->%25hlt php%25[@%0a$RecentChangesFmt['$SiteGroup.AllRecentChanges'] = %0a '* [[{$Group}.{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';%0a$RecentChangesFmt['$Group.RecentChanges'] =%0a '* [[{$Group}/{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';%0a@]%0a-> Since PmWiki 2.3.0, the format uses $CurrentLocalTime by default which shows exactly what $CurrentTime previously showed, but when $EnableLocalTimes is set, will rewrite the time and date in the local format and timezone of the visitor. %0a%0a->Note that changes made to the format will only affect new edits. In other words, you will need to edit a page for your new format to be visible. Note also that you need to have two spaces between the page name and the other information about the edit.%0a%0a->Also note that this variable has other uses, such as not reporting at all to RecentChanges and AllRecentChanges as found here [[PmWiki:Questions|PmWiki Questions]]. More informations on customizing RecentChanges pages here : [[Cookbook/CustomRecentChanges]].%0a%0a:$RecentUploadsFmt:An array specifying the format for uploaded files at the RecentChanges listing. It is similar to $RecentChangesFmt. If enabled, newly uploaded files will be logged to the RecentChanges pages. Default is disabled. See Cookbook:RecentUploadsLog for more information. See also $EnableRecentUploads.%0a%0a:$EnableRecentUploads: When set to 1, and when $RecentUploadsFmt is not set, it enables Recent uploads in a default format, only on the page Site.AllRecentChanges. This was added in 2.3.0 to easily enable the feature with some default settings that may be good enough for many wikis.%0a%0a:$DraftRecentChangesFmt:An array specifying the format of the RecentChanges listing when saving Draft pages.%0a%0a->$RecentChangesFmt is set to $DraftRecentChangesFmt when a Draft page is saved. For example, you could save drafts in a separate Recent Draft Changes page and not list in the normal group's Recent Changes page:%0a-->%25hlt php%25[@%0a$DraftRecentChangesFmt['$Group.RecentDraftChanges'] =%0a '* [[{$Group}/{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]';%0a$DraftRecentChangesFmt['$Group.RecentChanges'] = '';%0a@]%0a%0a:$RCLinesMax:The maximum number of lines to be stored in RecentChanges pages. The default is zero, meaning "no limit".%0a $RCLinesMax = 1000; # maintain at most 1000 recent changes%0a%0a:$PageRedirectFmt:The text to be used when a page is redirected via the [@(:redirect:)@] markup.%0a-->%25hlt php%25[@%0a$PageRedirectFmt = '%3cp>%3ci>redirected from $FullName%3c/p>';%0a$PageRedirectFmt = '';%0a@]%0a->For display options, see also the FAQ on [[(PmWiki:)PageDirectives(#faq)]].%0a%0a:$WikiStyle:An array which contains the predefined WikiStyles which can be used on a textpage.[[%3c%3c]]See: [[PmWiki.CustomWikiStyles]]%0a%0a:$WikiStyleApply:An array which defines the scope of wiki styling per HTML element. Default settings are:%0a->%25hlt php%25[@%0a'item' => 'li|dt',%0a'list' => 'ul|ol|dl',%0a'div' => 'div',%0a'pre' => 'pre',%0a'img' => 'img',%0a'block' => 'p(?!\\sclass=)|div|ul|ol|dl|li|dt|pre|h[1-6]',%0a'p' => 'p(?!\\sclass=)'%0a@]%0a%0a->This defines that we can apply wiki styling on:%0a* LI elements using the ''item'' keyword%0a* UL, OL, DL elements using the ''list'' keyword%0a* etc.%0a%0a->An example of applying scope to an LI element is below. For more information refer to [[PmWiki/WikiStyles#Scope | WikiStyle scope]].%0a(:markup class=horiz:) %0a* %25apply=item red%25Here is a red styled list item%0a* This item would not be styled.%0a(:markupend:)%0a%0a->You can [[PmWiki.WikiStyles#WikiStyleApply | add additional HTML elements to $WikiStyleApply]] to apply wiki styles to other HTML elements. For example to allow styling on table rows, or anchor tags.%0a%0a:$WikiPageCSSFmt: This variable holds a page name where you can add CSS rules applied to specific page patterns (default disabled). See Cookbook:LocalCSS as an example.%0a: : %25hlt php%25@@$WikiPageCSSFmt = 'Site.LocalCSS'; # global Site.LocalCSS page@@%0a: : %25hlt php%25@@$WikiPageCSSFmt = '[={$Group}=].LocalCSS'; # per-group LocalCSS pages@@%0a%0a:$WikiPageCSSVars: If a "wiki CSS page" is enabled with $WikiPageCSSFmt, this is an array with global PHP $variables available as pre-processor @variables in that page. By default the array contains: @@'FarmPubDirUrl', 'PubDirUrl', 'Skin', 'action', 'SkinDirUrl'@@.%0a%0a:$EnableSelfWikiPageCSS: If a "wiki CSS page" is enabled with $WikiPageCSSFmt, that specific page doesn't have CSS applied to itself when browsed or edited. In case a grave mistake is made in the styles and the site becomes unusable, this page will still be viewable and editable. People familiar with CSS can set this to 1 and the styles will be applied to the page itself, also in "Preview" mode:%0a: : %25hlt php%25@@$EnableSelfWikiPageCSS = 1; # Apply styles to the "wiki CSS page" itself@@%0a%0a:$PmTOC: Enable and configure the built-in table of contents, see [[Table of contents]] (TOC).%0a: : %25hlt php%25@@$PmTOC['Enable'] = 1; # Enable TOC; default is 0 (disabled).@@%0a%0a:$ToggleNextSelector: A CSS selector to enable interactive toggling of hidden sections, see Cookbook:ToggleNext. By default it is disabled.%0a%0a:$MaxIncludes:Controls the number of times that pages can be included via the %25pmhlt%25[@(:include:)@] and other directives, used to control recursion and otherwise pose a sanity check on page contents. $MaxIncludes defaults to 50, but can be set to any value by the wiki administrator.%0a--> %25hlt php%25[@$MaxIncludes = 50; # default%0a$MaxIncludes = 1000; # allow lots of includes%0a$MaxIncludes = 0; # turn off includes @]%0a%0a:$Skin:Lists the name(s) of skins to load, unless overridden by $ActionSkin. Normally $Skin contains a single string which is the name of a skin directory, but it may also be an array of names, in which case the first skin found from the list is used.%0a%0a:$SkinDirUrl:Set by ''@@scripts/skins.php@@'' to be the base url of the current skin's directory (i.e., within a '@@pub/skins/@@' directory). This variable is typically used inside of a skin @@.tmpl@@ file to provide access to @@.css@@ files and graphic images associated with the skin.%0a%0a:$SkinLibDirs:An array which, given the filesystem path (array key) to a skin (or a directory containing several skins), provides the corresponding URL (array value).%0a%0a->The array key is the directory containing the @@skin.tmpl@@ and @@skin.php@@ files, as seen by the PmWiki program. It does not have to be publicly accessible.%0a%0a-> The value is the URL (web address) of the directory containing the @@.css@@, @@.gif@@, and other files which appear in the HTML code sent by PMWiki to the browser. This directory must be publicly accessible.%0a%0a->By default $SkinLibDirs is set to:%0a--> %25hlt php%25[@%0a$SkinLibDirs = array(%0a "./pub/skins/\$Skin" => "$PubDirUrl/skins/\$Skin",%0a "$FarmD/pub/skins/\$Skin" => "$FarmPubDirUrl/skins/\$Skin");%0a@]%0a%0a->Extra details: When PMWiki is searching for a skin it looks for a directory named for the skin in the array index/keys, and if it finds it then it will use the files in that directory and also the files in the matching array value url. The two sides normally point to the same publicly accessible directory, but they do not have to.%0a%0a:$SkinTemplateIncludeLevel: how many levels of inclusion are allowed for [[skin templates]] with the %25hlt html%25[@%3c!--IncludeTemplate:...-->@]%25%25 directive. By default this directive is disabled. Setting it to 1 allows one level of inclusions, setting it to 2 allows included templates to include more templates. There can be up to 10 levels of inclusion. This variable can be defined either in @@local/config.php@@ or in @@pub/skins/skinname/skinname.php@@ (with SDV):%25hlt php%25[@%0a # in config.php, allow one level of inclusions%0a $SkinTemplateIncludeLevel = 1; %0a%0a # in skinname.php, allow 3 levels of inclusions%0a SDV($GLOBALS['SkinTemplateIncludeLevel'], 3); %0a@]%0a%0a:$PageLogoUrl: is the url that refers to a logo image which most skins display somewhere in the page's header (top left usually), e.g. "{$PageLogoUrl}"%0a%0a:$EnablePathInfo:Changes the handling of the page URL. When set to @@1@@ page URL will be @@...wiki.php/Main/Main@@, when set to @@0@@ (default) it will be @@...wiki.php?n=Main.Main@@.%0a%0a:$EnableFixedUrlRedirect:When PmWiki is given a partial page name (e.g., just the name of a WikiGroup), it uses $PagePathFmt in order to make a complete page name from the partial one, then issues a "redirect" to the browser to tell it to reload the page with the correct full page name. Setting %25hlt php%25@@$EnableFixedUrlRedirect=0;@@ blocks the redirect, so that PmWiki continues processing with the adjusted page name rather than issuing the redirect. %0a%0a:$GroupHeaderFmt:Defines the markup placed at the top of every page. Default value is:%0a [=$GroupHeaderFmt = '(:include {$Group}.GroupHeader self=0 basepage={*$FullName}:)(:nl:)';=]%0a%0a:$GroupPrintHeaderFmt:Defines the markup placed at the top of every page when [@action=print@]. Default value is:%0a [=SDV($GroupPrintHeaderFmt,'(:include $Group.GroupPrintHeader basepage={*$FullName}:)(:nl:)');=]%0a%0a:$GroupFooterFmt:Defines the markup placed at the bottom of every page. Default value is:%0a [=$GroupFooterFmt = '(:nl:)(:include {$Group}.GroupFooter self=0 basepage={*$FullName}:)';=]%0a%0a:$GroupPrintFooterFmt:Defines the markup placed at the bottom of every page when [@action=print@]. Default value is:%0a [=SDV($GroupPrintFooterFmt,'(:nl:)(:include $Group.GroupPrintFooter basepage={*$FullName}:)');=]%0a%0a:$PageNotFoundHeaderFmt:Specifies the HTTP header to send when attempting to browse a page that doesn't exist. Some webserver packages (notably Microsoft's "Personal Web Server") require that this variable be changed in order to work.%0a%0a-->%25hlt php%25[@%0a# default%0a$PageNotFoundHeaderFmt = 'HTTP/1.1 404 Not Found';%0a# return all pages as found%0a$PageNotFoundHeaderFmt = 'HTTP/1.1 200 Ok';%0a@]%0a%0a->Beware when expecting to return the content of a Group(header|footer) for an non existent page! By default PmWiki returns 404 (because the page does not exist), despite there is some content to show. Firefox shows the content, while Internet Explorer displays its default 404 page. $PageNotFoundHeaderFmt MUST be set to return 200 as described above in order to get the expected behaviour with all browsers.%0a%0a:$HTMLVSpace:Setting %25hlt php%25[@$HTMLVSpace = '';@]%25%25 in a local customizationfile (e.g., [@local/config.php@]) prevents insertion of spacer paragraphs (%25hlt html%25[@%3cp class='vspace'>%3c/p>@]%25%25) in generated HTML code. To limit this change to a single skin, place the %25hlt php%25[@$HTMLVSpace = '';@] statement in a @@skin.php@@ file, preceded by the statement %25hlt php%25[@global $HTMLVSpace;@].%0a%0a:$HTMLPNewline:This variable allows to enable linebreaks by default, i.e. without having the directive %25pmhlt%25[@(:linebreaks:)@] in a page or in a GroupHeader. To enable line breaks, add to @@config.php@@ such a line:\\%0a %25hlt php%25@@$HTMLPNewline = '%3cbr/>'; @@%0a%0a:$SimpleTableDefaultClassName:This variable can contain a CSS classname to be used for [[tables|simple tables]], if a "class=" attribute is not defined in the wiki page (default unset):\\%0a%25hlt php%25@@ $SimpleTableDefaultClassName = "wikisimpletable";@@\\%0aSee for sample code PITS:00638.%0a%0a:$EnableSimpleTableRowspan:If set to 1, will enable features replicating the recipe Cookbook:RowspanInSimpleTables (default disabled).\\%0a@@ $EnableSimpleTableRowspan = 1; @@ # See [[Cookbook:RowspanInSimpleTables|recipe]]%0a%0a:$EnableSortable:Set this variable to 1 to enable sortable tables, see [[Tables#sortable]] (default disabled):%25hlt php%25[@%0a$EnableSortable = 1; # Enable sortable tables@]%0a%0a:$TableCellAttrFmt:For [[Tables]], defines the HTML attributes given to each @@%3ctd>@@ or @@%3cth>@@ cell in the output. Can contain references to $TableCellCount which holds the horizontal column number of the current cell.%0a%0a:$TableCellAlignFmt:For [[Tables]], defines the HTML attributes for alignment of each @@%3ctd>@@ or @@%3cth>@@ cell. Default is @@" align='%25s'"@@ where %25s will be replaced with 'center', 'left' or 'right'. For a valid HTML5 output you may want to change this in @@config.php@@:\\%0a%25hlt php%25@@$TableCellAlignFmt = " class='%25s'";@@\\%0athen define the CSS classes td.center, td.right and td.left (also th).%0a%0a:$TableRowAttrFmt:For [[Tables]], defines the HTML attributes given to each @@%3ctr>@@ element in the output. Can contain references to $TableRowCount to give the absolute row number within the table, or $TableRowIndex to provide a repeating row index from 1 to $TableRowIndexMax.%0a-> %25hlt php%25[@# Give each row a unique CSS class based on row number (tr1, tr2, tr3, ... )%0a$TableRowAttrFmt = "class='tr\$TableRowCount'";%0a# Give each row alternating CSS classes (ti1, ti2, ti1, ti2, ti1, ... )%0a$TableRowIndexMax = 2;%0a$TableRowAttrFmt = "class='ti\$TableRowIndex'"; @]%0a%0a:$TableRowIndexMax:The maximum value for $TableRowIndex in [[Tables]].%0a-> %25hlt php%25[@# Set rows indexes as 1, 2, 3, 1, 2, 3, 1, 2, ...%0a$TableRowIndexMax = 3; @]%0a%0a:$EnableTableAutoValignTop:[[TableDirectives|Advanced tables]] are intended for layout, and automatically insert the @@valign='top'@@ attribute if there is no @@valign@@ attribute defined in the markup source. Setting this variable to 0 in config.php will prevent the automatic addition.%0a-> %25hlt php%25@@$EnableTableAutoValignTop = 0; # disable automatic valign='top' attr@@%0a%0a:$EnableAutoSkinList:This variable enables the change of the [[PmWiki/skins|skin]] from the URL to any skin available on the wiki installation. See also $PageSkinList and Skins:SkinChange.%0a%0a:$PageSkinList:This is an array of allowed skins that can be changed by the visitor with @@?skin=@@ or @@?setskin=@@ URL query to the wiki. See also $EnableAutoSkinList and Skins:SkinChange.%0a%0a:$TrailFmt: An array of HTML snippets containing the layout of the [[WikiTrails]] output. If you define one or more custom values in config.php, they will be used. Here are the default values:\\%0a%25hlt php%25[@%0a$TrailFmt['%3c%3c|'] = "%3cspan class='wikitrail'>&lt;&lt; \$prev | \$trailname | \$next &gt;&gt;%3c/span>";%0a$TrailFmt['%3c|'] = "%3cspan class='wikitrail'>\$prev\$trailname\$next%3c/span>";%0a$TrailFmt['^|'] = "%3cspan class='wikitrail'>\$crumbs%3c/span>";%0a@]%0a%0a:$InputLabelFmt: A HTML snippet containing the layout of the "label" after an input form field. If you define a custom value in config.php, it will be used. The default value has initial and trailing spaces: \\%0a%25hlt php%25[@$InputLabelFmt = ' %3clabel for="$LabelFor" $LabelTitle>$LabelText%3c/label> '; @]%0a%0a:$FmtV['$TableCellCount']:PMWiki internal variable - Horizontal column number of the current cell. For use in $TableCellAttrFmt and $TableRowAttrFmt. Administrators can use in $TableCellAttrFmt and/or $TableRowAttrFmt.%0a-> Example: %25hlt php%25@@$TableCellAttrFmt = 'class=col\$TableCellCount';@@ %0a%0a:$FmtV['$TableRowCount']:PMWiki internal variable - Current row number. Administrators can use in $TableCellAttrFmt and/or $TableRowAttrFmt.%0a-> Example: %25hlt php%25@@TableRowAttrFmt = "class='row\$TableRowCount'";@@%0a%0a:$FmtV['$TableRowIndex']:PMWiki internal variable - Row index number derived from $TableRowIndexMax. (1,2,3,1,2,3,...). Administrators can use in $TableCellAttrFmt and/or $TableRowAttrFmt.%0a-> Example: %25hlt php%25@@$TableRowAttrFmt = "class='ind\$TableRowIndex'";@@%0a%0aSee also: [[Edit Variables]]%0a
+time=1700391284
diff --git a/wikilib.d/PmWiki.ReleaseNotes b/wikilib.d/PmWiki.ReleaseNotes
index 658c372a..d006d95f 100644
--- a/wikilib.d/PmWiki.ReleaseNotes
+++ b/wikilib.d/PmWiki.ReleaseNotes
@@ -1,10 +1,10 @@
version=pmwiki-2.3.27 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
-csum=wording (+13)
+csum=Upgrades#pmtoken (+26)
name=PmWiki.ReleaseNotes
-rev=802
+rev=803
targets=PmWiki.Upgrades,PmWiki.ChangeLog,PmWiki.Download,PmWiki.RoadMap,PmWiki.EditVariables,PmWiki.UploadVariables,PmWiki.Functions,PmWiki.SecurityVariables,PmWiki.Forms,Cookbook.PmForm,PmWiki.PageLists,PmWiki.Tables,PmWiki.TableOfContents,PmWiki.OtherVariables,PmWiki.LayoutVariables,PmWiki.BasicVariables,PmWiki.AuthUser,Cookbook.PmSyntax,PmWiki.WikiStyles,PmWiki.PageVariables,Cookbook.MarkupDirectiveFunctions,PmWiki.PagelistVariables,Cookbook.CustomSyntax,PmWiki.Notify,Cookbook.LocalTimes,Cookbook.RecentUploadsLog,Cookbook.DiffDelay,Cookbook.ReindexCategories,Cookbook.PageListMultiTargets,PITS.01095,PITS.01461,Cookbook.RecipeCheck,Skins.SkinChange,Cookbook.ToggleNext,PmWiki.Links,Cookbook.SectionEdit,PmWiki.BlockMarkup,Cookbook.DeObMail,Cookbook.FixURL,Cookbook.NotSavedWarning,Cookbook.EditHelp,Cookbook.AutoTOC,Cookbook.DeltaBytesRecentChanges,Cookbook.RowspanInSimpleTables,Cookbook.LocalCSS,PmWiki.LinkVariables,Cookbook.PreviewChanges,PmWiki.MarkupExpressions,PmWiki.DebugVariables,PmWiki.WikiTrails,SiteAdmin.AuthList,PmWiki.PathVariables,Site.UploadQuickReference,PmWiki.Troubleshooting,PmWiki.CustomMarkup,PmWiki.PageDirectives,PmWiki.I18nVariables,PmWiki.PageHistory,PmWiki.Uploads,PmWiki.Passwords,PmWiki.SiteAnalyzer,Site.Site,SiteAdmin.SiteAdmin,PITS.00961,Site.PageActions,Site.EditForm,Site.PageNotFound,PmWiki.Drafts,PmWiki.Blocklist,Cookbook.Cookbook,Cookbook.DebuggingForCookbookAuthors,PmWiki.SkinTemplates,PmWiki.ReleaseNotesArchive
-text=(:title Release Notes:)(:Summary: Notes about new versions, important for upgrades:)%0aSee also: [[Upgrades]], [[Change log]], [[(PmWiki:)Download]] and [[(PmWiki:)Road map]].%0a(:comment The {*$:Released} variable is used in [[News/]]. :)%0a%0a!! Version 2.3.27 {*$:Released} (2023-10-23) [[#v2327]]%0a%0aThis version includes fixes for PHP 8, and for time formats with an invalid timezone. %0a%0aWhen merging the last edit without an edit summary, it will now reuse the previous edit summary.%0a%0aThe ".diffmarkup" element now has the style "white-space: pre-wrap" - if a custom skin disables core styles you may want to update the skin styles.%0a%0aWhen $EnableEditAutoText is enabled, new keyboard shortcuts will be available: %25pmhlt%25@@[=Ctrl+B ('''bold'''), Ctrl+I (''italic''), Ctrl+K ([[link]]/unlink).=]@@%0a%0aThe documentation was updated.%0a%0a%0a!! Version 2.3.26 {*$:Released} (2023-09-28) [[#v2326]]%0a%0aThis version includes updates for PHP 8.2, customizable HTML snippets for trails and input labels. It is now possible to configure searching for "at least one" term among many, as opposed to currently searching for all terms. Extensions are now removed from the $UploadExts array if their size is set to zero in $UploadExtSize, and the documentation was updated.%0a%0a%0a!! Version 2.3.25 {*$:Released} (2023-07-29) [[#v2325]]%0a%0aThis version includes updates for PHP 8.2. Some core markup directives were refactored to prevent very rare bugs. The documentation was updated.%0a%0a%0a!! Version 2.3.24 {*$:Released} (2023-06-06) [[#v2324]]%0a%0aThis version includes some code refactoring, and a new helper function [[Functions#InsertEditFunction|InsertEditFunction()]] to simplify the reuse of core functionality by recipes. %0a%0aIt is now possible to configure the merging of the latest edits by the same author into a single history entry, see $EnableMergeLastMinorEdit.%0a%0aNew configuration variables $AuthFormRespCode, $EnableUploadMimeMatch, $EnableDownloadRanges, see documentation.%0a%0aPmForm now can validate an email address field with the "template require FIELD if=validemail" condition.%0a%0aA few other minor improvements in the [[change log]], and the documentation was updated.%0a%0a%0a!! Version 2.3.23 {*$:Released} (2023-05-03) [[#v2323]]%0aThis version implements session tokens to prevent potential cross-site request forgery vulnerabilities, suggested by Dominique Faure. Most core actions that modify pages or files should have this enabled and should work like before. %0a%0aThis new feature can be disabled by setting these variables in config.php:%0a%0a%25hlt php%25[@%0a $EnablePmToken = 0; # edit, upload, attributes, approveurls%0a $PmFormEnablePmToken = 0; # PmForm%0a@]%0a%0aSome installations might encounter the error message "Token invalid or missing". These can include custom edit forms, automated scripts posting to the wiki, AJAX posting text or uploads used by some recipes, or partial upgrades where some core scripts haven't been updated. Most of these should be easy to update -- please check if you're using the latest recipe versions, otherwise report such cases to us -- otherwise you may selectively disable the feature.%0a%0aA [[Forms|form]] element %25pmhlt%25[@(:input pmtoken:)@] was added, and the helper function [[Functions#pmtoken|pmtoken()]] was documented to make it easy for custom forms and recipes to use this new feature.%0a%0aThe version also includes a minor code refactoring, a bug fix, and the documentation was updated.%0a%0a%0a!! Version 2.3.22 {*$:Released} (2023-04-06) [[#v2322]]%0aThis version adds to the core the Cookbook:PmForm recipe (script and templates), not enabled by default. This is in order to reduce my workload, and future updates to PmForm will be made only in the core version. %0a%0aIf you already use PmForm, you can enable the core script, by modifying your @@include_once()@@ call from "@@'''cookbook'''/pmform.php@@" to "@@'''scripts'''/pmform.php@@". Your existing templates and configuration should continue to work.%0a%0aA bug was fixed with [[PageLists]] with multiple @@category=+A,+B@@ categories. Input [[forms]] and buttons can now be configured to ask for confirmation before they are submitted. A few updates for recent PHP versions, and other minor improvements, and the documentation was updated.%0a%0a!! Version 2.3.21 {*$:Released} (2023-03-06) [[#v2321]]%0aThis version includes updates for PHP 8, and bug fixes with [[tables#sortable|sortable tables]] and multiline $MarkupDirectiveFunctions. The core [[table of contents]] was updated to work better with recent SectionEdit versions, and the documentation was updated.%0a%0aNew features include: the upload extension CSV, $EnableLocalTimes with a new short mode 3 where old dates are shown as MM'YY, and a new variable $EnableCopyCode to add [@[+]@] buttons for easy copying of preformatted blocks.%0a%0a!! Version 2.3.20 {*$:Released} (2023-02-12) [[#v2320]]%0aThis version fixes an unidentified variable warning introduced yesterday in 2.3.19.%0a%0a!! Version 2.3.19 {*$:Released} (2023-02-11) [[#v2319]]%0aThis version includes fixes for recent PHP versions, new helper functions, new variables allowing more customization, and the documentation was updated.%0a%0aWork is underway to define and implement a new family of self-contained recipes "Modules" which should be easier to install, configure and update. It may be possible to easily update your modules and skins either from a remote Git/SVN repository, or by simply dropping a ZIP file into the "modules" directory, and use a wiki-based editor to enable and configure them. Nothing will change for existing recipes, and they will not need to be updated; this will be an entirely optional new interface. Let me know if you can suggest features/scopes added to the wishlist.%0a%0aPmWiki too may be able to run directly from the read-only release ZIP archive, without the need to unzip it first. Again, this will be entirely optional, the current ways will continue to work as before, and slightly faster than the ZIP version (approx. 2%25 faster in my benchmarks).%0a%0a%0a!! Version 2.3.18 {*$:Released} (2023-01-15) [[#v2318]]%0a%0aThis version fixes a bug with user groups in with conditional markup, includes updates for PHP 8, minor improvements to the edit textarea and to the syntax highlighting. A helper function pm_json_encode() was added for servers where the PHP-JSON extension is not enabled.%0a%0aThe documentation was updated.%0a%0a!! Version 2.3.17 {*$:Released} (2022-12-17) [[#v2317]]%0a%0aThis release has updates for recent PHP versions.%0a%0aThe edit textarea had some improvements. Edit buttons and the automatic edit text will now insert their wiki markup in a way which allows for the "undo" function in the text area to work (with Ctrl+Z). The edit textarea (with $EnableEditAutoText enabled) now accepts 4 new keyboard shortcuts: Ctrl+L and Ctrl+Shift+L to convert the selected text to lowercase or uppercase, and Ctrl+Shift+ArrowUp or ArrowDown to move the line with the cursor up or down.%0a%0aA new variable $EnableBaseNameConfig was added - it allows to enable automatic inclusion of local configuration for the "basename" of the current page, for example Group.Page-Draft to include local/Group.Page.php if it exists.%0a%0aConditional markup %25pmhlt%25[@(:if auth @admins,@editors:)@] can now check if the current user belongs to selected usergroups (with [[AuthUser]]).%0a%0aA few minor bugs and omissions were fixed, and the documentation was updated.%0a%0a!! Version 2.3.16 {*$:Released} (2022-11-28) [[#v2316]]%0a%0aThis version fixes a bug with some skins introduced in 2.3.15 last week, and reverts PrePrintFmt(). %0a%0aNew WikiStyles 'notoc' and 'overflow' were added. PmTOC Table of contents, and the list of included pages in the edit form, now use classnames instead of style attributes.%0a%0aPmSyntax fixes a font-size alignment bug with nested programming languages, and has been optimized for large pages.%0a%0aA few more minor bugs were fixed, including for PHP 8, and the documentation was updated.%0a%0a%0a!! Version 2.3.15 {*$:Released} (2022-11-21) [[#v2315]]%0a%0aSecurity: Closed a potential XSS vulnerability discovered today. Your wiki may be at risk if untrusted people can edit your pages.%0a%0aHTTP headers: CSP updated, XSSP added. Both can be disabled or modified by changing the $HTTPHeaders values.%0a%0aCookies: Added a new variable $CookieSameSite default to 'Lax' per current browser defaults and expectations. Updated pmsetcookie() added an argument $samesite, and refactored to work with old and current PHP versions. Added function pm_session_start() as a replacement for session_start() with respect for local preferences ($CookieSameSite, $EnableCookieSecure, $EnableCookieHTTPOnly). %0a%0a[[Cookbook:PmSyntax|PmSyntax]]: A new CSS variable @@--pmsyntax-fontsize-editform@@ allows to set the font size of the edit form separately from highlighted elements in the documentation. Fixed the [@[[Highlight]]@] label could change fonts when clicked.%0a%0aResponsive skin: The font size for "pre" and "code" elements is now scalable/relative to the paragraph font size rather than fixed. This works better in headings or small text blocks.%0a%0aGUI edit buttons: Part of these functions were rewritten to avoid 'unsafe inline' JavaScript. While default and most custom buttons should work without change, you should no longer need to url-encode some characters like %25 or add backslashes. If you have such buttons, you may need to update their declarations to strip the extra backslashes. %0a%0a[[WikiStyles]]: Refactored to move all inline WikiStyles to the $HTMLStylesFmt array in the header of the HTML page.%0a%0aTables and block markup: Replaced inline @@style="..."@@ attributes with class names. %0a%0aThe function PrintFmt() was refactored to process skin parts, skin functions, markup, and wiki pages, before sending the HTTP and HTML headers. This allows for wikistyles and recipes in sidebars and footers to add their configuration to the headers.%0a%0aIf you have questions or difficulties upgrading, please contact us.%0a%0a!! Version 2.3.14 {*$:Released} (2022-11-03) [[#v2314]]%0a%0aThis version includes fixes for recent PHP versions and for 2 minor bugs (searchbox wrongly encoded entities and %25pmhlt%25[@{(ftime %25L)}@] format). Inline JavaScript for focusing form fields is now replaced with native attributes. In the Edit form, the "Minor edit" label can now toggle the checkbox.%0a%0aThe "disabled obsolete markup" tooltip now includes the file path and the line number of the markup rule definition.%0a%0aPmSyntax now recognizes %25pmhlt%25[@(:template requires? ...:)@] which is used by some recipes.%0a%0aThe documentation was updated.%0a%0a!! Version 2.3.13 {*$:Released} (2022-10-07) [[#v2313]]%0aThis version closes a potential XSS vulnerability, reported by lukystreik. A new variable $FailedLoginsFunction will allow to define a function limiting the number of failed logins. The documentation was updated.%0a%0a!! Version 2.3.12 {*$:Released} (2022-09-25) [[#v2312]]%0aThis version has a few fixes for PHP8. Complex conditionals with empty page variables could cause errors, now fixed. Form elements with values like "0" could appear empty, now fixed. The PSFT() function and the %25pmhlt%25[@{(ftime)}@] markup expression now recognize a "%25L" format as a human-readable localizable timestamp. A new helper function PrintAuthForm() was split from PmWikiAuth() to allow recipes to call it directly. The documentation was updated.%0a%0a!! Version 2.3.11 {*$:Released} (2022-08-30) [[#v2311]]%0a%0aThis version fixes the function stripmagic(), when used with arrays (a recent update for PHP 8 broke it).%0a%0aNew [[PageVariables]] derived from a Group's homepage are now available: %25pmhlt%25 [@{$GroupHomePage}@], [@{$GroupHomePageName}@], [@{$GroupHomePageTitle}@], [@{$GroupHomePageTitlespaced}@].%0a%0aA new helper function should simplify recipes with custom markup directives of the format:%0a%0a-> %25pmhlt%25 [@(:mydirective arg=val param="other value":)...(:mydirectiveend:)@].%0a%0aSee the documentation at Cookbook:MarkupDirectiveFunctions.%0a%0aThe core documentation was updated.%0a%0a%0a!! Version 2.3.10 {*$:Released} (2022-08-20) [[#v2310]]%0a%0aThis version includes updates for PHP 8. Wildcard $DefaultUnsetPageTextVars should now work with forms. PmSyntax fixed text alignment between the edit area and the colored block in some cases. The documentation was updated.%0a%0a!! Version 2.3.9 {*$:Released} (2022-08-18) [[#v239]]%0a%0aThis version includes updates for PHP 8. Non-wildcard $DefaultUnsetPageTextVars should now work with %25pmhlt%25[@(:input default:)@]. PmSyntax now handles blocks with simpler selectors, possibly created by recipes. The documentation was updated.%0a%0a!! Version 2.3.8 {*$:Released} (2022-07-22) [[#v238]]%0a%0aThis version fixes a bug caused by a recent update for PHP 8 with the include markup:%0a%0a %25pmhlt%25[@(:include Page1 Page2 Page3:)@]%0a%0aWhen the first page doesn't exist, it didn't check for the other pages (now fixed).%0a%0aIn addition, PmSyntax was improved when more than one inline blocks are on the same line, and the documentation was updated.%0a%0a%0a!! Version 2.3.7 {*$:Released} (2022-06-28) [[#v237]]%0a%0aThis version sets default HTTP headers X-Frame-Options (reported by Imagine Dragon) and Content-Security-Policy to disallow embedding in external websites by default and clickjacking attempts.%0a%0aShould you require the previous behavior, you can add this line to local/config.php:%0a%0a-> %25hlt php%25[@unset($HTTPHeaders['XFO'], $HTTPHeaders['CSP']);@]%0a%0a$EnableHighlight will now remember any links to PmWiki variables and restore them after the highlighting. %0a%0a$EnablePmSyntax will now process %25pmhlt%25[@%25hlt pmwiki%25@] in addition to [@%25pmhlt%25@] blocks, and escaped markup after it will be tentatively highlighted.%0a%0aThe documentation was updated.%0a%0a%0a!! Version 2.3.6 {*$:Released} (2022-06-19) [[#v236]]%0a%0aThis version contains fixes for PHP 8. A form attribute "lang" was added. %0a%0aSortable tables now allow for table headers to have markup such as bold (except links), and will use a case-insensitive natural ordering. %0a%0aSearchbox now has a default placeholder %25pmhlt%25 [@"$[Search]"@] and can have the submit button removed with the argument [@label=""@] (users need to press Enter on their keyboards to search).%0a%0a$EnableHighlight-formatted code blocks are now converted to plain text to prevent warnings; there is an ongoing discussion in the mailing list so this solution may evolve.%0a%0aFor developers: $UploadVerifyFunction can now modify $upname, and a variable $PageIndexTermsFunction can configure a replacement function for PageIndexTerms().%0a%0aThe documentation was updated.%0a%0a%0a!!Version 2.3.5 {*$:Released} (2022-05-23) [[#v235]]%0a%0aThis version fixes a bug with %25pmhlt%25 @@[=(:pagelist list=grouphomes:)=]@@. A new helper function DisableSkinParts() allows for simpler disabling of headers, footers and sidebars from recipes. When a file is uploaded, new variables with the file path and URL are now available to recipes.%0a%0aThe version also contains fixes for PHP 8 and documentation updates.%0a%0a%0a!!Version 2.3.4 {*$:Released} (2022-04-22) [[#v234]]%0a%0aThis version includes fixes for PHP 8 and documentation updates.%0a%0a%0a!!Version 2.3.3 {*$:Released} (2022-03-26) [[#v233]]%0a%0aThis version includes fixes for PHP 8 and documentation updates.%0a%0a%0a!!Version 2.3.2 {*$:Released} (2022-02-09) [[#v232]]%0a%0aThis version includes bug fixes and updates for PHP 8.1. The core variable $EnableIncludedPages introduced in 2.3.0 was renamed to $EnableListIncludedPages to avoid ambiguity. With LocalTimes, is now possible to configure the number of days the "plus" button will pull from the page history, and the function will better recognize some older RecentUploads formats. PmSyntax was updated so that "%25pmhlt%25@@\\@@" line breaks in tables and headings are treated like in the core, staying in the same context; and the different PmSyntax blocks will now be processed in parallel.%0a%0aThe code configuring and loading pmwiki-utils.js was moved to a new file scripts/utils.php, and a new variable $EnablePmUtils was added to allow administrators to easily disable these functions. The script pmwiki-utils.js will now be included in the page header rather than the footer, which may reduce the number of page redraws. The individual functions will now be processed in parallel.%0a%0aThe documentation was updated.%0a%0a%0a!!Version 2.3.1 {*$:Released} (2022-01-15) [[#v231]]%0a%0aThere was an omission in the release script which unexpectedly deleted the $VersionNum variable which broke some settings. This quick release fixes it.%0a%0a!!Version 2.3.0 {*$:Released} (2022-01-15) [[#v230]]%0a%0aJanuary 2022 is the 20th year anniversary of the release of PmWiki version 0.1, and 13 years since I (Petko) became core developer. This merited additional work and effort with hopefully interesting and useful new production.%0a%0a'''PHP 5.3 - 8.1 compatibility''' %0a* PmWiki 2.3.0 includes updates for PHP 8.0 and 8.1.%0a* Consequently, it requires PHP version 5.3 (released 2009) or more recent.%0a%0a'''PmSyntax'''. A new function PmSyntax was added to the core, and enabled on pmwiki.org. %0a* It highlights PmWiki syntax in the documentation, and possibly in the basic edit form. %0a* It only highlights PmWiki markup, and is independent from Highlight.js. See Cookbook:PmSyntax and $EnablePmSyntax. %0a* It should highlight most core language features and those of many recipes, see [[https://www.pmwiki.org/wiki/Test/PmSyntax|this mashup of various markups]]. %0a* Developers can add custom rules in the $CustomSyntax array, see Cookbook:CustomSyntax. %0a* The %25pmhlt%25 [@(:markup:)@] directive can now have @@class=norender@@ to only show the source code without processing it. This may be useful, together with PmSyntax, in 2 cases: writing/discussing markup code without actually running it, or working on PageList Templates where you want to see and edit them highlighted.%0a%0a'''Improvements to the edit form'''%0a* PmSyntax (above) can be enabled to highlight the PmWiki markup the edit form, and should work in recent standards-compliant browsers.%0a* The variable $EnableNotSavedWarning is now enabled by default. Add to config.php @@$EnableNotSavedWarning = 0;@@ to disable it.%0a* A new variable {- $EnableIncludedPages -} $EnableListIncludedPages (from 2.3.2) allows listing of other pages included from the currently edited page, with links to see or edit them. When the variable is enabled, the list of pages appears in the edit form, after the text area, in a collapsed %3cdetails> element. The list includes pages from which text, text variables, or templates are included from the edited page. This is enabled on pmwiki.org if you wish to preview it.%0a* The $EnableEditAutoText function will now feel more like other text editors by removing the automatically inserted bullet when Enter is pressed twice.%0a%0a'''Dates and times, monitoring, review'''%0a* The %25pmhlt%25 [@{(ftime)}@] Markup expression now accepts a new format '[@%25o@]' for the ordinal suffix of the date.%0a* The [[Notify]] feature now accepts a @@tz=@@ timezone specifier for individual subscribers. See [[Notify#tz]].%0a* A function based on Cookbook:LocalTimes was added to the core. See [[Cookbook:LocalTimes|the recipe page]] for the differences. You can continue using the recipe, or disable it and enable the core function.%0a* New core variables $EnableLocalTimes, $CurrentLocalTime.%0a* New markup %25pmhlt%25[@@2022-01-09T08:35:00Z@]%25%25 output as a %3ctime> element, formatted via $TimeFmt; localized if $EnableLocalTimes. %0a* Added a variable $EnableRecentUploads which makes it easy to enable the Recent Uploads feature on AllRecentChanges. This is a basic format that may be good enough for many wikis. For more options, see Cookbook:RecentUploadsLog.%0a* The default $RecentChangesFmt now use the variable $CurrentLocalTime instead of $CurrentTime. In the wiki source text it saves the timestamps in a portable time format in GMT, which is then shown formatted per $TimeFmt (wiki timezone). It looks just like $CurrentTime did previously, but can be converted to the visitor's time zone if LocalTimes is enabled. If you have custom $RecentChangesFmt entries that use $CurrentTime, nothing will change for you, but you may want to update these with $CurrentLocalTime if you want to benefit from localization.%0a* The "page history" page now has CSS classes for the delay between edits: diffday, diffweek, diffmonth, diffyear. These allow styling of vertical spacing between individual edits in page histories. See Cookbook:DiffDelay for an example.%0a* The page history can now have a "hidden" edit type, in addition to "minor". This is intended to be used by recipes in order to hide, rather than delete, some edits from the page history. A couple of new recipes using this feature will be added in the next few days.%0a%0a'''PageLists, categories, backlinks'''%0a* [[PageLists]] now accept a new argument @@category=Name@@ which lists only pages declared in the category with the markup %25pmhlt%25 [@[[!Name]]@], and does not include pages simply linking to [@[[Category/Name]]@] (unless they also contain [@[[!Name]]@]).%0a** The differentiation between links to !Name and Category.Name requires the pages containing category links to be re-indexed; see Cookbook:ReindexCategories which can automate this.%0a* Also in PageLists, the arguments @@link=@@ and @@category=@@ now accept multiple and negative specifiers, and wildcards. See [[PageLists#wildcards]]. If you previously used the recipe Cookbook:PageListMultiTargets, please disable it when you upgrade to 2.3.0.%0a* Category links can now have a different text, like %25pmhlt%25 [@[[!Name|Text]]@], and the markup generally behaves like other links, see PITS:01095.%0a%0a'''Styles''' (core skin PmWiki-responsive)%0a* Collapsible sections details+summary will now change the cursor to the "pointer" style over the clickable element, and the color will change to "navy". %0a* The core table of contents function ($PmTOC) has had its styles updated, in order to properly indent long sub-headings.%0a%0a'''Core helper functions'''%0a* A new helper function %25hlt php%25@@PSFT()@@ can now be used as an ''almost'' drop-in replacement for @@strftime()@@ and @@gmstrftime()@@ which became deprecated in PHP 8.1. Please review the documentation at [[Functions#PSFT]]. If you have local configurations or recipes using @@strftime()@@ you can change for @@PSFT()@@ now.%0a* A helper function %25hlt php%25@@DownloadUrl($pagename, $path)@@ was added, see [[Functions#DownloadUrl]]. It can simplify the handling of attached files by recipes.%0a%0aLast but not least, '''the documentation''' in English has been updated with the latest development (and in German by MFWolff).%0a%0aSee also [[Upgrades#v22v23|Upgrading from version 2.2.145 to 2.3.0]].%0a%0aAs always, if you have any questions or difficulties, please let us know.%0a%0a%0a!! Version 2.2.145 {*$:Released} (2021-12-11) [[#v22145]]%0aThis version includes a minor change in search patterns: searches and pagelists with a wrong or undefined $SearchPatterns (@@list=abc@@ argument) will now use $SearchPatterns["default"] rather than an empty array (effectively all pages). This was likely the intended behavior, a way for admins to restrict search locations.%0a%0aIt also includes updates for PHP 8, a fix of an emoji for non-UTF8 wikis, and the latest pages of the documentation.%0a%0a!! Version 2.2.144 {*$:Released} (2021-11-06) [[#v22144]]%0aThis version includes fixes for PHP 8 and an update to @@intermap.txt@@. The conditional markup "exists" was optimized when called multiple times. The functions %25hlt php%25@@CondExists()@@, @@MatchPageNames()@@, and @@MatchNames()@@, can now be called with an additional argument (false) when a case-sensitive match is needed. The documentation was updated.%0a%0a!! Version 2.2.143 {*$:Released} (2021-10-02) [[#v22143]]%0aThis version should prevent some errors from local customization or recipes with recent PHP versions, by disabling obsolete markup rules and replacement patterns. If such markup appears on a page, it will not be processed, it will be rendered like this: %25frame%25@@&#9888;(:my-obsolete-directive params:)@@%25%25 and a tooltip title should have some additional information.%0a%0aCare should be taken if you have custom calls to the deprecated function [[PmWiki/Functions#PCCF|%25hlt php%25@@PCCF()@@]], and incompatible custom replacement patterns processed via [[PmWiki/Functions#PPRE|@@PPRE()@@]] or [[PmWiki/Functions#PPRA|@@PPRA()@@]] are silently skipped, which may not work as expected. (Previously they wouldn't work at all.)%0a%0aIf you experience any difficulties, please do let us know and we'll try to provide a fix.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.142 {*$:Released} (2021-08-31) [[#v22142]]%0aThis version hides some PHP 8 notices, and adds 2 new form element attributes "accept" and "autofocus". %0a%0aThe documentation was updated.%0a%0a%0a!! Version 2.2.141 {*$:Released} (2021-07-09) [[#v22141]]%0aThis version adds ways to define 2 custom functions:%0a* $MultiFactorAuthFunction to enable custom MFA/2FA with [[AuthUser]]%0a* $PageIndexFoldFunction to define a custom function normalizing the page terms while indexing and searching (by default PmWiki converts the terms to lowercase).%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.140 {*$:Released} (2021-06-26) [[#v22140]]%0aThis version has updates for PHP 8. %0a%0aThe API of the source code highlighting library has changed and the PmWiki loader function was adapted; if you use this feature, please upgrade Highlight.js to version 11.0.0 or newer. %0a%0aNote: since version 11, Highlight.js doesn't preserve HTML in the preformatted blocks and issues a console warning, so you should only use the [@(space)[=escaped=]@] or the @@[=[@escaped@]=]@@ markup blocks.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.139 {*$:Released} (2021-05-05) [[#v22139]]%0aThis version removes empty "title" attributes in HTML tags (links and images), fixes warnings which appear with PHP 8 and updates the documentation.%0a%0a!! Version 2.2.138 {*$:Released} (2021-03-02) [[#v22138]]%0aThis version fixes a bug when a details directive has markup in the summary attribute, and the documentation was updated.%0a%0a!! Version 2.2.137 {*$:Released} (2021-02-26) [[#v22137]]%0aThis version fixes a bug introduced earlier today with entities encoded twice in PQA() quoted arguments.%0a%0a!! Version 2.2.136 {*$:Released} (2021-02-26) [[#v22136]]%0aThis version fixes a XSS vulnerability for WikiStyles reported today by Igor Sak-Sakovskiy.%0a%0aThe fix adds a second argument $keep to the core function PQA($attr, $keep=true) which by default escapes HTML special characters and places the values in Keep() containers. If you have custom functions that call PQA() and expect the previous behavior, call PQA() with a second argument set to false.%0a%0aIf you have any questions or difficulties, please let us know.%0a%0a!! Version 2.2.135 {*$:Released} (2021-01-31) [[#v22135]]%0aThis version fixes a number of PHP8 compatibility issues. This is a work in progress, if you uncover others, please report them at PITS:01461.%0a%0aA work is underway to implement session tokens to prevent CSRF vulnerabilities -- suggested by Dominique Faure. I wanted to rework these functions but the PHP8 compatibilities are more urgent so at the moment the PmToken functions are transparent/non-functional.%0a%0aA defunct syndicated blocklist was disabled, a minor code refactoring was done for PmTOC to better support manual edit section links, and the documentation was updated.%0a%0a%0a!! Version 2.2.134 {*$:Released} (2020-11-30) [[#v22134]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.133 {*$:Released} (2020-10-25) [[#v22133]]%0aThis version fixes a potential vulnerability to CWE-384: Session Fixation, reported by Dominique Faure. The fix regenerates the session identifier at the moment someone logs in. In case this is not desirable, a wiki admin can set the new variable $EnableAuthPostRegenerateSID to false.%0a%0aThis version also fixes an unintended variable evaluation in link markups. The CSS from Cookbook:RecipeCheck will now be injected only when needed. The responsive skin styles contained a reduced padding value for numbered and bulleted lists in order to save space, but in longer lists it could clip the item numbers. This value was removed from the styles because it was complex to reliably override it from local configuration. If you need to enable the previous values, add to pub/css/local.css the following:%0a%0a%25hlt css%25[@%0aul, ol { padding: 0 0 0 20px; }%0a@media screen and (min-width:50em) {%0a ul, ol { padding: 0 0 0 40px; }%0a}@]%0a%0a!! Version 2.2.132 {*$:Released} (2020-09-30) [[#v22132]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.131 {*$:Released} (2020-08-30) [[#v22131]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.130 {*$:Released} (2020-07-04) [[#v22130]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.129 {*$:Released} (2020-05-21) [[#v22129]]%0aThis version adds the styles for the "simpletable" class of tables from the "pmwiki-responsive" skin into the old "pmwiki" skin, and the documentation was updated.%0a%0a!! Version 2.2.128 {*$:Released} (2020-04-26) [[#v22128]]%0aThis version only includes some cosmetic changes and updates the documentation.%0a%0a!! Version 2.2.127 {*$:Released} (2020-03-23) [[#v22127]]%0aThis version sets the maximum height of the edit form textarea after reports for a jumping behavior on mobile devices (the PmWiki-responsive skin only). The core table of content classes "pmtoc-show" and "pmtoc-hide" now replace the previous classes "show" and "hide" to prevent conflicts with other frameworks. The functionality of the recipe Skins:SkinChange was added to the core (disabled by default). The documentation was updated.%0a%0a!! Version 2.2.126 {*$:Released} (2020-02-01) [[#v22126]]%0aThis version fixes a bug with $PmTOC['MinNumber'] set to -1, and updates the .htaccess format for caches.php. The documentation was updated.%0a%0a!! Version 2.2.124, 2.2.125 {*$:Released} (2020-01-27) [[#v22124]] [[#v22125]]%0aThis version adds a variable $SetCookieFunction to override the core "pmsetcookie" function. A new feature ToggleNext was included in the core, documented at Cookbook:ToggleNext. The documentation was updated.%0a%0a!! Version 2.2.123 {*$:Released} (2019-12-31) [[#v22123]]%0aThis version allows link URLs to be [[Links#escaped | escaped]] with [@[=link address=]@] if they contain any special characters, including quotes, parentheses and pipes. The obfuscated e-mails will now work from headers, footers and sidebars. A [[forms|form]] attribute "formnovalidate" was added to the core and to the "Cancel" button in the edit form. Core [[table of contents]] will now work better with Cookbook:SectionEdit. Cookbook:RecipeCheck was included in the core -- if you have this recipe already installed, you can simply comment it out from your config.php. The code that handles $EnableRCDiffBytes was refactored to also show the bytes changed in the page histories. New upload extensions [[https://developers.google.com/speed/webp | "webp"]] (images) and [[https://www.opus-codec.org/ | "opus"]] (audio) were added. The documentation was updated.%0a%0a!! Version 2.2.122 {*$:Released} (2019-11-19) [[#v22122]]%0aVersion 2.2.121 was released by mistake and contained some experimental code that was meant to be tested first. %0a%0aThis version fixes a bug with ObfuscateLinkIMap() and international characters. New configuration variables $DefaultUnsetPageTextVars, $DefaultEmptyPageTextVars can set default values for page text variables. The built-in table of contents and numbered headings can now be enabled independently. A pagelist template pseudovariable [@{$$EachCount}@] was added, containing the number of the page in the current "each" loop. Input form elements and the [@(:searchbox:)@] field now can have ARIA accessibility attributes.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.120 {*$:Released} (2019-10-13) [[#v22120]]%0aThis version fixes a bug with existing complex customization of GUIEdit buttons. Very long [[table of contents|tables of contents]] will now be scrollable. A new "input datalist" [[Forms|form]] element (list of suggestions to other input fields), and a new "details+summary" [[block markup|block section]] (toggle sections without JavaScript) were added. The documentation was updated.%0a%0a!! Version 2.2.119 {*$:Released} (2019-10-03) [[#v22119]]%0aThis version updates the core for PHP 7.4. Required input fields now feature @@required="required"@@ attributes and modern browsers prevent sending the edit or upload form with empty required fields. Attachlist @@ext=@@ and @@names=@@ arguments now accept patterns and negatives like @@ext=jpg,png@@, @@ext=-pdf@@, or @@names=-th*---*.jpg@@. The Redirect function can now have a 3rd argument with the full URL. The scroll position in the edit text area will be remembered on save-and-edit and preview. A bug was fixed with pagelist while preview. The documentation was updated.%0a%0aA number of features currently provided by recipes were added to the core and disabled by default. You can still use the recipes, or you can disable them and enable the core features. The following features were added:%0a* e-mail obfuscation functions based on Cookbook:DeObMail; see instructions to enable%0a* a FixUrl button based on Cookbook:FixURL, see $EnableGuiEditFixUrl%0a* $EnableNotSavedWarning based on Cookbook:NotSavedWarning%0a* $EnableEditAutoText based on Cookbook:EditHelp%0a* $PmTOC, [@(:toc:)@], [@(:notoc:)@], Table of contents/Numbered headings, based on a simplified variant of Cookbook:AutoTOC%0a* $EnableSortable, basic sortable tables%0a* $EnableRCDiffBytes based on Cookbook:DeltaBytesRecentChanges%0a* $EnableSimpleTableRowspan replicating the markup from Cookbook:RowspanInSimpleTables%0a* $WikiPageCSSFmt enables CSS in a wiki page, based on Cookbook:LocalCSS%0a* $EnableHighlight code highlight feature compatible with "highlight.js"%0a* $AddLinkCSS['othergroup'] and $AddLinkCSS['samedomain'] can contain custom CSS classes for in-wiki links to other groups and for URL links to the same site.%0a%0aThe above new features are disabled by default, see the documentation for more information on how to enable them, or test them on pmwiki.org where most of these are enabled. Please report if you notice any problems.%0a%0a!! Version 2.2.118 {*$:Released} (2019-08-28) [[#v22118]]%0aThis version integrates the features of the recipe Cookbook:PreviewChanges into the core. If you currently use this recipe, please uninstall it and add to config.php:%0a $EnablePreviewChanges = 1;%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.117 {*$:Released} (2019-07-28) [[#v22117]]%0aThis version adds handling of "partial content" requests for file downloads. New video file extensions 'm4v' and '3gp' were added. The Upload form now includes a new text field "Uploader" pre-filled with the name of the editor, and a new variable $EnableUploadAuthorRequired was added (defaults to $EnablePostAuthorRequired). The documentation was updated.%0a%0a!! Version 2.2.116 {*$:Released} (2019-06-19) [[#v22116]]%0aThis version fixes pagelists with case insensitive matches of page (text) variables for international wikis. If your international wiki pagelists rely on case-sensitive variable matches, please see $PageListVarFoldFn. The documentation was updated.%0a%0a!! Version 2.2.115 {*$:Released} (2019-05-13) [[#v22115]]%0aIn this version the responsive skin in large "desktop" mode changes the search form background to transparent, for easier custom styling of the header. The documentation was updated.%0a%0a!! Version 2.2.114 {*$:Released} (2019-04-02) [[#v22114]]%0aThis version adds a skin directive @@%3c!--IncludeTemplate ... -->@@ and the variable $SkinTemplateIncludeLevel. The core variable documentation format identifiers were moved to the definition term element to allow CSS ":target" styling, and the header and link text of the vardoc table can now be translated. Input forms have a new HTML5 element "tel", a new attribute "pattern" and two bugs were fixed with the classnames of the new elements and with the identifiers of "select" lists. The documentation was updated.%0a%0a!! Version 2.2.113 {*$:Released} (2019-03-01) [[#v22113]]%0aThis version adds a new [@(:input button:)@] form element. All form elements can now accept custom data-* attributes, which can be disabled by setting $EnableInputDataAttr to 0. Both additions are meant for easier integration with custom JavaScript functions or some frameworks.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.112 {*$:Released} (2019-01-09) [[#v22112]]%0aThis version includes a fix for PHP 7.3, and the documentation was updated.%0a%0a!! Version 2.2.111 {*$:Released} (2018-12-08) [[#v22111]]%0aThis version updates core .htaccess files to be compatible with both Apache 2.4 and earlier versions, and the variable $DenyHtaccessContent was added with the updated content. In case of difficulties or questions please contact us.%0a%0aA CSS value in the pmwiki-responsive skin was fixed. The [[MarkupExpression(s)]] [@{(ftime )}@] now accepts @@tz=@@ (time zone) and @@locale=@@ (language locale) arguments. The documentation was updated.%0a%0a!! Version 2.2.110 {*$:Released} (2018-11-05) [[#v22110]]%0aThis version prevents a warning with the [@{(substr )}@] markup expression when non-number arguments are typed. A new variable $PageListSortCmpFunction allows custom functions to order page lists. A new variable $MarkupMarkupLevel indicates when the processing happens inside [@(:markup:)@] blocks. %0a%0aThe default style for @@[=[@escaped code@]=]@@ dropped white spaces inconsistently and was fixed. If you rely on the previous behavior please add this to your pub/css/local.css file to revert it:%0a%0a code.escaped { white-space: nowrap; }%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.109 {*$:Released} (2018-07-09) [[#v22109]]%0aThis version fixes a bug with the Path: InterMap prefix which was broken in 2.2.108. The function pmcrypt() was updated to prevent more strings from causing "invalid hash" warnings in PHP 7. The variable $EnableMarkupDiag was added to help diagnose all markup calls. The documentation was updated.%0a%0a!! Version 2.2.108 {*$:Released} (2018-07-05) [[#v22108]]%0aThis version adds the $PCCFOverrideFunction variable allowing a custom function to override PCCF(). $AuthUserPageFmt can now be an array of page names. The page cache file name can now be customized. Form checkbox labels now have the same tooltip title as the checkbox. Ordered lists with the [@%25reversed%25@] WikiStyle will have descending numbers. Minor fixes to refcount.php, vardoc.php, and pmcrypt(). The default InterMap PmWiki URLs have now the HTTPS protocol. The documentation was updated.%0a%0a!! Version 2.2.107 {*$:Released} (2018-02-02) [[#v22107]]%0aThis version includes more fixes for PHP 7.2 for forms and pagelists. A new variable $MailFunction 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.%0a%0a!! Version 2.2.106 {*$:Released} (2017-12-01) [[#v22106]]%0aThis version has a rewrite of the function PageListSort() to allow it to work with PHP 7.2, and fixes a bug with the backtick (escape) [@`WikiWord@] markup. The helper function pmsetcookie() and the variables $EnableCookieSecure, $EnableCookieHTTPOnly were added to allow easy setting of secure cookies. The documentation was updated.%0a%0a!! Version 2.2.105 {*$:Released} (2017-11-07) [[#v22105]]%0aThis version fixes a bug with the PQA() function causing invalid HTML with attributes glued together. The function @@HandleUpload()@@ was refactored and @@UploadSetVars($pagename)@@ was added to allow upload-managing add-ons to set variables more easily.%0a%0aIf you upgrade from 2.2.98 or earlier, and you have custom markup rules relative to author signatures, please see note about [[#v2299|change in 2.2.99]] (documented November 2017).%0a%0a!! Version 2.2.104 {*$:Released} (2017-10-11) [[#v22104]]%0aThis version fixes a bug with [[WikiTrails#pathtrail|path WikiTrails]] reported today.%0a%0a!! Version 2.2.103 {*$:Released} (2017-10-01) [[#v22103]]%0aThis 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.%0a%0aPagelists can now have optimized @@list=grouphomes@@ and @@fmt=#grouphomes@@ arguments to list only the home pages of your wiki groups, whether they are named Group.HomePage, Group.Group, or a custom Group.$DefaultName. Minor bugs in older xlpage scripts were fixed, the responsive skin is now compatible with even older PmWiki/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 $AuthLDAPReferrals was added for wikis running AuthUser over LDAP to force enable or disable referrals when needed.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.102 {*$:Released} (2017-08-05) [[#v22102]]%0aThis 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 [[SiteAdmin.AuthList]] an input box was added to allow filtering of the groups or pages.%0a%0a!! Version 2.2.101 {*$:Released} (2017-07-30) [[#v22101]]%0aThis version renames the internal constructor of the PageStore class to be compatible with both PHP 5 and PHP 7. Previously, the PageStore 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.%0a%0aIf you must use PmWiki 2.2.101 or newer on a PHP 4 installation, please contact me so I can provide you with a workaround.%0a%0a!! Version 2.2.100 {*$:Released} (2017-07-30) [[#v22100]]%0aThis version provides a workaround for an incompatibility with our Subversion version control system, where the $Author wiki variable was considered a Subversion variable. A fix for the responsive skin adds some spacing above the WikiText block. The documentation was updated.%0a%0a!! Version 2.2.99 {*$:Released} (2017-06-26) [[#v2299]]%0aThis version fixes a bug where an incomplete text variable without a closing parenthesis like "[@(:Var:Value@]" could hide the remaining of the page.%0a%0aA bug was fixed where previewing a page didn't show changes to be done by replace-on-save patterns (the function ReplaceOnSave was refactored). Markup rules for previewing author signatures are no longer needed and were removed. %25note%25 Note that if you had custom markup rules processed before or after the @@[=~~=][=~=]@@ or @@[=~~=][=~~=]@@ author signatures may need to be set to [@'%3c[[~'@] (second argument of the @@Markup@@ call).%0a%0aA bug and a warning for PHP 4 installations were fixed. Two minor bugs with the [@[[%3c%3c]]@] line break for the responsive skin and the $Version variable link in the documentation were fixed. %0a%0aThe InterMap prefix to Wikipedia was corrected to use the secure HTTPS protocol and the documentation was updated.%0a%0a!! Version 2.2.98 (2017-05-31) [[#v2298]]%0aThis 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.%0a%0aThe Vardoc links now use MakeLink() to allow a custom LinkPage function. The function ReplaceOnSave() was refactored to allow easier calling from recipes. Markup processing functions now can access besides $pagename, 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.%0a%0aA bug was fixed with the [@(:markup:)@] output where a leading space was lost. Note that the "markup" frame is now wrapped in a %3cpre> block with a "pre-wrap" style instead of %3ccode>.%0a%0aA number of other (minor) bugs were fixed: see ChangeLog, and the documentation was updated.%0a%0a!! Version 2.2.97 (2017-04-07) [[#v2297]]%0aThis version fixes a bug concerning $ScriptUrl when $EnablePathInfo is set, introduced in 2.2.96 and reported by 3 users.%0a%0a!! Version 2.2.96 (2017-04-05) [[#v2296]]%0aThis version fixes a severe PHP code injection vulnerability, reported by Gabriel Margiani. PmWiki versions 2.2.56 to 2.2.95 are concerned.%0a%0aOnly 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 CondAuth(), RetrievePageName() or FmtPageName(), before the $pagename variable is sanitized by ResolvePageName() in stdconfig.php. A specific URL launched by a malicious visitor may trigger the vulnerability.%0a%0aMost recipes call core functions from a $HandleActions function, or from a Markup expression rule, these do not appear to be affected by the current exploit.%0a%0aIf 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:%0a%0a [@$pagename = preg_replace('![${}\'"\\\\]+!', '', $pagename);@]%0a%0aPlace this line near the top of the file but after you include scripts/xlpage-utf-8.php or other character encoding file.%0a%0aThis version filters the $pagename variable to exclude certain characters. A new variable $pagename_unfiltered is added in case a recipe requires the previous behavior. The documentation was updated.%0a%0a!! Version 2.2.95 (2017-02-28) [[#v2295]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.94 (2017-01-31) [[#v2294]]%0aThis 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.%0a%0a!! Version 2.2.93 (2016-12-31) [[#v2293]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.92 (2016-11-30) [[#v2292]]%0aThis version allows administrators to disable the "nopass" password by setting $AllowPassword to false. The function FmtPageName() will now expand PageVariables with asterisks like [@{*$FullName}@]. The documentation was updated.%0a%0a!! Version 2.2.91 (2016-09-30) [[#v2291]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.90 (2016-08-31) [[#v2290]]%0aThis 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: @@imgonly@@ and @@imgcaption@@, for standalone embedded pictures with or without a caption. A bug with the plus-links was fixed. The documentation was updated.%0a%0a!! Version 2.2.89 (2016-07-30) [[#v2289]]%0aThis version allows to set a default class name for simple tables. The [@(:searchbox:)@] directive can now have a "placeholder" attribute, and the input type can be changed from "text" to "search" for HTML5 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 $pagename, $Author and $Skin. The documentation was updated.%0a%0a!! Version 2.2.88 (2016-06-29) [[#v2288]]%0aThis version fixes invalid HTML output of some WikiTrail links. The function PHSC() can now have an optional fourth argument for a safe replacement of htmlspecialchars(). A new page variable [@{$SiteAdminGroup}@] was added and the documentation was updated. %0a%0a!! Version 2.2.87 (2016-05-31) [[#v2287]]%0aThis version adds the $HTMLTagAttr variable to be used in the %3chtml> tag in skins for additional attributes like "lang" or "manifest". To enable it, use it in your skin, for example:%0a%0a %3chtml xmlns="http://www.w3.org/1999/xhtml" $HTMLTagAttr>%0a%0aThe variable $EnableRevUserAgent, 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 $DiffUserAgent can be used in history templates like $DiffStartFmt.%0a%0aA wrong page variable in [[Site.UploadQuickReference]] was corrected, and the documentation was updated.%0a%0a!! Version 2.2.86 (2016-04-28) [[#v2286]]%0aThis version adds updates for PHP 7, for the PageStore() class and for the $DefaultPasswords default/unset definitions (no action should be needed upon upgrades). The documentation was updated.%0a%0a!! Version 2.2.85 (2016-03-31) [[#v2285]]%0aThis version adds Scalable Vector Graphics (*.svg, *.svgz) as allowed uploads and as embeddable picture extensions (with the html tag %3cimg/>). The documentation was updated.%0a%0a!! Version 2.2.84 (2016-02-21) [[#v2284]]%0aThis version fixes "indent" and "outdent" styles for right-to-left languages. A new variable $EnableLinkPlusTitlespaced allows "plus links" [@[[Link|+]]@] to display the "Spaced Title" of the page instead the "Title". The documentation was updated.%0a%0a!! Version 2.2.83 (2015-12-31) [[#v2283]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.82 (2015-11-30) [[#v2282]]%0aThis version enables stripmagic() to process arrays recursively and updates the documentation.%0a%0a!! Version 2.2.81 (2015-10-31) [[#v2281]]%0aThis 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.%0a%0a!! Version 2.2.80 (2015-09-30) [[#v2280]]%0aThis version modifies the [@(:searchbox:)@] directive to use type="search" semantic input, and updates the documentation.%0a%0a!! Version 2.2.79 (2015-08-27) [[#v2279]]%0aThis version adds WikiStyles 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. %0a%0aNote: the "target" attribute of input forms which was added in the previous version broke the PmForm processor, and was removed until we find a solution. If you don't use PmForm and require this attribute (or others), the usual way to add it is to redefine the $InputAttrs array in your local configuration.%0a%0aA new variable $EnableROSEscape can be set to 1 if $ROSPatterns and $ROEPatterns should not process source text wrapped with [@[=...=]@] or @@[=[@...@]=]@@. By default "replace on edit" patterns are performed even in such text.%0a%0aThe insMarkup() function in guiedit.js was refactored to allow custom input ids and/or custom functions to process the selected text.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.78 (2015-07-21) [[#v2278]]%0aThis version updates the $RobotPattern list with currently active user agents. {-Input forms can have a "target" attribute-} (removed in 2.2.79). The documentation was updated.%0a%0aNote, this release broke the Cookbook:PmForm module. Please do upgrade to 2.2.79 or newer if your wiki uses PmForm.%0a%0a!! Version 2.2.77 (2015-06-19) [[#v2277]]%0aThis version extends the [@(:if attachments:)@] conditional to specify file and page names. A [@{$WikiTitle}@] page variable was added. A MatchNames() function was introduced as a generic way to match array values the same way MatchPageNames() does currently with lists of pages -- recipe authors can use it to get a subset of attachments for example. The PageStore() class was slightly optimized when recoding pages from-to UTF-8. The documentation was updated.%0a%0a!! Version 2.2.76 (2015-05-31) [[#v2276]]%0aThis 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.%0a%0a!! Version 2.2.75 (2015-04-26) [[#v2275]]%0aThis 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 $DefaultPasswords entries.%0a%0aMarkup was added for the semantic HTML5 tags article, section, nav, header, footer, aside, address.%0a%0aA bug with the uploads feature was fixed when $EnableReadOnly is set, and the documentation was updated.%0a%0a!! Version 2.2.74 (2015-03-28) [[#v2274]]%0aThis version allows the translation of the word "OK" in authentication forms. The documentation was updated to the latest state on pmwiki.org.%0a%0a!! Version 2.2.73 (2015-02-28) [[#v2273]]%0aThis release only updates the documentation to the latest state on pmwiki.org.%0a%0a!! Version 2.2.72 (2015-01-27) [[#v2272]]%0aThis 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 $AbortFunction was added allowing administrators to override the core Abort() function. The documentation was updated.%0a%0a!! Version 2.2.71 (2014-12-29) [[#v2271]]%0aThis version removes the hard word wrap in [@(:markup:)@] wikicode examples, and instead of %3cpre> tags, it wraps it in %3ccode> 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).%0a%0aThe 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 @@$EnableDiag = 1;@@ then open a page with the 'ruleset' action, eg. [@[[HomePage?action=ruleset]]@]. The PHP-5.5-incompatible rules will be flagged with filenames, line numbers and patterns. See also the pages [[(PmWiki:)Troubleshooting]] and [[(PmWiki:)CustomMarkup]] on pmwiki.org.%0a%0aThe variable $DraftActionsPattern 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. %0a%0a!! Version 2.2.70 (2014-11-08) [[#v2270]]%0aThis release only updates the documentation to the latest state on pmwiki.org.%0a%0a!! Version 2.2.69 (2014-10-13) [[#v2269]]%0aThis 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 Site.UploadQuickReference were updated to reflect the display of the upload form in current browsers.%0a%0a!! Version 2.2.68 (2014-09-01) [[#v2268]]%0aThis version adds a Skins: InterMap prefix pointing to the Skins section on PmWiki.org, a "signature" markup in the edit quick reference, new WikiStyles clear, min-width and max-width and the documentation was updated.%0a%0a!! Version 2.2.67 (2014-08-02) [[#v2267]]%0aThis version fixes an inconsistency with input forms when values are taken from PageTextVariables. The documentation was updated to the latest state on pmwiki.org.%0a%0a!! Version 2.2.66 (2014-07-02) [[#v2266]]%0aThis 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.%0a%0a!! Version 2.2.65 (2014-06-07) [[#rel2.2.65]]%0aThis version fixes Pagelist handling of [@{$$PseudoVars}@] when they contain page variables. File permissions handling was improved when the current directory is owned by "root". The documentation was updated.%0a%0a!! Version 2.2.64 (2014-05-08) [[#rel2.2.64]]%0aThis 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. %0a%0aThe $SysMergePassthru switch was added, if enabled, it allows the "Simultaneous Edits" conflict resolution to use the passthru() function instead of popen().%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.63 (2014-04-05) [[#rel2.2.63]]%0aThis 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 HTML5 forms. A minor bug with pagelist [={$$RequestVariables}=] appearing on some installations was fixed. The documentation was updated.%0a%0a!! Version 2.2.62 (2014-02-28) [[#rel2.2.62]]%0aThis version adds the variable $EnableTableAutoValignTop which allows to make advanced tables compatible with HTML5. For developers, a fourth argument $template was added to the Markup_e() function, and a callback template 'return' was added. The documentation was updated.%0a%0a!! Version 2.2.61 (2014-01-31) [[#rel2.2.61]]%0aThis version removes unnecessary snippets of code and adds the variable $TableCellAlignFmt which allows to make simple tables compatible with HTML5. The documentation was updated.%0a%0a!! Version 2.2.60 (2014-01-12) [[#rel2.2.60]]%0aThis version reverts the changes to the pmwiki.css file made in 2.2.59. %0a%0a!! Version 2.2.59 (2014-01-11) [[#rel2.2.59]]%0aThis 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.%0a%0a!! Version 2.2.58 (2013-12-25) [[#rel2.2.58]]%0aThis version enables customization of [=(:input auth_form:)=], and fixes a couple of minor bugs. The documentation was updated.%0a%0a!! Version 2.2.57 (2013-11-03)%0aThis version enables the use of the Attach: link format in the [[PmWiki/PageDirectives#attachlist|[=(:attachlist:)=]]] directive. The documentation was updated.%0a%0a!! Version 2.2.56 (2013-09-30)%0aThis version aims to fix a PHP 5.5 compatibility issue with a deprecated feature of the preg_replace() function. The PageStore() class now detects and works around a bug with the iconv() function, and the documentation was updated.%0a%0a!! Version 2.2.55 (2013-09-16)%0aThis version adds the variable $EnableDraftAtomicDiff. 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.%0a%0a!! Version 2.2.54 (2013-08-13)%0aThis version fixes a bug when old versions are restored from draft pages. The documentation was updated.%0a%0a!! Version 2.2.53 (2013-07-08)%0aThis version enables a message to be shown when a post is blocked because of too many unapproved links. The documentation was updated.%0a%0a!! Version 2.2.52 (2013-06-08)%0aThis 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.%0a%0a!! Version 2.2.51 (2013-05-08)%0aThis 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.%0a%0a!! Version 2.2.50 (2013-04-08)%0aThis release only updates the documentation to the latest state on pmwiki.org.%0a%0a!! Version 2.2.49 (2013-03-09)%0aThis version adds an array $UploadBlacklist 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 PmWiki interface, add to config.php such a line:%0a%0a $UploadBlacklist = array('.php', '.pl', '.cgi', '.py', '.shtm', '.phtm', '.pcgi', '.asp', '.jsp', '.sh');%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.48 (2013-02-11)%0aThis version fixes a bug introduced yesterday with some links. %0a%0a!! Version 2.2.47 (2013-02-10)%0aThis version enables tooltip titles in links to anchors in the same page, and the documentation was updated.%0a%0a!! Version 2.2.46 (2013-01-07)%0aThis version adds $UploadPermAdd and $UploadPermSet variables, and the documentation was updated.%0a%0aIf your wiki has uploads enabled, it is recommended to set the variable $UploadPermAdd to 0. %0a%0aThe $UploadPermAdd 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). %0a $UploadPermAdd = 0; # recommended%0a%0aThe $UploadPermSet variable unconditionally sets the file permissions on newly uploaded files. Only advanced administrators should use it.%0a%0a%0a!! Version 2.2.45 (2012-12-02)%0aThis version fixes some PHP notices appearing on some installations. The documentation was updated.%0a%0a!! Version 2.2.44 (2012-10-21)%0aThis version improves the display of consecutive whitespaces in page histories, and fixes the definition of PageTextVariables containing a dash. The documentation was updated.%0a%0a%0a!! Version 2.2.43 (2012-09-20)%0aThis version makes it possible to use HTML attribute names that contain dashes, and removes a warning when editing and previewing Site.EditForm. The documentation was updated.%0a%0a!! Version 2.2.42 (2012-08-20)%0aThis version provides a workaround for cases when a wiki page contains a character nonexistent in the active encoding. The documentation was updated.%0a%0a!! Version 2.2.41 (2012-08-12)%0aThis version changes the internal $KeepToken separator to be compatible with more encodings. The documentation was updated.%0a%0a!! Version 2.2.40 (2012-07-21)%0aThis version provides a helper function replacing htmlspecialchars() and compatible with PHP 5.4. The documentation was updated.%0a%0a!! Version 2.2.39 (2012-06-25)%0aThis version provides a fix for links to attachments containing international characters. The documentation was updated.%0a%0a!! Version 2.2.38 (2012-05-21)%0aThis version fixes a "parameter count" warning which appeared on some websites.%0a%0a!! Version 2.2.37 (2012-05-01)%0aThis 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 [[#anchor_1.2]] sections are now better supported, PageVariables are expanded in PageList template defaults, and the documentation is updated.%0a%0a!! Version 2.2.36 (2011-12-28)%0aThis version fixes the recode function to try to recover Windows-1252 characters in ISO-8859-1 files. A new variable $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.%0a%0a!! [[#v2235]] Version 2.2.35 (2011-11-11)%0aThis release fixes a critical PHP injection vulnerability, reported today by Egidio Romano. PmWiki 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 PmWiki versions since yours.%0a%0aIf 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:%0a if ($action == 'search') $action = 'browse';%0a%0aIf your old version wiki allows editing by not entirely trusted visitors, even on limited pages like a WikiSandbox, you should also disable PageLists. Add to config.php this line:%0a $EnablePageList = 0;%0a%0aThis version has an important change for international wikis: the XLPage() 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 XLPage():%0a%0a include_once("scripts/xlpage-utf-8.php"); # if your wiki uses UTF-8%0a XLPage('bg','PmWikiBg.XLPage');%0a%0aAll 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:%0a[@%0a [[Main.HomePage"This is a tooltip title"]]%0a [[Main.HomePage"This is a tooltip title"|Home]]%0a [[http://www.pmwiki.org"Home of PmWiki"]]%0a Attach:image.jpg"Tooltip title of the image"%0a@]%0a%0aThe following new upload extensions were added: svg, xcf, ogg, flac, ogv, mp4, webm, odg, epub. A couple of minor optimizations were added (MarkupExpressions and rendering of page history) and the documentation was updated.%0a%0a!! Version 2.2.34 (2011-10-10)%0aThis version resets the timestamps of the default pages Site(Admin).AuthUser which are expected in case of upgrades from the versions 2.1.*. Core MarkupExpressions which manipulate strings should now work better with international characters. The documentation was updated to its latest state from pmwiki.org.%0a%0a!! Version 2.2.33 (2011-09-23) [[#v2233]]%0aThis version fixes a security bug introduced in 2.2.32 which left the groups Site and SiteAdmin open for reading and editing because the pages Site.GroupAttributes and SiteAdmin.GroupAttributes didn't have all necessary attributes. %0a%0aAll wikis running 2.2.32 should upgrade. If you cannot immediately upgrade, you can set the attributes from your wiki:%0a* open the attributes page [=[[SiteAdmin.GroupAttributes?action=attr]]=] and set a "read" and an "edit" password, @@ @lock @@ is recommended.%0a* open the attributes page [=[[Site.GroupAttributes?action=attr]]=] and set an "edit" password, @@ @lock @@ is recommended. Do not set a "read" password here.%0a%0aThe 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.%0a%0a!! Version 2.2.32 (2011-09-18)%0aThis is the first version shipping with the core documentation in the UTF-8 encoding. PmWiki will automatically convert it on the fly for wikis using an older encoding.%0a%0aIt is recommended that all '''new''' PmWiki installations enable UTF-8. Migration of ''existing'' wikis from an older encoding to UTF-8 shouldn't be rushed: it is not trivial and will be documented in the future.%0a%0aA required HTML xmlns attribute was added to the print skin template. The history rendering is now faster when many lines are added or removed.%0a%0a%25note%25 Note: Due to a manipulation error, a version 2.2.31 was created before it was ready for a release.%0a%0a!! Version 2.2.30 (2011-08-13)%0aThis version fixes a $Charset definition in international iso-8859-*.php files. This will help for a future transition to UTF-8. %0a%0aA variable $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.%0a%0a!! Version 2.2.29 (2011-07-24)%0aThis release fixes Attach links that were broken with the Path fix in 2.2.28 earlier today.%0a%0a!! Version 2.2.28 (2011-07-24)%0aThis release fixes 2 potential XSS vulnerabilities and a bug with Path: links.%0a%0a!! Version 2.2.27 (2011-06-19)%0aThis release fixes a validation bug on pages after a redirection. A new block WikiStyle [@%25justify%25@] was added, allowing left and right aligned text. The page history now accepts a URL parameter @@?nodiff=1@@ 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.%0a%0a!! Version 2.2.26 (2011-05-21)%0aThis release fixes a redundant removal of link hashes from WikiTrails, and updates the documentation to the most recent version from PmWiki.org.%0a%0a!! Version 2.2.25 (2011-03-22)%0aThis release only updates the documentation to the latest state on pmwiki.org.%0a%0a!! Version 2.2.24 (2011-02-15)%0aThis version reverts the way existing PageVariables are processed, like version 2.2.21 or earlier, but it adds a special variable $authpage which can be used in PageVar 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:%0a%0a $FmtPV['$LastModifiedSummary'] = '@$authpage["csum"]'; # instead of '@$page["csum"]'%0a%0aThen, the edit summary metadata will only be available if the user has read permissions.%0a%0a!! Version 2.2.23 (2011-01-25)%0aThis version sets the default value of $EnablePageVarAuth to 0 until we investigate a reported problem with authentication.%0a%0a!! Version 2.2.22 (2011-01-16)%0aThis version adds the variable $EnableXLPageScriptLoad which, if set to 0, will prevent authors to load scripts from XLPage 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.%0a%0aPageVariables should now respect authentications: without read permissions, the title, description, change summary, author of a protected page are unavailable. PageVariables that are computed without reading the page are still available (eg. $Group, $Namespaced, $Version etc.). Administrators can revert the previous behavior by adding to config.php such a line:%0a%0a@@ $EnablePageVarAuth = 0; @@%0a%0a!! Version 2.2.21 (2010-12-14)%0aDue 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.%0a%0a!! Version 2.2.20 (2010-12-14)%0aThis version fixes a potential XSS vulnerability, reported today. An AuthUser bug with excluding users from authgroups was fixed. A new InterMap prefix PmL10n: was added, it leads to the Localization section on PmWiki.org and should help the work of translators. A couple of other minor bugs were fixed and the documentation was updated.%0a%0a!! Version 2.2.19 (2010-11-10)%0aThis is a documentation-update release.%0a%0a!! Version 2.2.18 (2010-09-04)%0aThis version fixes 3 minor bugs, and updates the documentation.%0a%0a!! Version 2.2.17 (2010-06-20)%0aThis version adds a variable $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. AuthUser now allows more flexible cookbook recipe integration. A couple of bugs were fixed and the documentation was updated.%0a%0a!! Version 2.2.16 (2010-05-10)%0aThis version fixes a bug with parsing html attributes which could allow XSS injection. Wikis allowing unprotected editing are encouraged to upgrade.%0a%0aA bug with the "center" button of the GUI edit toolbar was corrected.%0a%0aThe "exists" conditional now accepts wildcards, for example:%0a [@(:if exists Main.*:)There are pages in the Main group (:if:)@]%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.15 (2010-03-27)%0aThis version adds some minor bugfixes and optimizations notably a bug with @@[=(:template none:)=]@@ introduced in the last version 2.2.14.%0a%0a!! Version 2.2.14 (2010-02-27)%0aThis release corrects inline styles for WikiTrail links. Undefined include/template @@ [={$$variables}=] @@ 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:%0a%0a[@%0a $EnableUndefinedTemplateVars = 1; # keep and display unset {$$variables}%0a@]%0a%0aPageList templates now accept the sections @@ !first @@ and @@ !last @@ for markup to appear for every page in list ''except'' the first or last one.%0a%0a"Title" attributes were added to external links. You can have tooltip titles on external links, including InterMap and attachments, by adding the link title in double quotes after the URL:%0a [=[[http://www.pmwiki.org"Home of PmWiki"| External link]]=]%0a%0aFor international wikis, PmWiki now automatically translates the titles of technical pages like GroupAttributes or RecentChanges -- just define these strings as usual in XLPage, for example, in French:%0a 'AllRecentChanges' => 'Tous les changements récents',%0a%0aSome minor optimizations were done and the documentation was updated.%0a%0a!! Version 2.2.13 (2010-02-21)%0aThis release fixes a bug with $DiffKeepNum introduced in 2.2.10 -- the count of revisions was incorrect and a page could drop more revisions than it should.%0a%0aThe [[page history]] 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:%0a%0a $DiffShow['source'] = (@$_REQUEST['source']=='y')?'y':'n';%0a%0aTo disable word-level highlighting and show plain text changes:%0a%0a $EnableDiffInline = 0;%0a%0aIn the page history rendering, a few minor bugs were fixed and the code was slightly optimized.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.12 (2010-02-17)%0aThis 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:%0a $EnableDiffInline = 1;%0a%0aThis feature is like what the InlineDiff recipe provides, but not exactly the same, and the implementation is simpler. It is enabled on PmWiki.org and can be improved -- your comments are welcome.%0a%0a!! Version 2.2.11 (2010-02-14)%0aThis release adds two new table directives for header cells, [=(:head:) and (:headnr:)=]. They work the same way as [=(:cell:) and (:cellnr:)=] except that create %3cth> instead of %3ctd> html tags.%0a%0aThe pagerev.php script was refactored into separate functions to allow easier integration of recipes displaying the page history.%0a%0aA couple of minor bugs were fixed and the documentation was updated.%0a%0a!! Version 2.2.9, 2.2.10 (2010-01-17)%0aMost important in this release is the official change of $EnableRelativePageVars to 1. The change is about how [={$Variable}=] in included pages is understood by PmWiki.%0a* When $EnableRelativePageVars 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.%0a* When $EnableRelativePageVars 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.%0a* [={*$Name}=] always displays the name of the currently browsed page, regardless of $EnableRelativePageVars.%0a%0aSo, if your wiki relies on page variables from included pages, and doesn't have $EnableRelativePageVars set to 1, after upgrading to 2.2.9, you can revert to the previous behavior by adding to config.php such a line:%0a $EnableRelativePageVars = 0;%0a%0aMore information about page variables can be found at:%0a http://www.pmwiki.org/wiki/PmWiki/PageVariables%0a%0aThis release adds a new variable $EnablePageTitlePriority 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. PmWiki default is 0, for years, the last title directive was used (it could come from an included page or GroupFooter).%0a%0aThis release also adds a new variable $DiffKeepNum, specifying the minimum number (default 20) of edits that will be kept even if some of them are older than the limit of $DiffKeepDays.%0a%0aA number of bugs were fixed and the documentation was updated.%0a%0a!! Version 2.2.8 (2009-12-07)%0aThis release fixes another PHP 5.3 compatibility issue with conditional markup. The Author field now handles apostrophes correctly. The documentation was updated.%0a%0a!! Version 2.2.7 (2009-11-08)%0aThis release fixes most PHP 5.3 compatibility issues. Unfortunately some specific builds for Windows may still have problems, which are unrelated to PmWiki. Notably, on Windows, all passwords need to be 4 characters or longer.%0a%0aUpload names with spaces are now correctly quoted. The documentation was updated.%0a%0a!! Version 2.2.6 (2009-10-04)%0aWith this release it is now possible to display recently uploaded files to the RecentChanges pages -- if you have been using the RecentUploadsLog recipe, please uninstall it and follow the instructions at http://www.pmwiki.org/wiki/Cookbook/RecentUploadsLog.%0a%0aThe release also introduces $MakeUploadNamePatterns to allow custom filename normalization for attachements. It is now possible to replace $PageListFilters and $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.%0a%0a!! Version 2.2.5 (2009-08-25)%0aThis release adds a new markup for Pagelist templates, [@(:template none:)@] which allows a message to be set when the search found no pages. The FPLTemplate() function was broken into configurable sub-parts to allow development hooks. A number of bugs were fixed, and the documentation was updated.%0a%0a!! Version 2.2.4 (2009-07-16)%0aThis release fixes a bug introduced earlier today with HTML entities in XLPages.%0a%0a!! Version 2.2.3 (2009-07-16)%0aThis 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 JavaScripts in their pages. Public open wikis should upgrade.%0a%0aA new variable $EnableUploadGroupAuth was added; if set to 1, it allows password-protected [[uploads]] to be checked against the Group password. %0a%0aIt is now possible to use @@ @_site_edit, @_site_read, @_site_admin@@ or @@ @_site_upload @@ global [[passwords]] in GroupAttributes pages.%0a%0aA number of other small bugs were fixed, and the documentation was updated.%0a%0a!! Version 2.2.2 (2009-06-21)%0aThe major news in this release is a fix of an AuthUser vulnerability.%0a%0aThe vulnerability affects only wikis that (1) rely on the AuthUser core module %0afor User:Password authentication, -AND- (2) where the PHP installation runs %0awith the variable "magic_quotes_gpc" disabled.%0a%0aAll PmWiki 2.1.x versions from pmwiki-2.1.beta6 on, all 2.2.betaX, 2.2.0, and %0a2.2.1 are affected.%0a%0aThe PmWiki [[SiteAnalyzer]] can detect if your wiki needs to upgrade:%0a http://www.pmwiki.org/wiki/PmWiki/SiteAnalyzer%0a%0aIf your wiki is vulnerable, you should do one of the following at the earliest %0aopportunity:%0a%0a* Upgrade to a version of PmWiki at least 2.2.2 or greater.%0a* Turn on magic_quotes_gpc in the php.ini file or in a .htaccess file.%0a%0aAlternatively, you can temporarily disable AuthUser until you upgrade.%0a%0aNote that even if your wiki does not have the AuthUser vulnerability at the %0amoment, you are strongly encouraged to upgrade to PmWiki version 2.2.2 or %0alater, as some future configuration of your hosting server might put you at %0arisk.%0a%0aThis release also comes with minor updates in the local documentation; fixes %0awere applied for international wikis - notably global variables in %0axlpage-utf-8.php and a new variable $EnableNotifySubjectEncode, which allows %0ae-mail clients to correctly display the Subject header; and a number of other %0asmall bugs were fixed.%0a%0a!! Version 2.2.1 (2009-03-28)%0aThis release comes with an updated local documentation; [[wiki trails]] now work cross-group; guiedit.php now produces valid HTML, and other small bugs were fixed. We also added $EnableRedirectQuiet, which allows redirects to take place without any mention of "redirected from page ....".%0a%0a[[#v220]]%0a!! Version 2.2.0 (2009-01-18)%0a%0aThis is a summary of changes from 2.1.x to 2.2.0.%0a%0a* Several pages that were formerly in the [[Site]].* group are now in a separate [[SiteAdmin]].* group, which is read-restricted by default. The affected pages include Site.AuthUser, Site.AuthList, Site.NotifyList, Site.Blocklist, and Site.ApprovedUrls . If upgrading from an earlier version of PmWiki, PmWiki 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%0a%0a-> $SiteAdminGroup = $SiteGroup;%0a%0a-> when carrying out this upgrade inspect your config files for lines such as%0a--> $BlocklistDownload['Site.Blocklist-PmWiki'] = array('format' => 'pmwiki');%0a->as you may wish to fix then, eg%0a--> $BlocklistDownload[$SiteAdminGroup . '.Blocklist-PmWiki'] = array('format' => 'pmwiki');%0a%0a* Important Change in Passwords in PmWiki 2.2 indicating that the group can be edited even if a site password is set will be done by @@"@nopass"@@ prior it was done by @@"nopass"@@%0a-> When migrating a wiki you will have to manually modify the permission or by a script replace in all the page concerned @@passwdread=nopass:@@ by @@passwdread=@nopass@@ (see PITS:00961) --isidor%0a%0a* PmWiki now ships with WikiWords entirely disabled by default. To re-enable them, set either $LinkWikiWords or $EnableWikiWords to 1. To get the 2.1 behavior where WikiWords are spaced and parsed but don't form links, use the following:%0a-> $EnableWikiWords = 1;%0a-> $LinkWikiWords = 0;%0a%0a* It's now easy to disable the rule that causes lines with leading spaces to be treated as preformatted text -- simply set $EnableWSPre=0; to disable this rule.%0a%0a--> '''Important:''' There is ongoing discussion that the leading whitespace rule may be disabled ''by default'' in a future versions of PmWiki. If you want to make sure that the rule will continue to work in future upgrades, set $EnableWSPre=1; in ''local/config.php''.%0a%0a* The $ROSPatterns variable has changed somewhat -- replacement strings are no longer automatically passed through FmtPageName() prior to substitution (i.e., it must now be done explicitly).%0a%0a* Page variables and page links inside of [@(:include:)@] 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:%0a%0a[[#relativeurls]]%0a** We now have a new [@{*$var}@] form of page variable, which always refers to "the currently displayed page". Pages such as Site.PageActions and Site.EditForm that are designed to work on "the currently browsed page" should generally switch to using [@{*$FullName}@] instead of [@{$FullName}@].%0a%0a** The $EnableRelativePageLinks and $EnableRelativePageVars settings control the treatment of links and page variables in included pages. However, to minimize disruption to existing sites, $EnableRelativePageVars defaults to '''disabled'''. This will give existing sites an opportunity to convert any absolute [@{$var}@] references to be [@{*$var}@] instead.%0a%0a** Eventually $EnableRelativePageVars will be enabled by default, so we highly recommend setting [@$EnableRelativePageVars = 1;@] in ''local/config.php'' to see how a site will react to the new interpretation. Administrators should especially check any customized versions of the following:%0a---> [[Site.PageActions]]%0a---> [[Site.EditForm]]%0a---> [[Site.PageNotFound]]%0a---> SideBar pages with ?action= links for the current page%0a---> $GroupHeaderFmt, $GroupFooterFmt%0a---> [[Page lists]] that refer to the current group or page, etc in sidebars, headers, and footers%0a%0a** The [@(:include:)@] directive now has a [@basepage=@] 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.%0a%0a* Sites that want to retain the pre-2.2 behavior of [@(:include:)@] and other items can set [@$Transition['version'] = 2001900;@] to automatically retain the 2.1.x defaults.%0a%0a* Text inserted via [@(:include:)@] can contain "immediate substitutions" of the form [@{$$option}@] -- these are substituted with the value of any options provided to the include directive.%0a%0a* PmWiki now recognizes when it is being accessed via "https:" and switches its internal links appropriately. This can be overridden by explicitly setting $ScriptUrl and $PubDirUrl.%0a%0a* A new $EnableLinkPageRelative option allows PmWiki to generate relative urls for page links instead of absolute urls.%0a%0a* Draft handling capabilities have been greatly improved. When $EnableDrafts is set, then the "Save" button is relabeled to "Publish" and a "Save draft" button appears. In addition, an $EnablePublishAttr configuration variable adds a new "publish" authorization level to distinguish editing from publishing. See [[PmWiki:Drafts]] for more details.%0a%0a[[#ptvstart]]%0a* There is a new [@{$:var}@] "page text variable" available that is able to grab text excerpts out of markup content. For example, [@{SomePage$:Xyz}@] will be replaced by a definition of "Xyz" in SomePage. 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):%0a%0a-->[@%0a:Xyz: some value # definition list form%0aXyz: some value # colon form%0a(:Xyz: some value:) # directive form%0a@]%0a[[#ptvend]]%0a%0a* The [@(:pagelist:)@] 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":%0a%0a-->[@(:pagelist $:Xyz="some value":)@]%0a%0a Wildcards also work here, thus the following pagelist command lists pages where the page's title starts with the letter "a":%0a%0a-->[@(:pagelist $Title=A* :)@]%0a%0a* The if= option to [@(:pagelist)@] can be used to filter pages based on conditional markup:%0a%0a-->[@(:pagelist if="auth upload {=$FullName}":)@] pages with upload permission%0a-->[@(:pagelist if="date today.. {=$Name}":)@] pages with names that are dates later than today%0a%0a* Spaces no longer separate wildcard patterns -- use commas. (Most people have been doing this already.)%0a%0a* Because page variables are now "relative", the [@{$PageCount}, {$GroupCount}, {$GroupPageCount}@] variables used in pagelist templates are now [@{$$PageCount}, {$$GroupCount}, {$$GroupPageCount}@].%0a%0a* One can now use [@{$$option}@] in a pagelist template to obtain the value of any 'option=' provided to the [@(:pagelist:)@] command.%0a%0a* The [@(:pagelist:)@] 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 [@request=1@] option to the [@(:pagelist:)@] directive.%0a%0a* The [@count=@] option to pagelists now accepts negative values to count from the end of the list. Thus [@count=5@] returns the the first five pages in the list, and [@count=-5@] returns the last five pages in the list. In addition, ranges of pages may be specified, as in [@count=10..19@] or [@count=-10..-5@].%0a%0a* Pagelist templates may have special [@(:template first ...:)@] and [@(:template last ...:)@] sections to specify output for the first or last page in the list or a group. There's also a [@(:template defaults ...:)@] to allow a template to specify default options.%0a%0a* PmWiki comes with an ability to cache the results of certain [@(:pagelist:)@] directives, to speed up processing on subsequent visits to the page. To enable this feature, set $PageListCacheDir to the name of a writable directory (e.g., ''work.d/'').%0a%0a* [[#elseifelse]]The [@(:if ...:)@] conditional markup now also understands [@(:elseif ...:)@] and [@(:else:)@]. In addition, markup can nest conditionals by placing digits after if/elseif/else, as in [@(:if1 ...)@], [@(:elseif1 ...:)@], [@(:else1:)@], etc.%0a%0a* The [@(:if date ...:)@] conditional markup can now perform date comparisons for dates other than the current date and time.%0a%0a* [[WikiTrails]] can now specify #anchor identifiers to use only sections of pages as a trail.%0a%0a* A new [@(:if ontrail ...:)@] condition allows testing if a page is listed on a trail.%0a%0a* The extensions .odt, .ods, and .odp (from OpenOffice.org) are now recognized as valid attachment types by default.%0a%0a* A new [[blocklist]] 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 [[PmWiki.Blocklist]] for details.%0a%0a* There is a new [[SiteAdmin.AuthList]] 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.%0a%0a* There are new [@{$PasswdRead}@], [@{$PasswdEdit}@], etc. variables that display the current password settings for a page (assuming the browser has attr permissions or whatever permissions are set in $PasswdVarAuth).%0a%0a* Forms creation via the [@(:input:)@] markup has been internally refactored somewhat (and may still undergo some changes prior to 2.2.0 release). The new [@(:input select ...:)@] markup can be used to create select boxes, and [@(:input default ...:)@] can be used to set default control values, including for radio buttons and checkboxes.%0a%0a* The [@(:input textarea:)@] markup now can take values from other sources, including page text variables from other pages.%0a%0a* Specifying [@focus=1@] on an [@(:input:)@] 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 [@focus=@] "wins".%0a%0a* PmWiki now provides a ''scripts/creole.php'' module to enable Creole standard markup. To enable this, add [@include_once('scripts/creole.php')@] to a local customization file.%0a%0a* PmWiki adds a new [@{(...)}@] ''markup expression'' 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.%0a%0a* It's now possible to configure PmWiki 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 ''local/config.php'':%0a%0a-->[@$AutoCreate['/^Category\\./'] = array('ctime' => $Now);@]%0a%0a* Sites with wikiwords enabled can now set $WikiWordCount['WikiWord'] to -1 to indicate that 'WikiWord' should not be spaced according to $SpaceWikiWords.%0a%0a* WikiWords that follow # or & are no longer treated as WikiWords.%0a%0a* Links to non-existent group home pages (e.g., [@[[Group.]]@] and [@[[Group/]]@]) will now go to the first valid entry of $PagePathFmt, instead of being hardcoded to "Group.Group". For example, to set PmWiki to default group home pages to [@$DefaultName@], use%0a%0a-->[@$PagePathFmt = array('{$Group}.$1', '$1.{$DefaultName}', '$1.$1');@]%0a%0a* PmWiki now provides a $CurrentTimeISO and $TimeISOFmt variables, for specifying dates in ISO format.%0a%0a* [[(Cookbook:)Cookbook]] authors can use the internal PmWiki function UpdatePage (temporarily documented at [[(Cookbook:)DebuggingForCookbookAuthors]]) to change page text while preserving history/diff information, updating page revision numbers, updating RecentChanges pages, sending email notifications, etc.%0a%0a* [[Skin templates]] are now required to have %3c!--HTMLHeader--> and %3c!--HTMLFooter--> directives. Setting $EnableSkinDiag causes PmWiki to return an error if this isn't the case for a loaded skin. Skins that explicitly do not want HTMLHeader or HTMLFooter sections can use %3c!--NoHTMLHeader--> and %3c!--NoHTMLFooter--> to suppress the warning.%0a%0a* Added a new "pre" wikistyle for preformatted text blocks.%0a%0a* The xlpage-utf-8.php script now understands how to space UTF-8 wikiwords. %0a%0a* Searches on utf-8 site are now case-insensitive for utf-8 characters.%0a%0a* Many Abort() calls now provide a link to pages on pmwiki.org that can explain the problem in more detail and provide troubleshooting assistance.%0a%0a* PmWiki no longer reports "?cannot acquire lockfile" if the visitor is simply browsing pages or performing other read-only actions.%0a%0a* The $EnableReadOnly configuration variable can be set to signal PmWiki 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().%0a%0a* Including authuser.php no longer automatically calls ResolvePageName().%0a%0a* Authentication using Active Directory is now simplified. In Site.AuthUser or the $AuthUser variable, set "ldap://name.of.ad.server/" with no additional path information (see PmWiki.AuthUser for more details).%0a%0a* Pages are now saved with a "charset=" attribute to identify the character set in effect when the page was saved.%0a%0a* The phpdiff.php algorithm has been optimized to be smarter about finding smaller diffs.%0a%0a* Removed the (deprecated) "#wikileft h1" and "#wikileft h5" styles from the pmwiki default skin.%0a%0a* The mailposts.php and compat1x.php scripts have been removed from the distribution.%0a%0a----%0aBugs and other requests can be reported to the PmWiki Issue Tracking %0aSystem at http://www.pmwiki.org/wiki/PITS/PITS. Any help%0ain testing, development, and/or documentation is greatly appreciated..%0a%0a[[(PmWiki:)Release Notes archive]] - notes for versions older than 2.2.0.%0a%0a%0a%0a%0a
-time=1698088795
+text=(:title Release Notes:)(:Summary: Notes about new versions, important for upgrades:)%0aSee also: [[Upgrades]], [[Change log]], [[(PmWiki:)Download]] and [[(PmWiki:)Road map]].%0a(:comment The {*$:Released} variable is used in [[News/]]. :)%0a%0a!! Version 2.3.27 {*$:Released} (2023-10-23) [[#v2327]]%0a%0aThis version includes fixes for PHP 8, and for time formats with an invalid timezone. %0a%0aWhen merging the last edit without an edit summary, it will now reuse the previous edit summary.%0a%0aThe ".diffmarkup" element now has the style "white-space: pre-wrap" - if a custom skin disables core styles you may want to update the skin styles.%0a%0aWhen $EnableEditAutoText is enabled, new keyboard shortcuts will be available: %25pmhlt%25@@[=Ctrl+B ('''bold'''), Ctrl+I (''italic''), Ctrl+K ([[link]]/unlink).=]@@%0a%0aThe documentation was updated.%0a%0a%0a!! Version 2.3.26 {*$:Released} (2023-09-28) [[#v2326]]%0a%0aThis version includes updates for PHP 8.2, customizable HTML snippets for trails and input labels. It is now possible to configure searching for "at least one" term among many, as opposed to currently searching for all terms. Extensions are now removed from the $UploadExts array if their size is set to zero in $UploadExtSize, and the documentation was updated.%0a%0a%0a!! Version 2.3.25 {*$:Released} (2023-07-29) [[#v2325]]%0a%0aThis version includes updates for PHP 8.2. Some core markup directives were refactored to prevent very rare bugs. The documentation was updated.%0a%0a%0a!! Version 2.3.24 {*$:Released} (2023-06-06) [[#v2324]]%0a%0aThis version includes some code refactoring, and a new helper function [[Functions#InsertEditFunction|InsertEditFunction()]] to simplify the reuse of core functionality by recipes. %0a%0aIt is now possible to configure the merging of the latest edits by the same author into a single history entry, see $EnableMergeLastMinorEdit.%0a%0aNew configuration variables $AuthFormRespCode, $EnableUploadMimeMatch, $EnableDownloadRanges, see documentation.%0a%0aPmForm now can validate an email address field with the "template require FIELD if=validemail" condition.%0a%0aA few other minor improvements in the [[change log]], and the documentation was updated.%0a%0a%0a!! Version 2.3.23 {*$:Released} (2023-05-03) [[#v2323]]%0aThis version implements session tokens to prevent potential cross-site request forgery vulnerabilities, suggested by Dominique Faure. Most core actions that modify pages or files should have this enabled and should work like before. %0a%0aThis new feature can be disabled by setting these variables in config.php:%0a%0a%25hlt php%25[@%0a $EnablePmToken = 0; # edit, upload, attributes, approveurls%0a $PmFormEnablePmToken = 0; # PmForm%0a@]%0a%0aSome installations might encounter the error message "Token invalid or missing". These can include custom edit forms, automated scripts posting to the wiki, AJAX posting text or uploads used by some recipes, or partial upgrades where some core scripts haven't been updated. Most of these should be easy to update -- please check if you're using the latest recipe versions, otherwise report such cases to us -- otherwise you may selectively disable the feature. See [[Upgrades#pmtoken]].%0a%0aA [[Forms|form]] element %25pmhlt%25[@(:input pmtoken:)@] was added, and the helper function [[Functions#pmtoken|pmtoken()]] was documented to make it easy for custom forms and recipes to use this new feature.%0a%0aThe version also includes a minor code refactoring, a bug fix, and the documentation was updated.%0a%0a%0a!! Version 2.3.22 {*$:Released} (2023-04-06) [[#v2322]]%0aThis version adds to the core the Cookbook:PmForm recipe (script and templates), not enabled by default. This is in order to reduce my workload, and future updates to PmForm will be made only in the core version. %0a%0aIf you already use PmForm, you can enable the core script, by modifying your @@include_once()@@ call from "@@'''cookbook'''/pmform.php@@" to "@@'''scripts'''/pmform.php@@". Your existing templates and configuration should continue to work.%0a%0aA bug was fixed with [[PageLists]] with multiple @@category=+A,+B@@ categories. Input [[forms]] and buttons can now be configured to ask for confirmation before they are submitted. A few updates for recent PHP versions, and other minor improvements, and the documentation was updated.%0a%0a!! Version 2.3.21 {*$:Released} (2023-03-06) [[#v2321]]%0aThis version includes updates for PHP 8, and bug fixes with [[tables#sortable|sortable tables]] and multiline $MarkupDirectiveFunctions. The core [[table of contents]] was updated to work better with recent SectionEdit versions, and the documentation was updated.%0a%0aNew features include: the upload extension CSV, $EnableLocalTimes with a new short mode 3 where old dates are shown as MM'YY, and a new variable $EnableCopyCode to add [@[+]@] buttons for easy copying of preformatted blocks.%0a%0a!! Version 2.3.20 {*$:Released} (2023-02-12) [[#v2320]]%0aThis version fixes an unidentified variable warning introduced yesterday in 2.3.19.%0a%0a!! Version 2.3.19 {*$:Released} (2023-02-11) [[#v2319]]%0aThis version includes fixes for recent PHP versions, new helper functions, new variables allowing more customization, and the documentation was updated.%0a%0aWork is underway to define and implement a new family of self-contained recipes "Modules" which should be easier to install, configure and update. It may be possible to easily update your modules and skins either from a remote Git/SVN repository, or by simply dropping a ZIP file into the "modules" directory, and use a wiki-based editor to enable and configure them. Nothing will change for existing recipes, and they will not need to be updated; this will be an entirely optional new interface. Let me know if you can suggest features/scopes added to the wishlist.%0a%0aPmWiki too may be able to run directly from the read-only release ZIP archive, without the need to unzip it first. Again, this will be entirely optional, the current ways will continue to work as before, and slightly faster than the ZIP version (approx. 2%25 faster in my benchmarks).%0a%0a%0a!! Version 2.3.18 {*$:Released} (2023-01-15) [[#v2318]]%0a%0aThis version fixes a bug with user groups in with conditional markup, includes updates for PHP 8, minor improvements to the edit textarea and to the syntax highlighting. A helper function pm_json_encode() was added for servers where the PHP-JSON extension is not enabled.%0a%0aThe documentation was updated.%0a%0a!! Version 2.3.17 {*$:Released} (2022-12-17) [[#v2317]]%0a%0aThis release has updates for recent PHP versions.%0a%0aThe edit textarea had some improvements. Edit buttons and the automatic edit text will now insert their wiki markup in a way which allows for the "undo" function in the text area to work (with Ctrl+Z). The edit textarea (with $EnableEditAutoText enabled) now accepts 4 new keyboard shortcuts: Ctrl+L and Ctrl+Shift+L to convert the selected text to lowercase or uppercase, and Ctrl+Shift+ArrowUp or ArrowDown to move the line with the cursor up or down.%0a%0aA new variable $EnableBaseNameConfig was added - it allows to enable automatic inclusion of local configuration for the "basename" of the current page, for example Group.Page-Draft to include local/Group.Page.php if it exists.%0a%0aConditional markup %25pmhlt%25[@(:if auth @admins,@editors:)@] can now check if the current user belongs to selected usergroups (with [[AuthUser]]).%0a%0aA few minor bugs and omissions were fixed, and the documentation was updated.%0a%0a!! Version 2.3.16 {*$:Released} (2022-11-28) [[#v2316]]%0a%0aThis version fixes a bug with some skins introduced in 2.3.15 last week, and reverts PrePrintFmt(). %0a%0aNew WikiStyles 'notoc' and 'overflow' were added. PmTOC Table of contents, and the list of included pages in the edit form, now use classnames instead of style attributes.%0a%0aPmSyntax fixes a font-size alignment bug with nested programming languages, and has been optimized for large pages.%0a%0aA few more minor bugs were fixed, including for PHP 8, and the documentation was updated.%0a%0a%0a!! Version 2.3.15 {*$:Released} (2022-11-21) [[#v2315]]%0a%0aSecurity: Closed a potential XSS vulnerability discovered today. Your wiki may be at risk if untrusted people can edit your pages.%0a%0aHTTP headers: CSP updated, XSSP added. Both can be disabled or modified by changing the $HTTPHeaders values.%0a%0aCookies: Added a new variable $CookieSameSite default to 'Lax' per current browser defaults and expectations. Updated pmsetcookie() added an argument $samesite, and refactored to work with old and current PHP versions. Added function pm_session_start() as a replacement for session_start() with respect for local preferences ($CookieSameSite, $EnableCookieSecure, $EnableCookieHTTPOnly). %0a%0a[[Cookbook:PmSyntax|PmSyntax]]: A new CSS variable @@--pmsyntax-fontsize-editform@@ allows to set the font size of the edit form separately from highlighted elements in the documentation. Fixed the [@[[Highlight]]@] label could change fonts when clicked.%0a%0aResponsive skin: The font size for "pre" and "code" elements is now scalable/relative to the paragraph font size rather than fixed. This works better in headings or small text blocks.%0a%0aGUI edit buttons: Part of these functions were rewritten to avoid 'unsafe inline' JavaScript. While default and most custom buttons should work without change, you should no longer need to url-encode some characters like %25 or add backslashes. If you have such buttons, you may need to update their declarations to strip the extra backslashes. %0a%0a[[WikiStyles]]: Refactored to move all inline WikiStyles to the $HTMLStylesFmt array in the header of the HTML page.%0a%0aTables and block markup: Replaced inline @@style="..."@@ attributes with class names. %0a%0aThe function PrintFmt() was refactored to process skin parts, skin functions, markup, and wiki pages, before sending the HTTP and HTML headers. This allows for wikistyles and recipes in sidebars and footers to add their configuration to the headers.%0a%0aIf you have questions or difficulties upgrading, please contact us.%0a%0a!! Version 2.3.14 {*$:Released} (2022-11-03) [[#v2314]]%0a%0aThis version includes fixes for recent PHP versions and for 2 minor bugs (searchbox wrongly encoded entities and %25pmhlt%25[@{(ftime %25L)}@] format). Inline JavaScript for focusing form fields is now replaced with native attributes. In the Edit form, the "Minor edit" label can now toggle the checkbox.%0a%0aThe "disabled obsolete markup" tooltip now includes the file path and the line number of the markup rule definition.%0a%0aPmSyntax now recognizes %25pmhlt%25[@(:template requires? ...:)@] which is used by some recipes.%0a%0aThe documentation was updated.%0a%0a!! Version 2.3.13 {*$:Released} (2022-10-07) [[#v2313]]%0aThis version closes a potential XSS vulnerability, reported by lukystreik. A new variable $FailedLoginsFunction will allow to define a function limiting the number of failed logins. The documentation was updated.%0a%0a!! Version 2.3.12 {*$:Released} (2022-09-25) [[#v2312]]%0aThis version has a few fixes for PHP8. Complex conditionals with empty page variables could cause errors, now fixed. Form elements with values like "0" could appear empty, now fixed. The PSFT() function and the %25pmhlt%25[@{(ftime)}@] markup expression now recognize a "%25L" format as a human-readable localizable timestamp. A new helper function PrintAuthForm() was split from PmWikiAuth() to allow recipes to call it directly. The documentation was updated.%0a%0a!! Version 2.3.11 {*$:Released} (2022-08-30) [[#v2311]]%0a%0aThis version fixes the function stripmagic(), when used with arrays (a recent update for PHP 8 broke it).%0a%0aNew [[PageVariables]] derived from a Group's homepage are now available: %25pmhlt%25 [@{$GroupHomePage}@], [@{$GroupHomePageName}@], [@{$GroupHomePageTitle}@], [@{$GroupHomePageTitlespaced}@].%0a%0aA new helper function should simplify recipes with custom markup directives of the format:%0a%0a-> %25pmhlt%25 [@(:mydirective arg=val param="other value":)...(:mydirectiveend:)@].%0a%0aSee the documentation at Cookbook:MarkupDirectiveFunctions.%0a%0aThe core documentation was updated.%0a%0a%0a!! Version 2.3.10 {*$:Released} (2022-08-20) [[#v2310]]%0a%0aThis version includes updates for PHP 8. Wildcard $DefaultUnsetPageTextVars should now work with forms. PmSyntax fixed text alignment between the edit area and the colored block in some cases. The documentation was updated.%0a%0a!! Version 2.3.9 {*$:Released} (2022-08-18) [[#v239]]%0a%0aThis version includes updates for PHP 8. Non-wildcard $DefaultUnsetPageTextVars should now work with %25pmhlt%25[@(:input default:)@]. PmSyntax now handles blocks with simpler selectors, possibly created by recipes. The documentation was updated.%0a%0a!! Version 2.3.8 {*$:Released} (2022-07-22) [[#v238]]%0a%0aThis version fixes a bug caused by a recent update for PHP 8 with the include markup:%0a%0a %25pmhlt%25[@(:include Page1 Page2 Page3:)@]%0a%0aWhen the first page doesn't exist, it didn't check for the other pages (now fixed).%0a%0aIn addition, PmSyntax was improved when more than one inline blocks are on the same line, and the documentation was updated.%0a%0a%0a!! Version 2.3.7 {*$:Released} (2022-06-28) [[#v237]]%0a%0aThis version sets default HTTP headers X-Frame-Options (reported by Imagine Dragon) and Content-Security-Policy to disallow embedding in external websites by default and clickjacking attempts.%0a%0aShould you require the previous behavior, you can add this line to local/config.php:%0a%0a-> %25hlt php%25[@unset($HTTPHeaders['XFO'], $HTTPHeaders['CSP']);@]%0a%0a$EnableHighlight will now remember any links to PmWiki variables and restore them after the highlighting. %0a%0a$EnablePmSyntax will now process %25pmhlt%25[@%25hlt pmwiki%25@] in addition to [@%25pmhlt%25@] blocks, and escaped markup after it will be tentatively highlighted.%0a%0aThe documentation was updated.%0a%0a%0a!! Version 2.3.6 {*$:Released} (2022-06-19) [[#v236]]%0a%0aThis version contains fixes for PHP 8. A form attribute "lang" was added. %0a%0aSortable tables now allow for table headers to have markup such as bold (except links), and will use a case-insensitive natural ordering. %0a%0aSearchbox now has a default placeholder %25pmhlt%25 [@"$[Search]"@] and can have the submit button removed with the argument [@label=""@] (users need to press Enter on their keyboards to search).%0a%0a$EnableHighlight-formatted code blocks are now converted to plain text to prevent warnings; there is an ongoing discussion in the mailing list so this solution may evolve.%0a%0aFor developers: $UploadVerifyFunction can now modify $upname, and a variable $PageIndexTermsFunction can configure a replacement function for PageIndexTerms().%0a%0aThe documentation was updated.%0a%0a%0a!!Version 2.3.5 {*$:Released} (2022-05-23) [[#v235]]%0a%0aThis version fixes a bug with %25pmhlt%25 @@[=(:pagelist list=grouphomes:)=]@@. A new helper function DisableSkinParts() allows for simpler disabling of headers, footers and sidebars from recipes. When a file is uploaded, new variables with the file path and URL are now available to recipes.%0a%0aThe version also contains fixes for PHP 8 and documentation updates.%0a%0a%0a!!Version 2.3.4 {*$:Released} (2022-04-22) [[#v234]]%0a%0aThis version includes fixes for PHP 8 and documentation updates.%0a%0a%0a!!Version 2.3.3 {*$:Released} (2022-03-26) [[#v233]]%0a%0aThis version includes fixes for PHP 8 and documentation updates.%0a%0a%0a!!Version 2.3.2 {*$:Released} (2022-02-09) [[#v232]]%0a%0aThis version includes bug fixes and updates for PHP 8.1. The core variable $EnableIncludedPages introduced in 2.3.0 was renamed to $EnableListIncludedPages to avoid ambiguity. With LocalTimes, is now possible to configure the number of days the "plus" button will pull from the page history, and the function will better recognize some older RecentUploads formats. PmSyntax was updated so that "%25pmhlt%25@@\\@@" line breaks in tables and headings are treated like in the core, staying in the same context; and the different PmSyntax blocks will now be processed in parallel.%0a%0aThe code configuring and loading pmwiki-utils.js was moved to a new file scripts/utils.php, and a new variable $EnablePmUtils was added to allow administrators to easily disable these functions. The script pmwiki-utils.js will now be included in the page header rather than the footer, which may reduce the number of page redraws. The individual functions will now be processed in parallel.%0a%0aThe documentation was updated.%0a%0a%0a!!Version 2.3.1 {*$:Released} (2022-01-15) [[#v231]]%0a%0aThere was an omission in the release script which unexpectedly deleted the $VersionNum variable which broke some settings. This quick release fixes it.%0a%0a!!Version 2.3.0 {*$:Released} (2022-01-15) [[#v230]]%0a%0aJanuary 2022 is the 20th year anniversary of the release of PmWiki version 0.1, and 13 years since I (Petko) became core developer. This merited additional work and effort with hopefully interesting and useful new production.%0a%0a'''PHP 5.3 - 8.1 compatibility''' %0a* PmWiki 2.3.0 includes updates for PHP 8.0 and 8.1.%0a* Consequently, it requires PHP version 5.3 (released 2009) or more recent.%0a%0a'''PmSyntax'''. A new function PmSyntax was added to the core, and enabled on pmwiki.org. %0a* It highlights PmWiki syntax in the documentation, and possibly in the basic edit form. %0a* It only highlights PmWiki markup, and is independent from Highlight.js. See Cookbook:PmSyntax and $EnablePmSyntax. %0a* It should highlight most core language features and those of many recipes, see [[https://www.pmwiki.org/wiki/Test/PmSyntax|this mashup of various markups]]. %0a* Developers can add custom rules in the $CustomSyntax array, see Cookbook:CustomSyntax. %0a* The %25pmhlt%25 [@(:markup:)@] directive can now have @@class=norender@@ to only show the source code without processing it. This may be useful, together with PmSyntax, in 2 cases: writing/discussing markup code without actually running it, or working on PageList Templates where you want to see and edit them highlighted.%0a%0a'''Improvements to the edit form'''%0a* PmSyntax (above) can be enabled to highlight the PmWiki markup the edit form, and should work in recent standards-compliant browsers.%0a* The variable $EnableNotSavedWarning is now enabled by default. Add to config.php @@$EnableNotSavedWarning = 0;@@ to disable it.%0a* A new variable {- $EnableIncludedPages -} $EnableListIncludedPages (from 2.3.2) allows listing of other pages included from the currently edited page, with links to see or edit them. When the variable is enabled, the list of pages appears in the edit form, after the text area, in a collapsed %3cdetails> element. The list includes pages from which text, text variables, or templates are included from the edited page. This is enabled on pmwiki.org if you wish to preview it.%0a* The $EnableEditAutoText function will now feel more like other text editors by removing the automatically inserted bullet when Enter is pressed twice.%0a%0a'''Dates and times, monitoring, review'''%0a* The %25pmhlt%25 [@{(ftime)}@] Markup expression now accepts a new format '[@%25o@]' for the ordinal suffix of the date.%0a* The [[Notify]] feature now accepts a @@tz=@@ timezone specifier for individual subscribers. See [[Notify#tz]].%0a* A function based on Cookbook:LocalTimes was added to the core. See [[Cookbook:LocalTimes|the recipe page]] for the differences. You can continue using the recipe, or disable it and enable the core function.%0a* New core variables $EnableLocalTimes, $CurrentLocalTime.%0a* New markup %25pmhlt%25[@@2022-01-09T08:35:00Z@]%25%25 output as a %3ctime> element, formatted via $TimeFmt; localized if $EnableLocalTimes. %0a* Added a variable $EnableRecentUploads which makes it easy to enable the Recent Uploads feature on AllRecentChanges. This is a basic format that may be good enough for many wikis. For more options, see Cookbook:RecentUploadsLog.%0a* The default $RecentChangesFmt now use the variable $CurrentLocalTime instead of $CurrentTime. In the wiki source text it saves the timestamps in a portable time format in GMT, which is then shown formatted per $TimeFmt (wiki timezone). It looks just like $CurrentTime did previously, but can be converted to the visitor's time zone if LocalTimes is enabled. If you have custom $RecentChangesFmt entries that use $CurrentTime, nothing will change for you, but you may want to update these with $CurrentLocalTime if you want to benefit from localization.%0a* The "page history" page now has CSS classes for the delay between edits: diffday, diffweek, diffmonth, diffyear. These allow styling of vertical spacing between individual edits in page histories. See Cookbook:DiffDelay for an example.%0a* The page history can now have a "hidden" edit type, in addition to "minor". This is intended to be used by recipes in order to hide, rather than delete, some edits from the page history. A couple of new recipes using this feature will be added in the next few days.%0a%0a'''PageLists, categories, backlinks'''%0a* [[PageLists]] now accept a new argument @@category=Name@@ which lists only pages declared in the category with the markup %25pmhlt%25 [@[[!Name]]@], and does not include pages simply linking to [@[[Category/Name]]@] (unless they also contain [@[[!Name]]@]).%0a** The differentiation between links to !Name and Category.Name requires the pages containing category links to be re-indexed; see Cookbook:ReindexCategories which can automate this.%0a* Also in PageLists, the arguments @@link=@@ and @@category=@@ now accept multiple and negative specifiers, and wildcards. See [[PageLists#wildcards]]. If you previously used the recipe Cookbook:PageListMultiTargets, please disable it when you upgrade to 2.3.0.%0a* Category links can now have a different text, like %25pmhlt%25 [@[[!Name|Text]]@], and the markup generally behaves like other links, see PITS:01095.%0a%0a'''Styles''' (core skin PmWiki-responsive)%0a* Collapsible sections details+summary will now change the cursor to the "pointer" style over the clickable element, and the color will change to "navy". %0a* The core table of contents function ($PmTOC) has had its styles updated, in order to properly indent long sub-headings.%0a%0a'''Core helper functions'''%0a* A new helper function %25hlt php%25@@PSFT()@@ can now be used as an ''almost'' drop-in replacement for @@strftime()@@ and @@gmstrftime()@@ which became deprecated in PHP 8.1. Please review the documentation at [[Functions#PSFT]]. If you have local configurations or recipes using @@strftime()@@ you can change for @@PSFT()@@ now.%0a* A helper function %25hlt php%25@@DownloadUrl($pagename, $path)@@ was added, see [[Functions#DownloadUrl]]. It can simplify the handling of attached files by recipes.%0a%0aLast but not least, '''the documentation''' in English has been updated with the latest development (and in German by MFWolff).%0a%0aSee also [[Upgrades#v22v23|Upgrading from version 2.2.145 to 2.3.0]].%0a%0aAs always, if you have any questions or difficulties, please let us know.%0a%0a%0a!! Version 2.2.145 {*$:Released} (2021-12-11) [[#v22145]]%0aThis version includes a minor change in search patterns: searches and pagelists with a wrong or undefined $SearchPatterns (@@list=abc@@ argument) will now use $SearchPatterns["default"] rather than an empty array (effectively all pages). This was likely the intended behavior, a way for admins to restrict search locations.%0a%0aIt also includes updates for PHP 8, a fix of an emoji for non-UTF8 wikis, and the latest pages of the documentation.%0a%0a!! Version 2.2.144 {*$:Released} (2021-11-06) [[#v22144]]%0aThis version includes fixes for PHP 8 and an update to @@intermap.txt@@. The conditional markup "exists" was optimized when called multiple times. The functions %25hlt php%25@@CondExists()@@, @@MatchPageNames()@@, and @@MatchNames()@@, can now be called with an additional argument (false) when a case-sensitive match is needed. The documentation was updated.%0a%0a!! Version 2.2.143 {*$:Released} (2021-10-02) [[#v22143]]%0aThis version should prevent some errors from local customization or recipes with recent PHP versions, by disabling obsolete markup rules and replacement patterns. If such markup appears on a page, it will not be processed, it will be rendered like this: %25frame%25@@&#9888;(:my-obsolete-directive params:)@@%25%25 and a tooltip title should have some additional information.%0a%0aCare should be taken if you have custom calls to the deprecated function [[PmWiki/Functions#PCCF|%25hlt php%25@@PCCF()@@]], and incompatible custom replacement patterns processed via [[PmWiki/Functions#PPRE|@@PPRE()@@]] or [[PmWiki/Functions#PPRA|@@PPRA()@@]] are silently skipped, which may not work as expected. (Previously they wouldn't work at all.)%0a%0aIf you experience any difficulties, please do let us know and we'll try to provide a fix.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.142 {*$:Released} (2021-08-31) [[#v22142]]%0aThis version hides some PHP 8 notices, and adds 2 new form element attributes "accept" and "autofocus". %0a%0aThe documentation was updated.%0a%0a%0a!! Version 2.2.141 {*$:Released} (2021-07-09) [[#v22141]]%0aThis version adds ways to define 2 custom functions:%0a* $MultiFactorAuthFunction to enable custom MFA/2FA with [[AuthUser]]%0a* $PageIndexFoldFunction to define a custom function normalizing the page terms while indexing and searching (by default PmWiki converts the terms to lowercase).%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.140 {*$:Released} (2021-06-26) [[#v22140]]%0aThis version has updates for PHP 8. %0a%0aThe API of the source code highlighting library has changed and the PmWiki loader function was adapted; if you use this feature, please upgrade Highlight.js to version 11.0.0 or newer. %0a%0aNote: since version 11, Highlight.js doesn't preserve HTML in the preformatted blocks and issues a console warning, so you should only use the [@(space)[=escaped=]@] or the @@[=[@escaped@]=]@@ markup blocks.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.139 {*$:Released} (2021-05-05) [[#v22139]]%0aThis version removes empty "title" attributes in HTML tags (links and images), fixes warnings which appear with PHP 8 and updates the documentation.%0a%0a!! Version 2.2.138 {*$:Released} (2021-03-02) [[#v22138]]%0aThis version fixes a bug when a details directive has markup in the summary attribute, and the documentation was updated.%0a%0a!! Version 2.2.137 {*$:Released} (2021-02-26) [[#v22137]]%0aThis version fixes a bug introduced earlier today with entities encoded twice in PQA() quoted arguments.%0a%0a!! Version 2.2.136 {*$:Released} (2021-02-26) [[#v22136]]%0aThis version fixes a XSS vulnerability for WikiStyles reported today by Igor Sak-Sakovskiy.%0a%0aThe fix adds a second argument $keep to the core function PQA($attr, $keep=true) which by default escapes HTML special characters and places the values in Keep() containers. If you have custom functions that call PQA() and expect the previous behavior, call PQA() with a second argument set to false.%0a%0aIf you have any questions or difficulties, please let us know.%0a%0a!! Version 2.2.135 {*$:Released} (2021-01-31) [[#v22135]]%0aThis version fixes a number of PHP8 compatibility issues. This is a work in progress, if you uncover others, please report them at PITS:01461.%0a%0aA work is underway to implement session tokens to prevent CSRF vulnerabilities -- suggested by Dominique Faure. I wanted to rework these functions but the PHP8 compatibilities are more urgent so at the moment the PmToken functions are transparent/non-functional.%0a%0aA defunct syndicated blocklist was disabled, a minor code refactoring was done for PmTOC to better support manual edit section links, and the documentation was updated.%0a%0a%0a!! Version 2.2.134 {*$:Released} (2020-11-30) [[#v22134]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.133 {*$:Released} (2020-10-25) [[#v22133]]%0aThis version fixes a potential vulnerability to CWE-384: Session Fixation, reported by Dominique Faure. The fix regenerates the session identifier at the moment someone logs in. In case this is not desirable, a wiki admin can set the new variable $EnableAuthPostRegenerateSID to false.%0a%0aThis version also fixes an unintended variable evaluation in link markups. The CSS from Cookbook:RecipeCheck will now be injected only when needed. The responsive skin styles contained a reduced padding value for numbered and bulleted lists in order to save space, but in longer lists it could clip the item numbers. This value was removed from the styles because it was complex to reliably override it from local configuration. If you need to enable the previous values, add to pub/css/local.css the following:%0a%0a%25hlt css%25[@%0aul, ol { padding: 0 0 0 20px; }%0a@media screen and (min-width:50em) {%0a ul, ol { padding: 0 0 0 40px; }%0a}@]%0a%0a!! Version 2.2.132 {*$:Released} (2020-09-30) [[#v22132]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.131 {*$:Released} (2020-08-30) [[#v22131]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.130 {*$:Released} (2020-07-04) [[#v22130]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.129 {*$:Released} (2020-05-21) [[#v22129]]%0aThis version adds the styles for the "simpletable" class of tables from the "pmwiki-responsive" skin into the old "pmwiki" skin, and the documentation was updated.%0a%0a!! Version 2.2.128 {*$:Released} (2020-04-26) [[#v22128]]%0aThis version only includes some cosmetic changes and updates the documentation.%0a%0a!! Version 2.2.127 {*$:Released} (2020-03-23) [[#v22127]]%0aThis version sets the maximum height of the edit form textarea after reports for a jumping behavior on mobile devices (the PmWiki-responsive skin only). The core table of content classes "pmtoc-show" and "pmtoc-hide" now replace the previous classes "show" and "hide" to prevent conflicts with other frameworks. The functionality of the recipe Skins:SkinChange was added to the core (disabled by default). The documentation was updated.%0a%0a!! Version 2.2.126 {*$:Released} (2020-02-01) [[#v22126]]%0aThis version fixes a bug with $PmTOC['MinNumber'] set to -1, and updates the .htaccess format for caches.php. The documentation was updated.%0a%0a!! Version 2.2.124, 2.2.125 {*$:Released} (2020-01-27) [[#v22124]] [[#v22125]]%0aThis version adds a variable $SetCookieFunction to override the core "pmsetcookie" function. A new feature ToggleNext was included in the core, documented at Cookbook:ToggleNext. The documentation was updated.%0a%0a!! Version 2.2.123 {*$:Released} (2019-12-31) [[#v22123]]%0aThis version allows link URLs to be [[Links#escaped | escaped]] with [@[=link address=]@] if they contain any special characters, including quotes, parentheses and pipes. The obfuscated e-mails will now work from headers, footers and sidebars. A [[forms|form]] attribute "formnovalidate" was added to the core and to the "Cancel" button in the edit form. Core [[table of contents]] will now work better with Cookbook:SectionEdit. Cookbook:RecipeCheck was included in the core -- if you have this recipe already installed, you can simply comment it out from your config.php. The code that handles $EnableRCDiffBytes was refactored to also show the bytes changed in the page histories. New upload extensions [[https://developers.google.com/speed/webp | "webp"]] (images) and [[https://www.opus-codec.org/ | "opus"]] (audio) were added. The documentation was updated.%0a%0a!! Version 2.2.122 {*$:Released} (2019-11-19) [[#v22122]]%0aVersion 2.2.121 was released by mistake and contained some experimental code that was meant to be tested first. %0a%0aThis version fixes a bug with ObfuscateLinkIMap() and international characters. New configuration variables $DefaultUnsetPageTextVars, $DefaultEmptyPageTextVars can set default values for page text variables. The built-in table of contents and numbered headings can now be enabled independently. A pagelist template pseudovariable [@{$$EachCount}@] was added, containing the number of the page in the current "each" loop. Input form elements and the [@(:searchbox:)@] field now can have ARIA accessibility attributes.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.120 {*$:Released} (2019-10-13) [[#v22120]]%0aThis version fixes a bug with existing complex customization of GUIEdit buttons. Very long [[table of contents|tables of contents]] will now be scrollable. A new "input datalist" [[Forms|form]] element (list of suggestions to other input fields), and a new "details+summary" [[block markup|block section]] (toggle sections without JavaScript) were added. The documentation was updated.%0a%0a!! Version 2.2.119 {*$:Released} (2019-10-03) [[#v22119]]%0aThis version updates the core for PHP 7.4. Required input fields now feature @@required="required"@@ attributes and modern browsers prevent sending the edit or upload form with empty required fields. Attachlist @@ext=@@ and @@names=@@ arguments now accept patterns and negatives like @@ext=jpg,png@@, @@ext=-pdf@@, or @@names=-th*---*.jpg@@. The Redirect function can now have a 3rd argument with the full URL. The scroll position in the edit text area will be remembered on save-and-edit and preview. A bug was fixed with pagelist while preview. The documentation was updated.%0a%0aA number of features currently provided by recipes were added to the core and disabled by default. You can still use the recipes, or you can disable them and enable the core features. The following features were added:%0a* e-mail obfuscation functions based on Cookbook:DeObMail; see instructions to enable%0a* a FixUrl button based on Cookbook:FixURL, see $EnableGuiEditFixUrl%0a* $EnableNotSavedWarning based on Cookbook:NotSavedWarning%0a* $EnableEditAutoText based on Cookbook:EditHelp%0a* $PmTOC, [@(:toc:)@], [@(:notoc:)@], Table of contents/Numbered headings, based on a simplified variant of Cookbook:AutoTOC%0a* $EnableSortable, basic sortable tables%0a* $EnableRCDiffBytes based on Cookbook:DeltaBytesRecentChanges%0a* $EnableSimpleTableRowspan replicating the markup from Cookbook:RowspanInSimpleTables%0a* $WikiPageCSSFmt enables CSS in a wiki page, based on Cookbook:LocalCSS%0a* $EnableHighlight code highlight feature compatible with "highlight.js"%0a* $AddLinkCSS['othergroup'] and $AddLinkCSS['samedomain'] can contain custom CSS classes for in-wiki links to other groups and for URL links to the same site.%0a%0aThe above new features are disabled by default, see the documentation for more information on how to enable them, or test them on pmwiki.org where most of these are enabled. Please report if you notice any problems.%0a%0a!! Version 2.2.118 {*$:Released} (2019-08-28) [[#v22118]]%0aThis version integrates the features of the recipe Cookbook:PreviewChanges into the core. If you currently use this recipe, please uninstall it and add to config.php:%0a $EnablePreviewChanges = 1;%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.117 {*$:Released} (2019-07-28) [[#v22117]]%0aThis version adds handling of "partial content" requests for file downloads. New video file extensions 'm4v' and '3gp' were added. The Upload form now includes a new text field "Uploader" pre-filled with the name of the editor, and a new variable $EnableUploadAuthorRequired was added (defaults to $EnablePostAuthorRequired). The documentation was updated.%0a%0a!! Version 2.2.116 {*$:Released} (2019-06-19) [[#v22116]]%0aThis version fixes pagelists with case insensitive matches of page (text) variables for international wikis. If your international wiki pagelists rely on case-sensitive variable matches, please see $PageListVarFoldFn. The documentation was updated.%0a%0a!! Version 2.2.115 {*$:Released} (2019-05-13) [[#v22115]]%0aIn this version the responsive skin in large "desktop" mode changes the search form background to transparent, for easier custom styling of the header. The documentation was updated.%0a%0a!! Version 2.2.114 {*$:Released} (2019-04-02) [[#v22114]]%0aThis version adds a skin directive @@%3c!--IncludeTemplate ... -->@@ and the variable $SkinTemplateIncludeLevel. The core variable documentation format identifiers were moved to the definition term element to allow CSS ":target" styling, and the header and link text of the vardoc table can now be translated. Input forms have a new HTML5 element "tel", a new attribute "pattern" and two bugs were fixed with the classnames of the new elements and with the identifiers of "select" lists. The documentation was updated.%0a%0a!! Version 2.2.113 {*$:Released} (2019-03-01) [[#v22113]]%0aThis version adds a new [@(:input button:)@] form element. All form elements can now accept custom data-* attributes, which can be disabled by setting $EnableInputDataAttr to 0. Both additions are meant for easier integration with custom JavaScript functions or some frameworks.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.112 {*$:Released} (2019-01-09) [[#v22112]]%0aThis version includes a fix for PHP 7.3, and the documentation was updated.%0a%0a!! Version 2.2.111 {*$:Released} (2018-12-08) [[#v22111]]%0aThis version updates core .htaccess files to be compatible with both Apache 2.4 and earlier versions, and the variable $DenyHtaccessContent was added with the updated content. In case of difficulties or questions please contact us.%0a%0aA CSS value in the pmwiki-responsive skin was fixed. The [[MarkupExpression(s)]] [@{(ftime )}@] now accepts @@tz=@@ (time zone) and @@locale=@@ (language locale) arguments. The documentation was updated.%0a%0a!! Version 2.2.110 {*$:Released} (2018-11-05) [[#v22110]]%0aThis version prevents a warning with the [@{(substr )}@] markup expression when non-number arguments are typed. A new variable $PageListSortCmpFunction allows custom functions to order page lists. A new variable $MarkupMarkupLevel indicates when the processing happens inside [@(:markup:)@] blocks. %0a%0aThe default style for @@[=[@escaped code@]=]@@ dropped white spaces inconsistently and was fixed. If you rely on the previous behavior please add this to your pub/css/local.css file to revert it:%0a%0a code.escaped { white-space: nowrap; }%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.109 {*$:Released} (2018-07-09) [[#v22109]]%0aThis version fixes a bug with the Path: InterMap prefix which was broken in 2.2.108. The function pmcrypt() was updated to prevent more strings from causing "invalid hash" warnings in PHP 7. The variable $EnableMarkupDiag was added to help diagnose all markup calls. The documentation was updated.%0a%0a!! Version 2.2.108 {*$:Released} (2018-07-05) [[#v22108]]%0aThis version adds the $PCCFOverrideFunction variable allowing a custom function to override PCCF(). $AuthUserPageFmt can now be an array of page names. The page cache file name can now be customized. Form checkbox labels now have the same tooltip title as the checkbox. Ordered lists with the [@%25reversed%25@] WikiStyle will have descending numbers. Minor fixes to refcount.php, vardoc.php, and pmcrypt(). The default InterMap PmWiki URLs have now the HTTPS protocol. The documentation was updated.%0a%0a!! Version 2.2.107 {*$:Released} (2018-02-02) [[#v22107]]%0aThis version includes more fixes for PHP 7.2 for forms and pagelists. A new variable $MailFunction 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.%0a%0a!! Version 2.2.106 {*$:Released} (2017-12-01) [[#v22106]]%0aThis version has a rewrite of the function PageListSort() to allow it to work with PHP 7.2, and fixes a bug with the backtick (escape) [@`WikiWord@] markup. The helper function pmsetcookie() and the variables $EnableCookieSecure, $EnableCookieHTTPOnly were added to allow easy setting of secure cookies. The documentation was updated.%0a%0a!! Version 2.2.105 {*$:Released} (2017-11-07) [[#v22105]]%0aThis version fixes a bug with the PQA() function causing invalid HTML with attributes glued together. The function @@HandleUpload()@@ was refactored and @@UploadSetVars($pagename)@@ was added to allow upload-managing add-ons to set variables more easily.%0a%0aIf you upgrade from 2.2.98 or earlier, and you have custom markup rules relative to author signatures, please see note about [[#v2299|change in 2.2.99]] (documented November 2017).%0a%0a!! Version 2.2.104 {*$:Released} (2017-10-11) [[#v22104]]%0aThis version fixes a bug with [[WikiTrails#pathtrail|path WikiTrails]] reported today.%0a%0a!! Version 2.2.103 {*$:Released} (2017-10-01) [[#v22103]]%0aThis 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.%0a%0aPagelists can now have optimized @@list=grouphomes@@ and @@fmt=#grouphomes@@ arguments to list only the home pages of your wiki groups, whether they are named Group.HomePage, Group.Group, or a custom Group.$DefaultName. Minor bugs in older xlpage scripts were fixed, the responsive skin is now compatible with even older PmWiki/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 $AuthLDAPReferrals was added for wikis running AuthUser over LDAP to force enable or disable referrals when needed.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.102 {*$:Released} (2017-08-05) [[#v22102]]%0aThis 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 [[SiteAdmin.AuthList]] an input box was added to allow filtering of the groups or pages.%0a%0a!! Version 2.2.101 {*$:Released} (2017-07-30) [[#v22101]]%0aThis version renames the internal constructor of the PageStore class to be compatible with both PHP 5 and PHP 7. Previously, the PageStore 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.%0a%0aIf you must use PmWiki 2.2.101 or newer on a PHP 4 installation, please contact me so I can provide you with a workaround.%0a%0a!! Version 2.2.100 {*$:Released} (2017-07-30) [[#v22100]]%0aThis version provides a workaround for an incompatibility with our Subversion version control system, where the $Author wiki variable was considered a Subversion variable. A fix for the responsive skin adds some spacing above the WikiText block. The documentation was updated.%0a%0a!! Version 2.2.99 {*$:Released} (2017-06-26) [[#v2299]]%0aThis version fixes a bug where an incomplete text variable without a closing parenthesis like "[@(:Var:Value@]" could hide the remaining of the page.%0a%0aA bug was fixed where previewing a page didn't show changes to be done by replace-on-save patterns (the function ReplaceOnSave was refactored). Markup rules for previewing author signatures are no longer needed and were removed. %25note%25 Note that if you had custom markup rules processed before or after the @@[=~~=][=~=]@@ or @@[=~~=][=~~=]@@ author signatures may need to be set to [@'%3c[[~'@] (second argument of the @@Markup@@ call).%0a%0aA bug and a warning for PHP 4 installations were fixed. Two minor bugs with the [@[[%3c%3c]]@] line break for the responsive skin and the $Version variable link in the documentation were fixed. %0a%0aThe InterMap prefix to Wikipedia was corrected to use the secure HTTPS protocol and the documentation was updated.%0a%0a!! Version 2.2.98 (2017-05-31) [[#v2298]]%0aThis 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.%0a%0aThe Vardoc links now use MakeLink() to allow a custom LinkPage function. The function ReplaceOnSave() was refactored to allow easier calling from recipes. Markup processing functions now can access besides $pagename, 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.%0a%0aA bug was fixed with the [@(:markup:)@] output where a leading space was lost. Note that the "markup" frame is now wrapped in a %3cpre> block with a "pre-wrap" style instead of %3ccode>.%0a%0aA number of other (minor) bugs were fixed: see ChangeLog, and the documentation was updated.%0a%0a!! Version 2.2.97 (2017-04-07) [[#v2297]]%0aThis version fixes a bug concerning $ScriptUrl when $EnablePathInfo is set, introduced in 2.2.96 and reported by 3 users.%0a%0a!! Version 2.2.96 (2017-04-05) [[#v2296]]%0aThis version fixes a severe PHP code injection vulnerability, reported by Gabriel Margiani. PmWiki versions 2.2.56 to 2.2.95 are concerned.%0a%0aOnly 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 CondAuth(), RetrievePageName() or FmtPageName(), before the $pagename variable is sanitized by ResolvePageName() in stdconfig.php. A specific URL launched by a malicious visitor may trigger the vulnerability.%0a%0aMost recipes call core functions from a $HandleActions function, or from a Markup expression rule, these do not appear to be affected by the current exploit.%0a%0aIf 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:%0a%0a [@$pagename = preg_replace('![${}\'"\\\\]+!', '', $pagename);@]%0a%0aPlace this line near the top of the file but after you include scripts/xlpage-utf-8.php or other character encoding file.%0a%0aThis version filters the $pagename variable to exclude certain characters. A new variable $pagename_unfiltered is added in case a recipe requires the previous behavior. The documentation was updated.%0a%0a!! Version 2.2.95 (2017-02-28) [[#v2295]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.94 (2017-01-31) [[#v2294]]%0aThis 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.%0a%0a!! Version 2.2.93 (2016-12-31) [[#v2293]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.92 (2016-11-30) [[#v2292]]%0aThis version allows administrators to disable the "nopass" password by setting $AllowPassword to false. The function FmtPageName() will now expand PageVariables with asterisks like [@{*$FullName}@]. The documentation was updated.%0a%0a!! Version 2.2.91 (2016-09-30) [[#v2291]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.90 (2016-08-31) [[#v2290]]%0aThis 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: @@imgonly@@ and @@imgcaption@@, for standalone embedded pictures with or without a caption. A bug with the plus-links was fixed. The documentation was updated.%0a%0a!! Version 2.2.89 (2016-07-30) [[#v2289]]%0aThis version allows to set a default class name for simple tables. The [@(:searchbox:)@] directive can now have a "placeholder" attribute, and the input type can be changed from "text" to "search" for HTML5 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 $pagename, $Author and $Skin. The documentation was updated.%0a%0a!! Version 2.2.88 (2016-06-29) [[#v2288]]%0aThis version fixes invalid HTML output of some WikiTrail links. The function PHSC() can now have an optional fourth argument for a safe replacement of htmlspecialchars(). A new page variable [@{$SiteAdminGroup}@] was added and the documentation was updated. %0a%0a!! Version 2.2.87 (2016-05-31) [[#v2287]]%0aThis version adds the $HTMLTagAttr variable to be used in the %3chtml> tag in skins for additional attributes like "lang" or "manifest". To enable it, use it in your skin, for example:%0a%0a %3chtml xmlns="http://www.w3.org/1999/xhtml" $HTMLTagAttr>%0a%0aThe variable $EnableRevUserAgent, 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 $DiffUserAgent can be used in history templates like $DiffStartFmt.%0a%0aA wrong page variable in [[Site.UploadQuickReference]] was corrected, and the documentation was updated.%0a%0a!! Version 2.2.86 (2016-04-28) [[#v2286]]%0aThis version adds updates for PHP 7, for the PageStore() class and for the $DefaultPasswords default/unset definitions (no action should be needed upon upgrades). The documentation was updated.%0a%0a!! Version 2.2.85 (2016-03-31) [[#v2285]]%0aThis version adds Scalable Vector Graphics (*.svg, *.svgz) as allowed uploads and as embeddable picture extensions (with the html tag %3cimg/>). The documentation was updated.%0a%0a!! Version 2.2.84 (2016-02-21) [[#v2284]]%0aThis version fixes "indent" and "outdent" styles for right-to-left languages. A new variable $EnableLinkPlusTitlespaced allows "plus links" [@[[Link|+]]@] to display the "Spaced Title" of the page instead the "Title". The documentation was updated.%0a%0a!! Version 2.2.83 (2015-12-31) [[#v2283]]%0aThis is a documentation update version.%0a%0a!! Version 2.2.82 (2015-11-30) [[#v2282]]%0aThis version enables stripmagic() to process arrays recursively and updates the documentation.%0a%0a!! Version 2.2.81 (2015-10-31) [[#v2281]]%0aThis 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.%0a%0a!! Version 2.2.80 (2015-09-30) [[#v2280]]%0aThis version modifies the [@(:searchbox:)@] directive to use type="search" semantic input, and updates the documentation.%0a%0a!! Version 2.2.79 (2015-08-27) [[#v2279]]%0aThis version adds WikiStyles 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. %0a%0aNote: the "target" attribute of input forms which was added in the previous version broke the PmForm processor, and was removed until we find a solution. If you don't use PmForm and require this attribute (or others), the usual way to add it is to redefine the $InputAttrs array in your local configuration.%0a%0aA new variable $EnableROSEscape can be set to 1 if $ROSPatterns and $ROEPatterns should not process source text wrapped with [@[=...=]@] or @@[=[@...@]=]@@. By default "replace on edit" patterns are performed even in such text.%0a%0aThe insMarkup() function in guiedit.js was refactored to allow custom input ids and/or custom functions to process the selected text.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.78 (2015-07-21) [[#v2278]]%0aThis version updates the $RobotPattern list with currently active user agents. {-Input forms can have a "target" attribute-} (removed in 2.2.79). The documentation was updated.%0a%0aNote, this release broke the Cookbook:PmForm module. Please do upgrade to 2.2.79 or newer if your wiki uses PmForm.%0a%0a!! Version 2.2.77 (2015-06-19) [[#v2277]]%0aThis version extends the [@(:if attachments:)@] conditional to specify file and page names. A [@{$WikiTitle}@] page variable was added. A MatchNames() function was introduced as a generic way to match array values the same way MatchPageNames() does currently with lists of pages -- recipe authors can use it to get a subset of attachments for example. The PageStore() class was slightly optimized when recoding pages from-to UTF-8. The documentation was updated.%0a%0a!! Version 2.2.76 (2015-05-31) [[#v2276]]%0aThis 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.%0a%0a!! Version 2.2.75 (2015-04-26) [[#v2275]]%0aThis 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 $DefaultPasswords entries.%0a%0aMarkup was added for the semantic HTML5 tags article, section, nav, header, footer, aside, address.%0a%0aA bug with the uploads feature was fixed when $EnableReadOnly is set, and the documentation was updated.%0a%0a!! Version 2.2.74 (2015-03-28) [[#v2274]]%0aThis version allows the translation of the word "OK" in authentication forms. The documentation was updated to the latest state on pmwiki.org.%0a%0a!! Version 2.2.73 (2015-02-28) [[#v2273]]%0aThis release only updates the documentation to the latest state on pmwiki.org.%0a%0a!! Version 2.2.72 (2015-01-27) [[#v2272]]%0aThis 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 $AbortFunction was added allowing administrators to override the core Abort() function. The documentation was updated.%0a%0a!! Version 2.2.71 (2014-12-29) [[#v2271]]%0aThis version removes the hard word wrap in [@(:markup:)@] wikicode examples, and instead of %3cpre> tags, it wraps it in %3ccode> 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).%0a%0aThe 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 @@$EnableDiag = 1;@@ then open a page with the 'ruleset' action, eg. [@[[HomePage?action=ruleset]]@]. The PHP-5.5-incompatible rules will be flagged with filenames, line numbers and patterns. See also the pages [[(PmWiki:)Troubleshooting]] and [[(PmWiki:)CustomMarkup]] on pmwiki.org.%0a%0aThe variable $DraftActionsPattern 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. %0a%0a!! Version 2.2.70 (2014-11-08) [[#v2270]]%0aThis release only updates the documentation to the latest state on pmwiki.org.%0a%0a!! Version 2.2.69 (2014-10-13) [[#v2269]]%0aThis 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 Site.UploadQuickReference were updated to reflect the display of the upload form in current browsers.%0a%0a!! Version 2.2.68 (2014-09-01) [[#v2268]]%0aThis version adds a Skins: InterMap prefix pointing to the Skins section on PmWiki.org, a "signature" markup in the edit quick reference, new WikiStyles clear, min-width and max-width and the documentation was updated.%0a%0a!! Version 2.2.67 (2014-08-02) [[#v2267]]%0aThis version fixes an inconsistency with input forms when values are taken from PageTextVariables. The documentation was updated to the latest state on pmwiki.org.%0a%0a!! Version 2.2.66 (2014-07-02) [[#v2266]]%0aThis 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.%0a%0a!! Version 2.2.65 (2014-06-07) [[#rel2.2.65]]%0aThis version fixes Pagelist handling of [@{$$PseudoVars}@] when they contain page variables. File permissions handling was improved when the current directory is owned by "root". The documentation was updated.%0a%0a!! Version 2.2.64 (2014-05-08) [[#rel2.2.64]]%0aThis 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. %0a%0aThe $SysMergePassthru switch was added, if enabled, it allows the "Simultaneous Edits" conflict resolution to use the passthru() function instead of popen().%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.63 (2014-04-05) [[#rel2.2.63]]%0aThis 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 HTML5 forms. A minor bug with pagelist [={$$RequestVariables}=] appearing on some installations was fixed. The documentation was updated.%0a%0a!! Version 2.2.62 (2014-02-28) [[#rel2.2.62]]%0aThis version adds the variable $EnableTableAutoValignTop which allows to make advanced tables compatible with HTML5. For developers, a fourth argument $template was added to the Markup_e() function, and a callback template 'return' was added. The documentation was updated.%0a%0a!! Version 2.2.61 (2014-01-31) [[#rel2.2.61]]%0aThis version removes unnecessary snippets of code and adds the variable $TableCellAlignFmt which allows to make simple tables compatible with HTML5. The documentation was updated.%0a%0a!! Version 2.2.60 (2014-01-12) [[#rel2.2.60]]%0aThis version reverts the changes to the pmwiki.css file made in 2.2.59. %0a%0a!! Version 2.2.59 (2014-01-11) [[#rel2.2.59]]%0aThis 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.%0a%0a!! Version 2.2.58 (2013-12-25) [[#rel2.2.58]]%0aThis version enables customization of [=(:input auth_form:)=], and fixes a couple of minor bugs. The documentation was updated.%0a%0a!! Version 2.2.57 (2013-11-03)%0aThis version enables the use of the Attach: link format in the [[PmWiki/PageDirectives#attachlist|[=(:attachlist:)=]]] directive. The documentation was updated.%0a%0a!! Version 2.2.56 (2013-09-30)%0aThis version aims to fix a PHP 5.5 compatibility issue with a deprecated feature of the preg_replace() function. The PageStore() class now detects and works around a bug with the iconv() function, and the documentation was updated.%0a%0a!! Version 2.2.55 (2013-09-16)%0aThis version adds the variable $EnableDraftAtomicDiff. 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.%0a%0a!! Version 2.2.54 (2013-08-13)%0aThis version fixes a bug when old versions are restored from draft pages. The documentation was updated.%0a%0a!! Version 2.2.53 (2013-07-08)%0aThis version enables a message to be shown when a post is blocked because of too many unapproved links. The documentation was updated.%0a%0a!! Version 2.2.52 (2013-06-08)%0aThis 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.%0a%0a!! Version 2.2.51 (2013-05-08)%0aThis 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.%0a%0a!! Version 2.2.50 (2013-04-08)%0aThis release only updates the documentation to the latest state on pmwiki.org.%0a%0a!! Version 2.2.49 (2013-03-09)%0aThis version adds an array $UploadBlacklist 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 PmWiki interface, add to config.php such a line:%0a%0a $UploadBlacklist = array('.php', '.pl', '.cgi', '.py', '.shtm', '.phtm', '.pcgi', '.asp', '.jsp', '.sh');%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.48 (2013-02-11)%0aThis version fixes a bug introduced yesterday with some links. %0a%0a!! Version 2.2.47 (2013-02-10)%0aThis version enables tooltip titles in links to anchors in the same page, and the documentation was updated.%0a%0a!! Version 2.2.46 (2013-01-07)%0aThis version adds $UploadPermAdd and $UploadPermSet variables, and the documentation was updated.%0a%0aIf your wiki has uploads enabled, it is recommended to set the variable $UploadPermAdd to 0. %0a%0aThe $UploadPermAdd 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). %0a $UploadPermAdd = 0; # recommended%0a%0aThe $UploadPermSet variable unconditionally sets the file permissions on newly uploaded files. Only advanced administrators should use it.%0a%0a%0a!! Version 2.2.45 (2012-12-02)%0aThis version fixes some PHP notices appearing on some installations. The documentation was updated.%0a%0a!! Version 2.2.44 (2012-10-21)%0aThis version improves the display of consecutive whitespaces in page histories, and fixes the definition of PageTextVariables containing a dash. The documentation was updated.%0a%0a%0a!! Version 2.2.43 (2012-09-20)%0aThis version makes it possible to use HTML attribute names that contain dashes, and removes a warning when editing and previewing Site.EditForm. The documentation was updated.%0a%0a!! Version 2.2.42 (2012-08-20)%0aThis version provides a workaround for cases when a wiki page contains a character nonexistent in the active encoding. The documentation was updated.%0a%0a!! Version 2.2.41 (2012-08-12)%0aThis version changes the internal $KeepToken separator to be compatible with more encodings. The documentation was updated.%0a%0a!! Version 2.2.40 (2012-07-21)%0aThis version provides a helper function replacing htmlspecialchars() and compatible with PHP 5.4. The documentation was updated.%0a%0a!! Version 2.2.39 (2012-06-25)%0aThis version provides a fix for links to attachments containing international characters. The documentation was updated.%0a%0a!! Version 2.2.38 (2012-05-21)%0aThis version fixes a "parameter count" warning which appeared on some websites.%0a%0a!! Version 2.2.37 (2012-05-01)%0aThis 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 [[#anchor_1.2]] sections are now better supported, PageVariables are expanded in PageList template defaults, and the documentation is updated.%0a%0a!! Version 2.2.36 (2011-12-28)%0aThis version fixes the recode function to try to recover Windows-1252 characters in ISO-8859-1 files. A new variable $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.%0a%0a!! [[#v2235]] Version 2.2.35 (2011-11-11)%0aThis release fixes a critical PHP injection vulnerability, reported today by Egidio Romano. PmWiki 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 PmWiki versions since yours.%0a%0aIf 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:%0a if ($action == 'search') $action = 'browse';%0a%0aIf your old version wiki allows editing by not entirely trusted visitors, even on limited pages like a WikiSandbox, you should also disable PageLists. Add to config.php this line:%0a $EnablePageList = 0;%0a%0aThis version has an important change for international wikis: the XLPage() 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 XLPage():%0a%0a include_once("scripts/xlpage-utf-8.php"); # if your wiki uses UTF-8%0a XLPage('bg','PmWikiBg.XLPage');%0a%0aAll 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:%0a[@%0a [[Main.HomePage"This is a tooltip title"]]%0a [[Main.HomePage"This is a tooltip title"|Home]]%0a [[http://www.pmwiki.org"Home of PmWiki"]]%0a Attach:image.jpg"Tooltip title of the image"%0a@]%0a%0aThe following new upload extensions were added: svg, xcf, ogg, flac, ogv, mp4, webm, odg, epub. A couple of minor optimizations were added (MarkupExpressions and rendering of page history) and the documentation was updated.%0a%0a!! Version 2.2.34 (2011-10-10)%0aThis version resets the timestamps of the default pages Site(Admin).AuthUser which are expected in case of upgrades from the versions 2.1.*. Core MarkupExpressions which manipulate strings should now work better with international characters. The documentation was updated to its latest state from pmwiki.org.%0a%0a!! Version 2.2.33 (2011-09-23) [[#v2233]]%0aThis version fixes a security bug introduced in 2.2.32 which left the groups Site and SiteAdmin open for reading and editing because the pages Site.GroupAttributes and SiteAdmin.GroupAttributes didn't have all necessary attributes. %0a%0aAll wikis running 2.2.32 should upgrade. If you cannot immediately upgrade, you can set the attributes from your wiki:%0a* open the attributes page [=[[SiteAdmin.GroupAttributes?action=attr]]=] and set a "read" and an "edit" password, @@ @lock @@ is recommended.%0a* open the attributes page [=[[Site.GroupAttributes?action=attr]]=] and set an "edit" password, @@ @lock @@ is recommended. Do not set a "read" password here.%0a%0aThe 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.%0a%0a!! Version 2.2.32 (2011-09-18)%0aThis is the first version shipping with the core documentation in the UTF-8 encoding. PmWiki will automatically convert it on the fly for wikis using an older encoding.%0a%0aIt is recommended that all '''new''' PmWiki installations enable UTF-8. Migration of ''existing'' wikis from an older encoding to UTF-8 shouldn't be rushed: it is not trivial and will be documented in the future.%0a%0aA required HTML xmlns attribute was added to the print skin template. The history rendering is now faster when many lines are added or removed.%0a%0a%25note%25 Note: Due to a manipulation error, a version 2.2.31 was created before it was ready for a release.%0a%0a!! Version 2.2.30 (2011-08-13)%0aThis version fixes a $Charset definition in international iso-8859-*.php files. This will help for a future transition to UTF-8. %0a%0aA variable $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.%0a%0a!! Version 2.2.29 (2011-07-24)%0aThis release fixes Attach links that were broken with the Path fix in 2.2.28 earlier today.%0a%0a!! Version 2.2.28 (2011-07-24)%0aThis release fixes 2 potential XSS vulnerabilities and a bug with Path: links.%0a%0a!! Version 2.2.27 (2011-06-19)%0aThis release fixes a validation bug on pages after a redirection. A new block WikiStyle [@%25justify%25@] was added, allowing left and right aligned text. The page history now accepts a URL parameter @@?nodiff=1@@ 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.%0a%0a!! Version 2.2.26 (2011-05-21)%0aThis release fixes a redundant removal of link hashes from WikiTrails, and updates the documentation to the most recent version from PmWiki.org.%0a%0a!! Version 2.2.25 (2011-03-22)%0aThis release only updates the documentation to the latest state on pmwiki.org.%0a%0a!! Version 2.2.24 (2011-02-15)%0aThis version reverts the way existing PageVariables are processed, like version 2.2.21 or earlier, but it adds a special variable $authpage which can be used in PageVar 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:%0a%0a $FmtPV['$LastModifiedSummary'] = '@$authpage["csum"]'; # instead of '@$page["csum"]'%0a%0aThen, the edit summary metadata will only be available if the user has read permissions.%0a%0a!! Version 2.2.23 (2011-01-25)%0aThis version sets the default value of $EnablePageVarAuth to 0 until we investigate a reported problem with authentication.%0a%0a!! Version 2.2.22 (2011-01-16)%0aThis version adds the variable $EnableXLPageScriptLoad which, if set to 0, will prevent authors to load scripts from XLPage 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.%0a%0aPageVariables should now respect authentications: without read permissions, the title, description, change summary, author of a protected page are unavailable. PageVariables that are computed without reading the page are still available (eg. $Group, $Namespaced, $Version etc.). Administrators can revert the previous behavior by adding to config.php such a line:%0a%0a@@ $EnablePageVarAuth = 0; @@%0a%0a!! Version 2.2.21 (2010-12-14)%0aDue 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.%0a%0a!! Version 2.2.20 (2010-12-14)%0aThis version fixes a potential XSS vulnerability, reported today. An AuthUser bug with excluding users from authgroups was fixed. A new InterMap prefix PmL10n: was added, it leads to the Localization section on PmWiki.org and should help the work of translators. A couple of other minor bugs were fixed and the documentation was updated.%0a%0a!! Version 2.2.19 (2010-11-10)%0aThis is a documentation-update release.%0a%0a!! Version 2.2.18 (2010-09-04)%0aThis version fixes 3 minor bugs, and updates the documentation.%0a%0a!! Version 2.2.17 (2010-06-20)%0aThis version adds a variable $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. AuthUser now allows more flexible cookbook recipe integration. A couple of bugs were fixed and the documentation was updated.%0a%0a!! Version 2.2.16 (2010-05-10)%0aThis version fixes a bug with parsing html attributes which could allow XSS injection. Wikis allowing unprotected editing are encouraged to upgrade.%0a%0aA bug with the "center" button of the GUI edit toolbar was corrected.%0a%0aThe "exists" conditional now accepts wildcards, for example:%0a [@(:if exists Main.*:)There are pages in the Main group (:if:)@]%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.15 (2010-03-27)%0aThis version adds some minor bugfixes and optimizations notably a bug with @@[=(:template none:)=]@@ introduced in the last version 2.2.14.%0a%0a!! Version 2.2.14 (2010-02-27)%0aThis release corrects inline styles for WikiTrail links. Undefined include/template @@ [={$$variables}=] @@ 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:%0a%0a[@%0a $EnableUndefinedTemplateVars = 1; # keep and display unset {$$variables}%0a@]%0a%0aPageList templates now accept the sections @@ !first @@ and @@ !last @@ for markup to appear for every page in list ''except'' the first or last one.%0a%0a"Title" attributes were added to external links. You can have tooltip titles on external links, including InterMap and attachments, by adding the link title in double quotes after the URL:%0a [=[[http://www.pmwiki.org"Home of PmWiki"| External link]]=]%0a%0aFor international wikis, PmWiki now automatically translates the titles of technical pages like GroupAttributes or RecentChanges -- just define these strings as usual in XLPage, for example, in French:%0a 'AllRecentChanges' => 'Tous les changements récents',%0a%0aSome minor optimizations were done and the documentation was updated.%0a%0a!! Version 2.2.13 (2010-02-21)%0aThis release fixes a bug with $DiffKeepNum introduced in 2.2.10 -- the count of revisions was incorrect and a page could drop more revisions than it should.%0a%0aThe [[page history]] 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:%0a%0a $DiffShow['source'] = (@$_REQUEST['source']=='y')?'y':'n';%0a%0aTo disable word-level highlighting and show plain text changes:%0a%0a $EnableDiffInline = 0;%0a%0aIn the page history rendering, a few minor bugs were fixed and the code was slightly optimized.%0a%0aThe documentation was updated.%0a%0a!! Version 2.2.12 (2010-02-17)%0aThis 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:%0a $EnableDiffInline = 1;%0a%0aThis feature is like what the InlineDiff recipe provides, but not exactly the same, and the implementation is simpler. It is enabled on PmWiki.org and can be improved -- your comments are welcome.%0a%0a!! Version 2.2.11 (2010-02-14)%0aThis release adds two new table directives for header cells, [=(:head:) and (:headnr:)=]. They work the same way as [=(:cell:) and (:cellnr:)=] except that create %3cth> instead of %3ctd> html tags.%0a%0aThe pagerev.php script was refactored into separate functions to allow easier integration of recipes displaying the page history.%0a%0aA couple of minor bugs were fixed and the documentation was updated.%0a%0a!! Version 2.2.9, 2.2.10 (2010-01-17)%0aMost important in this release is the official change of $EnableRelativePageVars to 1. The change is about how [={$Variable}=] in included pages is understood by PmWiki.%0a* When $EnableRelativePageVars 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.%0a* When $EnableRelativePageVars 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.%0a* [={*$Name}=] always displays the name of the currently browsed page, regardless of $EnableRelativePageVars.%0a%0aSo, if your wiki relies on page variables from included pages, and doesn't have $EnableRelativePageVars set to 1, after upgrading to 2.2.9, you can revert to the previous behavior by adding to config.php such a line:%0a $EnableRelativePageVars = 0;%0a%0aMore information about page variables can be found at:%0a http://www.pmwiki.org/wiki/PmWiki/PageVariables%0a%0aThis release adds a new variable $EnablePageTitlePriority 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. PmWiki default is 0, for years, the last title directive was used (it could come from an included page or GroupFooter).%0a%0aThis release also adds a new variable $DiffKeepNum, specifying the minimum number (default 20) of edits that will be kept even if some of them are older than the limit of $DiffKeepDays.%0a%0aA number of bugs were fixed and the documentation was updated.%0a%0a!! Version 2.2.8 (2009-12-07)%0aThis release fixes another PHP 5.3 compatibility issue with conditional markup. The Author field now handles apostrophes correctly. The documentation was updated.%0a%0a!! Version 2.2.7 (2009-11-08)%0aThis release fixes most PHP 5.3 compatibility issues. Unfortunately some specific builds for Windows may still have problems, which are unrelated to PmWiki. Notably, on Windows, all passwords need to be 4 characters or longer.%0a%0aUpload names with spaces are now correctly quoted. The documentation was updated.%0a%0a!! Version 2.2.6 (2009-10-04)%0aWith this release it is now possible to display recently uploaded files to the RecentChanges pages -- if you have been using the RecentUploadsLog recipe, please uninstall it and follow the instructions at http://www.pmwiki.org/wiki/Cookbook/RecentUploadsLog.%0a%0aThe release also introduces $MakeUploadNamePatterns to allow custom filename normalization for attachements. It is now possible to replace $PageListFilters and $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.%0a%0a!! Version 2.2.5 (2009-08-25)%0aThis release adds a new markup for Pagelist templates, [@(:template none:)@] which allows a message to be set when the search found no pages. The FPLTemplate() function was broken into configurable sub-parts to allow development hooks. A number of bugs were fixed, and the documentation was updated.%0a%0a!! Version 2.2.4 (2009-07-16)%0aThis release fixes a bug introduced earlier today with HTML entities in XLPages.%0a%0a!! Version 2.2.3 (2009-07-16)%0aThis 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 JavaScripts in their pages. Public open wikis should upgrade.%0a%0aA new variable $EnableUploadGroupAuth was added; if set to 1, it allows password-protected [[uploads]] to be checked against the Group password. %0a%0aIt is now possible to use @@ @_site_edit, @_site_read, @_site_admin@@ or @@ @_site_upload @@ global [[passwords]] in GroupAttributes pages.%0a%0aA number of other small bugs were fixed, and the documentation was updated.%0a%0a!! Version 2.2.2 (2009-06-21)%0aThe major news in this release is a fix of an AuthUser vulnerability.%0a%0aThe vulnerability affects only wikis that (1) rely on the AuthUser core module %0afor User:Password authentication, -AND- (2) where the PHP installation runs %0awith the variable "magic_quotes_gpc" disabled.%0a%0aAll PmWiki 2.1.x versions from pmwiki-2.1.beta6 on, all 2.2.betaX, 2.2.0, and %0a2.2.1 are affected.%0a%0aThe PmWiki [[SiteAnalyzer]] can detect if your wiki needs to upgrade:%0a http://www.pmwiki.org/wiki/PmWiki/SiteAnalyzer%0a%0aIf your wiki is vulnerable, you should do one of the following at the earliest %0aopportunity:%0a%0a* Upgrade to a version of PmWiki at least 2.2.2 or greater.%0a* Turn on magic_quotes_gpc in the php.ini file or in a .htaccess file.%0a%0aAlternatively, you can temporarily disable AuthUser until you upgrade.%0a%0aNote that even if your wiki does not have the AuthUser vulnerability at the %0amoment, you are strongly encouraged to upgrade to PmWiki version 2.2.2 or %0alater, as some future configuration of your hosting server might put you at %0arisk.%0a%0aThis release also comes with minor updates in the local documentation; fixes %0awere applied for international wikis - notably global variables in %0axlpage-utf-8.php and a new variable $EnableNotifySubjectEncode, which allows %0ae-mail clients to correctly display the Subject header; and a number of other %0asmall bugs were fixed.%0a%0a!! Version 2.2.1 (2009-03-28)%0aThis release comes with an updated local documentation; [[wiki trails]] now work cross-group; guiedit.php now produces valid HTML, and other small bugs were fixed. We also added $EnableRedirectQuiet, which allows redirects to take place without any mention of "redirected from page ....".%0a%0a[[#v220]]%0a!! Version 2.2.0 (2009-01-18)%0a%0aThis is a summary of changes from 2.1.x to 2.2.0.%0a%0a* Several pages that were formerly in the [[Site]].* group are now in a separate [[SiteAdmin]].* group, which is read-restricted by default. The affected pages include Site.AuthUser, Site.AuthList, Site.NotifyList, Site.Blocklist, and Site.ApprovedUrls . If upgrading from an earlier version of PmWiki, PmWiki 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%0a%0a-> $SiteAdminGroup = $SiteGroup;%0a%0a-> when carrying out this upgrade inspect your config files for lines such as%0a--> $BlocklistDownload['Site.Blocklist-PmWiki'] = array('format' => 'pmwiki');%0a->as you may wish to fix then, eg%0a--> $BlocklistDownload[$SiteAdminGroup . '.Blocklist-PmWiki'] = array('format' => 'pmwiki');%0a%0a* Important Change in Passwords in PmWiki 2.2 indicating that the group can be edited even if a site password is set will be done by @@"@nopass"@@ prior it was done by @@"nopass"@@%0a-> When migrating a wiki you will have to manually modify the permission or by a script replace in all the page concerned @@passwdread=nopass:@@ by @@passwdread=@nopass@@ (see PITS:00961) --isidor%0a%0a* PmWiki now ships with WikiWords entirely disabled by default. To re-enable them, set either $LinkWikiWords or $EnableWikiWords to 1. To get the 2.1 behavior where WikiWords are spaced and parsed but don't form links, use the following:%0a-> $EnableWikiWords = 1;%0a-> $LinkWikiWords = 0;%0a%0a* It's now easy to disable the rule that causes lines with leading spaces to be treated as preformatted text -- simply set $EnableWSPre=0; to disable this rule.%0a%0a--> '''Important:''' There is ongoing discussion that the leading whitespace rule may be disabled ''by default'' in a future versions of PmWiki. If you want to make sure that the rule will continue to work in future upgrades, set $EnableWSPre=1; in ''local/config.php''.%0a%0a* The $ROSPatterns variable has changed somewhat -- replacement strings are no longer automatically passed through FmtPageName() prior to substitution (i.e., it must now be done explicitly).%0a%0a* Page variables and page links inside of [@(:include:)@] 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:%0a%0a[[#relativeurls]]%0a** We now have a new [@{*$var}@] form of page variable, which always refers to "the currently displayed page". Pages such as Site.PageActions and Site.EditForm that are designed to work on "the currently browsed page" should generally switch to using [@{*$FullName}@] instead of [@{$FullName}@].%0a%0a** The $EnableRelativePageLinks and $EnableRelativePageVars settings control the treatment of links and page variables in included pages. However, to minimize disruption to existing sites, $EnableRelativePageVars defaults to '''disabled'''. This will give existing sites an opportunity to convert any absolute [@{$var}@] references to be [@{*$var}@] instead.%0a%0a** Eventually $EnableRelativePageVars will be enabled by default, so we highly recommend setting [@$EnableRelativePageVars = 1;@] in ''local/config.php'' to see how a site will react to the new interpretation. Administrators should especially check any customized versions of the following:%0a---> [[Site.PageActions]]%0a---> [[Site.EditForm]]%0a---> [[Site.PageNotFound]]%0a---> SideBar pages with ?action= links for the current page%0a---> $GroupHeaderFmt, $GroupFooterFmt%0a---> [[Page lists]] that refer to the current group or page, etc in sidebars, headers, and footers%0a%0a** The [@(:include:)@] directive now has a [@basepage=@] 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.%0a%0a* Sites that want to retain the pre-2.2 behavior of [@(:include:)@] and other items can set [@$Transition['version'] = 2001900;@] to automatically retain the 2.1.x defaults.%0a%0a* Text inserted via [@(:include:)@] can contain "immediate substitutions" of the form [@{$$option}@] -- these are substituted with the value of any options provided to the include directive.%0a%0a* PmWiki now recognizes when it is being accessed via "https:" and switches its internal links appropriately. This can be overridden by explicitly setting $ScriptUrl and $PubDirUrl.%0a%0a* A new $EnableLinkPageRelative option allows PmWiki to generate relative urls for page links instead of absolute urls.%0a%0a* Draft handling capabilities have been greatly improved. When $EnableDrafts is set, then the "Save" button is relabeled to "Publish" and a "Save draft" button appears. In addition, an $EnablePublishAttr configuration variable adds a new "publish" authorization level to distinguish editing from publishing. See [[PmWiki:Drafts]] for more details.%0a%0a[[#ptvstart]]%0a* There is a new [@{$:var}@] "page text variable" available that is able to grab text excerpts out of markup content. For example, [@{SomePage$:Xyz}@] will be replaced by a definition of "Xyz" in SomePage. 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):%0a%0a-->[@%0a:Xyz: some value # definition list form%0aXyz: some value # colon form%0a(:Xyz: some value:) # directive form%0a@]%0a[[#ptvend]]%0a%0a* The [@(:pagelist:)@] 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":%0a%0a-->[@(:pagelist $:Xyz="some value":)@]%0a%0a Wildcards also work here, thus the following pagelist command lists pages where the page's title starts with the letter "a":%0a%0a-->[@(:pagelist $Title=A* :)@]%0a%0a* The if= option to [@(:pagelist)@] can be used to filter pages based on conditional markup:%0a%0a-->[@(:pagelist if="auth upload {=$FullName}":)@] pages with upload permission%0a-->[@(:pagelist if="date today.. {=$Name}":)@] pages with names that are dates later than today%0a%0a* Spaces no longer separate wildcard patterns -- use commas. (Most people have been doing this already.)%0a%0a* Because page variables are now "relative", the [@{$PageCount}, {$GroupCount}, {$GroupPageCount}@] variables used in pagelist templates are now [@{$$PageCount}, {$$GroupCount}, {$$GroupPageCount}@].%0a%0a* One can now use [@{$$option}@] in a pagelist template to obtain the value of any 'option=' provided to the [@(:pagelist:)@] command.%0a%0a* The [@(:pagelist:)@] 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 [@request=1@] option to the [@(:pagelist:)@] directive.%0a%0a* The [@count=@] option to pagelists now accepts negative values to count from the end of the list. Thus [@count=5@] returns the the first five pages in the list, and [@count=-5@] returns the last five pages in the list. In addition, ranges of pages may be specified, as in [@count=10..19@] or [@count=-10..-5@].%0a%0a* Pagelist templates may have special [@(:template first ...:)@] and [@(:template last ...:)@] sections to specify output for the first or last page in the list or a group. There's also a [@(:template defaults ...:)@] to allow a template to specify default options.%0a%0a* PmWiki comes with an ability to cache the results of certain [@(:pagelist:)@] directives, to speed up processing on subsequent visits to the page. To enable this feature, set $PageListCacheDir to the name of a writable directory (e.g., ''work.d/'').%0a%0a* [[#elseifelse]]The [@(:if ...:)@] conditional markup now also understands [@(:elseif ...:)@] and [@(:else:)@]. In addition, markup can nest conditionals by placing digits after if/elseif/else, as in [@(:if1 ...)@], [@(:elseif1 ...:)@], [@(:else1:)@], etc.%0a%0a* The [@(:if date ...:)@] conditional markup can now perform date comparisons for dates other than the current date and time.%0a%0a* [[WikiTrails]] can now specify #anchor identifiers to use only sections of pages as a trail.%0a%0a* A new [@(:if ontrail ...:)@] condition allows testing if a page is listed on a trail.%0a%0a* The extensions .odt, .ods, and .odp (from OpenOffice.org) are now recognized as valid attachment types by default.%0a%0a* A new [[blocklist]] 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 [[PmWiki.Blocklist]] for details.%0a%0a* There is a new [[SiteAdmin.AuthList]] 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.%0a%0a* There are new [@{$PasswdRead}@], [@{$PasswdEdit}@], etc. variables that display the current password settings for a page (assuming the browser has attr permissions or whatever permissions are set in $PasswdVarAuth).%0a%0a* Forms creation via the [@(:input:)@] markup has been internally refactored somewhat (and may still undergo some changes prior to 2.2.0 release). The new [@(:input select ...:)@] markup can be used to create select boxes, and [@(:input default ...:)@] can be used to set default control values, including for radio buttons and checkboxes.%0a%0a* The [@(:input textarea:)@] markup now can take values from other sources, including page text variables from other pages.%0a%0a* Specifying [@focus=1@] on an [@(:input:)@] 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 [@focus=@] "wins".%0a%0a* PmWiki now provides a ''scripts/creole.php'' module to enable Creole standard markup. To enable this, add [@include_once('scripts/creole.php')@] to a local customization file.%0a%0a* PmWiki adds a new [@{(...)}@] ''markup expression'' 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.%0a%0a* It's now possible to configure PmWiki 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 ''local/config.php'':%0a%0a-->[@$AutoCreate['/^Category\\./'] = array('ctime' => $Now);@]%0a%0a* Sites with wikiwords enabled can now set $WikiWordCount['WikiWord'] to -1 to indicate that 'WikiWord' should not be spaced according to $SpaceWikiWords.%0a%0a* WikiWords that follow # or & are no longer treated as WikiWords.%0a%0a* Links to non-existent group home pages (e.g., [@[[Group.]]@] and [@[[Group/]]@]) will now go to the first valid entry of $PagePathFmt, instead of being hardcoded to "Group.Group". For example, to set PmWiki to default group home pages to [@$DefaultName@], use%0a%0a-->[@$PagePathFmt = array('{$Group}.$1', '$1.{$DefaultName}', '$1.$1');@]%0a%0a* PmWiki now provides a $CurrentTimeISO and $TimeISOFmt variables, for specifying dates in ISO format.%0a%0a* [[(Cookbook:)Cookbook]] authors can use the internal PmWiki function UpdatePage (temporarily documented at [[(Cookbook:)DebuggingForCookbookAuthors]]) to change page text while preserving history/diff information, updating page revision numbers, updating RecentChanges pages, sending email notifications, etc.%0a%0a* [[Skin templates]] are now required to have %3c!--HTMLHeader--> and %3c!--HTMLFooter--> directives. Setting $EnableSkinDiag causes PmWiki to return an error if this isn't the case for a loaded skin. Skins that explicitly do not want HTMLHeader or HTMLFooter sections can use %3c!--NoHTMLHeader--> and %3c!--NoHTMLFooter--> to suppress the warning.%0a%0a* Added a new "pre" wikistyle for preformatted text blocks.%0a%0a* The xlpage-utf-8.php script now understands how to space UTF-8 wikiwords. %0a%0a* Searches on utf-8 site are now case-insensitive for utf-8 characters.%0a%0a* Many Abort() calls now provide a link to pages on pmwiki.org that can explain the problem in more detail and provide troubleshooting assistance.%0a%0a* PmWiki no longer reports "?cannot acquire lockfile" if the visitor is simply browsing pages or performing other read-only actions.%0a%0a* The $EnableReadOnly configuration variable can be set to signal PmWiki 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().%0a%0a* Including authuser.php no longer automatically calls ResolvePageName().%0a%0a* Authentication using Active Directory is now simplified. In Site.AuthUser or the $AuthUser variable, set "ldap://name.of.ad.server/" with no additional path information (see PmWiki.AuthUser for more details).%0a%0a* Pages are now saved with a "charset=" attribute to identify the character set in effect when the page was saved.%0a%0a* The phpdiff.php algorithm has been optimized to be smarter about finding smaller diffs.%0a%0a* Removed the (deprecated) "#wikileft h1" and "#wikileft h5" styles from the pmwiki default skin.%0a%0a* The mailposts.php and compat1x.php scripts have been removed from the distribution.%0a%0a----%0aBugs and other requests can be reported to the PmWiki Issue Tracking %0aSystem at http://www.pmwiki.org/wiki/PITS/PITS. Any help%0ain testing, development, and/or documentation is greatly appreciated..%0a%0a[[(PmWiki:)Release Notes archive]] - notes for versions older than 2.2.0.%0a%0a%0a%0a%0a
+time=1699696221
title=Release Notes
diff --git a/wikilib.d/PmWiki.Tables b/wikilib.d/PmWiki.Tables
index d2b2a2a0..1ce4b467 100644
--- a/wikilib.d/PmWiki.Tables
+++ b/wikilib.d/PmWiki.Tables
@@ -1,10 +1,10 @@
-version=pmwiki-2.3.13 ordered=1 urlencoded=1
+version=pmwiki-2.3.27 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
-csum=Is there a simple way to change the table defaults? I prefer a border and I'm tired of adding it to (+357)
+csum=document "sortable-footer", %25sort-date%25 and others (+1790)
ctime=1141945978
name=PmWiki.Tables
-rev=108
+rev=113
targets=PmWiki.TableDirectives,Cookbook.RowspanInSimpleTables,Cookbook.FormattingTables,PmWiki.LayoutVariables,PmWiki.WikiStyles
-text=(:Audience: authors (basic) :)%0a(:Summary:Simple tables with double pipe markup, one row per line:)%0a%0aPmWiki has two types of table markup; the markup described in this page is useful for creating ''simple'' tables with lots of small cells, while [[table directive markup->table directives]] helps with larger scale or more complex tables. For more possibilities with formatting simple tables, see [[Cookbook:Rowspan in simple tables]] and [[Cookbook:Formatting tables]].%0a%0a!! Table basics%0aSimple tables are created via use of double pipe characters: @@||@@. Lines beginning with this markup denote rows in a table or a formatting line. Within table row lines the double-pipe is used to delimit cells. In the examples below a border is added for illustration (the default is no border).%0a%0aThe first line in the markup (initial double bars "||") is required. After the double bars, there may be optional formatting commands for the table such as border or width.%0a%0a(:markup caption='Basic table' class=horiz:)%0a|| border=1%0a|| cell 1 || cell 2 || cell 3 ||%0a|| cell 1 || cell 2 ||%0a(:markupend:)%0a%0aHeader cells can be created by placing ! as the first character of a cell. Note that these are ''table headers'', not ''headings'', so it doesn't extend to !!, !!!, etc.%0a%0a(:markup caption='Table with borders and headers' class=horiz:)%0a|| border=1%0a||! cell 1 ||! cell 2 ||! cell 3 ||%0a|| cell 1 || cell 2 || cell 3 ||%0a(:markupend:)%0a%0aA table can have a caption, indicated by [@||!caption!||@]. Any caption must appear prior to other rows of the table.%0a%0a(:markup caption='Table caption' class=horiz:)%0a|| border=1%0a||! A special table !||%0a||! cell 1 ||! cell 2 ||! cell 3 ||%0a|| cell 1 || cell 2 || cell 3 ||%0a(:markupend:)%0a%0a%0a!! Formatting cell contents%0a%0aCell contents may be aligned left, centered, or aligned right. %0a* To left-align contents, place the cell contents next to the leading @@||@@.%0a* To center contents, add a space before and after the cell contents.%0a* To right-align contents, place a space before the cell contents and leave the cell contents next to the trailing @@||@@.%0a%0a(:markup caption='Cell alignments':)%0a|| border=1 width=100%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0a(:markupend:)%0a%0a(:markup caption='Default cell alignments':)%0a|| border=1 width=100%25%0a||!cell default||!cell left ||%0a||default-aligned||left-aligned ||%0a(:markupend:)%0a%0aNote that header and detail cells have different default alignments.%0a%0aTo get a cell to span multiple columns, follow the cell with empty cells.%0a(At present there is no markup for spanning rows.)%0a%0a(:markup caption='Column spanning':)%0a|| border=1 width=100%25%0a|| |||| right column ||%0a|| || right two columns ||||%0a|| || middle column || ||%0a|| left column || ||||%0a|| left two columns |||| ||%0a|| entire row ||||||%0a|| left column || middle column || right column ||%0a(:markupend:)%0a%0a!! Table attributes%0a%0aAny line that begins with [@||@] but doesn't have a closing [@||@] sets the ''table attributes'' for any tables that follow. These attributes can control the size and position of the table, borders, background color, and cell spacing. (In fact these are just standard HTML attributes that are placed in the %3ctable> tag.)%0a%0aUse the [@width=@] attribute to set a table's width, using either a percentage value, an absolute size, or '''*'''.%0a%0aSee also $SimpleTableDefaultClassName.%0a%0a(:markup caption='Table width':)%0a|| border=1 width=100%25 %0a|| cell 1 || cell 2 || cell 3 ||%0a|| c1 || cellcellcellcell2 || cell 3 ||%0a(:markupend:)%0a%0aThe [@border=@] attribute sets the size of a table's borders.%0a%0a(:markup caption='Bordered table' class=horiz:)%0a|| border=10 width=70%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0a(:markupend:)%0a%0a(:markup caption='Borderless table' class=horiz:)%0a|| border=0 width=70%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0a(:markupend:)%0a%0aUse [@align=center@], [@align=left@], and [@align=right@] to center, left, or right align a table. Note that [@align=left@] and [@align=right@] create a ''floating table'', such that text wraps around the table.%0a%0a(:markup caption='Table alignment: center':)%0a|| border=1 align=center width=50%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0aNotice how text does not wrap with a table using "align=center".%0a(:markupend:)%0a%0a(:markup caption='Table alignment: left':)%0a|| border=1 align=left width=50%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0aNotice how text wraps to the right of a table using "align=left".%0a(:markupend:)%0a%0a(:markup caption='Table alignment: right':)%0a|| border=1 align=right width=50%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0aNotice how text wraps to the left of a table using "align=right".%0a(:markupend:)%0a%0aNote: to get a table to align left (but not "float left") requires CSS, as in%0a->[@||style="margin-left:0px;"@]%0a%0aThe [@bgcolor=@] attribute sets the background color for a table. At present there is no way to specify the color of individual rows or cells in this type of table (but see Cookbook:FormattingTables).%0a%0a(:markup class=horiz:)%0a|| border=1 align=center bgcolor=yellow width=70%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-align || center || right-align||%0a(:markupend:)%0a%0a!! Sortable tables [[#sortable]]%0aTo allow readers to reorder a table, give it the class="sortable" attribute:%0a(:markup:)%0a|| class="sortable simpletable"%0a||! m||!Geographic zone ||!Highest point ||!Country ||%0a|| 3700||Arctic ||Gunnbjørn Fjeld ||Greenland ||%0a|| 8848||North Temperate Zone ||Mount Everest ||Nepal ||%0a|| 5790||North Tropical Zone ||Cayambe ||Ecuador ||%0a|| 6768||South Tropical Zone ||Huáscarán ||Peru ||%0a|| 6960||South Temperate Zone ||Aconcagua ||Argentina ||%0a|| 4892||Antarctic ||Mount Vinson ||(none) ||%0a(:markupend:)%0a%0aNote: this feature has to be enabled in local configuration, see $EnableSortable.%0a%0a!! FAQ%0a>>faq%3c%3c [[#faq]]%0aQ: How do I create a basic table? %0aA: Tables are created via use of the double pipe character: @@||@@. Lines beginning with this markup denote rows in a table; within such lines the double-pipe is used to delimit cells. In the examples below a border is added for illustration (the default is no border).%0a%0a(:markup caption='Basic table' class=horiz:)%0a|| border=1 rules=rows frame=hsides%0a|| cell 1 || cell 2 || cell 3 ||%0a|| cell 1 || cell 2 || cell 3 ||%0a(:markupend:)%0a%0aQ: How do I create cell headers?%0aA: Header cells can be created by placing ! as the first character of a cell. Note that these are ''table headers'', not ''headings'', so it doesn't extend to !!, !!!, etc.%0a%0a(:markup caption='Table headers' class=horiz:)%0a|| border=1 rules=cols frame=vsides%0a||! cell 1 ||! cell 2 ||! cell 3 ||%0a|| cell 1 || cell 2 || cell 3 ||%0a(:markupend:)%0a%0aQ: How do I obtain a table with thin lines and more distance to the content?%0aA: "Thin lines" is tricky and browser dependent, but the following works for Firefox and IE (Nov. 2009):%0a%0a(:markup caption='Thin lines and cell padding' class=horiz:)%0a||border="1" style="border-collapse:collapse" cellpadding="5" width=66%25%0a||!Header ||! Header || '''Header'''||%0a||cells || with || padding||%0a|| || || ||%0a(:markupend:)%0a%0aQ: How do I create an advanced table? %0aA: See [[PmWiki.TableDirectives | table directives]]%0a%0aQ: My tables are by default centered. When I try to use '||align=left' they don't align left as expected. %0aA: Use ||style="margin-left:0px;" instead. %0a%0aQ: How can I specify the width of columns?%0aA: You can define the widths via custom styles, see Cookbook:FormattingTables and $TableCellAttrFmt. Add in config.php :%0a[@$TableCellAttrFmt = 'class=col$TableCellCount';@]%0a-> And add in pub/css/local.css : %0a[@%0atable.column td.col1 { width: 120px; }%0atable.column td.col3 { width: 40px; }%0a@]%0a%0aQ: How can I display a double pipe "||" in cell text using basic table markup?%0aA: Escape it with [@[=||=]@] to display || unchanged.%0a%0aQ: How do I apply styles to the elements of the table, like an ID to the table row, or a class/style to the TD?%0aA: See [[PmWiki/WikiStyles#WikiStyleApply | $WikiStyleApply]].%0a%0aAlternately, use [[table directives]], which allow specifying styling either directly (''style="..."'') or by a ''class="..."'' attribute for CSS.%0a%0aQ: Is there a simple way to change the table defaults? I prefer a border and I'm tired of adding it to every table.%0aA: You can set %25hlt php%25 @@$SimpleTableDefaultClassName = 'simpletable';@@ and/or define your own styles in your stylesheet. The "simpletable" class is available in the core skins, and can be redefined or overridden in pub/css/local.css.%0a
-time=1666461766
+text=(:Audience: authors (basic) :)%0a(:Summary:Simple tables with double pipe markup, one row per line:)%0a%0aPmWiki has two types of table markup; the markup described in this page is useful for creating ''simple'' tables with lots of small cells, while [[table directive markup->table directives]] helps with larger scale or more complex tables. For more possibilities with formatting simple tables, see [[Cookbook:Rowspan in simple tables]] and [[Cookbook:Formatting tables]].%0a%0a!! Table basics%0aSimple tables are created via use of double pipe characters: @@||@@. Lines beginning with this markup denote rows in a table or a formatting line. Within table row lines the double-pipe is used to delimit cells. In the examples below a border is added for illustration (the default is no border).%0a%0aThe first line in the markup (initial double bars "||") is required. After the double bars, there may be optional formatting commands for the table such as border or width.%0a%0a(:markup caption='Basic table' class=horiz:)%0a|| border=1%0a|| cell 1 || cell 2 || cell 3 ||%0a|| cell 1 || cell 2 ||%0a(:markupend:)%0a%0aHeader cells can be created by placing ! as the first character of a cell. Note that these are ''table headers'', not ''headings'', so it doesn't extend to !!, !!!, etc.%0a%0a(:markup caption='Table with borders and headers' class=horiz:)%0a|| border=1%0a||! cell 1 ||! cell 2 ||! cell 3 ||%0a|| cell 1 || cell 2 || cell 3 ||%0a(:markupend:)%0a%0aA table can have a caption, indicated by [@||!caption!||@]. Any caption must appear prior to other rows of the table.%0a%0a(:markup caption='Table caption' class=horiz:)%0a|| border=1%0a||! A special table !||%0a||! cell 1 ||! cell 2 ||! cell 3 ||%0a|| cell 1 || cell 2 || cell 3 ||%0a(:markupend:)%0a%0a%0a!! Formatting cell contents%0a%0aCell contents may be aligned left, centered, or aligned right. %0a* To left-align contents, place the cell contents next to the leading @@||@@.%0a* To center contents, add a space before and after the cell contents.%0a* To right-align contents, place a space before the cell contents and leave the cell contents next to the trailing @@||@@.%0a%0a(:markup caption='Cell alignments':)%0a|| border=1 width=100%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0a(:markupend:)%0a%0a(:markup caption='Default cell alignments':)%0a|| border=1 width=100%25%0a||!cell default||!cell left ||%0a||default-aligned||left-aligned ||%0a(:markupend:)%0a%0aNote that header and detail cells have different default alignments.%0a%0aTo get a cell to span multiple columns, follow the cell with empty cells.%0a(At present there is no markup for spanning rows.)%0a%0a(:markup caption='Column spanning':)%0a|| border=1 width=100%25%0a|| |||| right column ||%0a|| || right two columns ||||%0a|| || middle column || ||%0a|| left column || ||||%0a|| left two columns |||| ||%0a|| entire row ||||||%0a|| left column || middle column || right column ||%0a(:markupend:)%0a%0a!! Table attributes%0a%0aAny line that begins with [@||@] but doesn't have a closing [@||@] sets the ''table attributes'' for any tables that follow. These attributes can control the size and position of the table, borders, background color, and cell spacing. (In fact these are just standard HTML attributes that are placed in the %3ctable> tag.)%0a%0aUse the [@width=@] attribute to set a table's width, using either a percentage value, an absolute size, or '''*'''.%0a%0aSee also $SimpleTableDefaultClassName.%0a%0a(:markup caption='Table width':)%0a|| border=1 width=100%25 %0a|| cell 1 || cell 2 || cell 3 ||%0a|| c1 || cellcellcellcell2 || cell 3 ||%0a(:markupend:)%0a%0aThe [@border=@] attribute sets the size of a table's borders.%0a%0a(:markup caption='Bordered table' class=horiz:)%0a|| border=10 width=70%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0a(:markupend:)%0a%0a(:markup caption='Borderless table' class=horiz:)%0a|| border=0 width=70%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0a(:markupend:)%0a%0aUse [@align=center@], [@align=left@], and [@align=right@] to center, left, or right align a table. Note that [@align=left@] and [@align=right@] create a ''floating table'', such that text wraps around the table.%0a%0a(:markup caption='Table alignment: center':)%0a|| border=1 align=center width=50%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0aNotice how text does not wrap with a table using "align=center".%0a(:markupend:)%0a%0a(:markup caption='Table alignment: left':)%0a|| border=1 align=left width=50%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0aNotice how text wraps to the right of a table using "align=left".%0a(:markupend:)%0a%0a(:markup caption='Table alignment: right':)%0a|| border=1 align=right width=50%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-aligned || centered || right-aligned||%0aNotice how text wraps to the left of a table using "align=right".%0a(:markupend:)%0a%0aNote: to get a table to align left (but not "float left") requires CSS, as in%0a->[@||style="margin-left:0px;"@]%0a%0aThe [@bgcolor=@] attribute sets the background color for a table. At present there is no way to specify the color of individual rows or cells in this type of table (but see Cookbook:FormattingTables).%0a%0a(:markup class=horiz:)%0a|| border=1 align=center bgcolor=yellow width=70%25%0a||!cell 1 ||! cell 2 ||! cell 3||%0a||left-align || center || right-align||%0a(:markupend:)%0a%0a!! Sortable tables [[#sortable]]%0aTo allow readers to reorder a table, give it the class="sortable" attribute:%0a(:markup:)%0a|| class="sortable simpletable"%0a||! m||!Geographic zone ||!Highest point ||!Country ||%0a|| 3700||Arctic ||Gunnbjørn Fjeld ||Greenland ||%0a|| 8848||North Temperate Zone ||Mount Everest ||Nepal ||%0a|| 5790||North Tropical Zone ||Cayambe ||Ecuador ||%0a|| 6768||South Tropical Zone ||Huáscarán ||Peru ||%0a|| 6960||South Temperate Zone ||Aconcagua ||Argentina ||%0a|| 4892||Antarctic ||Mount Vinson ||(none) ||%0a(:markupend:)%0a%0aNotes:%0a* This feature has to be enabled in local configuration, see $EnableSortable. It will then work both for simple tables as above, and for [[table directives]] with the class="sortable" attribute.%0a* The optional "simpletable" class is available in core skins and possibly other skins, it should define reasonably simple table styles.%0a* The first row of the table needs to have heading cells with %25pmhlt%25 [@||!@] separators which can be clicked to order the rows by the column.%0a* If the last row of your table should be a footer that is not sorted, use the class "sortable-footer" instead of "sortable". If you use %25pmhlt%25 [@||!@] separators in the footer, they will also allow the rows to be sorted, like the header cells.%0a%0aData types: By default, the rows are sorted numerically, if the cells contain unformatted numeric values, or alphabetically. You can define the sorting data type of a column by adding to the heading cell an empty [[WikiStyle(s)]] element:%0a* %25pmhlt%25@@[=%25sort-numeric-us%25%25%25=]@@ - cells in the column contain US-formatted numbers like @@1,234.56@@.%0a* %25pmhlt%25@@[=%25sort-numeric%25%25%25=]@@ - cells in the column contain SI-formatted numbers like @@1 234,56@@.%0a* %25pmhlt%25@@[=%25sort-date%25%25%25=]@@ - cells in the column contain dates or date-times that will be parsed by the browser. Dates like "2023-11-19" or "2023-11-19 14:09:11" should be correctly parsed, other dates in English might be correctly detected or not.%0a* %25pmhlt%25@@[=%25sort-time%25%25%25=]@@ - the cell contains a %25hlt html%25@@%3ctime datetime="...">%3c/time>@@ element, and its "datetime" value should be used for sorting. Markup like %25pmhlt%25@@[=@2022-01-08T10:07:08Z=]@@ or @@[={(ftime "%25L" "{*$LastModifiedTime}")}=]@@ would output a %3ctime> element in the timezone of the visitor, with more or less precision depending on $EnableLocalTimes, but the "datetime" attributes should allow precise sorting.%0a%0a!! FAQ%0a>>faq%3c%3c [[#faq]]%0aQ: How do I create a basic table? %0aA: Tables are created via use of the double pipe character: @@||@@. Lines beginning with this markup denote rows in a table; within such lines the double-pipe is used to delimit cells. In the examples below a border is added for illustration (the default is no border).%0a%0a(:markup caption='Basic table' class=horiz:)%0a|| border=1 rules=rows frame=hsides%0a|| cell 1 || cell 2 || cell 3 ||%0a|| cell 1 || cell 2 || cell 3 ||%0a(:markupend:)%0a%0aQ: How do I create cell headers?%0aA: Header cells can be created by placing ! as the first character of a cell. Note that these are ''table headers'', not ''headings'', so it doesn't extend to !!, !!!, etc.%0a%0a(:markup caption='Table headers' class=horiz:)%0a|| border=1 rules=cols frame=vsides%0a||! cell 1 ||! cell 2 ||! cell 3 ||%0a|| cell 1 || cell 2 || cell 3 ||%0a(:markupend:)%0a%0aQ: How do I obtain a table with thin lines and more distance to the content?%0aA: "Thin lines" is tricky and browser dependent, but the following works for Firefox and IE (Nov. 2009):%0a%0a(:markup caption='Thin lines and cell padding' class=horiz:)%0a||border="1" style="border-collapse:collapse" cellpadding="5" width=66%25%0a||!Header ||! Header || '''Header'''||%0a||cells || with || padding||%0a|| || || ||%0a(:markupend:)%0a%0aQ: How do I create an advanced table? %0aA: See [[PmWiki.TableDirectives | table directives]]%0a%0aQ: My tables are by default centered. When I try to use '||align=left' they don't align left as expected. %0aA: Use ||style="margin-left:0px;" instead. %0a%0aQ: How can I specify the width of columns?%0aA: You can define the widths via custom styles, see Cookbook:FormattingTables and $TableCellAttrFmt. Add in config.php :%0a[@$TableCellAttrFmt = 'class=col$TableCellCount';@]%0a-> And add in pub/css/local.css : %0a[@%0atable.column td.col1 { width: 120px; }%0atable.column td.col3 { width: 40px; }%0a@]%0a%0aQ: How can I display a double pipe "||" in cell text using basic table markup?%0aA: Escape it with [@[=||=]@] to display || unchanged.%0a%0aQ: How do I apply styles to the elements of the table, like an ID to the table row, or a class/style to the TD?%0aA: See [[PmWiki/WikiStyles#WikiStyleApply | $WikiStyleApply]].%0a%0aAlternately, use [[table directives]], which allow specifying styling either directly (''style="..."'') or by a ''class="..."'' attribute for CSS.%0a%0aQ: Is there a simple way to change the table defaults? I prefer a border and I'm tired of adding it to every table.%0aA: You can set %25hlt php%25 @@$SimpleTableDefaultClassName = 'simpletable';@@ and/or define your own styles in your stylesheet. The "simpletable" class is available in the core skins, and can be redefined or overridden in pub/css/local.css.%0a
+time=1700392801
diff --git a/wikilib.d/PmWiki.Troubleshooting b/wikilib.d/PmWiki.Troubleshooting
index 460884ea..72cfc263 100644
--- a/wikilib.d/PmWiki.Troubleshooting
+++ b/wikilib.d/PmWiki.Troubleshooting
@@ -1,9 +1,9 @@
-version=pmwiki-2.3.22 ordered=1 urlencoded=1
+version=pmwiki-2.3.27 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
-csum=mod_security: Cookbook:EncodePost (+60)
+csum=Upgrades#pmtoken (+204)
name=PmWiki.Troubleshooting
-rev=174
-targets=PmWiki.HowToGetAssistance,PmWiki.MailingLists,PmWiki.Questions,PITS.PITS,PmWiki.CustomMarkup,PmWiki.Functions,PmWiki.PathVariables,PmWiki.Upgrades,Cookbook.Cookbook,PmWiki.CustomPagelistSortOrder,Cookbook.PccfToPcfOverride,PmWiki.PmWiki,PmWiki.DebugVariables,PmWiki.SecurityVariables,PmWiki.BasicVariables,PmWiki.LinkVariables,PmWiki.EditVariables,PmWiki.FilePermissions,PmWiki.Installation,PmWiki.InitialSetupTasks,PmWiki.WikiGroup,PmWiki.LocalCustomizations,Cookbook.EncodePost,PmWiki.UploadsAdmin,PmWiki.Tables,PmWiki.LayoutVariables
-text=(:Summary:Advice for troubleshooting an installation, keywords: deprecated, preg_replace, crypt, blank pages, headers, .flock, upgrade, create_function:)%0a(:Audience: administrators :)%0a%0aPmWiki is pretty robust and can automatically adapt to a very wide variety of environments. %0aHowever, sometimes things don't go as we expect, so we're cataloging common errors and their fixes here.%0a%0a!! Troubleshooting Frequently Asked Questions%0a%0a->%25note%25 Note: This page on pmwiki.org is probably not the best place to post questions. Consider [[PmWiki:HowToGetAssistance | seeking assistance]] from the pmwiki-users [[mailing list(s)]], or post your question on the [[PmWiki:Questions]] page.%0a%0a>>faq%3c%3c [[#faq]]%0a%0a[[#track-errors]]%0aQ: How to track errors and know if they come from the PmWiki core or from a local configuration or addon/recipe?%0a%0aA: The PHP programming language has recently deprecated or removed a number of functions that were heavily used in the past by PmWiki and many addons/recipes/skins. The PmWiki core no longer relies on these functions but some addons still do -- here is how to track these.%0a%0aA: The PmWiki architecture allows addons (recipes, skins) and local configuration to register actions to be performed by PmWiki at a later point of the process. That's why the PHP warning may indicate a line in @@pmwiki.php@@, even if this was caused by a recipe. %0a%0aA: It is recommended to get the latest versions of PmWiki and of all your addons -- known bugs would have been fixed. This assumes the errors are fixed in the latest versions.%0a%0aA: (1) First disable or comment out all addons and local configuration (@@config.php@@, @@farmconfig.php@@, @@Group.php@@) and test your wiki. If the warning persists, please notify us ASAP with some information on how to reproduce the bug and on your installation (PHP version). If the error doesn't appear, go to (2).%0a%0aA: (2) Enable one local configuration or one addon and test your wiki to see if the error appears.%0a%0aA: (3) If the error doesn't appear, the problem is likely elsewhere. If you have more addons to enable, go back to (2).%0a%0aA: (4) If the error appears, it was likely caused by the last configuration or addon that you enabled. Search the documentation and the cookbook for more recent versions, or contact the addon maintainer, or leave a message on the talk page. If that doesn't work, contact us at [[PITS:PITS|our issue tracking system]]. Developers can find documentation on how to update old addons at [[CustomMarkup]] and [[Functions]].%0a%0aA: (5) Disable again the faulty addon and if you have more addons to enable, go back to (2).%0a%0aA: PmWiki has a friendly and reactive community and we may be able to quickly provide fixes.%0a%0a[[#https]]%0aQ: After some upgrades to website, hosting, or browser, some skin styles/colors and possibly local styles, recipes, and embedded pictures, have stopped working.%0a%0aA: In your local configuration, if you have the variables $PubDirUrl or $FarmPubDirUrl defined with the [@http://@] scheme, replace them with [@https://@]. On secure websites, recent browser versions do not load resources from insecure URLs.%0a%0a[[#obsolete]]%0aQ: After a PHP upgrade, some of my markup rules have been disabled, and a tooltip title says (in English) "Markup rule ... is obsolete and has been disabled. See pmwiki.org/Troubleshooting".%0a%0aA: The obsolete markup rule should appear on the tooltip title and should make it easy to identify which custom configuration or addon/recipe caused it. If it is not obvious, follow the steps in the [[#track-errors|first section]]. Developers can find documentation on how to update old addons at [[CustomMarkup]] and [[Functions]].%0a%0a[[#create_function]]%0aQ: My wiki displays warnings "@@Deprecated: Function create_function() is deprecated@@".%0a%0aA: PHP version 7.2 deprecated a function which PmWiki used for markup definitions and pattern replacements. It is recommended to [[upgrades|upgrade]] to the latest PmWiki version and update all addons and skins from the [[Cookbook/]]. Addons in the [[https://www.pmwiki.org/wiki/Category/PHP72|PHP 7.2]] category are reported to be compatible with PHP 7.2. If you need a specific addon that has not yet been updated please contact us. To update your own addons, you probably need to update your calls to Markup(), see the pages [[Custom markup]], [[Functions]] and [[PmWiki:CustomPagelistSortOrder]].%0a%0aA: The recipe [[Cookbook:PccfToPcfOverride]] may provide a temporary solution until you can update all your add-ons.%0a%0aA: Note that PmWiki itself doesn't use that function, but (older) addons can register instructions to be processed at a later point. That's why the warning reports a line in @@pmwiki.php@@, even if it was requested by a local configuration or an addon.%0a%0aA: How to track down the addons that cause the warnings, see the [[#track-errors|first section]].%0a%0aQ: [[#deprecated]] [[#preg_replace]] My wiki displays warnings "@@Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead@@".%0aA: This is caused by a change in PHP version 5.5 for the [[https://www.php.net/preg_replace | preg_replace()]] function. PmWiki no longer relies on the deprecated feature since version 2.2.56 (it is recommended to upgrade to the latest version) but many recipes do. %0a%0aA: Note that PmWiki itself doesn't use that function, but (older) addons can register instructions to be processed at a later point. That's why the warning reports a line in @@pmwiki.php@@, even if it was requested by a local configuration or an addon.%0a%0aA: Recipes and Skins are currently being updated for [[https://www.pmwiki.org/wiki/Category/PHP55|PHP 5.5]]. Check if there are more recent versions published by their maintainers on the [[(Cookbook:)Cookbook]]. If you update your PmWiki and recipes, and still see the warnings, here is how to find out which recipes cause them:%0a%0aA: For PmWiki version 2.2.71 or newer, in @@config.php@@, enable diagnostic tools: \\%0a%25hlt php%25@@$EnableDiag = 1;@@\\%0aThen visit your wiki with the action 'ruleset', for example %25newwin%25[[PmWiki:PmWiki?action=ruleset]]%25%25 or follow a link like %25pmhlt%25[@[[HomePage?action=ruleset]]@]. This page will list all markup rules; those potentially incompatible with PHP 5.5 will be flagged with filenames, line numbers and search patterns triggering the warning.%0a%0aA: If the @@?action=ruleset@@ page shows no flagged rules, it is possible that either your recipes call the %25hlt php%25@@preg_replace()@@ function directly, or they define various search-replace patterns in incompatible ways. In these cases, your warning should display the file name and line number causing problems. Otherwise, to track down the addons that cause the warnings, see the [[#track-errors|first section]].%0a%0aA: Note that many hosting providers allow you to run different versions of PHP. See the documentation of your hosting plan to learn how to enable a PHP version earlier than 5.5.%0a%0aA: Finally, it is possible to suppress these warnings in PHP 5.5, by setting this line at the beginning of @@config.php@@: \\%0a%25hlt php%25@@error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);@@\\%0aThis should be a temporary solution, left only until your recipes are fixed.%0a%0aA: See categories: (:pagelist group=category name=php*,-php,-php5,-php54 fmt=#csvlist:).%0a%0a[[#crypt]]%0aQ: My wiki displays warnings "@@PHP Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format@@" or "@@Uncaught ArgumentCountError: crypt() expects exactly 2 arguments, 1 given@@".%0aA: You probably have configuration settings that worked on older PHP versions. Here is how to hunt and try to fix this.%0a%0aA: In your (farm)@@config.php@@ or other local or cookbook files, any call to %25hlt php%25@@crypt()@@ can be replaced with @@pmcrypt()@@, eg \\%0a%25hlt php%25@@$DefaultPasswords['edit'] = crypt("my_password");@@ # %25red%25DEPRECATED%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '''pmcrypt'''("my_password");@@ # %25green%25OK%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = array('''pmcrypt'''("pass1"), '''pmcrypt'''("pass2"));@@ # %25green%25OK%25%25%0a%0aA: Additionally, if there are locked passwords with a star @@*@@, you should replace those with [@@lock@]: \\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '*';@@ # %25red%25DEPRECATED%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '@lock';@@ # %25green%25OK%25%25 (and no pmcrypt)%0a%0aA: The $DefaultPasswords variables usually have keys like 'edit', 'attr', 'read', 'upload', 'publish'.%0a%0aA: Some of your page files may still have the old star @@*@@ locking. Files that in the past shipped with the star lock were @@Site.GroupAttributes@@, @@SiteAdmin.GroupAttributes@@, @@Site.AuthUser@@ and/or @@PmWiki.GroupAttributes@@ in the directories @@wikilib.d@@ and/or @@wiki.d@@. You need to edit them in a text editor and replace any line among these:\\%0a%25hlt php%25@@passwdedit=*@@\\%0a%25hlt php%25@@passwdattr=*@@\\%0a%25hlt php%25@@passwdread=*@@\\%0a%25hlt php%25@@passwdpublish=*@@\\%0a%25hlt php%25@@passwdupload=*@@%0a%0aA:Edit the file and replace the star @@*@@ with the word [@@lock@] on every existing line. ''Do not add these lines if they are not already in the file, and do not change the lines if there is something other than a single star after the = equals sign''. Save the file, upload it back to your wiki and the warnings should disappear. (If you run a wiki farm, you may have such files in several @@wiki.d@@ directories.)%0a%0aQ: [[#invrange]] My wiki displays warnings "@@Compilation failed: invalid range in character class@@".%0a%0aA: A character class range in a regular expression is something in brackets like @@[A-Z]@@. An invalid character class may look like @@[Z-A]@@, where the "Z" character should not be before but after the "A" character. It may not be that obvious, but it would be in brackets with a dash between the wrong characters.%0a%0aA: If you want to match an actual dash (minus) rather than identify a character range, you need to place it first or last thing, like:\\%0a [@[-AZ] or [AZ-]@]%0a%0aA: To track the error, see [[#track-errors|the first question on this page]], and check the variables $GroupPattern, $NamePattern, $MakePageNamePatterns, $ROSPatterns and other locally configured core variables that contain "Pattern" or "Patterns" in the name.%0a%0a[[#blank_sections]]%0aQ: After a PHP upgrade, some of the pages on my wiki are completely blank, empty, some have blank or missing sections, but the sidebar and the action links are visible.%0a%0aA: Sometimes this may be caused by insufficient [[file permissions]] on the server. The PHP process needs "read/write (rw)" access to all files in the directories "@@wiki.d@@" and "@@uploads@@"; "read (r)" access to those in the "@@wikilib.d@@" directory; "list/search (x)" for the directories themselves. Search the documentation of your hosting provider for more information.%0a%0aA: Alternatively, this may be caused by a change in PHP 5.4 which affects the function %25hlt php%25@@htmlspecialchars()@@.%0a%0aA: The easiest temporary fix would be in your @@php.ini@@, or in @@.user.ini@@ to change the @@default_charset@@ directive to an 8-bit charset, for example cp1252:\\%0a%25hlt php%25[@default_charset = "Windows-1252";@]%0a%0aA: Or, this may sometimes work in @@local/config.php@@:\\%0a%25hlt php%25[@ini_set("default_charset", "Windows-1252");@]%0a%0aA: A more permanent fix would be to [[Upgrades|upgrade]] your installation to a more recent PmWiki version, your recipes, and in your own recipes or modules replace all calls to %25hlt php%25@@htmlspecialchars()@@ with @@PHSC()@@, a PmWiki helper function for such cases.%0a%0aA: The "blank" pages come from the fact that in PHP 5.4 the default encoding switched from an 8-bit encoding to variable-bit validated UTF-8, and that an incorrect UTF-8 string will be rejected. If your wiki uses an 8-bit encoding, it is virtually certain that it is not valid UTF-8. Worse, even if you do use UTF-8 some browsers may submit invalid bits. So the [[Functions#PHSC|%25hlt php%25@@PHSC()@@ function]] always pretends that it converts an 8-bit encoding where all bits are allowed.%0a%0a%0aQ: [[#backtrack_limit]] Very long pages with thousands of lines may appear blank after adding a few additional lines. This may be preformatted text, table, or text inside conditional markup, or text in a custom markup directive.%0aA: This may be caused by the PHP limits on how far to look forward, and loop back, when searching for matches of regular expressions. You may want to split the very long page into several pages, or the very long markup into separate sections/blocks, or you can increase the PHP limits by adding this to @@local/config.php@@:\\%0a%25hlt php%25[@@ini_set('pcre.backtrack_limit', 10000000);@]%0a%0aQ: Why am I seeing strange errors after [[Upgrades|upgrading]]?%0aA: Make sure all of the files were updated, in particular @@pmwiki.php@@ and all files in the @@scripts/@@ directory.%0a%0aA: This question sometimes arises when an administrator hasn't%0afollowed the advice, which used to be less prominent, on the%0a[[PmWiki.installation#notes|installation]] and%0a[[PmWiki.initial setup tasks#dontmodify|initial setup tasks]] pages and has renamed%0a''@@pmwiki.php@@'' instead of creating an ''@@index.php@@'' wrapper script.%0aIf you have renamed ''@@pmwiki.php@@'' to ''@@index.php@@'', then the upgrade procedure%0awon't have updated your ''@@index.php@@'' file. Delete the old version and%0acreate a wrapper script so it won't happen again.%0a%0aA: Sometimes an FTP or other copy program will fail to transfer all of the%0afiles properly. One way to check for this is by comparing file sizes.%0a%0aA: Be sure all of the files in the ''@@wikilib.d/@@'' directory%0awere also upgraded. Sometimes it's a good idea to simply delete the ''@@wikilib.d/@@''%0adirectory before upgrading. (Local copies of pages are stored in ''@@wiki.d/@@'' and not ''@@wikilib.d/@@''.)%0a%0aA: Make sure that the [[(PmWiki.)file permissions]] are correct. The official files have a restricted set of permissions that might not match your site's needs.%0a%0aA: If you use a custom pattern for @@$GroupPattern@@ make sure that it includes Site ($SiteGroup) and since PMWiki 2.2 also @@SiteAdmin@@ (@@$SiteAdminGroup@@).%0aOtherwise migration may fail (e.g. missing @@SiteAdmin@@ for PMWiki 2.2 and later) and/or login does not work.\\%0aAdditionally @@Main@@ (@@$DefaultGroup@@) should be included too.%0a%0a[[#flock]]%0aQ: I'm suddenly getting messages like "@@Warning: fopen(wiki.d/.flock): failed to open stream: Permission denied...@@" and "@@Cannot acquire lockfile@@"... what's wrong?%0a%0aA: Something (or someone) has changed the [[PmWiki/FilePermissions | permissions]] on the ''@@wiki.d/.flock@@'' file or the ''@@wiki.d/@@'' directory such that the webserver is no longer able to write the lockfile. The normal solution is to simply delete the ''@@.flock@@'' file from the ''@@wiki.d/@@'' directory -- PmWiki will then create a new one. Also be sure to check the permissions on the ''@@wiki.d/@@'' directory itself. (One can easily check and modify permissions of the ''@@wiki.d/@@'' directory in %25newwin%25[[https://filezilla-project.org/ | FileZilla]] (open-source FTP app) by right-clicking on the file > File attributes)%0a%0a[[#sidebar]]%0aQ: My links in the sidebar seem to be pointing to non-existent pages, even though I know I created the pages. Where are the pages?%0a%0aA: Links in the SideBar normally need to be qualified by a [[WikiGroup]] in order to work properly (use %25pmhlt%25[@[[Group/Page]]@] instead of [@[[Page]]@]).\\%0aAlso: Make sure you type Side'''B'''ar with a capital B.%0a%0a[[#headers]]%0aQ: Why am I seeing "@@PHP Warning: Cannot modify header information - headers already sent by ...@@" messages at the top of my page.%0a%0aA: If this is the first or only error message you're seeing, it's usually an indication that there are blank lines, spaces, or other characters before the %25hlt php%25[@%3c?php@] or after the [@?>@] in a [[local customization(s)]] files such as @@config.php@@. Double-check the file and make sure there is nothing before the initial [@%3c?php@]. It's often easiest and safest to eliminate any closing [@?>@] altogether. %0a%0aA: When you save the file, the encoding/charset should be either @@cp1252/Windows1252@@ or @@UTF-8@@ without Byte Order Mark. [[https://notepad-plus-plus.org/ | NotePad++]] is an editor that can do this.%0a%0aA: When you transfer the files, tell your FTP manager to use text mode transfer, or, if that doesn't help, binary mode transfer.%0a%0a%0aA: If the warning is appearing after some other warning or error message, then resolve the other error and this warning may go away.%0a%0a[[#session_write_close_error]]%0aQ: How do I make a PHP Warning about @@function.session-write-close@@ go away?%0a%0aA: If you are seeing an error similar to this%0a%0a->[@%0aWarning: session_write_close() [function.session-write-close]:%0aopen(/some/filesystem/path/to/a/directory/sess_[...]) failed: No such file%0aor directory (2) in /your/filesystem/path/to/pmwiki.php on line NNN%0a@]%0a%0aPmWiki sometimes does session-tracking using PHP's%0a[[https://www.php.net/manual/en/features.sessions.php | session-handling functions ]].%0aFor session-tracking to work, some information needs to be written%0ain a directory on the server. That directory needs to exist and%0abe writable by the webserver software. For this example, the%0awebserver software is configured to write sessions in this%0adirectory%0a%0a->[@/some/filesystem/path/to/a/directory/@]%0a%0abut the directory doesn't exist. The solution is to do at least one%0aof these:%0a* '''Create the directory''' and make sure it's writable by the webserver software%0a* Provide a session_save_path value that points to a directory that is writable by the server, e.g. in @@config.php@@:%0a%0a->%25hlt php%25[@session_save_path('/home/someuser/tmp/sessions');@] # unix-type OS%0a->%25hlt php%25[@session_save_path('C:/server/tmp/sessions');@] # Windows%0a%0a[[#multiplepwprompts]]%0aQ: Why is PmWiki prompting me multiple times for a password I've already entered?%0a%0aA: This could happen like out of nowhere if your hosting provider upgrades to PHP version 5.3, and you run an older PmWiki release. Recent PmWiki releases fix this problem.%0a%0aA: Alternatively, this may be an indication that the browser isn't accepting cookies, or that PHP's session handling functions on the server aren't properly configured. If the browser is accepting cookies, then try setting %25hlt php%25@@$EnableDiag=1;@@ in ''@@local/config.php@@'', run PmWiki using [@?action=phpinfo@], and verify that sessions are enabled and that the session.save_path has a reasonable value. Note that several versions of PHP under Windows require that a session_save_path be explicitly set (this can be done in the ''@@local/config.php@@'' file). You might also try setting session.auto_start to 1 in your @@php.ini@@.%0a%0aA: See also the question [[#configphp-order|I have to log in twice]] below.%0a%0aQ: I edited ''@@config.php@@'', but when I look at my wiki pages, all I see is "@@Parse error: parse error, unexpected T_VARIABLE in ''somefile'' on line ''number''.@@"%0a%0aA: You've made a mistake in writing the PHP that goes into the ''@@config.php@@'' file. The most common mistake that causes the T_VARIABLE error is forgetting the semi-colon (;) at the end of a line that you added. The line number and file named are where you should look for the mistake.%0a%0a%0aQ: Searches and pagelists stopped working after I upgraded -- no errors are reported, but links to other pages do not appear (or do not appear as they should) -- what gives?%0a%0aA: Be sure all of the files in the ''@@wikilib.d/@@'' directory%0awere also upgraded. In particular, it sounds as if the @@Site.PageListTemplates@@ page is either missing (if no links are displayed) or is an old version (if the links do not appear as they should). Also make sure that read-permissions (attr) are set for the pages @@Site.PageListTemplates@@ and @@Site.Search@@.%0a%0a[[#mod_security]]%0aQ: Some of my posts are coming back with "403 Forbidden", "406 Not Acceptable", or "418 I'm a teapot" errors, or "Internal Server Error". This happens with some posts but not others.%0a%0aA: Your webserver probably has [[https://github.com/SpiderLabs/ModSecurity | mod_security]] enabled. The mod_security "feature" scans all incoming posts for forbidden words or phrases that might indicate someone is trying to hack the system, and if any of them are present then Apache returns the 403 Forbidden or 406 Not Acceptable error. Common phrases that tend to trigger mod_security include "curl ", "wget", "file(", and "system(", although there are many others (depending on the configuration, percent signs, html tags, international characters).%0a%0aSince mod_security intercepts the requests and sends the "forbidden"%0amessage before PmWiki ever gets a chance to run, it's not a bug in PmWiki, and%0athere's little that PmWiki can do about it. Instead, one has to alter the%0awebserver configuration to disable mod_security or reconfigure it to allow%0awhatever word it is forbidding. Some sites may be able to disable mod_security%0aby placing [@SecFilterEngine off@] in a ''@@.htaccess@@'' file.%0a%0aAlternatively, you may try the recipe Cookbook:EncodePost.%0a%0aQ: I get the following message when attempting to upload an image, what do I do?%0a[-@@'''Warning''': move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1929 is not allowed to access /home/onscolre/public_html/pmwikiuploads/Photos owned by uid 33 in '''/home/onscolre/public_html/pmwiki/scripts/upload.php''' on line '''198'''@@-]%0a%0a@@'''PmWiki can't process your request'''@@%0a%0a[-@@?cannot move uploaded file to /home/onscolre/public_html/pmwikiuploads/Photos/FoundationPupilsIn1958.jpeg@@-]%0a%0a[-@@We are sorry for any inconvenience.@@-]%0a%0aA: Your server is configured with PHP [[https://web.archive.org/web/20201014032613/https://www.php.net/manual/en/features.safe-mode.php|Safe Mode]] enabled (removed as of PHP 5.4.0). Configure your wiki to use a [[PmWiki/UploadsAdmin#sitewideprefix|site-wide uploads prefix]], then create the ''uploads/'' directory manually and set 777 permissions on it (rather than letting PmWiki create the directory).%0a%0a[[#TableRowIndexMax]] [[#divisionbyzero]]%0aQ: I'm starting to see "@@Division by zero error in pmwiki.php...@@" on my site. What's wrong?%0a%0aA: It's a bug in PmWiki that occurs only with the [[tables]] markup and only for versions of PHP >= 4.4.6 or >= 5.2.0. Often it seems to occur "out of nowhere" because the server administrator has upgraded PHP. Try [[upgrad(es)]]ing to a later version of PmWiki to remove the error, or try setting the following in ''@@local/config.php@@'':%0a%0a $TableRowIndexMax = 1;%0a%0a[[#configphp-order]]%0aQ: I have to log in twice [-(two times) (2 times)-]. -or- My password is not being required even though it should. -or- I changed the password but the old password is still active. -or- My @@config.php@@ password is not over-riding my @@farmconfig.php@@ password.%0aA: It could happen if (farm)@@config.php@@, or an included recipe, directly calls the functions %25hlt php%25@@CondAuth()@@, or @@RetrieveAuthPage()@@, @@PageTextVar()@@, @@PageVar()@@ and possibly others, before defining all passwords and before including AuthUser (if required). %0a%0aThe [[PmWiki/LocalCustomizations#configphp-order|order of @@config.php@@]] is very significant.%0a%0a[[#CrashWhenEditing]]%0aQ: When editing an existing page, The "Save" causes a no-response of your server (not a blank page, no response at all, an endless connexion try). To get back the hand, it is necessary to request for another page (by clicking on its link in the menu for instance). And horror!, the ...?action=edit is then inhibited, it becomes impossible to edit any page.%0aA: When the editing of a page is initiated a file names [@.flock@] is created in the [@wiki.d@] repository. As long as this file exists it is impossible to edit any page. This file denotes an edition in progress and is automatically destroyed when leaving successfully an edit action by "Save". In case of a crash of the editing, this file is not destroyed. The remedy is, with an FTP client parameterized to show hidden files, to remove the [@.flock@] file. And all get back OK. This behavior is typically caused by a bug which provokes (directly or indirectly), an endless loop in a recipe concerned by the edited page.%0a%0aQ: I get the error "@@Data Mismatch - Locking FAILED!@@"%0aA: This is probably not a PmWiki error. PmWiki cannot create a lock file due to an underlying file system problem.%0aFor example the disk quota has been exceeded (e.g. by an error log file or file uploads), or there are problems with file system permissions.%0a
-time=1682863327
+rev=176
+targets=PmWiki.HowToGetAssistance,PmWiki.MailingLists,PmWiki.Questions,PITS.PITS,PmWiki.CustomMarkup,PmWiki.Functions,PmWiki.Upgrades,PmWiki.PathVariables,Cookbook.Cookbook,PmWiki.CustomPagelistSortOrder,Cookbook.PccfToPcfOverride,PmWiki.PmWiki,PmWiki.DebugVariables,PmWiki.SecurityVariables,PmWiki.BasicVariables,PmWiki.LinkVariables,PmWiki.EditVariables,PmWiki.FilePermissions,PmWiki.Installation,PmWiki.InitialSetupTasks,PmWiki.WikiGroup,PmWiki.LocalCustomizations,Cookbook.EncodePost,PmWiki.UploadsAdmin,PmWiki.Tables,PmWiki.LayoutVariables
+text=(:Summary:Advice for troubleshooting an installation, keywords: deprecated, preg_replace, crypt, blank pages, headers, .flock, upgrade, create_function:)%0a(:Audience: administrators :)%0a%0aPmWiki is pretty robust and can automatically adapt to a very wide variety of environments. %0aHowever, sometimes things don't go as we expect, so we're cataloging common errors and their fixes here.%0a%0a!! Troubleshooting Frequently Asked Questions%0a%0a->%25note%25 Note: This page on pmwiki.org is probably not the best place to post questions. Consider [[PmWiki:HowToGetAssistance | seeking assistance]] from the pmwiki-users [[mailing list(s)]], or post your question on the [[PmWiki:Questions]] page.%0a%0a>>faq%3c%3c [[#faq]]%0a%0a[[#track-errors]]%0aQ: How to track errors and know if they come from the PmWiki core or from a local configuration or addon/recipe?%0a%0aA: The PHP programming language has recently deprecated or removed a number of functions that were heavily used in the past by PmWiki and many addons/recipes/skins. The PmWiki core no longer relies on these functions but some addons still do -- here is how to track these.%0a%0aA: The PmWiki architecture allows addons (recipes, skins) and local configuration to register actions to be performed by PmWiki at a later point of the process. That's why the PHP warning may indicate a line in @@pmwiki.php@@, even if this was caused by a recipe. %0a%0aA: It is recommended to get the latest versions of PmWiki and of all your addons -- known bugs would have been fixed. This assumes the errors are fixed in the latest versions.%0a%0aA: (1) First disable or comment out all addons and local configuration (@@config.php@@, @@farmconfig.php@@, @@Group.php@@) and test your wiki. If the warning persists, please notify us ASAP with some information on how to reproduce the bug and on your installation (PHP version). If the error doesn't appear, go to (2).%0a%0aA: (2) Enable one local configuration or one addon and test your wiki to see if the error appears.%0a%0aA: (3) If the error doesn't appear, the problem is likely elsewhere. If you have more addons to enable, go back to (2).%0a%0aA: (4) If the error appears, it was likely caused by the last configuration or addon that you enabled. Search the documentation and the cookbook for more recent versions, or contact the addon maintainer, or leave a message on the talk page. If that doesn't work, contact us at [[PITS:PITS|our issue tracking system]]. Developers can find documentation on how to update old addons at [[CustomMarkup]] and [[Functions]].%0a%0aA: (5) Disable again the faulty addon and if you have more addons to enable, go back to (2).%0a%0aA: PmWiki has a friendly and reactive community and we may be able to quickly provide fixes.%0a%0a[[#pmtoken]]%0aQ: After a PmWiki upgrade, there are warnings "Token invalid or missing" and the changes are not saved.%0a%0aA: Some local customization may need to be updated, please see [[Upgrades#pmtoken]].%0a%0a[[#https]]%0aQ: After some upgrades to website, hosting, or browser, some skin styles/colors and possibly local styles, recipes, and embedded pictures, have stopped working.%0a%0aA: In your local configuration, if you have the variables $PubDirUrl or $FarmPubDirUrl defined with the [@http://@] scheme, replace them with [@https://@]. On secure websites, recent browser versions do not load resources from insecure URLs.%0a%0a[[#obsolete]]%0aQ: After a PHP upgrade, some of my markup rules have been disabled, and a tooltip title says (in English) "Markup rule ... is obsolete and has been disabled. See pmwiki.org/Troubleshooting".%0a%0aA: The obsolete markup rule should appear on the tooltip title and should make it easy to identify which custom configuration or addon/recipe caused it. If it is not obvious, follow the steps in the [[#track-errors|first section]]. Developers can find documentation on how to update old addons at [[CustomMarkup]] and [[Functions]].%0a%0a[[#create_function]]%0aQ: My wiki displays warnings "@@Deprecated: Function create_function() is deprecated@@".%0a%0aA: PHP version 7.2 deprecated a function which PmWiki used for markup definitions and pattern replacements. It is recommended to [[upgrades|upgrade]] to the latest PmWiki version and update all addons and skins from the [[Cookbook/]]. Addons in the [[https://www.pmwiki.org/wiki/Category/PHP72|PHP 7.2]] category are reported to be compatible with PHP 7.2. If you need a specific addon that has not yet been updated please contact us. To update your own addons, you probably need to update your calls to Markup(), see the pages [[Custom markup]], [[Functions]] and [[PmWiki:CustomPagelistSortOrder]].%0a%0aA: The recipe [[Cookbook:PccfToPcfOverride]] may provide a temporary solution until you can update all your add-ons.%0a%0aA: Note that PmWiki itself doesn't use that function, but (older) addons can register instructions to be processed at a later point. That's why the warning reports a line in @@pmwiki.php@@, even if it was requested by a local configuration or an addon.%0a%0aA: How to track down the addons that cause the warnings, see the [[#track-errors|first section]].%0a%0aQ: [[#deprecated]] [[#preg_replace]] My wiki displays warnings "@@Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead@@".%0aA: This is caused by a change in PHP version 5.5 for the [[https://www.php.net/preg_replace | preg_replace()]] function. PmWiki no longer relies on the deprecated feature since version 2.2.56 (it is recommended to upgrade to the latest version) but many recipes do. %0a%0aA: Note that PmWiki itself doesn't use that function, but (older) addons can register instructions to be processed at a later point. That's why the warning reports a line in @@pmwiki.php@@, even if it was requested by a local configuration or an addon.%0a%0aA: Recipes and Skins are currently being updated for [[https://www.pmwiki.org/wiki/Category/PHP55|PHP 5.5]]. Check if there are more recent versions published by their maintainers on the [[(Cookbook:)Cookbook]]. If you update your PmWiki and recipes, and still see the warnings, here is how to find out which recipes cause them:%0a%0aA: For PmWiki version 2.2.71 or newer, in @@config.php@@, enable diagnostic tools: \\%0a%25hlt php%25@@$EnableDiag = 1;@@\\%0aThen visit your wiki with the action 'ruleset', for example %25newwin%25[[PmWiki:PmWiki?action=ruleset]]%25%25 or follow a link like %25pmhlt%25[@[[HomePage?action=ruleset]]@]. This page will list all markup rules; those potentially incompatible with PHP 5.5 will be flagged with filenames, line numbers and search patterns triggering the warning.%0a%0aA: If the @@?action=ruleset@@ page shows no flagged rules, it is possible that either your recipes call the %25hlt php%25@@preg_replace()@@ function directly, or they define various search-replace patterns in incompatible ways. In these cases, your warning should display the file name and line number causing problems. Otherwise, to track down the addons that cause the warnings, see the [[#track-errors|first section]].%0a%0aA: Note that many hosting providers allow you to run different versions of PHP. See the documentation of your hosting plan to learn how to enable a PHP version earlier than 5.5.%0a%0aA: Finally, it is possible to suppress these warnings in PHP 5.5, by setting this line at the beginning of @@config.php@@: \\%0a%25hlt php%25@@error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);@@\\%0aThis should be a temporary solution, left only until your recipes are fixed.%0a%0aA: See categories: (:pagelist group=category name=php*,-php,-php5,-php54 fmt=#csvlist:).%0a%0a[[#crypt]]%0aQ: My wiki displays warnings "@@PHP Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format@@" or "@@Uncaught ArgumentCountError: crypt() expects exactly 2 arguments, 1 given@@".%0aA: You probably have configuration settings that worked on older PHP versions. Here is how to hunt and try to fix this.%0a%0aA: In your (farm)@@config.php@@ or other local or cookbook files, any call to %25hlt php%25@@crypt()@@ can be replaced with @@pmcrypt()@@, eg \\%0a%25hlt php%25@@$DefaultPasswords['edit'] = crypt("my_password");@@ # %25red%25DEPRECATED%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '''pmcrypt'''("my_password");@@ # %25green%25OK%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = array('''pmcrypt'''("pass1"), '''pmcrypt'''("pass2"));@@ # %25green%25OK%25%25%0a%0aA: Additionally, if there are locked passwords with a star @@*@@, you should replace those with [@@lock@]: \\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '*';@@ # %25red%25DEPRECATED%25%25\\%0a%25hlt php%25@@$DefaultPasswords['edit'] = '@lock';@@ # %25green%25OK%25%25 (and no pmcrypt)%0a%0aA: The $DefaultPasswords variables usually have keys like 'edit', 'attr', 'read', 'upload', 'publish'.%0a%0aA: Some of your page files may still have the old star @@*@@ locking. Files that in the past shipped with the star lock were @@Site.GroupAttributes@@, @@SiteAdmin.GroupAttributes@@, @@Site.AuthUser@@ and/or @@PmWiki.GroupAttributes@@ in the directories @@wikilib.d@@ and/or @@wiki.d@@. You need to edit them in a text editor and replace any line among these:\\%0a%25hlt php%25@@passwdedit=*@@\\%0a%25hlt php%25@@passwdattr=*@@\\%0a%25hlt php%25@@passwdread=*@@\\%0a%25hlt php%25@@passwdpublish=*@@\\%0a%25hlt php%25@@passwdupload=*@@%0a%0aA:Edit the file and replace the star @@*@@ with the word [@@lock@] on every existing line. ''Do not add these lines if they are not already in the file, and do not change the lines if there is something other than a single star after the = equals sign''. Save the file, upload it back to your wiki and the warnings should disappear. (If you run a wiki farm, you may have such files in several @@wiki.d@@ directories.)%0a%0aQ: [[#invrange]] My wiki displays warnings "@@Compilation failed: invalid range in character class@@".%0a%0aA: A character class range in a regular expression is something in brackets like @@[A-Z]@@. An invalid character class may look like @@[Z-A]@@, where the "Z" character should not be before but after the "A" character. It may not be that obvious, but it would be in brackets with a dash between the wrong characters.%0a%0aA: If you want to match an actual dash (minus) rather than identify a character range, you need to place it first or last thing, like:\\%0a [@[-AZ] or [AZ-]@]%0a%0aA: To track the error, see [[#track-errors|the first question on this page]], and check the variables $GroupPattern, $NamePattern, $MakePageNamePatterns, $ROSPatterns and other locally configured core variables that contain "Pattern" or "Patterns" in the name.%0a%0a[[#blank_sections]]%0aQ: After a PHP upgrade, some of the pages on my wiki are completely blank, empty, some have blank or missing sections, but the sidebar and the action links are visible.%0a%0aA: Sometimes this may be caused by insufficient [[file permissions]] on the server. The PHP process needs "read/write (rw)" access to all files in the directories "@@wiki.d@@" and "@@uploads@@"; "read (r)" access to those in the "@@wikilib.d@@" directory; "list/search (x)" for the directories themselves. Search the documentation of your hosting provider for more information.%0a%0aA: Alternatively, this may be caused by a change in PHP 5.4 which affects the function %25hlt php%25@@htmlspecialchars()@@.%0a%0aA: The easiest temporary fix would be in your @@php.ini@@, or in @@.user.ini@@ to change the @@default_charset@@ directive to an 8-bit charset, for example cp1252:\\%0a%25hlt php%25[@default_charset = "Windows-1252";@]%0a%0aA: Or, this may sometimes work in @@local/config.php@@:\\%0a%25hlt php%25[@ini_set("default_charset", "Windows-1252");@]%0a%0aA: A more permanent fix would be to [[Upgrades|upgrade]] your installation to a more recent PmWiki version, your recipes, and in your own recipes or modules replace all calls to %25hlt php%25@@htmlspecialchars()@@ with @@PHSC()@@, a PmWiki helper function for such cases.%0a%0aA: The "blank" pages come from the fact that in PHP 5.4 the default encoding switched from an 8-bit encoding to variable-bit validated UTF-8, and that an incorrect UTF-8 string will be rejected. If your wiki uses an 8-bit encoding, it is virtually certain that it is not valid UTF-8. Worse, even if you do use UTF-8 some browsers may submit invalid bits. So the [[Functions#PHSC|%25hlt php%25@@PHSC()@@ function]] always pretends that it converts an 8-bit encoding where all bits are allowed.%0a%0a%0aQ: [[#backtrack_limit]] Very long pages with thousands of lines may appear blank after adding a few additional lines. This may be preformatted text, table, or text inside conditional markup, or text in a custom markup directive.%0aA: This may be caused by the PHP limits on how far to look forward, and loop back, when searching for matches of regular expressions. You may want to split the very long page into several pages, or the very long markup into separate sections/blocks, or you can increase the PHP limits by adding this to @@local/config.php@@:\\%0a%25hlt php%25[@@ini_set('pcre.backtrack_limit', 10000000);@]%0a%0aQ: Why am I seeing strange errors after [[Upgrades|upgrading]]?%0aA: Make sure all of the files were updated, in particular @@pmwiki.php@@ and all files in the @@scripts/@@ directory.%0a%0aA: This question sometimes arises when an administrator hasn't%0afollowed the advice, which used to be less prominent, on the%0a[[PmWiki.installation#notes|installation]] and%0a[[PmWiki.initial setup tasks#dontmodify|initial setup tasks]] pages and has renamed%0a''@@pmwiki.php@@'' instead of creating an ''@@index.php@@'' wrapper script.%0aIf you have renamed ''@@pmwiki.php@@'' to ''@@index.php@@'', then the upgrade procedure%0awon't have updated your ''@@index.php@@'' file. Delete the old version and%0acreate a wrapper script so it won't happen again.%0a%0aA: Sometimes an FTP or other copy program will fail to transfer all of the%0afiles properly. One way to check for this is by comparing file sizes.%0a%0aA: Be sure all of the files in the ''@@wikilib.d/@@'' directory%0awere also upgraded. Sometimes it's a good idea to simply delete the ''@@wikilib.d/@@''%0adirectory before upgrading. (Local copies of pages are stored in ''@@wiki.d/@@'' and not ''@@wikilib.d/@@''.)%0a%0aA: Make sure that the [[(PmWiki.)file permissions]] are correct. The official files have a restricted set of permissions that might not match your site's needs.%0a%0aA: If you use a custom pattern for @@$GroupPattern@@ make sure that it includes Site ($SiteGroup) and since PMWiki 2.2 also @@SiteAdmin@@ (@@$SiteAdminGroup@@).%0aOtherwise migration may fail (e.g. missing @@SiteAdmin@@ for PMWiki 2.2 and later) and/or login does not work.\\%0aAdditionally @@Main@@ (@@$DefaultGroup@@) should be included too.%0a%0a[[#flock]]%0aQ: I'm suddenly getting messages like "@@Warning: fopen(wiki.d/.flock): failed to open stream: Permission denied...@@" and "@@Cannot acquire lockfile@@"... what's wrong?%0a%0aA: Something (or someone) has changed the [[PmWiki/FilePermissions | permissions]] on the ''@@wiki.d/.flock@@'' file or the ''@@wiki.d/@@'' directory such that the webserver is no longer able to write the lockfile. The normal solution is to simply delete the ''@@.flock@@'' file from the ''@@wiki.d/@@'' directory -- PmWiki will then create a new one. Also be sure to check the permissions on the ''@@wiki.d/@@'' directory itself. (One can easily check and modify permissions of the ''@@wiki.d/@@'' directory in %25newwin%25[[https://filezilla-project.org/ | FileZilla]] (open-source FTP app) by right-clicking on the file > File attributes)%0a%0a[[#sidebar]]%0aQ: My links in the sidebar seem to be pointing to non-existent pages, even though I know I created the pages. Where are the pages?%0a%0aA: Links in the SideBar normally need to be qualified by a [[WikiGroup]] in order to work properly (use %25pmhlt%25[@[[Group/Page]]@] instead of [@[[Page]]@]).\\%0aAlso: Make sure you type Side'''B'''ar with a capital B.%0a%0a[[#headers]]%0aQ: Why am I seeing "@@PHP Warning: Cannot modify header information - headers already sent by ...@@" messages at the top of my page.%0a%0aA: If this is the first or only error message you're seeing, it's usually an indication that there are blank lines, spaces, or other characters before the %25hlt php%25[@%3c?php@] or after the [@?>@] in a [[local customization(s)]] files such as @@config.php@@. Double-check the file and make sure there is nothing before the initial [@%3c?php@]. It's often easiest and safest to eliminate any closing [@?>@] altogether. %0a%0aA: When you save the file, the encoding/charset should be either @@cp1252/Windows1252@@ or @@UTF-8@@ without Byte Order Mark. [[https://notepad-plus-plus.org/ | NotePad++]] is an editor that can do this.%0a%0aA: When you transfer the files, tell your FTP manager to use text mode transfer, or, if that doesn't help, binary mode transfer.%0a%0a%0aA: If the warning is appearing after some other warning or error message, then resolve the other error and this warning may go away.%0a%0a[[#session_write_close_error]]%0aQ: How do I make a PHP Warning about @@function.session-write-close@@ go away?%0a%0aA: If you are seeing an error similar to this%0a%0a->[@%0aWarning: session_write_close() [function.session-write-close]:%0aopen(/some/filesystem/path/to/a/directory/sess_[...]) failed: No such file%0aor directory (2) in /your/filesystem/path/to/pmwiki.php on line NNN%0a@]%0a%0aPmWiki sometimes does session-tracking using PHP's%0a[[https://www.php.net/manual/en/features.sessions.php | session-handling functions ]].%0aFor session-tracking to work, some information needs to be written%0ain a directory on the server. That directory needs to exist and%0abe writable by the webserver software. For this example, the%0awebserver software is configured to write sessions in this%0adirectory%0a%0a->[@/some/filesystem/path/to/a/directory/@]%0a%0abut the directory doesn't exist. The solution is to do at least one%0aof these:%0a* '''Create the directory''' and make sure it's writable by the webserver software%0a* Provide a session_save_path value that points to a directory that is writable by the server, e.g. in @@config.php@@:%0a%0a->%25hlt php%25[@session_save_path('/home/someuser/tmp/sessions');@] # unix-type OS%0a->%25hlt php%25[@session_save_path('C:/server/tmp/sessions');@] # Windows%0a%0a[[#multiplepwprompts]]%0aQ: Why is PmWiki prompting me multiple times for a password I've already entered?%0a%0aA: This could happen like out of nowhere if your hosting provider upgrades to PHP version 5.3, and you run an older PmWiki release. Recent PmWiki releases fix this problem.%0a%0aA: Alternatively, this may be an indication that the browser isn't accepting cookies, or that PHP's session handling functions on the server aren't properly configured. If the browser is accepting cookies, then try setting %25hlt php%25@@$EnableDiag=1;@@ in ''@@local/config.php@@'', run PmWiki using [@?action=phpinfo@], and verify that sessions are enabled and that the session.save_path has a reasonable value. Note that several versions of PHP under Windows require that a session_save_path be explicitly set (this can be done in the ''@@local/config.php@@'' file). You might also try setting session.auto_start to 1 in your @@php.ini@@.%0a%0aA: See also the question [[#configphp-order|I have to log in twice]] below.%0a%0aQ: I edited ''@@config.php@@'', but when I look at my wiki pages, all I see is "@@Parse error: parse error, unexpected T_VARIABLE in ''somefile'' on line ''number''.@@"%0a%0aA: You've made a mistake in writing the PHP that goes into the ''@@config.php@@'' file. The most common mistake that causes the T_VARIABLE error is forgetting the semi-colon (;) at the end of a line that you added. The line number and file named are where you should look for the mistake.%0a%0a%0aQ: Searches and pagelists stopped working after I upgraded -- no errors are reported, but links to other pages do not appear (or do not appear as they should) -- what gives?%0a%0aA: Be sure all of the files in the ''@@wikilib.d/@@'' directory%0awere also upgraded. In particular, it sounds as if the @@Site.PageListTemplates@@ page is either missing (if no links are displayed) or is an old version (if the links do not appear as they should). Also make sure that read-permissions (attr) are set for the pages @@Site.PageListTemplates@@ and @@Site.Search@@.%0a%0a[[#mod_security]]%0aQ: Some of my posts are coming back with "403 Forbidden", "406 Not Acceptable", or "418 I'm a teapot" errors, or "Internal Server Error". This happens with some posts but not others.%0a%0aA: Your webserver probably has [[https://github.com/SpiderLabs/ModSecurity | mod_security]] enabled. The mod_security "feature" scans all incoming posts for forbidden words or phrases that might indicate someone is trying to hack the system, and if any of them are present then Apache returns the 403 Forbidden or 406 Not Acceptable error. Common phrases that tend to trigger mod_security include "curl ", "wget", "file(", and "system(", although there are many others (depending on the configuration, percent signs, html tags, international characters).%0a%0aSince mod_security intercepts the requests and sends the "forbidden"%0amessage before PmWiki ever gets a chance to run, it's not a bug in PmWiki, and%0athere's little that PmWiki can do about it. Instead, one has to alter the%0awebserver configuration to disable mod_security or reconfigure it to allow%0awhatever word it is forbidding. Some sites may be able to disable mod_security%0aby placing [@SecFilterEngine off@] in a ''@@.htaccess@@'' file.%0a%0aAlternatively, you may try the recipe Cookbook:EncodePost.%0a%0aQ: I get the following message when attempting to upload an image, what do I do?%0a[-@@'''Warning''': move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1929 is not allowed to access /home/onscolre/public_html/pmwikiuploads/Photos owned by uid 33 in '''/home/onscolre/public_html/pmwiki/scripts/upload.php''' on line '''198'''@@-]%0a%0a@@'''PmWiki can't process your request'''@@%0a%0a[-@@?cannot move uploaded file to /home/onscolre/public_html/pmwikiuploads/Photos/FoundationPupilsIn1958.jpeg@@-]%0a%0a[-@@We are sorry for any inconvenience.@@-]%0a%0aA: Your server is configured with PHP [[https://web.archive.org/web/20201014032613/https://www.php.net/manual/en/features.safe-mode.php|Safe Mode]] enabled (removed as of PHP 5.4.0). Configure your wiki to use a [[PmWiki/UploadsAdmin#sitewideprefix|site-wide uploads prefix]], then create the ''uploads/'' directory manually and set 777 permissions on it (rather than letting PmWiki create the directory).%0a%0a[[#TableRowIndexMax]] [[#divisionbyzero]]%0aQ: I'm starting to see "@@Division by zero error in pmwiki.php...@@" on my site. What's wrong?%0a%0aA: It's a bug in PmWiki that occurs only with the [[tables]] markup and only for versions of PHP >= 4.4.6 or >= 5.2.0. Often it seems to occur "out of nowhere" because the server administrator has upgraded PHP. Try [[upgrad(es)]]ing to a later version of PmWiki to remove the error, or try setting the following in ''@@local/config.php@@'':%0a%0a $TableRowIndexMax = 1;%0a%0a[[#configphp-order]]%0aQ: I have to log in twice [-(two times) (2 times)-]. -or- My password is not being required even though it should. -or- I changed the password but the old password is still active. -or- My @@config.php@@ password is not over-riding my @@farmconfig.php@@ password.%0aA: It could happen if (farm)@@config.php@@, or an included recipe, directly calls the functions %25hlt php%25@@CondAuth()@@, or @@RetrieveAuthPage()@@, @@PageTextVar()@@, @@PageVar()@@ and possibly others, before defining all passwords and before including AuthUser (if required). %0a%0aThe [[PmWiki/LocalCustomizations#configphp-order|order of @@config.php@@]] is very significant.%0a%0a[[#CrashWhenEditing]]%0aQ: When editing an existing page, The "Save" causes a no-response of your server (not a blank page, no response at all, an endless connexion try). To get back the hand, it is necessary to request for another page (by clicking on its link in the menu for instance). And horror!, the ...?action=edit is then inhibited, it becomes impossible to edit any page.%0aA: When the editing of a page is initiated a file names [@.flock@] is created in the [@wiki.d@] repository. As long as this file exists it is impossible to edit any page. This file denotes an edition in progress and is automatically destroyed when leaving successfully an edit action by "Save". In case of a crash of the editing, this file is not destroyed. The remedy is, with an FTP client parameterized to show hidden files, to remove the [@.flock@] file. And all get back OK. This behavior is typically caused by a bug which provokes (directly or indirectly), an endless loop in a recipe concerned by the edited page.%0a%0aQ: I get the error "@@Data Mismatch - Locking FAILED!@@"%0aA: This is probably not a PmWiki error. PmWiki cannot create a lock file due to an underlying file system problem.%0aFor example the disk quota has been exceeded (e.g. by an error log file or file uploads), or there are problems with file system permissions.%0a
+time=1699688617
diff --git a/wikilib.d/PmWiki.Upgrades b/wikilib.d/PmWiki.Upgrades
index 10360f73..97f11112 100644
--- a/wikilib.d/PmWiki.Upgrades
+++ b/wikilib.d/PmWiki.Upgrades
@@ -1,10 +1,10 @@
-version=pmwiki-2.3.15 ordered=1 urlencoded=1
+version=pmwiki-2.3.27 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
-csum=2.3.15 GUI Edit Buttons change (+455)
+csum=2.3.23 PmToken (+1532)
name=PmWiki.Upgrades
post= Save
-rev=105
+rev=109
targets=PmWiki.PmWiki,PmWiki.UpgradingFromPmWiki1,PmWiki.Upgrades,PmWiki.ReleaseNotes,PmWiki.BackupAndRestore,PmWiki.Download,PmWiki.SiteAnalyzer,PmWiki.LocalCustomizations,PmWiki.Troubleshooting,Site.Site,SiteAdmin.SiteAdmin,PmWiki.BasicVariables,PmWiki.WikiWords,PmWiki.EditVariables,PmWiki.Links,PmWiki.PageLists,PmWiki.SkinTemplates,PmWiki.AuthUser,PmWiki.ChangeLog,PmWiki.PageVariables,Site.PageActions,Site.EditForm,Site.PageNotFound,PmWiki.LayoutVariables,Cookbook.PageListMultiTargets,PmWiki.Functions,PmWiki.Version
-text=(:Summary:How to upgrade an existing PmWiki installation:)%0a[[PmWiki]] is designed to make it easy to upgrade the PmWiki software without affecting your existing data files or installation. For most upgrades, you simply copy the files in the new release over your existing installation.%0a%0a%25block bgcolor=#f7f7f7 color=black border='1px solid black' padding=5px%25 '''Note for PmWiki 1.0 sites:''' Upgrading from 1.0.x to 2.0 requires more than simply copying the 2.0 software over the 1.0 installation. See [[(PmWiki:)Upgrading From PmWiki 1]] for more details.%0a%0a%25commentout-pmwikiorg%25 ''Note: this page may have a more recent version, see PmWiki:Upgrades.''%0a%0a[[#gen]]%0a!! Generic instructions %0a%0a!!! 1. Read the release notes%0aPlease read carefully the [[(PmWiki:)ReleaseNotes]] before performing an upgrade, about the changes between your previous version and the new one. See if there are any significant changes or preparation tasks that must be handled before performing the upgrade.%0a%0a!!! 2. Backup%0aIt's ''always'' a good idea to have a [[(PmWiki:)backup( and Restore)]] copy of your existing PmWiki installation before starting. You can copy the entire directory containing your existing installation, or you can just make copies of the ''wiki.d/'' directory and any other local customization files you may have created (e.g., ''@@config.php@@'', ''@@localmap.txt@@'', etc.).%0a%0a!!! 3. Download and extract%0aDownload the version of PmWiki that you want from the [[(PmWiki:)download]] page.%0a%0aExtract the tar image using @@tar -xvzf ''tgzfile''@@, where ''tgzfile'' is the tar file you downloaded above. This will create a @@pmwiki-x.y.z@@ directory with the new version of the software.%0a%0a!!! 4. Copy%0aCopy the files in @@pmwiki-x.y.z@@ over the files of your existing PmWiki installation. For example, if your existing PmWiki installation is in a directory called ''pmwiki'', then one way to copy the new files over the existing ones is to enter the command:%0a%0a->@@cp -a pmwiki-x.y.z/. pmwiki@@%0a%0aNote that BSD systems will not have the -a option as a command-line argument for ''cp'', but that's okay, since it's just shorthand for ''cp -dpR'', so use that instead of ''-a''.%0a%0aSome environments have an alias established for ''cp'' that enable interactive prompts before overwriting a file. To work around this specify the absolute path to ''cp'', such as ''/bin/cp''.%0a%0aOn (some) [=FreeBSD=] servers and Mac OS X systems you need to use %0a%0a->@@cp -Rpv pmwiki-x.y.z/. pmwiki@@%0a%0a!!! 5. Update customisations and recipes%0aThat's it! Your base PmWiki installation is complete.%0a%0aNow use the [[PmWiki:Site Analyzer]] to determine which recipes could be updated to the most recent version.%0a%0aUnless you have made customizations to the ''@@pmwiki.php@@'' script or to the files in ''@@scripts/@@'', your PmWiki installation should continue to run correctly! (Changes to these files are {+not+} recommended).%0a%0a([[Local customizations]] should go in ''@@local/config.php@@'', ''@@pub/css@@'', and ''@@pub/skins/@@''@@yourskinname@@)%0a%0a'''Note''': Additional tips can be found on the [[PmWiki:Troubleshooting]] page.%0a%0a%0a[[#v21v22]]%0a!! Upgrading from version 2.1.27 to 2.2.0%0a%0aBetween the stable versions 2.1.27 and 2.2.0 there are a number of additions. Some of them may need changes to local config files or to wiki pages, and they are outlined here. For the full list of changes see [[ReleaseNotes#v220|the release notes]].%0a%0aIf you are upgrading from a 2.2.beta version, your wiki may already include these features.%0a%0a* Some pages that were formerly in the [[Site]].* group are now in a separate read-protected [[SiteAdmin]].* group: @@Site.AuthUser@@, @@Site.AuthList@@, @@Site.NotifyList@@, @@Site.Blocklist@@, and @@Site.ApprovedUrls@@. If upgrading from an earlier version, PmWiki 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 to @@config.php@@ %25hlt php%25@@$SiteAdminGroup = $SiteGroup;@@%0a%0a* To authorize reading or editing in protected areas, the former password @@"nopass"@@ should now be written as @@"@nopass"@@.%0a%0a* [[WikiWords]] are now disabled by default. To re-enable them, set either $LinkWikiWords or $EnableWikiWords to 1.%0a%0a* The $ROSPatterns variable has changed -- replacement strings are no longer passed through %25hlt php%25@@FmtPageName()@@ i.e., it must now be done explicitly.%0a%0a* [[Links|Page links]] inside included pages, sidebars, headers or footers are now treated as relative to the page where they are written, instead of the page where they appear. For example, in @@Site.SideBar@@, always set the group in a wikilink like %25pmhlt%25[@[[Main/HomePage]]@] or with a page variable [@[[{*$Group}/HomePage]]@], because a link [@[[HomePage]]@] will point to a page @@Site.HomePage@@.%0a%0a* [[PageLists]]%0a** Spaces no longer separate wildcard patterns -- use commas. %0a** %25pmhlt%25[@{$PageCount}, {$GroupCount}, {$GroupPageCount}@] variables used in pagelist templates are now [@{$$PageCount}, {$$GroupCount}, {$$GroupPageCount}@].%0a** The directive no longer accepts parameters from urls by default. In order to have it accept such parameters (which was the default in 2.1 and earlier), add a %25pmhlt%25[@request=1@] option to the [@(:pagelist:)@] directive.%0a%0a* [[Skin templates]] are now required to have %25hlt html%25@@%3c!--HTMLHeader-->@@ and @@%3c!--HTMLFooter-->@@ directives. %0a%0a* Authentication using Active Directory is now simplified, see [[PmWiki.AuthUser]].%0a%0a%0a[[#v220]]%0a!! Upgrading from version 2.2.0 to 2.2.145%0a%25commentout-pmwikiorg%25 ''Note: this page may have a more recent version, see PmWiki:Upgrades.''%0a%0aSome additions since version 2.2.0 may need changes to local config files or to wiki pages, and they are outlined here. For the full list of changes see [[ReleaseNotes|release notes]] and [[change log]].%0a%0a* Version 2.2.10: $EnableRelativePageVars was changed to enabled by default, and it affects [[PageVariables]] from included pages, sidebars, headers and footers.%0a** The form %25pmhlt%25[@{*$var}@] refers to "the currently browsed page" while [@{$var}@] without an asterisk refers to "the physical page where the PageVar is written".%0a** %25red%25 Pages that are designed to work on "the currently browsed page" should switch to using %25pmhlt%25[@{*$FullName}@] instead of [@{$FullName}@]. %25%25 Administrators should especially check any customized versions of [[Site.PageActions]], [[Site.EditForm]], [[Site.PageNotFound]], @@SideBar@@ pages, $GroupHeaderFmt, $GroupFooterFmt, [[Page lists]] in sidebars, headers, and footers. See [[Page variables#specialreferences|Special references]].%0a** If your wiki heavily relies on the previous behavior, you can revert to it, see $EnableRelativePageVars.%0a%0a* Version 2.2.35: Important change for international wikis: the %25hlt php%25@@XLPage()@@ 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 the call to %25hlt php%25@@XLPage()@@: [@%0a include_once("scripts/xlpage-utf-8.php"); # if your wiki uses UTF-8%0a XLPage('bg','PmWikiBg.XLPage');%0a@]%0a%0a%0a[[#v22v23]]%0a!! Upgrading from version 2.2.145 to 2.3.0%0a%25commentout-pmwikiorg%25 ''Note: this page may have a more recent version, see PmWiki:Upgrades.''%0a%0a[[ReleaseNotes#v230|Version 2.3.0]] requires PHP 5.3 or more recent. The new version includes a number of new features, some of which were previously provided by recipes. %0a%0aHere are the things to review when upgrading:%0a%0a* If you previously used Cookbook:PageListMultiTargets, please disable it when you upgrade. The same functionality is now available in the core.%0a* For PHP 8.1, the function %25hlt php%25@@strftime()@@ has been deprecated. PmWiki 2.3.0 provides a replacement function @@PSFT()@@, see PmWiki:Functions#PSFT.%0a* The @@RecentChanges@@ pages now store in the page source the time stamp in a slightly different, and portable international format (easily parsable). When the page is displayed, the new format is automatically converted to the current one ($TimeFmt), so the @@RecentChanges@@ pages will look exactly like before, but the source code will be slightly different. \\%0aIf you have custom $RecentChangesFmt settings, they will be preserved. If you have no custom settings but still prefer the old format, to revert to the old format, add this to @@config.php@@: %25hlt php%25[@%0a# revert to pre-2.3.0 RecentChanges%0a$RecentChangesFmt = array(%0a '$SiteGroup.AllRecentChanges' => %0a '* [[{$Group}.{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]',%0a '$Group.RecentChanges' =>%0a '* [[{$Group}/{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]');%0a@]%0a* The variable $EnableNotSavedWarning is now enabled by default. Add to @@config.php@@ $EnableNotSavedWarning = 0; to disable it. %0a* The core table of contents function ($PmTOC) has had its styles updated, in order to properly indent long sub-headings. Notably, the TOC links now have a @@display:block@@ setting and there are no line breaks between them. If you have previously added custom styles for PmTOC, please review these in case they need updating.%0a%0aSee also [[Release Notes]] for any changes between your previous version and the new one.%0a%0aIf you have any questions or difficulties, please let us know.%0a%0a%0a[[#v22v23]]%0a!! Upgrading from version 2.3.0 to more recent versions%0a%0a!!! [[ReleaseNotes#v2315|2.3.15]] GUI Edit Buttons change%0aPart of these functions were rewritten to avoid 'unsafe inline' JavaScript. While default and most custom buttons should work without change, you should no longer need to url-encode some characters like %25 or add backslashes. If you have such buttons, you may need to update their declarations to strip the extra backslashes. %0a%0a%0a!! FAQ%0a>>faq%3c%3c [[#faq]]%0a%0aQ: How can I determine what version of PmWiki I'm running now?%0aA: See [[version]] - {Version$:Summary}.%0a%0aQ: How can I test a new version of PmWiki on my wiki without changing the prior version used by visitors?%0aA: The easy way to do this is to install the new version in a separate%0adirectory, and for the new version set (in @@local/config.php@@):%0a%25hlt php%25[@%0a $WikiLibDirs = array(&$WikiDir,%0a new PageStore('/path/to/existing/wiki.d/{$FullName}'),%0a new PageStore('wikilib.d/{$FullName}'));%0a%0a@]%0aThis lets you test the new version using existing page content%0awithout impacting the existing site or risking modification of%0athe pages. (Of course, any recipes or local customizations have to%0abe installed in the new version as well.) %0a%0aThen, once you're comfortable that the new version seems to work%0aas well as the old, it's safe to upgrade the old version (and one%0aknows of any configuration or page changes that need to be made).%0a
-time=1669057681
+text=(:Summary:How to upgrade an existing PmWiki installation:)%0a[[PmWiki]] is designed to make it easy to upgrade the PmWiki software without affecting your existing data files or installation. For most upgrades, you simply copy the files in the new release over your existing installation.%0a%0a%25block bgcolor=#f7f7f7 color=black border='1px solid black' padding=5px%25 '''Note for PmWiki 1.0 sites:''' Upgrading from 1.0.x to 2.0 requires more than simply copying the 2.0 software over the 1.0 installation. See [[(PmWiki:)Upgrading From PmWiki 1]] for more details.%0a%0a%25commentout-pmwikiorg%25 ''Note: this page may have a more recent version, see PmWiki:Upgrades.''%0a%0a[[#gen]]%0a!! Generic instructions %0a%0a!!! 1. Read the release notes%0aPlease read carefully the [[(PmWiki:)ReleaseNotes]] before performing an upgrade, about the changes between your previous version and the new one. See if there are any significant changes or preparation tasks that must be handled before performing the upgrade.%0a%0a!!! 2. Backup%0aIt's ''always'' a good idea to have a [[(PmWiki:)backup( and Restore)]] copy of your existing PmWiki installation before starting. You can copy the entire directory containing your existing installation, or you can just make copies of the ''wiki.d/'' directory and any other local customization files you may have created (e.g., ''@@config.php@@'', ''@@localmap.txt@@'', etc.).%0a%0a!!! 3. Download and extract%0aDownload the version of PmWiki that you want from the [[(PmWiki:)download]] page.%0a%0aExtract the tar image using @@tar -xvzf ''tgzfile''@@, where ''tgzfile'' is the tar file you downloaded above. This will create a @@pmwiki-x.y.z@@ directory with the new version of the software.%0a%0a!!! 4. Copy%0aCopy the files in @@pmwiki-x.y.z@@ over the files of your existing PmWiki installation. For example, if your existing PmWiki installation is in a directory called ''pmwiki'', then one way to copy the new files over the existing ones is to enter the command:%0a%0a->@@cp -a pmwiki-x.y.z/. pmwiki@@%0a%0aNote that BSD systems will not have the -a option as a command-line argument for ''cp'', but that's okay, since it's just shorthand for ''cp -dpR'', so use that instead of ''-a''.%0a%0aSome environments have an alias established for ''cp'' that enable interactive prompts before overwriting a file. To work around this specify the absolute path to ''cp'', such as ''/bin/cp''.%0a%0aOn (some) [=FreeBSD=] servers and Mac OS X systems you need to use %0a%0a->@@cp -Rpv pmwiki-x.y.z/. pmwiki@@%0a%0a!!! 5. Update customisations and recipes%0aThat's it! Your base PmWiki installation is complete.%0a%0aNow use the [[PmWiki:Site Analyzer]] to determine which recipes could be updated to the most recent version.%0a%0aUnless you have made customizations to the ''@@pmwiki.php@@'' script or to the files in ''@@scripts/@@'', your PmWiki installation should continue to run correctly! (Changes to these files are {+not+} recommended).%0a%0a([[Local customizations]] should go in ''@@local/config.php@@'', ''@@pub/css@@'', and ''@@pub/skins/@@''@@yourskinname@@)%0a%0a'''Note''': Additional tips can be found on the [[PmWiki:Troubleshooting]] page.%0a%0a%0a[[#v21v22]]%0a!! Upgrading from version 2.1.27 to 2.2.0%0a%0aBetween the stable versions 2.1.27 and 2.2.0 there are a number of additions. Some of them may need changes to local config files or to wiki pages, and they are outlined here. For the full list of changes see [[ReleaseNotes#v220|the release notes]].%0a%0aIf you are upgrading from a 2.2.beta version, your wiki may already include these features.%0a%0a* Some pages that were formerly in the [[Site]].* group are now in a separate read-protected [[SiteAdmin]].* group: @@Site.AuthUser@@, @@Site.AuthList@@, @@Site.NotifyList@@, @@Site.Blocklist@@, and @@Site.ApprovedUrls@@. If upgrading from an earlier version, PmWiki 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 to @@config.php@@ %25hlt php%25@@$SiteAdminGroup = $SiteGroup;@@%0a%0a* To authorize reading or editing in protected areas, the former password @@"nopass"@@ should now be written as @@"@nopass"@@.%0a%0a* [[WikiWords]] are now disabled by default. To re-enable them, set either $LinkWikiWords or $EnableWikiWords to 1.%0a%0a* The $ROSPatterns variable has changed -- replacement strings are no longer passed through %25hlt php%25@@FmtPageName()@@ i.e., it must now be done explicitly.%0a%0a* [[Links|Page links]] inside included pages, sidebars, headers or footers are now treated as relative to the page where they are written, instead of the page where they appear. For example, in @@Site.SideBar@@, always set the group in a wikilink like %25pmhlt%25[@[[Main/HomePage]]@] or with a page variable [@[[{*$Group}/HomePage]]@], because a link [@[[HomePage]]@] will point to a page @@Site.HomePage@@.%0a%0a* [[PageLists]]%0a** Spaces no longer separate wildcard patterns -- use commas. %0a** %25pmhlt%25[@{$PageCount}, {$GroupCount}, {$GroupPageCount}@] variables used in pagelist templates are now [@{$$PageCount}, {$$GroupCount}, {$$GroupPageCount}@].%0a** The directive no longer accepts parameters from urls by default. In order to have it accept such parameters (which was the default in 2.1 and earlier), add a %25pmhlt%25[@request=1@] option to the [@(:pagelist:)@] directive.%0a%0a* [[Skin templates]] are now required to have %25hlt html%25@@%3c!--HTMLHeader-->@@ and @@%3c!--HTMLFooter-->@@ directives. %0a%0a* Authentication using Active Directory is now simplified, see [[PmWiki.AuthUser]].%0a%0a%0a[[#v220]]%0a!! Upgrading from version 2.2.0 to 2.2.145%0a%25commentout-pmwikiorg%25 ''Note: this page may have a more recent version, see PmWiki:Upgrades.''%0a%0aSome additions since version 2.2.0 may need changes to local config files or to wiki pages, and they are outlined here. For the full list of changes see [[ReleaseNotes|release notes]] and [[change log]].%0a%0a* Version 2.2.10: $EnableRelativePageVars was changed to enabled by default, and it affects [[PageVariables]] from included pages, sidebars, headers and footers.%0a** The form %25pmhlt%25[@{*$var}@] refers to "the currently browsed page" while [@{$var}@] without an asterisk refers to "the physical page where the PageVar is written".%0a** %25red%25 Pages that are designed to work on "the currently browsed page" should switch to using %25pmhlt%25[@{*$FullName}@] instead of [@{$FullName}@]. %25%25 Administrators should especially check any customized versions of [[Site.PageActions]], [[Site.EditForm]], [[Site.PageNotFound]], @@SideBar@@ pages, $GroupHeaderFmt, $GroupFooterFmt, [[Page lists]] in sidebars, headers, and footers. See [[Page variables#specialreferences|Special references]].%0a** If your wiki heavily relies on the previous behavior, you can revert to it, see $EnableRelativePageVars.%0a%0a* Version 2.2.35: Important change for international wikis: the %25hlt php%25@@XLPage()@@ 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 the call to %25hlt php%25@@XLPage()@@: [@%0a include_once("scripts/xlpage-utf-8.php"); # if your wiki uses UTF-8%0a XLPage('bg','PmWikiBg.XLPage');%0a@]%0a%0a%0a[[#v22v23]]%0a!! Upgrading from version 2.2.145 to 2.3.0%0a%25commentout-pmwikiorg%25 ''Note: this page may have a more recent version, see PmWiki:Upgrades.''%0a%0a[[ReleaseNotes#v230|Version 2.3.0]] requires PHP 5.3 or more recent. The new version includes a number of new features, some of which were previously provided by recipes. %0a%0aHere are the things to review when upgrading:%0a%0a* If you previously used Cookbook:PageListMultiTargets, please disable it when you upgrade. The same functionality is now available in the core.%0a* For PHP 8.1, the function %25hlt php%25@@strftime()@@ has been deprecated. PmWiki 2.3.0 provides a replacement function @@PSFT()@@, see PmWiki:Functions#PSFT.%0a* The @@RecentChanges@@ pages now store in the page source the time stamp in a slightly different, and portable international format (easily parsable). When the page is displayed, the new format is automatically converted to the current one ($TimeFmt), so the @@RecentChanges@@ pages will look exactly like before, but the source code will be slightly different. \\%0aIf you have custom $RecentChangesFmt settings, they will be preserved. If you have no custom settings but still prefer the old format, to revert to the old format, add this to @@config.php@@: %25hlt php%25[@%0a# revert to pre-2.3.0 RecentChanges%0a$RecentChangesFmt = array(%0a '$SiteGroup.AllRecentChanges' => %0a '* [[{$Group}.{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]',%0a '$Group.RecentChanges' =>%0a '* [[{$Group}/{$Name}]] . . . $CurrentTime $[by] $AuthorLink: [=$ChangeSummary=]');%0a@]%0a* The variable $EnableNotSavedWarning is now enabled by default. Add to @@config.php@@ $EnableNotSavedWarning = 0; to disable it. %0a* The core table of contents function ($PmTOC) has had its styles updated, in order to properly indent long sub-headings. Notably, the TOC links now have a @@display:block@@ setting and there are no line breaks between them. If you have previously added custom styles for PmTOC, please review these in case they need updating.%0a%0aSee also [[Release Notes]] for any changes between your previous version and the new one.%0a%0aIf you have any questions or difficulties, please let us know.%0a%0a%0a[[#v22v23]]%0a!! Upgrading from version 2.3.0 to more recent versions%0a%0a!!! [[ReleaseNotes#v2315|2.3.15]] GUI Edit Buttons change [[#guiedit]]%0a%0aPart of these functions were rewritten to avoid 'unsafe inline' JavaScript. While default and most custom buttons should work without change, you should no longer need to url-encode some characters like %25 or add backslashes. If you have such buttons, you may need to update their declarations to strip the extra backslashes. Please contact us if you need assistance.%0a%0a!!! [[ReleaseNotes#v2323|2.3.23]] PmToken [[#pmtoken]]%0a%0aThis version adds a session token to core edit, upload, attributes and other forms. This is a way to mitigate [[Wikipedia:CSRF|CSRF vulnerabilities]].%0a%0aAll core forms and elements have been updated and should work without change. %0a%0aSome installations might encounter the warning "Token invalid or missing" and the changes are not saved. This can be caused by custom edit or upload forms, automated scripts posting to the wiki, AJAX posting text or uploads used by some recipes, or partial upgrades where some core scripts haven't been updated. Most of these should be easy to update -- please check if you're using the latest recipe versions, or report such cases to us.%0a%0aTo update custom forms:%0a%0a* In a form written in wiki markup, include the element %25pmhlt%25[@(:input pmtoken:)@] after the [@(:input form...:)@] directive.%0a%0a* If your script defines the variable $PageUploadFmt, it should now include the element: %25hlt html%25@@[=%3cinput type='hidden' name='\$TokenName' value='\$TokenValue' />=]@@ inside the @@[=%3cform...>=]@@ element.%0a%0aIf you are unable to update your scripts, you can disable the PmToken functionality with this in config.php:%0a%0a%25hlt php%25[@%0a $EnablePmToken = 0; # edit, upload, attributes, approveurls%0a $PmFormEnablePmToken = 0; # PmForm%0a@]%0a%0aIf you have recipes or custom functions that make changes to the wiki, and you want to benefit from the built-in PmToken functions, see [[Functions#pmtoken]].%0a%0a%0a!! FAQ%0a>>faq%3c%3c [[#faq]]%0a%0aQ: How can I determine what version of PmWiki I'm running now?%0aA: See [[version]] - {Version$:Summary}.%0a%0aQ: How can I test a new version of PmWiki on my wiki without changing the prior version used by visitors?%0aA: The easy way to do this is to install the new version in a separate%0adirectory, and for the new version set (in @@local/config.php@@):%0a%25hlt php%25[@%0a $WikiLibDirs = array(&$WikiDir,%0a new PageStore('/path/to/existing/wiki.d/{$FullName}'),%0a new PageStore('wikilib.d/{$FullName}'));%0a%0a@]%0aThis lets you test the new version using existing page content%0awithout impacting the existing site or risking modification of%0athe pages. (Of course, any recipes or local customizations have to%0abe installed in the new version as well.) %0a%0aThen, once you're comfortable that the new version seems to work%0aas well as the old, it's safe to upgrade the old version (and one%0aknows of any configuration or page changes that need to be made).%0a
+time=1699692726