yacs 8.4: user profiles, group messages, tabs, overlays
This month the user interface of YACS has been extensively reviewed, for end surfers, for power members, and for site associates. Review your own record, it's probably good time to expose more of yourself to other community members. Tabbed panels have been introduced almost everywhere, since we believe they help to locate things and to make the software more user-friendly. And the ability to send messages to editors of a section, or to category members, is our answer to the strong requirements you had on group messaging. Many changes have been made to the code, yet most of them are small-size improvements, corrections or optimizations. We are continuing efforts started last month to stabilize the full software, and minor changes are expected in May before release of a major version in June. We believe YACS version 8.4 is rather strong, and your kind feed-back is very welcome.
616 files have been modified or added since the previous release. YACS has now 577 reference PHP scripts for a total of 170,872 documented lines of code.
Here is a list of new or updated features coming with this release:
Full names are used more often than before, as a nice complement to nick names. This will be specially useful in corporate environments.
User profiles have been largely extended, and tabbed panels have been used to ease navigation among all provided pieces of information. See users/view.php and users/element.php
A full business card can now be entered into your user profile, including a birth date, and this may be downloaded as a vCard afterwards. See users/edit.php and users/fetch_vcard.php
The user profiles displayed as an extra box has been fully re-engineered (in skins/skin_skeleton.php) to get nicer rendering on screen.
This is used on successful login, at users/login.php, and in the page of any user, at users/view.php.
In case of three successive failed authentications Yacs now locks the target account for one hour. This is smarter than a permanent lock-out, and it makes a better usage of server resource in case of massive hacking attacks. See users/users.php
The user menu now displays a login box to anonymous surfers. See shared/surfer.php. By the way, the function
The built-in login box can now be hidden in the configuration panel for users. See users/configure.php
A new preference has been added to every user profile for screen sharing, either with VNC or with Netmeeting. When a user activates this features, he has an additional link in chat pages to share his network address with other chat participants. Microsoft-based shops will probably enjoy this nice way to arrange Netmeeting rendez-vous, and others will benefit from the flexibility of the VNC technology. See articles/view_as_thread.php
A new script users/share.php has been added to create dynamic files used in Windows environment to launch NetMeeting and to lead it to a given network address. This is how Yacs helps to setup some rendez-vous.
Users can now select to benefit from the 'Improved interface' (which is the default) or from the 'Complex interface'. This can be changed a any time from the Preferences tab in user profiles. The idea is that most users will prefer interface efficiency over interface richness. Therefore, some commands are visible only when 'Complex interface' is selected. For example, for associates, the configuration panel for system parameters is visible only for those who have selected the 'Complex interface'. All configuration panels related to user management and to content management are still visible when preference is set to 'Improved interface'. See users/edit.php and control/index.php.
A new function
A new layout links/layout_links_as_simple.php has been added to improve most recent contributions in user profiles.
The layout used to list users e-mail addresses has been enhanced to remove malformed records. See users/layout_users_as_mail.php
The search form for users now takes into account the MySQL settings related to minimum token size. See users/search.php
A new script sections/mail.php has been added, that allows to send one mail message to all editors of a section at once. Of course, you have to be an editor yourself, or a site associate, to benefit from this function. This new feature brings workgroup e-mail communications to sections.
Categorized people can now be reached by e-mail on one click. Associates, and only associates at the moment, can visit categories and fire a message to all related users, if any. See categories/mail.php
Thanks to contributions from Tof, many SQL statements related to categories have been enhanced in categories/categories.php. Also, new fields have been added to categories to allow for trailers and extra content, similar to what is provided for articles and sections.
Categories are now natively displayed as tabbed panels when applicable. Users related to a category are now listed with their thumbnail image and links to most recent contributions, which is a comprehensive approach to staff categorization. See categories/view.php
Page content can now be structured in tabs, jointly in articles and in sections. Use the option '
The overlay interface (overlays/overlay.php) has been extended to let it insert additional tabs in articles. Developers will use this nice feature to create rich and sophisticated web pages when required to do so.
Most important editor scripts now feature a tabbed interface: articles/edit.php, categories/edit.php, sections/edit.php and users/edit.php. This is bringing more than cosmetic changes, and field positions have ben optimized to streamline the job.
The capability to import an external web page by giving its address has been removed from the page editor, at articles/edit.php.
The section editor now features a more natural way to enter compact titles (used in side contextual menu) different from index page title. See sections/edit.php
The capabilty to move a comment to another page has been removed from the comment editor, at comments/edit.php.
Most configuration panels now feature a tabbed interface to streamline the job. See the main configuration panel at control/configure.php for an example of this. The configuration panel for collections, at collections/configure.php now displays one tab per collections, instead of folded boxes previously.
Many input scripts have been re-structured to group basic commands at page bottom (e.g., addition of a 'Cancel' link nearby the 'Submit' button.)
Also, several menus have been reviewed to ensure that the most used command is coming first.
Moreover, many of these bottom menus feature a leading button, followed by regular links. See comments/edit.php or comments/view.php as practical examples.
The behavior
The vocabulary used in the interface is more straighforward to regular computer users: 'page' instead of 'article', 'person' instead of 'user', 'see also' instead of 'related links', 'information channel' instead of 'feed', 'page factory' instead of 'rendering engine', 'background processing' instead of 'agents', etc.
Many titles and labels have been simplified. For example, 'All actions' and 'Recent actions' have been turned to 'Actions', etc. This makes the interface more straightforward to surfers, and it also reduces the total number of strings loaded in memory by YACS.
The panel that reports on background processing now displays the total time spent in script execution, and it also features a tabbed interface, which make it more straightforward than the previous horizontal menu. See agents/index.php
The setting of parameter 'with_referral' has been moved to the configuration panel for the page factory (skins/configure.php). Previously it was set in the configuration panel for agents, don't ask why...
Links to public news aggregators are not displayed if the new parameter 'without_internet_visibility' is set to 'Y' in the main configuration panel. This is necessary for corporate users using an intranet server, that Google and other crawlers cannot reach.
Experimental configuration parameter on COMET-like access has been removed from the main configuration panel, it could have terrible impact on response times.
Parameter 'cron_host' has been renamed to 'main_host', since it may be used in several scripts, and not only for background processing.
Several interface elements have been moved to help boxes aside, such as the editor selector (TinyMCE vs. FCKEditor vs. textarea) or the reference to mandatory fields.
TinyMCE is now the default text editor for new sites. Of course, this can be changed at any time.
Several pages ('coffee_machine', 'support_chat') and sections ('channels') which were created by default require now to trigger the Content Assistant. See articles/populate.php and sections/populate.php
A nice background image has been added to make tags look like printed baggage tags. This applies to all links in a
Several improvements have been added to
List of comments now distinguishes contributions from page original author through the CSS class
The script used when the site is closed, control/closed.php, has been enhanced as per suggestion of ThierryP to support skins as much as possible.
Skin templates have changed a little bit to better take care of closed servers. See skins/joi/template.php for an example.
Data captured in forms are now stored in a dedicated overlay (overlays/form.php), to allow for separate restitution in Excel or equivalent, thanks to overlays/forms/fetch_as_csv.php.
Also, form data is integrated in the XML stream generated during page export, in articles/export.php.
The
AIl overlays provided in the reference archive have been updated to support the new overlay interface. If you are in trouble with an overlay of your own, a good start is to rename the function
To further help you a test overlay overlays/overlay_test.php has been added to the reference archive. You can assign it to some pages to see how it impacts Yacs page factory.
A
When streaming a Flash file, YACS is now loading Javascript files from the skin directory, if any. The aim is to complement running context of those specific Flash files that interact directly with Javascript run-time. See files/stream.php.
Racing conditions are now better prevented in cron.php, to avoid several executions of the script in parallel.
The main help page, at help.php, does not offer self-registration anymore when this function has been disabled in the configuration panel.
Yacs is able to manage several cover pages again. It looks for the most recent page in section named 'covers' and, if none exists, it looks for the article named 'cover'. This combination allows for simple and complex setup, which should satisfy most demanding webmasters. See index.php and sections/populate.php
Files compressed by control/jsmin.php have now an extension
Of course, the reference archive only features compressed versions of Javascript libraries. To give an idea, the total size of loaded Javascript libraries has decreased from 233 kbytes in version 8.3 to only 173 kbytes in version 8.4, which is a 25% improvement. Look in directory
Links to the yetanothercommunitysystem web site have been fixed in the readme.txt file.
Translated strings are now cached with session data on first access, and this saves a lot of CPU cycles and file access afterwards. This optimization of server resources is one of the great performance enhancement of this new version. The only drawback is that enough space has to be available to store extended session data. See i18n/i18n.php.
Cached versions of translated strings (with extension
The loading of translated strings has been linked to data management. For example, strings for articles are loaded at the end of articles/articles.php, etc. As a consequence, many
Yacs sends specific statements to the database to check for UTF-8 support. The result of this request is now cached in session data to save a lot of SQL queries submitted to the database back-end. See shared/sql.php
The outcome of SHOW STATUS has been added to the one of SHOW VARIABLES in the information script control/info.php, to enhance visibility on SQL on-going operation.
The amount of unused space in the database is now displayed at the Control Panel, at control/index.php. Unused space is created when many records are created and then deleted.
Additional background processing has been added to recover unused space from the database. Unused space is taken into account into space quotas given by Internet service providers, and that has been an issue at some very active web sites. Now YACS is recovering unused space in the background to smooth database operation. See shared/sql_hook.php and function
An additional command has been added to the purge script, at control/purge.php to recover unused space in the database manually. Provided just in case, yet you should not have to use it at all under normal operation.
Default values for numeric fields are not quoted anymore in SQL statements used to update the database.
Unused database index have been removed (e.g., on 'edit_name', 'publish_name', etc.)
The constant YACS is now defined in shared/global.php, to ease verifications in scripts that have to be included. See agents/browsers_hook.php as an example.
The sample
Run-once scripts that are more than one year old have been removed from reference scripts.
Here is a list of new or updated features coming with this release:
Surfer::build_user_menu() now returns a string instead of an array.has_all() has been introduced in shared/surfer.php and is available to check interface preference.view_as_tabs' to activate this feature, and this will trigger articles/view_as_tabs.php or sections/view_as_tabs.php respectively.move_on_article_access now features a nice button instead of a regular link to enhance the implementation of simple workflows.p.tags container.skins/_reference/yacs.css, including: z-index for autocompletion, to make it compatible with TinyMCE, size reduction for tabs generated by Yacs, visibility adjustements to make tabbed panels compatible with Google Maps, vertical space added to folded boxes..follow_up. This allows bloggers to better answer questions asked in comments.Overlay::get_text() function has been extended to the introduction field (page top), to the trailer (page bottom) and to the extra panel (aside). Look in articles/view.php how this is used to further delegate page content to the overlay instance. get_text() to get_view_text(), and to suppress the variant parameter. Then look carefully at overlays/overlay.php to better understand what has changed.p.columns_prefix and a p.columns_suffix have been added to dynamic tags for columns layout in skins/skin_skeleton.php.js.jsmin, to differentiate them from regular scripts. Also, YACS now looks for these compressed files before using regular versions, in included/browser/minify.php. included/browser..mo.php) are now provided with the reference archive instead of original translated strings (with extension .mo). On new servers this will save the time to create cached versions, and save on total disk space used by Yacs as well. See i18n/i18n.phpi18n::bind() have been deleted in other scripts.purge() in shared/sql.phptools/yacs_crontab has been enhanced to further describe alternate ways to trigger background processing.Comments
I've upgraded to the 8.5beta10. Whew - I was going from an old YACS 7.6.3!!!
IT WORKS! It took a lot of investigations to some things working right.
One thing I can tell you that will help: Derive a new skin from one of the updated skins and transfer all of your various settings over, bit by bit, piece by piece.
I couldn't get the tabs working for the life of me, but I did that and I was on my way.
The biggest problem I had was something I had added to my CSS -- a custom "Please Wait" style. I thinkI have instructions here on http://yetnothercommunityserver.com on adding a few lines to the head of your CSS. Take that out and you'll have a better shot at getting the new tabs working.
Oh! Also, make sure you "Add basic items -- in case you would need to replay some steps of the setup process" from the Content Assistant. That is probably what was causing me the most grief as there were sections that I needed that I didn't have after the upgrade. This put them in for me.
Apparently, I had never fully upgraded to yacs 7.6.3 because a lot of the functionality should have been in there already by that version.
But it CAN be done. Go to http://free.naplesplus.us and see! I've been changing all of the sections over to have a view_as_thread as the comments functionality is greatly improved by giving it a chat interface. It will be something new for the people on my site to get used to, but they'll get used to it.
Some things are still weird, but it's getting better all of the time. Kenneth udut
