Skip to main content Help Control Panel

Login   A+   A-

YACS «   Releases «  

yacs 8.1: AJAX photo gallery, JSON-RPC, SEO, performance enhancements

YACS is quite a flexible system to publish photos and images. It resizes uploaded files automatically, to ensure that they will fit nicely into page design. Thumbnail images are generated automatically as well. The new version of YACS adds a dynamic AJAX gallery, to enhance the experience of surfers navigating all these photos.

YACS version 8.1 leverages AJAX development efforts started during Summer 2007. The JSON-RPC specification has been implemented this month, since we believe AJAX developers are looking for such a standard approach of interacting with back-end services.

On the SEO side, this version also brings new mechanisms to expose user profile information, and page meta-information as well. Also, punctuation has less impact on nice URLs built dynamically.

Lastly, a lot of energy this month has been dedicated to performance enhancements. First, some limits set in the software have been modified to better adapt to growing YACS servers. And the backup/restore facility has been revisited to accomodate for huge databases. Second, YACS now allows for partial loading of libraries. Third, many back-end scripts have been profiled to remove as much fat as possible. At the end of the day, YACS 8.1 is taking care of computing and network resources it can use.
284 files have been modified or added since the previous release.

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

-  The AJAX library of YACS, shared/yacs.js, has been considerably extended to make it more powerful. It now support modal boxes from within the pages, a nice alternative to intrusive and blocked popup windows.

-  This library also builds a dynamic slideshow when a surfer clicks on a thumbnail image. The scope of the slideshow is all images in the page, and transitions are nicely animated thanks to script.aculo.us effects.

-  Thumbnails are not linked to images/view.php anymore, but to the actual images instead. This has been made necessary for the AJAX library to pre-fetch images in a slideshow. See codes/codes.php

-  Yacs 8.1 features prototype version 1.6.0 and script.aculo.us version 8.0 in directory included/browser

-  Some new AJAX capabilities are demonstrated in tools/ajax.php

-  YACS now implements the JSON-RPC specification, to allow for powerful AJAX requests to the server. See services/json_rpc.php and services/json_rpc_codec.php.

-  Please note that hooks written for RPC can be invoked using XML-RPC and with JSON-RPC with no modification. Look at services/rpc_echo_hook.php for an example of such a thing.

-  The RPC client script services/call.php is able to handle both XML-RPC and JSON-RPC protocols. Of course, the codec loader, services/codec.php, has the same capability.

-  A new debugging option has been added to the configuration panel for web services (services/configure.php), to ease the troubleshooting of RPC invocations.

-  JSON dynamic objects generated by YACS are always compressed if user agents allows for it. See shared/global.php

-  Categories now supports layouts and overlays, thanks to a large contribution from Battarel Christophe. See categories/view.php.

-  When editing a category, you can separately define layouts to use for sub-categories, attached sections, and for attached pages, as shown in categories/edit.php.

-  Moreover, a new layout categories/layout_categories_as_tabs.php has been offered by Battarel Christophe.

-  The backup script now relies on a temporary file to manage huge database content. Previously it used RAM and could be hit by memory limit of the server. See control/backup.php

-  To restore a database you can also upload SQL statements to the directory inbox/database. By being able to process files there, control/backup.php helps to overcome limitations inherent to PHP uploads.

-  The processing engine for uploaded SQL statements has been moved to shared/sql.php.

-  Many SQL requests for articles are now explicitly referring managed sections, so that editors can easily access content of sections they are taking care of. See articles/articles.php

-  YACS now checks access rules before sending e-mail alerts to section subscribers. Secured pages are not exposed to non-authorized members anymore. See sections/section.php and shared/members.php

-  When computing category pages YACS now takes into account additional rights given to section editors. See shared/members.php

-  YACS is now less sensitive to trackback spamming, thanks to tests added to links/trackback.php both for interactive form and for remote invocation.

-  In order to reduce the burden yacs now allows for partial loading of the library. By setting adequate constants before the inclusion of shared/global/php you can avoid one or all of the Model-View-Controller facets of the software. For example, in error.php, YACS is instructed to not contact the database server with a define('NO_MODEL_PRELOAD', TRUE); statement. See also included/browser/minify.php for a script not using the YACS MVC features at all.

-  The skin is not loaded anymore in scripts that are not using it. This saves a lot of CPU cycles in AJAX back-end scripts.

-  Some frequently invoked scripts such as users/heartbit.php have been profiled as well to remove as much fat as possible.

-  shared/values.php and users/visits.php are not systematically loaded anymore, and scripts that require them have to include these libraries explicitly, like in cron.php

-  Reference servers are now supposed to be installed at the top of the file system. URLs mentioning /yacs/ have been turned to /##, like in the main help page, at help.php.

-  When YACS is installed in a sub-directory, the software is expecting to be located in ##/yacs/
. This default value can now be changed by creating a text file with the name yacs.home that indicates the installation directory. For example, if you install YACS in directory /foo/, place a file yacs.home in the directory /## with the word "foo" at the beginning of the first line. See index.php for more details.

-  The home page now supports the compact layout for articles as expected. See index.php.

-  A new variable ##$context['page_description']
is used to adapt the meta-tag description to the actual content of each page. In articles, sections, categories and user profiles this is set to the value of the introduction field. For other pages, and on empty introduction field, the default parameter set in configuration panel applies. This way of using introduction fields as meta-data helps crawlers to do something clever out of published content. Thanks to ThierryP for the idea.

-  The function Articles::get_url() now accepts a fourth parameter to allow for nice links based on nick names. The idea, suggested by Pinelli, Thierry, is to use nick names instead of titles when possible, to re-enforce SEO pertinence of links generated by YACS. See articles/articles.php.

-  The 'information' tab of user profiles is now populated synchronously by users/view.php, instead of using an AJAX call. This to expose more of user data to web crawlers and search engines.

-  Punctuation marks have been removed from nice URLs, in shared/global.php

-  Loading of internationalized strings (.po files) is now ok even at Blue Host. Check of the magic number has been hardened, as visible in i18n/i18n.php.

-  In debugging mode, YACS now captures profiling information during script execution. See shared/logger.php

-  Number of comments attached to articles is now correctly displayed in sections/layout_sections_as_jive.php

-  When a member is assigned as a section editor, the section is now automatically added to member's watch list. See sections/select.php and users/select.php

-  The library shared/utf8.php has been augmented to transcode from ISO8859 to UTF-8.

-  The system test page, at control/test.php, now displays the current language for the surfer.

-  The query page now properly includes the e-mail address of the poster, if any, thanks to suggestion from Claire. See query.php to get more details.

-  The limit of pages sharing the same nick name has been moved from 20 to 100 in articles/articles.php.

-  When looking at the content tree, YACS now looks at up to 200 sub-sections per section, instead of 21 previously. See sections/sections.php

-  You can now receive up to 2000 comments in RSS feeds, instead of 200 previously. Quite useful to monitor lively threads remotely, isn't it? See comments/feed.php

-  Text submitting in a thread will be appended to the previous comment, but only during 10 minutes. After this amount of time, the new contribution will be put in a separate comment. See comments/thread.php.

-  When the script articles/move.php moves a page to another section, it now adds a comment to the moved page to keep history of this change.

-  SQL requests have been made more compatible with most recent versions of mySQL engine.

-  The control/chmod.php script now asks for confirmation before changing file permissions of all scripts.

-  A new script control/jsmin.php has been added to compress Javascript files. This script requires a huge amount of memory to work properly, so it may not work at your specific site. You have been warned.

-  The Control Panel now features links to the chmod and jsmin scripts. See control/index.php.

-  As an experimental feature, YACS now allows for the compression of reference files. The idea is to generate a compact set of running PHP scripts, with no comments, minimum spaces, etc. These files will be smaller than regular scripts and, therefore, require less memory when loaded by server engine. See scripts/build.php

-  Another experimental script sections/import.php has been added to create articles out of static HTML pages.

Rate this page
Posted by Bernard on Feb. 2, (popular)