YACS 6.9: safety, community wiki, contextual menu, nicetitle, behaviors, internationalization
Posted by Bernard on Oct. 15 2006, (popular)
Safety is often linked to security, but it is more than that. Safety relates to the overall experience you will have, as a webmaster, of your web management system. Our community has learnt in past months how diverse and tough the Internet universe could be. This new version is a revisited masterpiece of PHP code, streamlined for ease of use, that supports versions 4 and 5 of PHP/MySQL run times, and that has been hardened against hackers.
YACS already supported public and private web spaces. In the first case anyone, including anonymous surfers, can contribute. In the second case only explicit editors can contribute. With version 6.9 we are introducing the concept of community web space, by which a section becomes a wiki open only to community members.
One other important addition is the introduction of contextual menus to pages built dynamically by YACS. While browsing an article or a section, surfers will have a nice side menu to reflect the hierarchical structure of site content. The objective is to enable transverse navigation, and easy shortcut to top content levels. Of course, this is fully skinnable both at CSS and PHP levels.
The famous nicetitle library has been integrated to all reference skins, and many links generated by YACS now feature a nice hovering pop-up. Hovering is a smart way to provide more info to surfers before they click on a link.
A new API is offered to PHP developers to extend YACS. They already had hooks (to include customized scripts on event), and overlays (to store data along articles). Now they have behaviors, to turn YACS into a lightweight application server. A sample behavior is provided, that ensures license approval before file download.
We are also moving forward a full internationalization with the creation of a new i18n module. Our hope, in future versions, is to support external language files.
504 files YACS already supported public and private web spaces. In the first case anyone, including anonymous surfers, can contribute. In the second case only explicit editors can contribute. With version 6.9 we are introducing the concept of community web space, by which a section becomes a wiki open only to community members.
One other important addition is the introduction of contextual menus to pages built dynamically by YACS. While browsing an article or a section, surfers will have a nice side menu to reflect the hierarchical structure of site content. The objective is to enable transverse navigation, and easy shortcut to top content levels. Of course, this is fully skinnable both at CSS and PHP levels.
The famous nicetitle library has been integrated to all reference skins, and many links generated by YACS now feature a nice hovering pop-up. Hovering is a smart way to provide more info to surfers before they click on a link.
A new API is offered to PHP developers to extend YACS. They already had hooks (to include customized scripts on event), and overlays (to store data along articles). Now they have behaviors, to turn YACS into a lightweight application server. A sample behavior is provided, that ensures license approval before file download.
We are also moving forward a full internationalization with the creation of a new i18n module. Our hope, in future versions, is to support external language files.
The new release is available for immediate download. If you are already running a YACS server we highly recommend you to smoothly upgrade your server.
Here is a list of new or updated features coming with this release:
shared/sql.php has been created to virtualize most invocations of the database service. Ultimately,at some point in the future we would like to let you decide which engine you would like to use.@include_once ... we are now writing Safe::load(...) to leverage PHP notice and warning messaging system. Also, we now use Safe::redirect() instead of header('Location: ...') to take care of tricky situations.dates' used to have a field 'date', which has become a forbidden keyword in the new release of MySQL. Therefore the database schema has been changed, and YACS now fully supports MySQL version 5.render_raw() has been introduced to take care of ob_start() and similar stuff.without_outbound_http' prevents YACS from contacting other web sites. This will help where ISPs block servers access to the Internet. See control/configure.php.without_file_uploads') has been added to prevent the upload of images and files in the configuration panel for users (users/configure.php). This can be used to administratively stop file uploads, or in cases where server permission settings do not allow for uploads. When the parameter is activated, YACS smartly removes all links that could lead to some upload.with_debug' has been introduced to beter support software developers working on top of the YACS platfom. See control/configure.php. When this parameter is activated, errors in SQL statements, or slow statements, are recorded in agents/debug.txt. See shared/sql.php. Do not activate this parameter at production servers, since all available disk space would be eaten on the long run.function_exists() have been turned to is_callable(), and most calls of file_exists() have been changed to is_readable().members_edit' can be added to any section to turn it to a 'community wiki', that is, a wiki restricted to community members. Look at articles/edit.php to see how this is handled internally.wiki_comments' and 'manual_comments' for more information.build_contextual_menu() in skin.php).included/browser for global sharing. The related CSS and image have been replicated in skin directories to allow for some customization where applicable. All reference templates now invokes nicetitle. Look for example in skins/skeleton/template.php on how this has been achieved.get_local() have been changed to i18n:user(), and all calls to get_preferred() to i18n::server(). In future versions this module will be expanded to support external language files.[image=123]) have been added to the main index of images, at images/index.php.[decision=123,my decision]. This complements the long list of shortcuts to articles, sections, categories, files, comments, etc. See codes/codes.php.