Skip to main content Help Control Panel

Login   A+   A-

YACS «   Releases «  

yacs 8.3: time, forms, usability, SEO, and performance profiling

This month we have tackled time zones, which management has been quite painful for a while. Generally speaking, this release does not bring too many new things. Our focus has been on code quality, on bug troubleshooting, and on all these small enhacements that, at the end of the day, will make you more happy with YACS. It is time to add a dynamic calendar of events for your site, if not done yet. Add the overlay 'date' to a section created for this purpose, then add one page per event, and see by yourself how easy this can be.
320 files have been modified or added since the previous release. YACS has now 579 reference PHP scripts for a total of 167,824 documented lines.

Here is a list of new or updated features coming with this release:

-  Electronic forms have been introduced in YACS last month, and we are now turning this to a more robust and professional solution. For example, a new control has been introduced to enable file uploads. See forms/view.php

-  And web cache has been disabled in the form editor because this is not compatible with interactive AJAX interactions. See forms/edit.php

-  Also, the Javascript code has been reviewed to better support Internet Explorer for the creation and modification of forms. Basically: avoid parameter 'ghosting:true' in calls to script.aculo.us script.See forms/forms.js.

-  Dynamic calendars have been entirely reviewed, to ease their creation and the visual rendering. YACS now builds monthly calendars by default, you don't need a specific option to activate it anymore. Past events of current months are listed as well, and many improvements of this kind have been added, that you will probably not even notice. See dates/dates.php.

-  Styles used for calendars have been added to skins/_reference/yacs.css

-  A full list of international time zones has been added to i18n/i18n.php

-  YACS does not attempt to shift dates in case of constant stamps in Skin::build_date(). See skins/skin_skeleton.php

-  A new function SQL::strtotime() has been introduced to fix the many issues related to time management. See shared/sql.php

-  Functions Surfer::from_GMT() and Surfer::to_GMT() have been enhanced as well, and YACS is better than ever to adapt to surfer time zones. See shared/surfer.php

-  The bulk publication of several pages attached to a section now makes proper usage of UTC time zone. See sections/bulk.php

-  Labels used throughout the software have been streamlined, and 'Add a page' has replaced various ways to describe the creation of new content. Generally speaking, 'add' is used instead of 'create', 'edit' instead of 'modify', 'delete' has replaced 'remove', etc.

-  The main CSS id of the site map is now body#site_map to make it easily skinnable. See sections/index.php

-  For the same reason, the CSS id of the category tree is now body#site_taxonomy. See categories/index.php

-  Layouts for comments are now given a chance to know the original author of the commented page, and this allows for specific CSS styling of comments made by page authors. These comments have CSS class follow_up, currently implemented in skins/_reference/yacs.css. See comments/layout_comments_as_daily.php

-  A new style assistant_bar has been introduced to better handle commands placed at the bottom of pages. This is described in skins/_reference/yacs.css, and is used in the Setup Assistant and in the Content Assistant. See setup.php, control/populate.php and skins/_reference/yacs.css for more details.

-  Shortcuts that allowed users to create new pages out of an image or a file have been removed. These were just too confusing, and some people were creating one web page per document...

-  Thanks to contribution from Lesage Alain, YACS now features a brand new version of swfobject.js and supports parameters provided in codes related to Flash objects (see codes/codes.php). This allows webmasters to adjust the behavior of these objects to their precise needs (auto-start, loop, ...) This also applies to embedded controls such as flvplayer and dewplayer, just in case...

-  An updated version of the Flash dewplayer has been integrated in this release as well.

-  Since files with extension .mp3 are natively streamed by YACS, thanks to the integration of the dewplayer, there is no need for streaming through pseudo-playlists anymore. Therefore a click on such a file triggers a full download, with is closer to usual surffer expectation. See files/layout_files.php

-  Files with extension .rtf are now natively supported by YACS. See files/files.php.

-  A new layout has been introduced for files, named files/layout_files_as_simple.php. It is similar to a compact list, with the addition of links to anchor pages. This is featured in user profiles (at users/view.php) to enhance the list of contributions from a community member.

-  The set of HTML tags allowed in titles has been extended after a comprehensive review with community members. See function beautify_title() in codes/codes.php.

-  The Control Panel now displays the total size of the database,including data and index files. See control/index.php.

-  DECLERCQ Laurent has made a very useful suggestion to better control the list of pages referenced by the dynamic Flash teaser at the front page. See feeds/flash/slashdot.php.

-  By default YACS looks into the content tree to list new items at section index pages. A new option no_new_articles has been introduced to prevent this smart way of reflecting deep changes. See sections/edit.php

-  Some SEO enhancements this month, as usual, and more links generated by YACS support page nick names. See articles/article.php and articles/articles.php

-  The initialization of the rendering engine was including verifications for many images and small images. After some profiling activities, many of these declarations have been moved to scripts that are using them. Therefore YACS generates less calls to GetImageSize(), and to the file system. See skins/skin_skeleton.php.

-  All strings used by the Content Assistant have been reviewed and streamlined, to reduce the size of related translation files. See control/populate.php.

-  Articles can now be ordered by overlay id in articles/articles.php, even if no controller script is using that yet.

-  The date of last authentication is now correctly updated at each visit in case when YACS is configured for long-lasting cookies, in shared/surfer.php

-  The loading of the AJAX library shared/yacs.js has been streamlined to avoid the overhead of Event.observe(). Faster is better!

-  The script shared/global.php has been extensively reviewed and restructured. We hope the result will please all developers...

-  The variables $context['with_debug'] and $context['with_profile'] are now set in shared/global.php, and many existence tests for these have been removed (if(isset($context['with_debug']))...)

-  Profiling code has been enhanced as well, and the cumulative time for SQL statements is now reported in shared/logger.php

-  On development servers you just have to append ?profile at the end of any URLS to feed temporary/debug.txt. Quite useful to all developers, and almost non-intrusive to regular operations...

-  The function get_parameter() has moved from shared/global.php to codes/codes.php.

-  The function Categories::lookup() was not transmitting results by reference, and related notice messages from PHP have been fixed. See categories/categories.php

-  YACS now makes a proper usage of the HTML tag for horizontal rules, and this makes the W3C validator quite happy. See articles/populate.php

-  The script that counts clicks better protects against "link injection" attacks. See links/click.php

-  The script used for system tests (see control/test.php) now masks process information to non-associates.

-  The rendering engine now does not enforce output buffering through multiple calls of ob_end_flush() anymore, this has proven to be tricky at some sites. See shared/global.php

-  All scripts have been processed to standardize on Unix-style line feeds. This requires only one byte per line, where Windows format requires two. More bytes saved in memory...

Rate this page
Posted by Bernard on Apr. 3, (popular)