19/02/2024 — Adopted Rexsel based Transforms.
  • I have converted the Web site XSL into the compact form Rexsel. This is an experimental language which I have designed to make writing XSL code easier, and not rely on the verbose XML approach that is currently used. I have written a compiler together with a (relatively simple) editor/compiler app for MacOS to support entering the code. There is also a command line (also for MacOS) version for running within Apache Ant build files. The main page transfor is shown here (page2xhtml.rxsl). If anyone is interested in using Rexsell please Email me (
17/02/2024 — System Crash.
  • Major problem with the documentation and example pages not displaying. Sorry to all who saw this, the fault was entirely mine. I made a change in the main sitemap which caused all the documentation and example pages to go to the content sub-sitemap instead of the relevant sub-sitemaps.
06/02/2024 — Displaying XSL transforms using a pretty printer.
  • Added XSL Transforms of this site in "pretty-printed" form on Downloads page as examples of Paloose based transforms. The formatting is based on my Rexsel language.
13/11/2023 — Updated Version (1.19.4)
  • Corrected PasswordTransformer that was still using MD5 transform, not Blowfish.
  • Cured illegal null in XsltProcessor->setParameter() in PageHitTransformer and ErrorPage.
26/09/2023 — Updated Version (1.19.3)
  • Updated for deprecated problems with PHP8 throughout.
15/09/2023 — Updated Version (1.19.2)
  • Updated SCSS plugin for PHP8, using the WP-SCSS version.
  • Updated SCSSCompiler->compile() to access new version of WP-SCSS.
  • Updated XHTMLSerializer and HTMLSerializer to output PHP version in meta data.
12/08/2023 — Updated Version (1.19.1)
  • Removed expanding Paloose variables in request parameter input (for URL parameters).
  • Added CDATA processing in XHTMLSerializer and HTMLSerializer.
  • Updated to use PHP8.
  • Changed const declarations to define() in SCSSCompiler.
  • Complete rewrite of WildcardURIMatcher() to use regular expressions.
19/04/2023 — Updated Version (1.17.2)
Resolved obscure bug in StringResolver when in PCMS by a complete rewrite of pattern matching.
21/03/2023 — Updated Version
Added single quote replacement to Entity in RequestParameterModule.
21/03/2023 — Updated Version (1.17.1)
Completely rewritten source:insert to cure numerous problems when running Paloose CMS.
16/03/2023 — Updated Version (1.16.0)
  • Added EncryptBF to enhance security using the Blowfish algorithm.
  • Updated PasswordTransformer to reflect this change.
  • Major changes throughout authorise system to cope with Blowfish changes.
10/03/2023 — Updated Version (1.15.0)
Added delete fragment in source:insert. There does not seem to be a facility in Cocoon 2.x for deleting a single XML node, only an entire file.
28/02/2023 — Updated Version (1.14.0)
Cured major bug in StringResolver that would not expand variables embedded in strings.
28/01/2023 — Updated Version (1.13.4)
Cured bug in ModuleWriteTransformer preventing correct detection of paloose:module tag.
04/01/2023 — Updated Version (1.13.4)
Updated Redirect module which was not being recognised within selectors.
28/12/2022 — Updated Version (1.13.0)
I have changed the global variables and how the serializer properties are defined. In each of these cases the original way of defining them was to use the tag/element as the name of the property/variable being defined. This requires the schemas to allow any text to appear within these elements, thus requiring the use of the ANY type elements. This is dangerous: it allows anything to appear within the elements. The cost of this generality is the dismantling of the structure. Because any element is allowed it is impossible to formally validate the structure of the document. See Goldfarb (The SGML Handbook): "An element type that has an ANY content specification is completely unstructured." I think it is important that a correct syntactically (and semantically) schema is produced.
  • Changed enclosed serializer elements to parameters.
  • Changed enclosed global-variables elements to variables.
4/10/2022 — Updated Version (1.12.3)
  • Cured problem preventing null namespaces in enclosed serializer elements.
  • Updated RNG Schema for sitemaps.
  • General cosmetics.
12/8/2022 — Updated Version (1.12.0)
  • Added src/dst in pipeline for SCSS transformer (component values now default values).
  • Corrected static call to non-static method DOMImplementation in HTMLSerializer.
  • Cured bug where GEDCOM tags starting with "_" were not being recognised.
  • Added MobileSelector to support selection on mobile devices.
15/1/2021 — Updated Documentation
A new version of the documentation is available based on the on-line text. It has a contents list and an index.
18/12/2020 — New Version (1.11.2)
Include Utilities class added to SCSSCompile.
12/12/2020 — New Version (1.11.1)
The facility to use SCSS/SASS style files has been added. SCSS provides for much more structured and readable CSS style files. The current Paloose site uses this extensively.
12/7/2020 — Joomla and WordPress plugin support.
I am no longer supporting the method of using Paloose as a client to the WordPress and Joomla systems. If you still want a pipelined approach to using XML within your site use at your discretion. I do not accept any responsibility for any problems. If all you require is a single XSL conversion, then write a small scrap of PHP within your CMS code to translate the XML. I have done this successfully on a WordPress site.
23/11/2020 — New Version (1.10.1)
Cured nasty fault in DirectoryTransformer that stopped recursion of directories.
11/7/2020 — New Version (1.10.0)
Changed sizeof() function calls to use empty() and count(). Also some minor cosmetics.
15/03/2017 — New Version (1.9.1)
Cured bug that prevented certain cases of caching
11/03/2017 — New Version (1.9.0)
Added expansion of module variables in sitemap globals. Added VariableTransformer and String2XMLTransformer (to support PCMS). Cured bug which gave protected error (removed gTranslatedDOM variable in I18Transformer and GalleryTransformer)
15/03/2017 — New Documentation
A completely new documentation PDF is available here.
15/03/2017 — New Version (1.8.0)
Added ResourceExistsSelector and cured null otherwise problem in pipe selectors
22/03/2016 — New Version (1.7.2)
Cured null include/exclude problem in DirectoryGenerator. Added dir:empty tag for null returns from scan directory in DirectoryGenerator.
30/11/2015 — New Version (1.7.1)
I missed a change in XMLSerializer.php that should have been done for 1.7.0.
29/11/2015 — AntWeave Links
I have developed a Java/XSL based literate programming task for Ant using NoWeb format source file. Feel free to download from the AntWeave site.
29/11/2015 — New Version (1.7.0)
Changes throughout to ensure code is compliant with PHP STRICT.
12/09/2015 — BitBucket Repository
I am now hosting Paloose as a repository on BitBucket. If you want developers access to this repository then please Email me ( This is a source distribution so if you want a built (binary equivalent) version please download the latest from this site, current version (1.6.0).
04/09/2015 — New Version (1.6.0)
There are major changes (1.6.0) to the build system before using BitBucket (should only effect developers). Also updated to use new log4php version, since log4php does not allow named namespaces, only the default in the configuration file. Some minor cosmetic updates.
03/09/2015 — Removing SourceForge support
I will shortly be removing the SourceForge hosting Paloose and replacing it with a Git repository on BitBucket. I will make it easier to ensure that the latest version is available. Not sure when I will do this but please do not use the SourceForge download (it is not the latest anyway).
26/05/2015 — New Version (1.5.5)
New Version (1.5.5) to correct several problems, including update of PHP to 5.5.
04/03/2015 — Updated site
General update to cure some broken links.
31/05/2012 — Updates to full version
The full version of Paloose now contains the log4php folder that I use. It may not be the latest version so if you require that then replace it with the latest log4php download.
26/05/2012 — New Version (1.5.2b5)
New Version (1.5.2b5) to correct a bug in the compact version which caused an error message with non-existent logging variable.
24/05/2012 — Simple HelloWorld site updates
I have updated the HelloWorld example to bring it in line with the latest versions of Paloose. I had completely ignored this when updating Paloose — sorry for any problems in getting Paloose to work, mea culpa.
10/02/2012 — New Version (1.5.2b4)
New Version (1.5.2b4) to correct a couple of bugs, improve logging and sort Mac OS-X Lion compatibility. Plugins updated also.
08/08/2011 — New Version (1.5.2)
New Version (1.5.2) to add cookie support
10/02/2011 — New Version (1.5.0b3)
New Version to remove spurious logging output in SourceWritingTransformer
22/01/2011 — New Version (1.5.0b2)
Cured bug that stopped request parameters being recognised
15/01/2011 — New Version (1.5.0b1)
New version to redefine the way Paloose is called. It now uses a class wrapper to further isolate Paloose from calling systems such as WordPress and Joomla!. It also supports multiple calls from a single template page within the calling system. Note that this requires a change to the invoking program. Older version designed to work on 1.4.0 and earlier will not work with 1.5.0 and later. See here for more details. A Joomla! plugin has also been added — see the appropriate plugin page for more details. Please note that the plugins are very much work-in-progress and could change (though not by much). I present them for download on a caveat emptor basis. Please be patient if there are problems and let me know as soon as you can.
23/12/2010 — New Version (1.4.0b4)
I have adapted Paloose to support client/server working. This enables Paloose to work as a WordPress plugin (for example) so that Paloose based sites feed XML data based into a WordPress page. This is very much work in progress but I have decided to make early versions available so that people can experiment (at their own risk obviously). Any comments will be very welcome. I am also continuing to refine the Paloose documentation on the Web site, so please be patient. Note that if you are updating from previous version os Paloose you will have to update the Paloose configuration file (paloose.php) as the constant definitions have changed name and another has been added. See the configuration details.
11/10/2010 — New Web Site
After many months of other activities I decided it was time that I redid the Paloose web site. It is not 100% finished (there are some residual problems with the drop-down menus on Safari), but I hope that it is almost there. The paper documentation is still the old version until I can update that. Any problems then please contact me on Some parts of the old site were not working and my apologies for that; I thought it better to update everything rather than just sort the odd things on the old site. I have also taken the opportunity to correct spelling mistakes and problems in the coding examples.
15/09/2010 — TidyGenerator Support
TidyGenerator no longer supported as I have found it is too unstable. I may revisit this decision later when I have the time. However I have not removed it from the distribution, just the documentation.
06/09/2010 — New version (1.3.6b1)
New version to cure browser recognition bug in Opera.
02/08/2010 — New version (1.3.6)
New version which adds "Generated" meta data in HTML head with version number.
19/01/2010 — Added SQL worked example
I have added a fuller example of using the SQL transformer together with the authorisation manager. I hope it helps with some of the questions that I have been asked recently. Thanks to all those who pointed out some errors in this area — especially in the area of Unicode character handling.
12/01/2010 — New version (1.3.5b5)
New version which improves Unicode/UTF-8 handling. Cured numerous other bugs and improved SQL functionality, and improved Gallery to allow richer text descriptions. There is also a small but important attribute change in sql:query.
09/12/2009 — Compact version
The compact version of Paloose is now avaliable on the downloads page.
07/12/2009 — Documentation additions
I have added some information on how to use SQL data to set up a selector list in PForms. I have also corrected some mistakes in the flow script examples. Sorry to all those who were confused by this, mea culpa.
01/12/2009 — New Version (1.3.4b4)
New version to clean-up missed deprecated functions. Also sorted out some missed documentation issues in the flow examples.
05/10/2009 — New Version (1.3.4b3)
New version to remove deprecated functions.
02/08/2009 — New Version (1.3.4b2)
New version to cure entity translation problem in Utilities::xlateEntiies().
Copyright 2006 – 2023 Hugh Field-Richards. All Rights Reserved.