Contemplate Flattener

1.0b

27 May 2003
If you flatten a password-protected site, the PHP and ASP versions of the Flattener will succeed because they can capture your authentication information and carry it through to their internal assembly process. However, this functionality is currently not available in the Perl version, so flattening a password-protected site with flattener.cgi will fail with file permissions errors.

1.0

29 Aug 2003
The alignment of the items on the main Flattener menu is improved.

The get_setting function now contains an extra line to ensure that Contemplate will evaluate a setting of "0" in the preferences file as false in every language. The ASP version was evaluating "0" as true, resulting in some preference settings not taking effect.

1.0.1

30 Oct 2003
You no longer need to specify the directory location of your page definitions file if you store it in the contemplate directory. For example, your setting for "read page definitions from" in preferences.ini might be simply "pages.txt." You can still store your definitions file elsewhere by using a setting like "../other/pages.txt."

If you're using Apache's mod_rewrite or other software to rewrite dynamic URLs, you no longer need to use "assembled" as the string that triggers the rewrite. If you wish to use a different string, you can open each of the server-side scripts included with your version of Contemplate, look for the $URL_rewriting_flag variable definition, and change it in the script. (This setting is not available in the preferences file because the scripts need it in order to read the preferences file.)

1.0.2

21 Nov 2003
The $URL_rewrite_flag variable is now properly declared as a global in PHP functions. This problem caused the PHP version of the flattener to incorrectly convert dynamic URLs to flattened URLs.

1.0.3

18 May 2004
Assembler.php and flattener.php now come with a few lines commented out to enable compatibility with open_basedir restrictions on some servers. The commented-out lines let the scripts write data to files with relative paths, which usually works and avoids open_basedir problems. To use absolute paths, if you receive errors writing data, you can search the scripts for "open_basedir" and restore the indicated lines.

1.0.4

06 Aug 2004
The primary purpose of this release is to improve security. The Flattener and Formulator scripts no longer allow users to override your Contemplate preferences by passing values in through the query string. Since these are the two scripts that can write files, this change prevents a malicious user from manipulating these scripts to overwrite your content files.

Also, the default password protection scheme now uses direct password protection on each of the Contemplate subfolders, rather than on a login file that all the utility pages include. This change required moving the Flattener script to its own subfolder. Under this arrangement, you can set separate permissions for each of the Contemplate subfolders, or, with some web servers (e.g., Apache), copy the same permissions to each subfolder for single-login access to all of them.

1.1.0

10 Dec 2004
Flattener.php now runs without warning messages if you've lowered your PHP error reporting level to show warnings. All internal variables are properly initialized to enable this change.

Previously, Contemplate did not support dashes in page, field, and form element names. It should now.

1.1.1

19 May 2005
The most complicated portion of Contemplate is the Unflatten option in the Flattener, and to our knowledge, nobody has ever used it. So, we've removed the Unflatten option, and we've replaced it with two more useful features.

First, you can now flatten only a subset of pages by entering a value for page names to flatten or page names to skip. For example, if your site has 200 pages and you've only modified the five pages whose names contain "_menu," you can save some time by entering "_menu" into the Only Names Containing field. The Flattener will show you which pages it actually flattens and which pages it skips.

Second, you can use a new Preview option to display the HTML of each flattened page along with the report of which pages are flattened. This can provide a quick way to double-check your work or view many pages of the site in a single browser window. Please note that this feature currently only displays the body portion of the HTML, so background colors as well as included JavaScript, CSS, or other files won't be present. (Note to contributors: displaying a GIF image of the fully rendered page instead of the HTML would be a great next step for this feature!)

If you're flattening pages that contain Unicode characters, you can place the meta tag

<meta http-equiv="content-type" content="text/html; charset=utf-8">

in your template, and flattener.asp will process the characters correctly. The PHP and Perl versions of the Flattener handle Unicode automatically.

1.2.0

19 Dec 2005
No changes were made to the Flattener in this release.

1.2.1

01 Mar 2006
A variable that was not initialized properly caused flattener.php to show warning messages when using the preview option. This has been corrected.

1.2.2

01 Mar 2007
Contemplate relies on several environment variables to find files on different kinds of servers, and it used to use the "OS" environment variable to decide which additional environment variables it could look for. However, the "OS" environment variable itself is not available on all servers. Contemplate now simply tries a couple different environment variables, and shows error messages if at least one of the required variables is not present.

1.2.3

04 Nov 2008
A bug in flattener.php that prevented sites from flattening when they were stored at a directory level other than the root directory has been corrected.

1.2.4

30 Nov 2009
No changes were made to the Flattener in this release.

1.3.0

1 Dec 2009
No changes were made to the Flattener in this release.