YACS 6.12: gettext, anonymous interactions, user interface, overlays
Posted by Bernard on Dec. 16 2006, (popular)
A huge effort has been made with this release to enable internationalization and localization. YACS fully supports the
It is now more easy for anonymous surfers to interact with a YACS server. For example, a random number is associated with any page created anonymously and provided to the surfer. Anonymous pages can be modified at any time by clicking on links from within surfer mail box, providing a high-level of interactions without the need for registration. Also, anonymous surfers are challenged only once with random strings, a feature aiming to stop spamming robots. Moreover, name and e-mail address provided at any form are stored and re-used throughout the session, providing a feeling of being "at home" without any registration. We believe that anonymous usability is key to viral marketing and fast-growing communities.
A number of adjustments have been made to improve the user experience while browsing a YACS server. For example, comments have been pushed to the bottom of article pages for a number of common layouts. During interactive presentations (based on S5 technology) you can switch the screen off by pressing the 'B' key, like in Powerpoint. The
New overlays have been added to demonstrate the full power of YACS as a programmable platform:
363 files have been modified or created since the release 6.9. YACS is now made of 469 reference scripts for more than 152,000 lines of PHP code.gettext approach, which is the de-facto standard for such a thing. Moreover, YACS has a built-in parser for .mo files, meaning it is able to read translated strings without the help of some external library. Some modules have been fully internationalized, and we are now ready to move forward for the whole software.It is now more easy for anonymous surfers to interact with a YACS server. For example, a random number is associated with any page created anonymously and provided to the surfer. Anonymous pages can be modified at any time by clicking on links from within surfer mail box, providing a high-level of interactions without the need for registration. Also, anonymous surfers are challenged only once with random strings, a feature aiming to stop spamming robots. Moreover, name and e-mail address provided at any form are stored and re-used throughout the session, providing a feeling of being "at home" without any registration. We believe that anonymous usability is key to viral marketing and fast-growing communities.
A number of adjustments have been made to improve the user experience while browsing a YACS server. For example, comments have been pushed to the bottom of article pages for a number of common layouts. During interactive presentations (based on S5 technology) you can switch the screen off by pressing the 'B' key, like in Powerpoint. The
nicetitle library has been modified to limit information provided. Also, the information page for files that have no description is skipped, leading to direct download or streaming. A new Flash player has been added for the fast rendering of Freemind files. New codes have been introduced to implement simple Wiki tagging rules, and other codes have been added to create dynamic lists where necessary. At the end of the day, we are aiming to provide a faster and richer interface to all surfers.New overlays have been added to demonstrate the full power of YACS as a programmable platform:
contact for the capture of customer or prospect information, issue for the tracking of bugs and problems. Both of them integrate smoothly into any section, and update a back-end database that can be queried separately.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:
.mo files similar to the one integrated into the gettext library. A test page has been provided as well, in i18n/test.php, as per eXtreme Programming recommendations..pot files placed into the directory i18n/templates, to allow anybody translate or localize the software.i18n/locale/en and i18n/locale/fr respectively. To add your own locale, create a directory below i18n/locale and add some manifest.php file to have it recognized by YACS (look at examples in other locales)..mo, .po and .pot are now accepted as valid extensions for uploaded files. This will be useful for the next translation factory build at yetanother... See files/files.php.daily, decorated (which is the default), jive, manual, yabb and compact. Comments are put at another page for other layouts. Previously comments were put aside most of the time. Check articles/view.php and comments/list.phpalistapart layout. This one has been enhanced dramatically to support progressive events, such as stages of the Transafricaine Classic, the last rallye from Patrick Zaniroli. Only the most recent published page is displayed, with attached files if any. Previous publications are listed at the bottom of the section index. For associates and editors, and only for them, articles under preparation are listed towards the top of the index page. See articles/layout_articles_as_alistapart.phpmanual, and table also list attached files, links and comments. Example at articles/layout_articles_as_jive.phpvisorFreemind.swf has been added to avoid the overhead of the Java run-time where possible.nicetitle library does not display hovered links anymore, to ensure a smooth end-user experience. See included/browser/nicetitle.jsshadow.gif and shadow_alpha.png, have been added to reference skins to allow for smart shadowed photo albums.articles_by_title in sections for example.anonymous_edit) or unsuitable scope (e.g., with_slideshow). More in sections/section.php.[commented=section:123] to list articles most recently commented in given section. Visit codes/misc.php to get an overview of these new codes.##...## instead of [code]...[/code]. Visit codes/basic.php to view these in action, and see codes/codes.php for details.[file=123] to link to an information page and, from there, download the target file. Now you can type [download=123] to get a link that starts the download directly.[csv=;]...[/csv] for semi-colon.[table=tiny]...[/table] if you have a lot of things to put in a single table, and want everything to fit in.Users::authenticate() and this has allow us to extend its usage to a number of scripts. For example, this allows Winamp, VLC or the Windows Media Player to stream protected files or collections. These software will just ask for a name and password on play start. Previously, only public material could be streamed by YACS.contact overlay allows for the creation of simple address books. The new overlay overlays/contact.php stores structured information related to a person. While it integrates into an article, which is unstructured text, this overlay captures structured data and save it into a separate table of the database. By applying queries to the database you can extract lists of contact based on your requirements. IT professionals will look at the provided code to derive more complex overlays of the same kind.issue overlay allows for the creation of simple tracker systems. Look at overlays/issue.php to understand how state information is managed by the overlay. Like the previous one, issue stores information in a separate table of the database. Searching for on-going cases is therefore really straightforward.[Fixed] when a problem has been solved. Previously we were doing that manually, now it has been integrated in the normal flow of processing. Look at the updated interface definition in overlays/overlay.php.ARTICLES_PER_PAGE or SECTIONS_PER_PAGE to adapt to content of your site.FORBIDDEN_CHARS_IN_NAMES and FORBIDDEN_CHARS_IN_URLS have been defined to streamline the filtering of data submitted in forms. See shared/global.php.Logger::debug() by Logger::remember() for any permanent debugging needs. Therefore Logger::debug() is used only during software development. See agents/logger.php for theses functions, and agents/messages.php for a example of use.SQL::setup_table() in shared/sql.php