Ariadne 2.4.1 review

by on

Ariadne is an Application Platform for the Web, built entirely on Open Source technology. What this means is that Ariadne is a Con

License: GPL (GNU General Public License)
File size: 2568K
Developer: Muze
0 stars award from

Ariadne is an Application Platform for the Web, built entirely on Open Source technology.

What this means is that Ariadne is a Content Management System, using a WYSIWYG HTML editor, it's also a Group Calendar, a Photo Album, an Addressbook, a Weblog and anything else you want it to be.

Ariadne was built with PHP, the most popular web programming language, Apache, the most popular web server, and MySQL, the most popular database engine for web applications. PostgrSQL is also supported. All these are Free Software, as is Ariadne.

Because Ariadne is completely free, you can download it, use it, even change it to your own needs or build new applications on top of it.

Ariadne gives you all the tools you need to easily build a new website, an intranet or even an e-commerce system. You can build and manage all this simply with your webbrowser.

When you create a website with Ariadne, it stores all your content, templates, files, etc. in a structured object store built on top of a database system, e.g. MySQL. This object store looks a lot like a normal file system, like your operating system uses. You can create directories and files and navigate through them with the Ariadne explorer just like a normal filesystem. But this filesystem can do a lot more.

Ariadne allows you to seperate the content, layout and logic of your website or internet application. You can assign different people to manage these parts. Ariadne will combine all these parts dynamically when someone visits a webpage.
The Store contains all the information for the website. This information is combined with the class descriptions to create Objects. These objects contain not only the information, but also contain operations (methods) that can work on this information and on the Store. Ariadne then applies the user defined templates on these objects to generate a webpage.

Objects stored in the the Ariadne Store are exactly that, Objects. So you can have all the advantages of Object Oriented Programming when building your website or application. Including inheritance and polymorphy on everything you put in the Store. Templates defined for a specific Class of objects will be inherited in sub-classes or can be overridden with new templates. Templates also automaticcaly extend down the 'filesystem' tree.

Templates can be defined by users through the web, via the management interface of Ariadne. Templates can be any kind of text type: html, xml, rtf, etc. Information and special operations on the Ariadne store can be used in a template, via a scripting language 'PINP', which consists of a subset of PHP functions. Besides that each class also defines extra functions, which can be used in templates assigned to objects of that class.

All this allows you to create a web application or website with a minimum of programming while keeping the content and layout seperate.

What's New in This Release:
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
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
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'.

Ariadne 2.4.1 keywords