YACS 6.12: gettext, anonymous interactions, user interface, overlays
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:
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.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.
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:
The script i18n/i18n.php has been greatly extended to integrate a parser of
With any YACs release, starting on version 6.12, original strings will be provided in
English and French locales are also provided in
All root scripts (i.e. placed at the top-level of the installation directory) have been fully internationalized, including some you would like to adapt to your specific need, such as about.php, help.php, privacy.php, query.php, search.php and error.php
The modules for actions, agents, shared scripts and skins have been fully internationalized.
Of course,
The system configuration panel has been adapted to list all available locales. See control/configure.php.
In order to avoid anonymous spam most forms have been secured and challenge surfers with random strings. See query.php for an example of this feature. The usage of random challenges against anonymous surfers can be disabled on intranets, through a global parameter set in the configuration panel for users (users/configure.php).
With this new release, successful challenge of some anonymous surfer is remembered in session data, and surfer is not challenged again on successive form. This simple feature improves greatly the experience of people that start interacting with a site without being formally registered. See shared/surfer.php.
In the past, YACS used to link anonymous surfers to a special user profile. This was necessary to define adequate access rights on pages created anonymously. This has been replaced in the new release with the sole usage of random handles communicated to surfers through e-mail messages. This means that anonymous surfers are recognized as page authors without the need for actual registration to the site. See query.php
On contribution to an article posted anonymously YACS always sent a message for the initial poster, if an address has been provided. This means that even a non-registered surfer will be able to track a thread started anonymously.
On article modification, YACS does not link the form to locations for anonymous surfers. This streamlines the interface for anonymous people, and add on membership benefits. See articles/edit.php.
Anonymous visitors of pages posted anonymously were not counted properly. This has been fixed in articles/view.php thanks to the kind insistence of Guillaume... Also, hits are shown only to associates and editors, to improve caching capability of articles for other surfers.
Comments are displayed at the bottom of articles for layouts
A link has been added to jump directly to last comment in article. Save on the mouse wheel...
A section index can feature one full article at a time, thanks to the
Compact lists of article now features the number of comments between brackets. Quite useful to locate active threads at first look. See articles/layout_articles_as_compact.php
Most layouts of articles, such as
Section content can now be rendered as thumbnails at the top or at the bottom of the front page. Previously thumbnails were always pla
Most layouts of comments now alternate 'odd' and 'even' styles, to allow for further rendering richness.
Files attached to a page are now sorted by creation date, which has proven more handy than the edition date. See files/files.php
YACS already had a Java player for Freemind files. A Flash player, named
In previous versions skin variants apply only to viewing pages. Now this has been extended to all handling scripts as well. This improves the surfer experience, because the look and feel or forms are always similar to those of ordinary pages. Example at articles/delete.php
Editors using w.bloggar will have the surprise to find the sections they are managing ahead the list of available blogging places. Also, YACS now lists up to three levels of the content tree, which means easier asynchronous operations.
The S5 presentations have been enhanced to support the 'B' key, that switch to/from a black screen. This makes YACS the first web system compatible with wireless devices used to control Powerpoint presentations...
A new P3P compact policy has been added, since it is the mean recommended by Microsoft to support cookie-based sessions on complicated layout using frames.
The parser used to validate proper XML input now better handles samples of software code.
The
14 new images have been added to the standard library of smileys included in YACS.
Two new images,
Cascaded style sheets for eference skins have been enhanced as well, most notably on styles related to images
A new field has been added to sections to store a title to be specifically used at the index page. See sections/view.php
Some new options will make your life easier:
Many options are not cascaded anymore from top sections to their children. The goal is to avoid security holes (e.g.,
Sections can be attached to categories, exactly like articles. This allows fast classification of all articles of one section at once.
New codes have been added to create compact dynamic lists of articles. For example, type
Some Wiki codes have been implemented in the rendering engine. For example you can use
A new code has been introduced to force file downloads. Previously, you could type the code
Moreover, file records that have no descriptive text also lead to direct downloads. Actually, direct streaming or direct download, depending on file type.
The code used to insert CSV data can be customized to accomodate specific separator, such as
Also, use
A new button has been added in the index page for feeds, at feeds/index.php to allow for straightforward access to the OPML feed.
HTTP authentication has been streamlined with the creation of function
Tables are now reserved to associates, because of the risks related to direct access to database content.
The
The
Also, overlays have now the power to change titles of their containers. For example, the issue tracker adds a suffix to titles such as
Overlays have been provided self-referencing information from articles on deletion or edition. The enlarges the sandbox in which overlay instances are placed, since they can use this information to reference their container.
Overlays are now extensively used in all layouts for articles, which means their content can be integrated in lists of articles as well.
The index page for overlays now properly filters out hooks, to list only regular scripts. See overlays/index.php
User profiles can now be overlaid. All you have to do it to set once the overlay to use in the configuration panel for users, in users/configure.php.
Run-once scripts extracted from the archive are purged on first installation (setup.php)
A number of constants have been moved to the skin, to enable further customization. For example, you may change
Two new constants
The function used to create a table, or to update its structure, in the database, has been moved to shared/sql.php.
The scope of the 'with_debug' parameter has been extended, to provide deeper insight to software developers working with YACS.
The logging facility has been extended to support structured debugging message. The idea is to replace
New functions have been created to get web address of images and related thumbnails, with the aim to simplify internal handling of this information. Look at articles/article.php for an example of that.
The locking of articles has become a separate field, similar to what exists for sections. Now locking is made of a radio button, where previously it was a string in a textual field for options. This change will help to streamline the user interface, and to achieve faster database requests. See articles/articles.php
Anchors has been implemented as two fields in following tables, with the aim to speed up queries: dates (dates/dates.php), decisions (decisions/decisions.php), files (files/files.php)
The system test page, at control/test.php now also displays server time, to allo straightforward check of this.
A bug has been fixed in categories/members.php. Now the watch list of a surfer reacting to a post is automatically updated again.
The function to create a new table has been moved from control/setup.php to
The minimum PHP version required to support YACS has moved from 4.1 to 4.3. This has been reflected in the setup assistant (setup.php).
The staging script has been enhanced, and four different methods are now supported: individual staging through the network, direct upload of the main archive, indirect upload of the archive, or individual manual staging. See scripts/stage.php.
A syntax error has been fixed in heartbit.php, thanks to Innovatique
The configuration panel for files now actually saves additional extensions, if any. See files/configure.php
The validation scripts now skips run-once scripts, in scripts/validate.php.
The script that counts clicks to external links now properly decodes provided URLs. See links/click.php
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.phpjive, manual, 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 misc.php to get an overview of these new codes.##...## instead of [code]...[/code]. Visit 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