Changes
Ariadne 2.6
Changes in Ariadne since version Ariadne 2.4.1
New Features:
Changes in Ariadne since version Ariadne 2.4.1
New Features:- Added "read from string" to the rss module for more flexible parsing.
- Webdav loader will rename the object's dataname to the filename on move
- Webdav loader can now support any given filename character (use mod_util.php to unescape them)
- PPhoto now allows spaces in 'annotate'
- Added NLS enabled debug statements
- Added a whole new bunch of NLS flags in various versions.
- Added NLS support for +/- 200 languages.
- Added a NLS tag for every language to the dialogs, making it easier to select foreign languages.
- TinyMCE support has been patched and fixed against tinyMCE (revision 253 in TinyMCE SVN);
- Images and links are instered in Ariadne style, so should now offer the same options as the regular wysiwyg editor.
- Added a caching version of mod_rss. This version caches RSS feed information, so inserting an RSS feed in a site won't clobber the RSS feed supplier.
- A modified version of the filestore was added to allow SVN support for templates in Ariadne;
- Linux versions of Ariadne can now be extended to have SVN support for templates;
- SVN support is available in the Windows XP and New interface
- Added mod_json to allow better integration between php/pinp and javascript;
- this should help with building more spiffy ajax applications.
- http://pear.php.net/pepr/pepr-proposal-show.php?id=198
- Added mod_htmlparser: Custom made module which parses, fixes and recompiles (broken) HTML.
- Added mod_html2ps: This module integrates html2ps and makes it possible to generate PDF documents from templates or content in Ariadne.
Just dowload html2ps from http://www.tufat.com/script19.htm and copy the contents of the public_html directory to lib/modules/mod_html2ps/. - Added mod_util: utility functions to escape/unescape filenames containing problematic characters like spaces; PINP function creating and call utility.
- Added mod_csv: A configurable CSV parser module.
- Added "join target on" statement to the query compiler.
- Added mod_html2text to convert a string containing HTML to text.
- Added the MS Core Fonts (in files/fonts/).
- Added the 'loadLibrary()' function. You can use this function in both php and pinp templates to register a library like you would in config.ini. This library will only work from the current path (and from within config.ini itself).
- Shortcuts can now follow other shortcuts.
- Added call_super(): this function allows to run a same-named template further in the library chain. This makes it possible to chain several templates with the same name and execute whatever combination of those templates is configured.
- Added getdatacache() and savedatacache(): makes it possible to keep a cache of data (instead of only the output of a template); This way it is possible to calculate some heavy dataset, and output the result several times from different templates.
- Full variable dereferencing support in PINP.
- Full PINP syntax test before template save.
- Added configfile and chroot() support for the WebDAV loader
Bugs Fixed:
- Some better checks and typetree.ini integration for the 'New Object' dialog.
- Added checks for different character encodings in mod_rss;
- better support for different types of feeds;
- target encoding is now UTF-8.
- Fixed shell command escaping in pphoto, fixing a possible security issue.
- Fixed the known bug that when objects are moved, the grants are not updated correctly for the user.
- Many keepurl fixes.
- Fixed parsing of unquoted attributes in the htmlcleaner.
- Speedup fix for get_nextid (for large sites).
- More aggressive session replacement in mod_url.
- More error checking added to mod_xml.
- Many mod_rss fixes, such as basic image-tag parsing.
- Many shortcut fixes: Ariadne will now correctly recognise shortcuts pointing to shortcuts etc.
- Property values, returned by workflow templates when they are simply passed on, will automatically get unescaped.
- Fixed customdata properties when saving an array.
- ClearCahce() fixes: clearing upward is now correct, it will stop at the currentsite of the given path. ClearCache also recurses through the correct path, instead of the lowercased path, which broke because loadConfig stores the cache on the real path.
- Fixed cache clearing when the currentsite is '/'.
- Fixed currentsite() and currentsection() to accept a path.
- Fixed currentsite/parentsite/currentsection/parentsection to use loadConfig.
Changes in Ariadne since version Ariadne 2.4
New Features:
- files and images (pphoto's) are now automatically cached if they are publicly readable, that also goes for generated images, through pphoto::build()
- added support for 'subclasses', which you can define yourself and add to the typetree via a typetree.ini template. You can define templates for a specific subclass and you can add your own wizard pages to the normal set. Beware, this code is very fresh.
- Numerous fixes and extensions (e.g. table editing, required fields) in the mod_edit editor (toolbar.php). Check the context menu when editing tables.
- much enhanced WDDX export support, with converter from ax to wddx format
- TinyMCE support by Stefan Schreinert. To use this you have to copy the contents of the tinyMCE packages (which you can download from their site) into ariadne/www/widget/htmledit/tinymce/.
- Added a webdav loader (which is still under development, but already pretty useful).
- added a rss module to help get and parse RSS feeds
- Moved all the authentication code to lib/modules/mod_auth/ which is used in all the loaders. With this approach adding new authentication methods becomes very easy.
- The psite object can now be configured to have a different URL for each language.
- Shortcut objects do allow you to browse further on the target nodes.
- Added a new option to pshortcut 'keep url' which, if set, will inherit the target templates from the shortcut and keeps the URL from where the shortcut is defined.
- Added a PINP interpreter to ariadne/bin/. You can use this to execute PINP files written in the PINP language.
- Added an option to the sql syntax which lets you include shortcut's target property in the search. To use this you have to type the 'include target' keywords at the end of the criteria (and before the limit, offset, etc keywords).
- The pphoto class now has an identify() function to detect multiple pages/layers.
- Stefan Schreinert updated some entries in the german translations.
- Andres Marcos Bianciotto updated the Spanish translations.
- Added support for changing the flow of the standard Ariadne wizards.
- updated the wddx export module, it uses fwrite instead of echo, which made it possible to have debugging and/or verbose enabled during the export. This also makes the usage of ob_ functions obsolete and reduces the usage of memory.
- Updated mod_soap.php with SOAP_Header and SOAP_Parser support.
- Added a preference setting for the template editor, normal textarea or helene, the syntax highlighting editor.
- Pinp library support is now available, allowing you to have a library of templates in a seperate tree in Ariadne that can be used anywhere in your site through a config.ini template.
- Added a PINP XML wrapper module. The parse_curl() method was created by Lukasz Keler.
- The 'open editor' button now has an adjustable text.
- Added a profiler, which can be used in pinp templates as well: pfTime, pfReset, pfPrint
- Added a number of performance improvements to speed up finding the correct template to use.
- path and query are now optional arguments to count_find
- added a make_local_url method, which tries to stay within the current site/host, even when referencing a page below another psite.
- added a quality setting to pphoto::convert(), which allows you to set the jpeg quality.
- pressing apply in the template editor will now restore the cursor position.
- added basename and dirname to the pinp allowed function list. These are now the officially sanctified methods to get parent path (dirname) and filename (basename)
- added $ARCurrent->forcenls (putvar('forcenls',true)) option, to make sure that any object / template called after it uses the requested nls, whether or not any data for that language is available in the object.
- changed the way templates are included, so now you can do a 'return true' in pinp templates, and it works as you'd expect.
Bugs Fixed
- fixed problems with setting hyperlink over linebreaks or accross block elements in the editor, no more www.example.com.
- fixed default values for $path arguments in mod_edit
- a number of templates where fixed to work with any language independant of the languages of the object. Mostly dialogs, but also workflow stuff.
- fixed a bug in the ftp loader, it was giving the wrong time of templates
- Fixed some 'repeat by ...' bugs in the pcalitem object. Thanks to Fabian Steger.
- Added a fix for ftp clients which do expect \r\n as linebreaks. Thanks to Klaasjan Tukker.
- Fixed a couple of URL rewriting bugs when saving pages.
- Workflow templates are now able to set $error.
- Fixed a bug in the respawn feature of the authentication module: it will now login as public if the session respawn failed.
- Fixed a bug in the store's sql compiler which made it impossible to order by multiple nls variants of the same property.\
- Added missing wmv mimetype to mod_mimetype.php
- Fixed a small problem in the nls handling of the new wizards. Sometimes the tab and the actual language shown differed.
- Fixed a Mozilla reserved keyword 'implements' bug in the Ariadne Search window. Thanks to Stefan Schreinert.
- particle will now fill the endtime and enddate with the starttime / startdate if not set.
- Fixed pphoto to work around the bug that causes ImageMagick to break on a . in the ariadne path. Thanks to Stefan Schreinert for reporting this.
- the parentsection() function now works, instead of not :)
- Fixed bug 0000290: specifying 00:00 in the article's time fields, resets the time to current time (Thanks to Christoph Lindemann)
- The editor doesn't cut off the last char in an image link after editing anymore.
- Fixed the editor to not include the nls in the URL of images.
- The pinp variant of user.login.html does now have access to the arReturnPath and arReturnTemplate variables.
- Added a fix to pfile which should make Explorer download pfiles postfixed with a slash with their correct filename. Thanks to Johann Hanne.
- Fixed URL rewriting in mod_url when a siteobject had not yet been configured with an URL.
- Fixed a URL check in pbookmark which did not accept '-' as a valid domain character.
- helene (the syntax highlighting editor) now understands javascript in templates
- user.workflow.* didn't set $ARCurrent->nolangcheck, now they do ;-)
- added a upgrade script which fixes the es nls name in objects which still have the latin1 encoding.
- The pinp call for HTTPRequest in pobject is now equal to the php one.
- added a call to fflush in export.wddx.object.phtml, to force flushing to output because some versions of php don't flush
- fixed some output in mod_wddx_import
- added the missing call to fclose
- replaced php://stdout in php://output, because stdout is the wrong stream
- added linking in wddx import, this was missing
- the image dialog now works with images with special characters (quotes) in the name
- fixed problems with special characters and custom fields
- fixed a problem in the filestore, it can now handle directories with the name '0'.
Changes in Ariadne since version Ariadne 2.3.1-dev
New Features:
- The image dialog is more flexible, you can set it to start with a central photobook or with the current object.
- Ordered browsing is back and working.
- Added a brand new SOAP module, and made the XML-RPC module usable in PINP
- Added experimental support for Oracle.
- Moved all configuration data todata->config.
- Added German translation to the ariadne.ax files. Thanks to Stefan Schreinert.
- Added 3 new pobject methods to easly set, get and show object values. These methods are: setValue(), getValue and showValue()
- Added workflow callbacks. The pobject::save() function will now call 2 templates (user.workflow.pre.html -which is called before the actual store save- and user.workflow.post.html -which is called after the actual store save-).
- Added a pobject::save() wrapper for PINP so that PINP templates can directly save objects to the store.
- Added a new context mechanism. The new context/stack operations include: pushContext(), popContext() and getContext().
- Updated Polish translations by Lukasz Keler
- moved the multipart page extension from ppage to mod_multipart, mod_multipart only has the ShowSection and ShowSections methods but you can emulate ShowTitle(s) easily in your templates. The new version also supports nested sections.
- mod_edit (easy WYSIWYG editing of multiple objects) is complete. See the docs/mod_edit.txt file for extra information on usage.
- Add FTP MDTM command, thanks to Goran Topic.
- Static skeleton support in profiles, just use the filename 'static' immediately below a profile, and the contents will be copied when creating a new user with that profile.
- Added a 'change owner' dialog to theedit->config menu. Also added an option to automatically set the owner of a user the that user when creating a new user. This includes any children that may be copied from a static skeleton.
- Added a wrapper function for the store::is_supported() function.
- Added Portugese translation. Thanks to Marc R.J. Brevoort.
- The web-loader does not save the user's supplied password in the session anymore. It now creates a unique session key which is stored in the session cookie and in the session itself to authenticate the session.
- The GrantsCache is now local to the user (this makes it easier to switch users runtime).
- added regexp support for both mysql and postgresql (thanks to Goran Topic)
- added boolean search (thanks to Goran Topic)
- added fulltext.relevance (which you can use in the orderby clause) (thanks to Goran Topic)
- added a second argument to the store load_property and load_properties function. This argument is an array which you can use to select the properties you want to load (thanks to Goran Topic).
- made the German nls files up to date (thanks to Marcel Felix FT EDV GmbH)
- Added a 'loading' screen to the wysiwyg-editor toolbar
- added mod_url.php
- a URL manipulation module.
- moved the function RAWtoAR and its reverse ARtoRAW from ppage.phtml into the mod_url.php, to be more widely available, and extended the variables with the nls option: http://ariadne.muze.nl/en/download/changes/ expands to the english version, etc.
- Added Helene as highlighted editting option for the templatae editor
- Added pshadowuser object type; it has exactly the same behaviour as puser and is only used for distinguishing users coming from an external database (e.g. LDAP) from real Ariadne users.
- Added pconnector object type which is only an 'anonymous class' which all connections to other databases (e.g. LDAP) should be derived from
- Added pldapconnection object which can be used to map LDAP objects into the Ariadne store as well as to authenticate users.
- Extended the user retrieval/authentication code to ask all objects in /system/users/ implementing pconnector (e.g. pldapconnection) to get/authenticate the user, if the user wasn't found in the internal Ariadne user database.
- Extended the group membership retrieval code to take external group memberships into account, which might have been set by some pconnector object (e.g. pldapconnection) to include the user's group memberships set in an external database (e.g. LDAP).
- Added some documentation about the LDAP feature (docs/ldap.txt)
- Added AcceptLanguage support
- Added export.wddx
- ldRegisterFile() was added to the allowed functions list to enable multiple file upload from a PINP context.
- pldapconnection honours nested groups (i.e. groups which are members of other groups)
- Added a new default wizard layout for all classes, with a much easier way to build your own wizards.
- Updated most of the dialogs to use the new wizard layout.
- The admin user now sees objects from the typetree when adding a new one per default. A link is provided to switch from typetree to all objects.
- Added the pbookmark extention to the default Ariadne distribution.
- added the proxy store class, which acts like a proxy between the objects and the real store, so that users can't view the store config with print_r
- Added some more verboseness to mod_import_wddx
Bugs Fixed:
- Fixed a few problems with SSL and file downloads under IE.
- Fixed a bug in the wizard flow for porganization.
- Fixed the grants dialog, when selecting a group or user, the checkboxes for the grants are now set.
- Fixed a wrong nls match in mod_url.
- Added$data->path of pshortcut to the references.path property.
- Fixed a problem with workflow and the owner data, owner data doesn't disappear anymore.
- Fixed a small problem in the winxp browse list, it now uses the same templates as the 'new' interface does.
- The axstore doesn't store the properties with AddSlashes() anymore. This change made us to bump the .ax version to 2
- Fixed some bugs in the mysql store::move() and store::link() methods.
- Fixed a flow bug in the puser wizard.
- Fixed a bug in the pfile and pphoto wizards which didn't handle the filename of the uploaded file correct.
- Fixed the not-working pfile::GetPlainText() pinp wrapper.
- Menuview->webpage will not include a sessionid if the ariadne management url doesn't match the site url.
- Many shortcut fixes.
- Fixed calling the workflow templates, they now also have the arIsNewObject variable if set.
- Fixed a bug in the edit wizard, cancel will now always close the wizard window.
- get_articles in pnewspaper now limits the find to twice the maximum number of results given, so when finding the same article multiple times it will usually still return a list of size $max.
- Fixed a bug in the grants dialog, it used make_url() insteadof$this->store->root.
- Fixed a problem with the winXP interface sidebar when the requested language wasn't available in an object.
- Fixed a problem in the browse widget when using complex variables (arrays)
- Fixed a bug in the FTP loader which made the loader not display templates with NLST. Thanks to Goran Topic.
- Fixed a bug in store::make_path(), it should now always return a valid path, no matter what.
- Fixed a bug in the filestore::read() function. In some cases the store tried to read files with a buffer length of 0. Thanks to Florian Overkamp.
- Fixed logging in with another user on your own session.
- Fixed recursive calling of user.login.html after a session has been timed out.
- Tidy is configured to accept documents that are UTF-8. Thanks to Jeroen van Gorkum.
- Fixed image dialog: it now correctly loads images with another URL root then$store->root.
- Fixed renaming of groups. It checked for an existing userid instead of a groupid.
- Made the default.phtml redirect to the currentsite url, instead of the ariadne root url.
- Sessions spawned for a public user won't ever timeout anymore.
- Fixed ppage::ParsePage() to also map the current site url to arBase tags.
- Fixed the htmlcleaner so that it won't insert any redundant enters
- Fixed the htmlcleaner so that it now accepts input without a container tag.
- The public user will not inherit 'owner' grants anymore.
- Changed the 'cancel' button in the rename wizard from 'submit' to a normal button so it won't rename your object(s) if you hit cancel.
- ldSetUserCookie() now has a more sane default value for the expire time. User Cookies will now expire when the session ends and not immediately.
- changed the postgresql store a bit so it could better handle errors when the text of a property is longer then the database server would accept
- changed the postgresql store layer to behave like mysql, cut varchar to maxlength when there to0 long, but because this is not nice it is only done for properties.
- made save()copythe $this->store->error to$this->error like when creating a new object, but now for updating a object
- system move, copy and delete templates now correctly handle the usergrants; move can no longer create an object without the add grant on the target
- make_url('','',true) does not generate empty session ids (--) any more
- the add grant checks changed to check the parent, not the new object
- Fixed the indirect link tool in the wysiwyg editor so that it now correctly handles complex urls.
- changed pobject::ClearCache() to avoid a combinatorial explosion on multi-nls objects
- if Session IDs are hidden from URL, make_url with a nls does not show Session IDs any more
- in pobject::_killsession(), added a check to see if the session exists
- MS Word DOT files now correctly downloaded on Windows
- fixed the pcalander todo.html template so it uses the right way off setlocale, because the old way is depricated since php 4.2.0
- Fixed the IE WYSIWYG link dialog so that you can change existing links when the linked text is also surrounded with other tags (e.g. ).
- Fixed refreshing of the underlying window in the WinXP interface when adding a new object.
- Fixed a bug in the stores in the save method when a object was saved multiple times in 1 sessen the$this->path was currupted
- Fixed an Ancient Bug (tm), you can now use ' in custom data fields in the wizard.
- Copied the fix in the ftp loader to all the scripts in ./bin/ so compensate for changes in php behavour
- fixed the wddx export/import * export didn't know about the $data to$data->config changes * imports' templates code was wrong
- change the way templates are included, because it was a bit wrong
- changed cleanup to ignore .svn directory's and the files below it, to keep svn trees working
- since a long long time ariadne is case insensitive. but only the mysqlstore did this also on store level. Added code and indexes which make the postgresql store case insensitive. This because the cache is also case insensitive and that could break with a case sensitive store. to check if your postgresql install is upgradeable run. select a.path as apath ,b.path as bpath from store_nodes as a, store_nodes as b where lower(a.path) = lower(b.path) and a.path != b.path;"
- updated the postgresql_compiler so it accepts 'order by name.en.value' in find
- fixed the wddx exporting of pshortcut's
Changes in ariadne since version 2.2.1
IMPORTANT:
The postgresql install store has changed. To use the fixed installer you ned to reinstall ariadne in a clean database, this mean that you shoud create a new instalation of ariadne and migrate the data with export/import. Without fix you're not able to use the fixed store layer. The fixed store is still complient with the old store, so the upgrade is not required, but then you would miss the gain in performance.
Bug fixes:
- Adding users to groups upon import (so you don't need to export /system/groups/ also).
- Changed short php tags in puser/edit.object.data.form.phtml to long tags. Thanks to Goran Topic
- Fixed class::template calling within pinp to other pinp scripts which override class templates.
- Added a workaround for a bug in htmltidy: some word documents produce an unclosed xml tag in the middle of the document which crashes tidy. The workaround is to remove these tags before we give it to htmltidy.
- Fixed cwd in the ftp loader for newer PHP configs who do not automatically chdir to the path of the script.
- Fixed a bug in the postgresql store, on delete the seq_id entry didn't get deleted
- Fixed recursive calling of user.login.html, when using a pinp template for login.
- [FTP] Fixed a changed root problem (which was only triggered with some clients like ncftp).
- [FTP] Fixed the ftp server's mimetype extension fallback.
- Added a check whether the protocol is set in show.indirect.html, if not it adds 'http://'.
- backported the postgresql_install fix from HEAD, which makes the types in the tables saner
- all the stores now use 32 char long object types, instead of 16
- added error checks in the store and object save methods to prevent objects with a path name that is too long for the database to be saved.
- fixed a bug in getvar, it will now correctly give precedence to arguments passed in the call() to the current template, instead of giving precedence to putvar(), POST and GET arguments.
- fixed a problem with the image and browse dialog, it now shows a thumbnail of pphoto instead of the entire image.
Changes in ariadne since version 2.2
New features:
- Added a getcache() method, which returns the named privatecache image.
Bugs fixed :
- Fixed a bug in mod_db.php which only allowed the default arguments to functions, where default arguments were defined.
- Fixed a bug in mod_db.php which only allowed the default arguments to functions, where default arguments were defined.
- Fixed a bug in the toolbar.php, it now shows the correct heading names.
- Fixed copy/paste bugs in mod_db, you can now use the non-default options as well.
- Fixed a bug in the editor, it broke when adding a hyperlink on an image.
- Fixed a bug in the sql compilers, ordering via priorities is now again limited to an objects container (directory).
- Fixed a bug in the mimemagic module, it now strtolowers() the file extension before parsing it (Thanks to Johann Hanne).
- Removed preg_replace() from the PINP allowed list, implemented preg_replace() wrapper function in pobject (Thanks to Goran Topic).
- Fixed saving of objects which don't have nls->default set.
- Fixed eternal cache problem
- Fixed class::function calling with pinp templates.
- Fixed caching of pages containing sessionids: we now cache those pages in a seperate cache directory (session). All sessionids in such an image are replaced with an {arSessionID} tag. These tags are replaced with the active sessionid when an image gets send to the browser.
- Fixed the pphoto::rotate function under windows (Thanks to Paul Meijers.
- Added id check in pnewspaper so articles with the same id but different paths don't get added.
- Fixed bug which did save a pgroup object even with an error.
- Fixed bug in wizard/classic.html: now read $wgWizNextStep also from $ARCurrent
- Double quotes are now correctly escaped in browse.nav.list.show.phtml
- Added defaults for the image browse buttons in editor.ini
- Fixed pphotobooks view.thumb.html, it is now overrideable.
- Fixed flow bug in the puser wizard.
- Fixed LDAP login by moving the relogin feature out of puser/system.save.data.phtml.
- Fixed a problem with html entities in names, thanks to Goran Topic.
- Fixed a bug in GetValidGrants(): a group with grant modifiers in some cases overwrote group grants without modifiers which caused the user (member of both groups) to have less rights than expected.
- Fixed a bug in ParsePage().
- Fixed calenderitem: will now correctly remember the filled in date
- A file uploaded by ftp will now only get the default name set
- Changed grant requirement for saving priorities from 'layout' to 'edit'
- Fixed a bug in the editor.ini, setting hidebuttons to 0 doesn't work, false does.
- Fixed a 'bug' in the priority wizard, you now only need 'edit' grant to save the priority.
- Fixed the PINP parents() function, so it actually does stop at the currentsite().
- Disabled passing of properties to system.save.data.phtml templates.
- Fixed a bug in the editor with adding and removing hyperlinks, should now always work as expected. Except for the known bug that MSIE will sometimes appear to remove images when you want to include them in a link, the image is still there, just invisible. This is a MSIE bug, currently no satisfactory workaround is available.
- Fixed a javascript bug while browsing in icon mode through a photobook
- Fixed 'object type' filter in the browse widget.
Changes in ariadne since version 2.1.4
IMPORTANT:
- The lib/configs/ariadne.phtml has changed slightly, please add your configuration changes to the new configuration file and use that instead of your existing one.
- If you update only the Ariadne code, please create a new group 'owner' in /system/groups/ manually.
- Since Ariadne 2.1 the internal charset has been changed to UTF-8. If you want to import older .ax files (for upgrades) you need to read the docs/upgrade.txt file first.
New features:
- Added Croatian translations. Thanks to Goran Topic.
- Implemented Sophos AV support (tested on Unix) Thanks to Goran Topic.
- HTTP/HTTPS switching, and secure login (while keeping the rest of the site on standard HTTP) Thanks to Goran Topic.
- Added Polish translation of the newspaper at login. Thanks to Lukasz Keler.
- Updated the logoff screen to new login layout. Thanks to Dino Termini.
- Porganization and pperson now have manage.details.html templates.
- Added new sql property syntax and behaviour for custom properties; custom properties can now be addressed by my[.nls].[fieldname]. This also allows you to check on multiple specific custom properties, e.g.:
my.nl.section ~= 'test%' and my.value = '100'
Custom properties are still limited to text properties. - Added the ability to match multiple records per property.
- Added "owner" group. The owner group is an alias for the object owner. To change the owner of an object, use the system.save.owner.phtml template.
- Every Ariadne user is now added to the group 'public' on runtime.
- Added function 'ldGetClientVar()' which can be used by PINP scripts to read certain 'loader variables'. Thanks to Florian Overkamp.
- Added a new userfriendly image dialog to the WYSIWYG Editor.
- Added debug streams: debugon(level,stream), debug(text,level,stream)
- Added new mod_debug, debugging can now be tuned differently per loader. Debugging is possible to loader, file and syslog.
- ParseSummary() has a new (4th) argument; if false, it won't add a 'read more...' link.
- Added Swedish translation by Niklas Koskela.
- Added load() function. This allows you to load modules from the lib/modules directory in pinp templates.
- Added possibility to call functions on objects directly. This deprecates the call_object function. PINP will automatically insert '_' before each function called. This means that you can also call functions like ls() and find() directly on an Ariadne object, so we changed system.get.phtml to check on read grants when called from a pinp context. Yes you can now check whether a template is called from a pinp (object) template or a php (class) template. The context is available via the ($this->)arCallingContext variable, which can currently either be 'php' or 'pinp'.
- Added possibility to call functions of classes directly, if the class is specifically written to allow this, like DB::connect(); See next feature added.
- Added PEAR DB wrapper, which allows you to access any database supported by PEAR DB, while keeping the store connection secure.
- The parents() function now defaults to currentsite() as the topmost object to be called. Explicitly set another top to prevent this.
- Added editor configuration file 'editor.ini' which can be changed/overridden as a pinp template.
Bugs fixed :
- Removed the "overwrite" confirmation from the pfile wizard. It now behaves exactly like every other object when the filename already exists.
- Fixed a bug in the store::find() function which made it impossible to sort results without filling in the where clause first.
- Added an error dialog to the pfile wizards, to inform the user about virus infection (the current behaviour was to ignore the error, resulting in an empty file, leaving the user wondering) Thanks to Goran Topic.
- Fixed sessions cleanup in the bin/cleanup script. It now removes more than 100 expired sessions per run.
- Fixed a bug which made it impossible to rename e.g. '/Test/' to '/test/'.
- Fixed a bug causing the edit window not to close for pdir and deratives. Thanks to Gustavo Ribeiro Amigo.
- The HTTP_IF_MODIFIED_SINCE header was not parsed correctly. This has been fixed by Johann Hanne.
- Fixed the postgresqlstore's nextid() function.
- Fixed the object not found errors when calling an object.delete, object.copy etc via $this->get($path,"object...);
- Fixed a problem with saving ppage (and deratives) objects over existing objects.
- Rename now unlocks() the renamed object.
- Removed all occurances of $AR->host which caused Ariadne not to work via some proxy configurations
- Fixed the occurance of '0' grants when typing a space after > + = - in grants. <>
- Fixed an regex in the ftp loader for the detection of file extensions.
- The ftp loader does now update objects while uploading files with the same name instead of deleting them first.
- Fixed a bug in the ftp loader which sometimes caused downloaded files (in ASCII mode) to be corrupted.
- Added a missing CheckConfig() to system.save.data.phtml of pfile.
- fixed wizard widget bug: now you can use wgWizNextStep as an argument in the URL (via GET) to step to the correct wizard step immediately.
- fixed a bug in the save of particle, too long titles were not checked properly. Thanks to Johan de Boer.
Changes in ariadne since version 2.1.3
New features:
- pobject now has a convertToUTF8() function which can convert data from other charsets to UTF8.
- No more need for preconfigged .zip or .tgz packages for different OS types.
- Added support for logging through phpOpentracker via mod_stats. Other logging enginges can be added later on. Thanks to Florian Overkamp.
- Added XML RPC support via mod_xmlrpc. It uses the Pear XML RPC library.
- The default Ariadne installation now contains a more or less complete list of countries for paddressbook.
Bugs fixed :
- Fixed a warning when make_filesize() is called without arguments.
- Fixed order of CheckLogin/CheckConfig and argument passing for some calendar templates
- Fixed time out of public sessions: it will now reactivate those sessions instead of showing a login window.
- Removed iconv from mod_unicode.php, it was too unreliable.
- Fixed a bug which caused customdata fields to be cleared.
- Various layout and consistency fixes
- Fixed a bug which caused --force to be ignored when other flags were set in import/export.
- Fixed consistency of Win32 and Unix configs
- Restored 'read' grants for group 'users' on /system/ so that they will be able to login again.
Changes in ariadne since version 2.1.2
New features:
- Added french translation of the default Ariadne databases. (ariadne.ax and stripped.ax) Thanks to Arnaud Siminski.
- Added italian translation of Ariadne, and the default Ariadne database. Thanks to Dino Termini.
- The tree is now interface dependant. Thanks to Paul Meijers.
- IE only tab-key catching in the template editor. Thanks to Dieter Struik.
- The "Loading..." message in the tree now comes from the NLS.
- There is now a make_filesize() function to create human readable sizes. Example: 1 KB 2 M etc...
- Added a show.poweredby.phtml template to pobject, so users of Ariadne can easily show their sites are powered by Ariadne.
- Import can now also update selected languages instead of all.
Bugs fixed:
- Fixed a security related bug.
- Importing with --without-grants will nolonger destroy existing grants.
- The default start and endtime calculation in pcalendar::get_items() now works correct.
- Fixed a bug using getvar() in pinp on a variable set to 0. Thanks Karel-Henk Nijhuis.
- Several small fixes in the WinXP interface. Thanks to Paul Meijers.
- get_nextid() was declared twice in axstore.phtml, removed one.
- Logging of an already timed out session will nolonger give a login prompt.
- The old find query format now also supports the compare operators used by the Ariadne query language.
- Various layout bugs fixed.
Changes in ariadne since version 2.1.1
New features
- Made the WYSIWYG editor NLS aware. This means that all the menu items etc are now displayed in your language. Available nls files for the editor are English and German. Thanks to Johann Hanne).
- Introducing a new config option named "$AR->hideSessionIDfromURL" which disables the inclusion of the session id in the URL. (Thanks to Johann Hanne)
- Added the ldGetServerVar() loader function to interface with HTTP_SERVER_VARS[] and dummy variants for the non-http loaders.
- Windows opened from the Menu (using the arshow() js function) do now have unique names containing the session this will allow users to have multiple template editors open given a different session for each editor.
- French translation of Ariadne by Arnaud Siminski
Bugs fixed
- The postgresql locking module didn't use table prefixes in the "lock update" query which caused an 'unkown table' reference. (thanks to Christoph Nelles for giving us access to his postgresql installation).
- Fixed the postgresql find() function; it now uses the 'limit' and 'offset' statements instead of only the 'limit' statement.
- Fixed bug in make_url(); using the optional paramaters of make_url() made it generate an invalid url. (Thanks to Johann Hanne)
- The admin login is nolonger case sensitive.
- The axstore now receives correct error messages from mod_tar.
- Passing the QUERY_STRING through user.login.html under IIS now works. See ldGetServerVar().
- When creating a new shortcut the browse... button now points to an existing path.
- After getting an error when saving a pinp template the editor nolonger forgets type, function and language.
- The axstore now cleans up its mess after updating an .ax file.
Changes in ariadne since version 2.1
New features
- The experimental SOAP layer now supports arrays.
Bugs fixed
- make_url() no longer chokes on non-existant paths.
- count_find() returns the correct number of results when more than 100 results are found.
- new objects can no longer overwrite existing ones.
Changes in ariadne since version 2.0
New features
- Ariadne's internal characterencoding is now set to UTF-8.
- Added a new 'WinXP' interface (v0.3), by Chris van de Steeg.
- Added a new, rewritten PINP compiler, which should be much more secure.
- Added profiles for users (pprofile), by Gabriel Wicke.
- Added the combine method to pphoto class, which allows multiple images to be combined into a single image.
- Improved session functionality:
- Ariadne is now able to respawn a session on a cookie only.
- When a session expires, available POST and GET information will be saved and restored after a succesful re-authentication.
- Added zlib output compression support to the www loader.
- Added support for PEAR's TAR to the axstore.
- Added support for integrating a virusscanner into Ariadne by Florian Overkamp
- Added experimental SOAP support.
- Added character conversion functionality to the import and export utilities.
- Added line numbers in the template editor. Internet Explorer only.
- Improved WYSIWYG editor image and URL dialogs.
Bugs fixed
- Many bugfixes in the MSSQL store by Pascal Hofstee
- Updated NLS files and replaced static error messages with their NLS equivalents.
- Property deletion: properties weren't deleted upon object removal because of a typo.
- Fixed MySQL session updates (Thanks to Hanne Johann)
- Changed AddSlashes to AddCSlashes so we do not depend on PHP's default escaping mechanism (it clashed with the MSSQL settings)
- It's now possible to run PHP with 'register_globals' set to off.
- Logged in users can know change their passwords without being forced to relogon.
- Fixed copying and renaming of user objects.
- Fixed numerous special character bugs.
- Fixed importing templates: template are now compiled instead of copied.
- Fixed a security bug.
- ... and numerous other bugs.
Changes in ariadne since version 2.0RC3
New features
- Simplified the configuration procedure
- Ariadne is now compatible with the default PHP configuration.
- Added experimental support for MSSQL server. Thanks to Richard Banks.
- Improved look and feel:
- Items in the browse view and in the tree now have the full name of the item as title, which shows up as a yellow 'popup' in Internet Explorer.
- New icons for many of the object classes. Thanks to KDE.
- The toolbar now visually shows which view you have selected.
- Added page view and webpage view. The page view shows the $nlsdata->page data, for those objects supporting it, the image in the case of a pphoto webpage view loads the view.html template in the browse frame.
- Improved support for IE6 and Mozilla 0.9.9+ and even Konqueror.
- The login screen now shows a second login form below the popup, specifically for Mozilla's anti-popup feature.
- Performance optimizations in the loader, getting objects from the cache is now much faster.
- Sessions that are still valid (not timed out) will automatically be resumed whenever the 'public' grants are insufficient.
- Improved the WYSIWYG source view mode, it now keeps source code formatting as close as possible to the original.
- You can now save HTML files directly to ppage objects via FTP.
- You can now call edit.object.html.phtml directly on an object, this will start the html editor on that object. Together with session respawning and a javascript bookmarklet this allows a pretty usefull interface to Ariadne. Just press a button to edit the page you are currently looking at.
- Added a $arCloseWindow argument to the new object wizard. If set, the popup window is closed on save, instead of showing the type selection window again.
- Added the HTTPRequest method, it will be rewritten for Ariadne 2.1 though, so use it with care.
- Added a 'not like' operator to find(): '!~ '.
Bugs fixed:
- Fixed some cache related problems:
- Full cache headers are set, so image roll overs now work correctly.
- Private files set only the private cache header, so they won't be cached in proxies.
- Content-Length header is set, for cacheable pages only.
- Arguments in the find() query may now be 0 (and won't be changed to '').
- Fixed the session timeouts, sessions will now actually time out :)
- Fixed a serious bug with regard to the nextid function. Importing, copying and moving objects will now correctly set the nextid for the target directory. This prevents new objects from overwriting existing ones, when the default '{5:id}' filename is used.
- Fixed postgresl support, which was broken in RC3.
- Shortcuts may now be relative, calculated from the parent.
- Fixed a problem when calling templates of specific classes, using class::template. The class definition is now loaded before trying to find the superclass, when needed.
- Fixed some problems in recurse (delete, copy, etc.) with special (unicode) characters.
- Images and links in the editor are now parsed (changed to http://ariadne.muze.nl/ariadne/loader.php/en...) more robustly.
Changes in ariadne since version 2.0RC2
New features
- WYSIWYG editor:
- automatic utf-8 character translation to html unicode entities
- source view now keeps the original formatting intact.
- added character composition for special characters
- Extended the name property length to 128 (from 50)
- The pphoto class uses new stack based manipulation functions, for improved performance.
WARNING: This is incompatible with the previous pphoto class, update your templates. - Added a $ARCurrent->ARDontCache variable, which prevents templates from becoming cached.
(use putvar('ARDontCache',true) in object templates) - Added a toolbar for the file/children list in the manage template. This allows you to browse through very large directories.
- Added a preview on image uploads. Thanks to Gabriel Wicke.
- Added download links for files in the manage view.
Bugs fixed:
- Fixed some installation problems with Windows
- UTF-8 characters are now properly displayed in the tree
- user id's and group id's may now overlap
- you can now override the default language select page
- import/export
- now check user grants for completeness
- keep the automatic id counter up to date.
- todo list of the calendar has been fixed.
- fixed some javascript problems in MSIE6
- fixed a large performance problem with the MySQL and PostgreSQL store, the stores now makes better use of the indexes. Thanks to Sebastiaan Smith.
- fixed numerous compatibility problems between the FTP server and some ftp clients.
- fixed the type list (used by implements()): pdir didn't implement ppage.
- fixed some problems with broken shortcuts.
- fixed the order in which templates are retrieved. Ariadne searches for templates first by path, then by inheritance.
E.g. a template defined for pobject will override a template for ppage on a page object, if that template is defined closer by.
Changes in ariadne since version 2.0RC1
New features:
- added polish translation of Ariadne, thanks to Lukasz Keler.
- exporting and importing can now be optionally restricted to exclude either data, files or templates, in any combination. This allows you to only ex/import data, keeping the site layout the same, or vice-versa, just updating the site layout.
- added the functions ParsePage(), GetPage() to ppage, and ParseFile() and GetFile() to pfile.
- because of a name conflict, the variable $data->customdata is renamed to $data->custom. The shortcuts $customdata and $customnlsdata remain the same however.
- added system.new.phtml, which allows you to create new objects silently from inside pinp templates.
- puser no longer implements pdir, the class tree is unchanged however. To effect this change you will need to install a fresh Ariadne and import your old site into it.
- The ftp daemon has it's own configuration directory now. You can add ftp servers per psite or one for the entire ariadne system.
Bugs fixed:
- fixed WYSIWYG HTML Editor support for non ISO-8859-1 languages.
- fixed a problem with regexp's in Redhat/Mandrake and Win2K.
- fixed a problem with missing templates in pshortcut. Priorities should now work as expected on them.
- $arResult now works as expected in pinp templates.
- fixed a security problem in pinp
- fixed some problems with customdata, it seems to work now :)
- fixed the layout for the grants and templates list, it will now display a scrollbar when the list gets too large.
- fixed the magic_quotes_gpc on support.
- fixed some problems with special characters in object names.
- fixed bugs in deleting or moving users. Grants are now cleaned up correctly. You cannot move or delete the admin and public user and you cannot move a user out of the /system/users/ directory.
- fixed some installation problems under windows.
Changes in ariadne since version 2.0b11
New features:
- All dialogs and menu options are available and should work correctly. Copy, move, delete and link are fully implemented.
- Import and export now work via the webbrowser too. Online help is available although not yet complete.
- New layout of the default views, the manage templates and wizards.
- New icons (KDE) and new pull-down menus, using HierMenu, thanks to Gabriel Wicke.
- pphotobook and pphoto: switched to ImageMagick. Simply install the binaries and add the path to the programs in the ariadne.phtml config. This change instantly makes Ariadne compatible with most known image formats and allows for much better thumbnails. Thanks to Florian Overkamp for most of the testing and code.
- property text and name now have an nls value too.Usedas$criteria["name"]["nls"]["="]="'$nls'"; with find().
*IMPORTANT* This requires a modification of existing Ariadne stores. Please read the file UPGRADE about upgrading existing systems. - Full support for either PostgreSQL or MySQL. Easily configured per store.
- Support for single database installation. If you have an account with access to a single database (not database system), store and session data can be stored in that database using different table prefixes.
- Support for magic_quotes_gpc. If set, the loader will fix all input. This does cost performance though.
- New search query language for use with find(). You can now enter search criteria as a string like "name.value ~= '%test%' and object.implements= 'particle'"<>
- Added an ftp daemon written in PHP :) This allows you to up- or download into ariadne directly. Still experimental, but we've been using it ourselves for some time now.
- Added some default properties upon each save: owner.value and time.ctime, time.mtime and time.muser. Owner is the login of the user that created the object, ctime is the creation time, mtime the lastmodified time and muser the login of the user that made the last change.
- Added customdata: this allows you to add your own data fields to classes starting from a point in the tree. You can access this data via the $customdata and $customnlsdata arrays.
- And many other minor changes.
Bugs fixed:
- make_url now uses the default ariadne root when CheckConfig() hasn't been run first.
- The wysiwyg htmleditor is fixed in numerous ways, but still not completely. Images won't dissappear after adding a hyperlink on them. Special characters won't dissappear after saving. Source view still sucks.
- And many more bugs.
Changes in ariadne since version 2.0b10
Ariadne 2.0b11 is mainly a bug-fix release, but there are some features added as well.
New features:
- Added an option to prefix the mysqlstore-tables. This will allow ariadne to run both the normal- and sessionstore from the same database. The prefix can be set in the session.phtml configuration file.
- Added the PINP interface method pobject::_checkgrant(
). This function is an interface to pobject::CheckSilent( ). - Added control structure 'foreach' to the allowed PINP functions.
- Added the ax command 'axlist' to the bin directory. This util will show you the contents of an ax-file.
Bugs fixed:
- Removed dependecies for the DelGrant.phtml include file. This will fix the problems which users experienced while adding/configuring new user objects.
- Fixed a problem which occured while removing ax tempory directories: Directories could not be deleted when their name was "000" (zero), this evaluated as false.
- Several minor problems.
Changes in ariadne since version 2.0b9
This release introduces a lot of new features and changes since the previous version. While this means some more work to do when upgrading, it also means a lot more power and a lot less headaches compared to beta 9. Since not every screen of the user interface is finished, we couldn't call it a release candidate yet, but the next release will be RC1. (Unless someone finds a really obnoxious bug...) Please see the file 'UPGRADING' on notes for upgrading older systems to 2.0b10.
New Features
- PSite: With this object and the Apache Alias/Rewrite engine, you can host multiple sites in one Ariadne tree, all with their own domain or directory. E.g. our own website runs ariadne.muze.nl and www.muze.nl from one ariadne tree.
- PPhotobook: The photobook automatically generates thumbnails of images and allows easy navigation. Requires GD and Gif2Png.
- The HTML Editor has a new image dialog, you can now select images from the ariadne tree to insert into a page.
- Private Cache. Normal (page) caching can only be used when the page is accessed by the user 'public'. With the private cache, you can now cache (parts of) a page, while still keeping the cache image 'private'. See the functions 'cached()' and 'savecache()'.
- New interface almost finished. All objects can now be created, edited and removed via wizards. Most items in the pull down menu work. Copy and delete work recursively.
- 'Classic' interface has also received a facelift.
- Priority field per node allows custom ordering of nodes. You can now order your menu exactly the way you want without any extra code.
Templates:
- Object templates are automatically inherited to subclasses, just like Class templates. This means that a template defined for 'pobject' will also work on a ppage.
- default.phtml class template is no longer neccessary
- You can call templates from other classes by prepending 'classname::' to the template name. e.g. call('pobject::show.html');
- All templates have been cleaned up and fitted into the new naming scheme. It should be much easier to find the correct template for each function:
- system.*
- lowest level templates. They will not output anything, but will only return values or errors.
- classic.*
- templates used by the classic interface.
- object.*
- templates accessed via the object menu
- edit.*
- templates accessed via the edit menu
- view.*
- templates accessed via the view menu
- help.*
- templates accessed via the help menu
- manage.*
- templates used by the default manage views per class.
Installation:
- Easier configuration, the configuration files are more readable and contain better default values.
- More robust installation. The install script checks for a number of failure conditions and hopefully delivers better error messages.
Important Bugfixes:
- Cache, now uses output buffering and actually works.
- HTMLEditor now displays the correct paragraph styles even in non-english browsers, thanks to Matt Finn, NETDesign Inc.
- Files, templates and private cache files are now accessed via a filestore. This filestore saves the file sper object id, not per node path. This fixed an important problem in 2.0b9, where linking objects could get ou in trouble quick. Also this means that you can now build a database driven filestore, which makes it easier to run ariadne on a distributed system (multiple webservers with one (or more) database servers).
Optimizations:
- CheckLogin and CheckConfig have gotten a big boost by caching the data per node. This means that you can generate more complex pages with much less performance penalty than before. The price is a small loss in performance for very simple pages.
Changes in ariadne since version 2.0b8
- Added pinp functions: _get_addresses and _call_address
- lib/modules/mod_ax.phtml
- system() commands are now checked by exitcode instead of the result of the command (output).
- added $this->RmDir() which deletes directories even when these contains files. This eliminates the need for the system "rm -rf " call.
- fixed problem with importing files: importfiles tried to untar even if there wasn't a tgz file available.
Changes in ariadne since version 2.0b7
This is mainly a bugfix release.
The following features were added:
- Client-side cache headers are now sent (if caching is enabled). These default to an expiration time of one hour, unless the server side cache expires earlier.
- Shift-reload now refreshes a cache image on the server.
- A few PINP functions were added: startsession(), putsessionvar($varname, $varvalue), getsessionvar($varname), killsession() and sessionid()
- objects now save the languages they are available in as: $this->data->nls->list[$nls]=$language; This can be accessed in object templates as:
while (list($nls, $language)= each($data->nls->list)) { ... } <>
The following bugs were fixed:
- Changing your password now automatically logs you in again under your new password.
- The recursive delete now asks for confirmation and actually seems to work.
- import and export now give more meaningfull error messages.
- Caching of objects in multiple languages works.
- index.html objects in a directory can now be cached.
- particle->parse_summary() is fixed.
- Textarea's now also wrap in netscape
- The WYSIWYG editor now works with particle.
- pobject->setnls has been fixed.
- Session ID's sometimes contained illegal characters, fixed.
Changes in ariadne since version 2.0b6
Quite a lot has changed since the previous version. We've added session support, a new login system using sessions, a preview of the new user interface which makes use of a new wizard widget and dropdown menu's (select 'new' as interface in your user's edit screen, there's currently no way to reset this but via this template, so it's best to remember the url :).
The new interface has also led to a more defined naming scheme for class templates, if you look at the pobject templates you'll see the difference. For now the old interface and the old templates are still there, they will be removed though.
Also the new interface currently only supports Internet Explorer 4 or better or Netscape 4 or better. This is only required for users to use the new management interface though.
Then there's the new WYSIWYG html editor (for Internet Explorer 4 and up users only, sorry :), better support for object templates (new and improved PINP functions). We've also added a new addressbook application, which is looking a bit bland right now, but is fully functional.
If you look at the install script you'll see that it actually 'imports' a data file (ariadne.2.0b7.ax) which contains all the data, including templates and files, in the ariadne tree. In the bin/ directory you'll find an import and export script with which you can create and import these files yourself. You will need to have php installed as an alternative shell though. In the next release this functionality will also be available through a webbrowser.
The new install script allowed us to create a 'richer' startup database. We will be using this to create an online help system, among other things.
We've started using CVS for Ariadne, so if you want a more complete list of changes, read the file CVS_ARIADNE on how to get public read access.

