The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
Revision history for Perl extension Apache::PageKit.

	For more details on migration, see migration/README

1.00
	- Moved most of POD documentation to DocBook, published
		at http://www.pagekit.org/guide
	- Renamed <PKIT_*> tags as follows:
	  <PKIT_IF NAME="VIEW:view"> -> <PKIT_VIEW NAME="view">
	  <PKIT_LOOP NAME="MESSAGE"> -> <PKIT_MESSAGES>, <PKIT_IS_ERROR>, <PKIT_MESSAGE>
	  <PKIT_VAR NAME="HOSTNAME"> -> <PKIT_HOSTNAME>
	- support for relative and absolute names for PKIT_COMPONENT
	- you may now place static HTML files in the pagekit/View/Default
		or View/pkit_view directories.
		If pagekit can not locate the approriate
		template/xml file, it will return declined, but set
		the filepath so that apache returns the files.
	- fixed up static handing with default_page and not_found_page
		(Boris Zentner)
	- Replaced MyPageKit::Common with __PACKAGE__ in Common.pm
		(Boris Zentner)

0.99
	- document() function now works in XML::XPathTemplate
	- logins are redirected to selfurl if there is no pkit_done param
	- merged View/Component and Page directories.
	- $model->input_param -> $model->input, $model->fillinform, $model->pnotes
	- $model->output_param -> $model->output
	- $model->dispatch(class,method,params) now is
		my $class_object = $model->pkit_create(class)
		$class_object->method(params);
	- authentication code no longer sets $model->input_param('pkit_user')
		and $model->output_param('pkit_user')
	- Fixed warning messages if $^W is turned on
	- Now requires classes if they are not already loaded.  (Boris Zentner)
	- Fixed bug when calling pkit_get_orig_uri from pkit_get_default_page
	- Fixed bug when page_id is not found.
	- Now matches </PKIT_COMPONENT>, </PKIT_VAR>, </MODEL_VAR> tags
		generated by XSLT
	- Fixed bug in View.pm for checking for new uploads to $pkit_view
		directory.
	- Fixed bug in XML::XPathTemplate where queries were converted
		to lowercase. (Boris Zentner)

0.98	Mon May  7 14:37:08 2001 EST
	- Added support for XML::LibXSLT - can now generate
                pages from XML and XSL stylesheets
	- Separated out XML Template code in new module,
		XML::XPathTemplate
	- update last_activity in session for every hit - 
		makes sure that recent_login works everytime
		and overcomes the fact that Apache::Session only
		does a shallow check of the hash.
	- Fixed bug with pkit_get_orig_uri
	- Checks for recursive PKIT_COMPONENTS (that is over 100)
	- When user logs out of a page that requires a login,
		goes to default_page instead of login_page
	- Fixed bug with cache when new template was placed in a
		directory when there was already a corresponding template
		in the 'Default' directory
	- Added pkit_cleanup_code hook for Model class (Boris Zentner)
	- Error code rewritten, since using $SIG{__DIE__} does not
		play well with eval, and there were problems with the
		server hanging after a die, when the session wasn't
		properly deleted.  Die's are now trapped using 'eval'.
		Also renamed Apache::PageKit::Error to Apache::ErrorReport
	- pkit_message works when you perform a redirect
		using $model->pkit_redirect
	- Fixed bug with use_template is set to 'no'
	- Fixed bug with XPath queries.
	- Fixed bug with locating only files in Page dir for
		preparse_templates

0.97	Wed Apr 25 17:07:31 2001 EST
	- Login code has been rewritten.  To attempt a login, the
		pkit_login request parameter must be set.
		The new_credential configuration option is no longer
		supported.
	- added can_edit to server config section Config.dtd file.
	- Names in <CONTENT_VAR> and <CONTENT_LOOP> tags are
		XPath queries
	- Removed support for navigation bars, since they didn't fit
		in well with the new Content and View modules.  Might
		add them back if there is demand and I can find an
		clean way of doing it (using XPointers in content
		XML file???)
	- Removed support for $model->content_param, since content
		is now compiled into template and it is not possible
		to get or set the tags run time.
	- Automically converts UTF-8 Encoding to latin1 encodeing,
		if Unicode::String is loaded (Yann Kerhervé)
	- fixed bug with pre-parsing content from sub-directories
	- input_param now works with parameters containing multiple values
	- Add $model->pkit_set_errorfont($field), used mark <PKIT_ERRORFONT>
		tags for errors.
	- Added pkit_root method, gets PageKit root directory
	- no longer escape pkit_done
	- works with mod_proxy_add_uri.c apache module, using X-Original-URI
		header
	- Removed PKIT_LOGINOUT_LINK, this tag was
		not necessary and cluttered the API,
		see migration/README for details
	- removed search_engine_headers config option
	- server_id is now passed to startup, solves
		problem with server options not being
		loaded properly at startup.
	- Added pkit_get_session_id
	- Added pkit_fixup_uri method
	- Added request_param_in_tmpl global attribute, which
		supplements request_param_in_tmpl page attribute
	- Added $model->pkit_output_filter, a hook that can
		be used to filter the output
	- Added <PKIT_VAR NAME="HOSTNAME">, which specifies
		current host name.
	- Added $model->pkit_get_server_id - gets server id from 
		Config.xml file.
	- Added $model->pkit_get_default_page - put in so that
		it can be overridden in derived model class
	- if cache_dir is not set, default to the PKIT_ROOT/View/cache
		and PKIT_ROOT/Content/cache
	- moved html_clean_level from global section to server section
	- added pkit_post_common_code hook, similar to
		pkit_common_code, but called after page code is
		executed.
	- Added <CONTENT_(IF|UNLESS|ELSE)> tags.
	- Fixed typo with login/out message.
	- Components can now have content associated with them
		(needs testing)
	- Fixed problems with Content caching when page_id contains
		'/' - content cache files are now determined my using
		a MD5 hash

0.96	Fri Feb 02 04:18:22 2001 EST
	- added $model->pkit_input_hashref method, gets inputs
		(request params) as a reference to hash
	- renamed pkit_set_page_id to pkit_internal_redirect
		easier to remember and naming consistant with
		pkit_redirect method
	- Added installation troubleshooting tips, thanks to
		Chris Burbridge and Nick Wood for helpful pointers
	- Apache::PageKit->handler and startup are now called as
		 class methods
	- pagekit.org example cookies should work even when
		the url is not of the form *.pagekit.org
	- fixed error when cookie_domain was not set
	- cookie_domain is now a NMTOKENS field and you can pass
		multiple domains to it, seperated by spaces
	- Added $model->pkit_query method which is a wrapper to
		HTML::Template::query
	- Added support for <PKIT_VAR NAME="LAST_CRUMB">
	- Fixed errors with s/cookie_crumb/bread_crumb/
	- Added session_expires to control the expire time for
		the session cookie

0.95	Tue Jan 16 15:12:21 2001 EST
	- Added method $model->pkit_redirect($url)
	- Cache files are now 'chown'ed to the user and group
		specified in the User and Group apache configuration
		directives.  This is because the cache files are
		generated under server startup, which is typically
		run under 'root', but the cache files need to be
		writeable by the Apache children, which run under
		a non-root user.
	- Made the Model base class (MyPageKit::Common) user
		configurable, using the model_bass_class global
		configuration option. This way two or more distinct
		pagekit sites can operate on the same server.
	- Added cache_dir global configuration option that
		allows the administrator to specify the directory
		to store the view and content cache.
	- Fixed Apache::PageKit::Model->dbh so that it calls
		MyPageKit::Common->pkit_dbi_connect if there isn't
		already a database handle.

0.94	Wed Jan 10 02:25:51 2001 EST
	- Replaced derived Apache::PageKit handler module (eg MyPageKit)
		with MyPageKit::Common and Apache::PageKit->handler.
		See migration/README for details.
	- Changed structure of Model to allow for multiple model
		objects, each containing a reference to a common
		$pk object.
	- <PKIT_ERRORFONT name="foo"> bar</PKIT_ERRORFONT> is now
		precompiled to <TMPL_VAR NAME="PKIT_ERRORFONT_BEGIN_foo">
		bar</TMPL_VAR NAME="PKIT_ERRORFONT_END_foo"> for
		improved performance.
	- $dbh, $apr, and $session are now accessed from model through
		dbh, apr, and session methods.
	- Added docs on support for dynamically loaded components
		that get specified at runtime using systax like
		<PKIT_COMPONENT NAME="<MODEL_VAR NAME="foo">">
	- You can now pass a hash reference to set multiple parameters
		for output_param method
	- Removed support for PKIT_INTERNET_EXPLORER and
		PKIT_NETSCAPE tags.  These tags clutter the
		API and are easily implemented in the model.

0.93	Wed Jan 03 01:49:06 2001 EST
	- Fixed documentation in Apache::PageKit::Model,
		where output_param method was listed
		as param.
	- Updated pagekit.org web site with links to
		a browsable repository of source code
		and more documentation.
	- Fixed problem with make test, with language
		cache files conflicting b/c of different
		default languages in test.

0.92	Sun Dec 31 21:32:30 2000 EST
	- Rewrote Model class so that Model classes are
		standalone and not dependent on the PageKit
		architecture.
		* functions in Model now get called
			as methods of derived Model class
		* inputs and outputs are now accessed
			by $model->input_param and 
			$model->output_param instead of
			$apr->param and $view->param
		* $pk->redirect is no longer available
		* $pk->continue no longer available, use
			$model->pkit_set_page_id instead
		* $pk->message moved to $model->pkit_message
		* page and component_dispatch_prefix replaced
			by model_dispatch_prefix
	- XML and template files are now parsed by calling
		Apache::PageKit::startup function.  Should fix
		problems when PageKit is used inside a
		<Directory>, <Location> or <Files> section.
	- Fixed bug with not getting fill_in_form configuration
		setting in View.pm
	- Fixed bugs with language localization and session
		management.
	- Improved language localization example on pagekit.org
		web site

0.91  Tue Dec 26 04:05:56 2000 EST
	- Changed name of page_id_match configuration directive to
		uri_match.
	- Fixed some permission problems when 'make test' is run
		as root.

0.90  Sun Dec 24 01:26:18 2000 EST
	- Major changes in API and streamlining of pagekit
		in preparation for 1.0 beta release.  
	- Removed seldom used options and replaced others with
		more user-friendly versions.
	- Renamed Controller directory to Config directory
	- Renamed <TMPL_VAR> and <TMPL_LOOP> tags to
		<MODEL_VAR> and <MODEL_LOOP> for Model Data and
		<CONTENT_VAR> and <CONTENT_LOOP> for Content Data and
		<PKIT_VAR> and <PKIT_LOOP> for PageKit Data
	- Renamed <PKIT_INCLUDE> to <PKIT_COMPONENT> and replaced
		'include' with 'component' across the framework
	- Moved and renamed nav_title option from config to 
		<NAV_TITLE> </NAV_TITLE> in content XML for
		better foreign language support.
	- Renamed Apache::PageKit::FormValidator to Apache::PageKit::Model
		and redesigned class to replace form_validator
		constructor option with $model->validate_input($hash_ref)
		method.  Eliminated error_page and error_page_run_code
		options (user should use $pk->continue
		in model instead).  This should make the development
		easier because all the logic is in the Model class instead
		being scattered across the derived class and configuration.
	- View templates get pre-parsed using file_cache/cache option of
		HTML::Template, and the HTML can be optimized by
		using HTML::Clean if html_clean_level is set to >=1
	- Changed template_cache option to use yes for cache
		in HTML::Template and no for file_cache.
		Got rid of shared_cache, since it is problematic
		and file_cache is almost as fast.
	- Moved fill_in_form to page attr from global attr
	- Removed support for domains, including page_domain,
		domain, is_topdomain attributes.
	- Removed page based linking attributes, including
		support for <PKIT_LINK> and <PKIT_JAVASCRIPT> tags and
		is_popup, is_secure, popup_width, and popup_height.

0.89  Sun Dec  3 18:27:11 2000 EST
	- Major changes in API, leading up to 0.9 pre-beta and 1.0 beta release
	- Created Apache::PageKit::Config, for configuration directives,
		replacing Apache::PageKit::Info
	- Created Apache::PageKit::Content, for XML content
	- Created content XML files for separation of
		content from presentation
	- Reorganized pagekit.org files into Model/View/Content/Controller
		directories
	- Rewrote pagekit.org site to use DBD::Sprite and Apache::Session::File
		instead of MySQL, so could include in test suite without
		requiring MySQL
	- Used Apache::Test in test suite to test working copy of pagekit.org
		web site.

0.05  Tue Oct 31 14:12:00 2000 EST
	- Added support for language localization
	- No longer require that entry in page.xml exist for all pages
	- Replaced View and Module templates with Include templates
		view parameter in page.xml is no longer used
	- Renamed ModuleCode to IncludeCode
	- Added <PKIT_NETSCAPE> and <PKIT_INTERNET_EXPLORER> tags
	- Added $pk->redirect method
	- Added $pk->continue method

0.04  Tue Aug 29 13:12:53 2000 EST
        - Added support for <TMPL_LOOP> XML tag
        - modified pagekit.org to use <TMPL_LOOP>

0.03  Tue Aug 29 00:13:33 2000 EST
        - Replaced use of Apache::Session with adaption of
		HTML::Embperl::Session

0.02  Mon Aug 28 18:44:15 2000 EST
	- Added XML Support for attributes and <TMPL_VAR> Elements

0.01  Thu Aug 24 16:30:34 2000 EST
	- original version; created by h2xs 1.20 with options
		-X -n Apache::PageKit