2.7.5 changelog (2011/4/1) ================================== - Updated webdav functionality so that it can accept MAC clients and have features for moving and renaming template folders. - Fixed: scroll bar will be shown on template code editor if the text are too long and overflow down. - Fixed: Correct error messages will be displayed when a member's username / password does not match the required criteria. - Remove member grouping when showing the website information for website user. - Fixed: AMS advance find feature problem when doing more complicated search. - Fixed: AMS program now works when the source program is membership. - Updated setup to support license key file with embedded comments 2.7.0 changelog (6/09/2010) ================================== - Added Trigger functionality to callbacks for members - added support for option not to resend emails when changing a workflow with pending approvals. - opened up the schedule date for editing if a program specified if it does not have schedule rights attached. - New extended details are provided for audit trail. Finer grain of information can be extracted out for content based items. - Added new feature to reset all the permissions in the channel editing dialog for faster setup of microsites. - Datetime control can now accept 'Never' as a input. This automatically translate to 0000-00-00 - Clean up some missing files - Fixed advanced find problem not functioning correctly. - Provide more listing of users under a particular role listing [Client] - Added ability to provide some custom messages on the AMS login page - Fixed template code editor go to line function. - Added the missing feature of deleting attachments from an article (provided the attachment field is not required) - Show the ids of programs and channels when editing the items. - Fixed problem with inability to change user's password - Added support for mysql clustering by having additional db type in the db server configuration. - Updated on the binary blob data referencing schedule from using bb query string with id to using the fieldset name so that the link will always fetch the latest attachment. - added support for fname and alphanumeric bb value - added new search adaptor for google search appliance - updated the /etc/init.d/proftAllopd script to force the removal of proftpd.pid when proftpd daemon has already died off when doing restart - updated mxapp/robots.txt to include new rules to allow crawling from Google Search Appliance - Fixed content permission setting inheritance problem previously. - Fixed task list display problem with few tasks - fixed bug where the new php.ini is not installed when doing new installation - fixed a bug where an old bug was mistakenly reinstated on clearing cache issue. - added support for mysql zero time '0000-00-00 00:00:00' - added more info logging to some of the FTP operations - added support for negative date/time returned by the new mxDate class which is actually a zero date/time - added new config.ini setting 'disablePublisherMonitoring' into the default config.ini created for each new website created - added a new method mxCommon::doResizeImage() to perform image resizing based on either imagick extension (if available) or gd2 extension using mxResizeImage class. - moved mxViewer::doResizeImage() to mxCommon::doResizeImage() and updated the class accordingly to reflect the change - changed the generation of article data link from bb= to bb= - added word_match (wm) support to the searching of content - changed default website property 'publisherInternalCache' value from 3600 to 86400 - optimized the default apache httpd settings - fixed a bug in mxDate::isZeroTime() where it didn't return true even if the date/time value is zero - fixed a bug in session pre-mature expiration - added support where 'bb' is not an id but instead is a fieldset name to work around the issue of updating article attachment/data of an existing article - changed to re-index or deleting index on article update only when the indexing is enabled for the program - added new method mxMember::getClearTextPassword() - updated mxUserSession to not destroy session on session expiration for the new AMS console - installer: added new apache module mod_extract_forwarded2 as part of the installation (not enabled by default) - installer: added new php extension XSLT as part of the installation (enabled by default) - installer: added new php extension PDO_MySQL as part of the installation (not enabled by default) - installer: upgrade script now asked for type of upgrade so that it can better prepare the proper type of upgrades - installer: changed code at mxSetup::doRestart() so that it only start the relevant services based on setup type. - database: upgrade script will now convert tables in mxsystem to UTF-8 encoding - reworked how config is loaded into the internal cache (xcache) where it changed the behaviour of mxae where by the config file once loaded will not reload based on the modified time of the config file which was the previous behaviour. + to reload the config file, you can either restart apache or issue a URL with a "rc=1" GET parameter. - updated the article handler to ignore the usage of charset settings from program and article object in order to use AMS charset settings only - updated mxArticle::setProgram() to be more verbose in logging in setting table for the object when there is an error - commented out federated settings in the default mysql installation - change default installation to turn off mysql persistent connection to improve performance under high load - fixed a bug where an article's published date can't be edited in a non-schedule program for user with no schedule right - added webdav support for latest netdrive client - added HTTPS link replacement for mnogo result page due to access to AMS is secured - fixed a buildLink issue where link with 'bb' does not need to include 'tpt' parameter by default - fixed a data length sanity checking issue where it is too large. reduce the data length check from 512 bytes to 64 bytes. == Publisher Related == - fixed bug where $SELF_URL_EX should not be cached - optimized all the built-in query string so that it is mysql query cacheable - fixed a bug in mxPublisher::isWebCache() where Page Accelerator turbo setting is not properly cached - fixed a bug where turbo cache was accidentally disabled in MXAE 2.5.0 release - fixed the publisher.php, cacher.inc.php and app.inc.php to make memcache work in even when publisher is in page accelerator turbo mode. 2.6.0 and 2.6.5 (changelog) =============================== There were 2 interim releases that is already obsolete. Those who are using these versions are strongly recommended to upgrade to 2.7.0. 2.5.1 changelog (21/06/2010) =================================== - bug fixes at caching, AMS and backward compatibility issues 2.5.0 changelog (1/05/2010) =================================== - fixed default timezone setting issue - fixed coding bug where if row for personalized language does not exists, the app will still attempt to set it - added database connection ::close() and ::closeAll() method - added SET NAMES to support various charset within the SQL operation - fixed bug in mxDate::copy() where it is not able to copy from the same object due to private members - new website tables creation: changed the size of chn_name and prg_name to char(255) - new website tables creation: added tpf_parentid index for template_folder table - changed ads banner sql display query to make mysql query_cache friendly - fixed a reset cache bug - set and fix wait_timeout to 3600 for all cli operation regardless of the default wait_timeout value in my.cnf - added settings to apache, php and mysql in support of UTF-8 content storing and publishing - optimized publisher's query for obtaining latest articles to publish that is before the current time so that it can be cached by MySQL query cache mechanism - fixed installer where mxapp/config.ini was not setup properly for publisher only installation type - fixed a bug where publisher's HTTP Header info get incorrectly overwritten - fixed a bug where publisher's http_send_data() will be partially cache causing binary downloads to be corrupted - fixed upgrade script to correctly grab default configuration files from the distribution source - added get setup type info for upgrade script - optimized logging function by storing the often used variables globally. - changed MX_LOG_LEVEL from a constant definition to a global error to allow change of value midway during execution - changed mxDate to use PHP built-in DateTime and DateTimeZone objects - added new methods mxPublisher::setLogLevel() and mxPublisher::getLogLevel() - added support for x86_64 OS platform - added support for memcache and memcached as an additional cacher module - added user configurable cacher module at config.ini (AMS & Publisher) + cacherType (MEMCACHE or XCACHE) + memcachedServers (eg. 192.168.0.1:11211,192.168.0.2:11211) - fixed support for imagick 2.3.0 under method mxViewer::doResizeImage() - added support for displaying {$var}_i where the fieldset is of checkbox or multiple select type for article and member object - added ability to disable sysres logging for publisher by providing a new settings in config.ini + Set to true to disable system monitoring of this publisher + disablePublisherMonitoring = false - optimized mxCacher::delAll() by removing the need of using any methods from mxCommon - optimized the files to require_once() between mxApp and mxAppMax class file - added variable caching support for mxTSL::getMember() - added support display of {$vars}_i for input with multiple options selected at member and article formsets - added member formset and fieldset caching support for mxPublisher::login() to further speed the login process - optimized mxPublisher::getCurrentMember() method - publisher: added new predefined variable $SELF_URL_EX - added ability to edit more than one template at the same time with multi-tab windows - added syntax highlighting to built in template editor - added ability to upload multiple files at repository and file management module - added ability to upload/store multiple images in article on a per article basis without the need to use repository or additional fieldset - added ability to view article images in thumbnail window - added http expiration/caching header for binary data (article image, repository, etc) to improve browsing experience at the AMS side. - added advance find for template module - added independent scripts to convert database to utf-8 (optional) - Caching of AMS languages that will be sent over to client on initialisation - Caching of AMS datasources to client - On AMS channels / programs can be search using ids. - New refreshed & optimized skins and icons for the AMS client. 2.0.1 changelog (13/03/2010) =================================== - a lot of bug fixes at the AMS level 2.0.0 changelog (31/01/2010) =================================== - totally new AMS 1.6.7 changelog (??/??/2010) =================================== - weblog extended: fixed a bug where the config value is not carried forward when choosing different report month and/or year - weblog extended: added support for non-registered / custom website domain log reporting - weblog extended: Updated this report to show article title if available instead of just article id. - weblog: Updated code to be able to grab web logs rotated based on date extension - mnogo: limit indexing to the number of URLs as a safety net in order for the indexer not to crawl expired documents - mnogo: added additional search parameters support such as 'sort_mode' for search results. - mnogo: added header instruction to send content type and charset information for article link - mnogo: added code to make indexing and searching more charset and unicode aware - mnogo: added instructions to give exception to mnogosearch robot to crawl the AMS - mnogo: added support for UTF-8 content indexing and searching - AMS: fixed sendmailnotifications to notify approved or rejected status to member - AMS: added option to enable or disable captcha for AMS login - TSL: fixed generation of checkbox input so that it does not include a "
" at the end of each input - publisher: added header pragma cache control public for download of files - workflow: fixed workflow reject bug where article status was not updated accordingly - publisher: fixed redirection where 'keepquery' setting in AMS subdomain redirection is not honored - publisher: optimized the query for article objects to take advantage of query caching mechanism in mysql 1.6.6 changelog (21/12/2009) =================================== - fixed a publisher caching bug where suspend/activate website does not clear the cache - added a new membership/membership group filtering level at the content log report generator - updated setup instruction for dummy SSL cert generation to incorporate the use of SHA256 digest algorithm instead of MD5 - updated phpMyAdmin default config file to hide information_schema by default - fixed a bug in AMS's membership listing where it could not display all member records properly - added support for website name that begins with a number - fixed publisher's theme rule processing bug - added memcache and memcached module as the default session handler for new installation (upgrade won't change the current default handler) - added feature to export audit trail data to CSV file format - added a new option '-e' which allows the backup process to exclude certain database from being included in the backup - proftpd and mxagentd is now part of init.d start up process (only applicable for fresh install of MXAE) - fixed support for unicode characters display of article listing 1.6.5 changelog (20/10/2009) =================================== - fixed a bug where when removing a website db user, it forgot to revoke the 'DROP' privileges - added captcha capability at AMS login - added a quick hack to support user to selectively manage members by group - added installation support for Fedora 11 - added notification feature when a membership registration is rejected - added 'customField' attributes to 'list' selector for article 'mode' which allows you to perform additional custom field (eg. subquery) sorting - fixed mapped article display in AMS when the title fieldset is a select option and refers to another program - modified the installer to support /home directory instead of /home/users only 1.6.4 changelog (2/9/2009) =================================== - fixed ranking of channels & programs in the AMS listing - added feature to allow users to view mapped articles if available - fixed code to allow user with rights to view the manage mapping menu - fixed a bug where 'passwordmodified' field in member table wasn't updated accordingly - changed data type of newly created foreign key to article_data in a formset table from 'signed mediumint' to 'unsigned mediumint' - added 3 new methods to mxObject, namely ::getAllByQuery(), ::getCountByQuery() and ::query() to support for flexible retrieval of objects via custom SQL statements - fixed AMS session where the session's expiration wasn't working correctly - fixed bug where re-indexing program didn't work properly - fixed a bug where downloading a PHP script will changed the source data of the script - added a new handler: weblog extended - additional report to current weblog - added a new method/option to optimize search index - fixed the parsing of the linux ftp file listing to accomodate filename that begins with number and contains spaces - added CLI options to run job for specific website given the website id using option (-w ) - added 2 new website properties: 'passwordStrength' - to control the password strength of member login and 'indexingMode' - support different mnogoSearch indexing mode, value can be 'single', 'multi' or 'blob' - added 'indexingMode' - support different mnogoSearch indexing mode, value can be 'single', 'multi' or 'blob' - added new method mxObject::toArray() to retrieve the mxObject data members in array format - added a CLI mode option in app session so that the cacher will not run during cli mode == Publisher Related == - added a new mechanism to invalidate / deactivate all active member sessions if a member logins again with a valid session (this only works if member's 'concurrentSession' property is set to 1 and 'sessionTimeout' property is larger than 0. - fixed an object caching issue where the website is using more than one theme to access the same object 1.6.3 changelog (1/12/2008) =================================== - fixed a bug in weblog report where urlfilter does not work properly when month selected is not the current month - added 'created' and 'modified' details when viewing article property - added 'staging' and 'draft' details when viewing article property - updated code in fieldsetoption object to speed up the process of retrieving options data - fixed a bug where user unable to create a virtual program - patched installer with latest phpMyAdmin with fixes for a serious security flaw within phpMyAdmin - updated code in object so that when updating article, the search index is also updated accordingly - added article's draft and staging status in the 'property' view - added a 'database name' column in the website listing - added a HTTP header workaround bug for downloading exported file via IE6 in HTTPS mode - added a 'customAccessControlScript' website property at publisher's config.ini to allow for execution of user defined PHP script to perform custom task before publishing anything to the browser. - updated setup script to perform symbolic for libssl.so.4 and libcrypto.so.4 for newer OS such as RHEL5 and Fedora 10. 1.6.2 changelog (20/10/2008) =================================== - fixed a bug where AMS username with '-' character is replaced wrongly - added article's owner column information in the default listing - upgraded bundled backup.php script to version 1.3 with better features: mysql socket connection support, bzip support, include hostname in backup filename, post backup 'command line' operation, able to specify different ftp remote destination dir, etc - fixed workflow bug where rejected articles will be send back to the start of the workflow again - fixed a member object bug where update the lastlogin field will not be successful if the record is not complete with all the required data. fixed it to bypass validation if just updating lastlogin field - fixed a search / indexing object bug where if an empty article blob's field(s) is(are) not skipped properly in generating the URLs to index. - fixed a bug in webserveraccount where one of the rewriterule directive was missing when generating apache httpd.conf virtualhost entry === Publisher Related === - added a new attribute 'nocache' () for 'article' selector where in TSL mode, an article records can be called directly from the database without having to retrive from the internal cache pool where it could be stale. - fixed a publisher bug where http_send_data() cannot be used in mxViewer as the data output would not be captured in the ob_start(), so can't effectively cache the output of mxViewer for use in Page Accelerator module - changed all publisher 'echo' HTTP content to use http_send_data() to allow support of throttling, 'partial' and 'resume' download of content - fixed a bug where article data and repository could not be published properly if page accelerator is enabled and member is login with membership group - set a size limit of 2M for a data that is to be cached in page accelerator - changed all links generated by the publisher to use relative link (eg. index.php instead of /index.php) in order to support operation of development URLs and production URLs (only applicable if internalCache is turned on) - added the ability to disable session hijacked protection mechanism by specifying 'disableSessionHijackProtection' to 'true' in the config.ini of the website - updated the adodb-performance module when doing sql logging to include 'QUERY_STRING' in the tracer URL - added two additional settings 'disableSessionHijackProtection' and 'maxCacheSizePerItem' in the default config.ini when creating new website - added new feature where the maximum size of a cache item can be controlled via the new config.ini 'maxCacheSizePerItem' of each website (more for article data and repository caching at the page accelerator module) 1.6.1 changelog (20/08/2008) =================================== - added new 'prgids' array parameter to mxContentLog::getMostPopularArticles() to allow the function to be able to return most popular articles within the program IDs specified - added role and user listing in the "View" property page at AMS Role and User module - fixed a MySQL 5.0.x SQL bug where wrong SQL function was called to check migrated MySQL 4.x password - added "Indexing" property listing in the Program "View" property page - fixed a bug at the filtering list search function where the url was not redirected properly at the weblog module - fixed multicharset settings when displaying article listing and article editing - fixed bug where article converted to multibyte html entities are being able to view properly in the AMS - added a 'stopwordfile' directive in the configuration file generation at the search module - fixed a bug where username with a '-' character (at AMS login) cannot login - fixed a enddate > startdate bug when enddate is set to 'never expire' at banner module - fixed CSV Export for article changed from having extension of ".txt" to ".csv" - fixed a bug where app is unable to display when viewing mapped articles tree structure - added new method mxArticle::getBlobDataByName() - added new method mxContentLog::getTotalArticleHits() - added ability for contentlog object to point to different set of tables by specifying the table names in config.ini - added PHP magic method __toString() to the mxDate to support for direct string manipulation of the object - added display of the TSL variable name when viewing the member's property - fixed the indexer options to force re-indexing of any URL regardless whether it has expired or not (mnogosearch & mnogosearch cluster adapter) - added new RewriteRule (for new virtualhost in httpd.conf) when creating new website to redirect request for view.php (NF2.2 backward compatibility) to index.php - updated permission handler to support permission setting for all child channels and programs. - added option to hide 'information_schema' db from phpMyAdmin management panel (for new installation only) - fixed linking problem in viewing mapped article structure. - fixed a bug where update of records for user and member won't work because new password is empty but old password is not. - fixed a listing bug where the total records displayed was wrong === Publisher Related === - added a $bForce parameter to mxPublisher::doContentLog() function to allow manual invocation of the function to do content logging - fixed a date object bug - added "ctime" (current time in unix epoch time format) field in the json response object for POST submission - added "sid" (session id) field in the json response object for POST submission - fixed bug in repository selector where align and style attribute did not get published properly - added 'html' attribute to 'window' selector to allow reusing of same CSS style and different HTML portlet file - fixed method ::doResizeImage() to resize image according to the original aspect ratio within the new height and width given - added URL backward compatibility support for displaying object from NF2.2 repository and article data - added 'vspace' and 'hspace' attribute to repository and article selector to support for image object display 1.6.0 changelog (01/06/2008) =================================== - product name changed from NeoFission MX to MX Application Engine (MXAE) to reflect the true intellectual property ownership of this software - increased performance for overall user experience at AMS - fixed AMS program edit interface where it hangs during loading due to large 'formset' and 'program' entries - updated all AMS channel/program tree structure input selection to be AJAX based to improve loading speed of a few AMS interface - changed AMS role interface to be more scalable where the number of channels & programs increasingly large - added more filtering options ('used', 'unused' and 'empty') for listing formset records in the AMS - updated codes to support the latest PHP 5.2.x code base - added URL list export feature to search/index section to allow for manual indexing - polished the information output of section 'event notification' section - updated setup script to support installation at RHEL5 - added option to list more records per page in a single listing - added a new website property/feature where the member's password strength is configurable. the password strength can be set to either allow for only numbers, alphabets or alphanumerics. - fixed multi-charset support bug during article management === Publisher Related === - added a limit to 'tnwidth' and 'tnheight' to avoid thumbnail over resize issue where it could cause traffic flooding to the publisher server - updated mxBrowser to support IE7 - updated codes to support the latest PHP 5.2.x code base - added uncaching via URL request param 'uc' capability to mxApp::getCache() method (uc=2) - added 'fields' parameter to methods mxProgram::getArticles() and mxProgram::getPublishedArticles() - added new methods mxProgram::getPublishedArticles() - added 'sort_field' and 'order' attributes to list mode 'program' (TSL) 1.5.3 changelog (03/03/2008) =================================== - Fixed a bug where the start and end period for a ads campaign is not able to span to more than a month if the start day is larger than the end day of the date. - Added a workaround with IE browsers whereby Pragma and Cache-Control HTTP header has to be empty during HTTPS session - Added support for a 'codebase' attribute to 'ads' or 'advert' selector. - Added support for HTTPS connection mode for flash based adverts at the 'codebase' attribute - Fixed a bug where using TSL to register a new member doesn't work properly due to unable to update its password - Fixed a bug where an article marked as staging is still being published - Fixed a bug to reflect changes in mxApp where advance search in audit trail does not work properly - Fixed problem with workflow not processing correctly for draft article - Fixed a bug in backup script where if backup file exceeds 2GB in size, the script will not work properly 1.5.2 changelog (23/04/2007) =================================== - added support for xcache (recommended) cache mechanism in cacher.inc.php - fixed a problematic issue with table locking method at GenID() where it keeps causing the cluster to hang - fixed a bug where if there is any item in the directory listing entry which contains the character 's' in the mod column, the listing will fail with empty listing. - added support for more than once retry attempt for insert queries that returned with a duplicate key error for ::execute() - fixed a code typo error on a seldom executed part of the code - updated mnogo search adaptor to support search in more than one channel and/or program - added a new script routine to repair sequence tables within each website db in worker cli - fixed a bug at AMS Workflow GUI where IE7 support wasn't working properly 1.5.1 changelog (13/01/2007) =================================== - fixed a bug where weblog report generation would not work if "Page Accelerator" is turned on with "Turbo" mode - improved overall support for mysqli driver (experimental) - improved support for mysqli at the built-in DB session handler (experimental) - added support for a programmer defined database 'zero' date & time via constant settings of MX_ZERO_DATETIME, MX_ZERO_DATE & MX_ZERO_TIME - fixed a bug in the ETA callback mechanism - added a code to use PHP built-in date_default_timezone_set() to set default timezone to improve speed - improved the sql query for ::getTopPerformance() to fix a bug where duration of page stay produced a bogus number - added a new ADODB driver 'mysqle' (variation of 'mysql' driver) that provide better support for mysql running in EMIC Cluster 2.7.5 - added experimental support for 'mysqle' - fixed a bug on support for mnogosearch adaptor where the 3rd party app changed its format for indexing from a file with list of URLs - fixed various minor search / indexer bugs - fixed bugs where ads_location entry is not created for campaigns that are based on "Everywhere" or "Home Page" causing publisher to fail in publishing these banners - fixed a bug where re-indexing the articles will wrongly include articles under staging or draft status === Publisher Related === - added a new mode for webcache for member_general (only specific to member in general rather than individual) and also general (public and member are treated the same) - added a new methods mxPublisher::setCachePage() to allow developer to programmatically control which page to cache by using the APIs. - added more log information for page accelerater related operation- added a new config.ini key 'dbPersistent' to allow user to choose whether to use persistent db connection for their website db connection (Default: true) - changed the behaviour of inserting immediately ads log records instead of in a delayed mode - added a new config.ini key 'adslogDelayInsert' where it allows the log for ads exposure and clickthru to be inserted into the DB in delayed mode. (Default: false) - added a new config.ini key 'sessionHandler' where the session handler can now be changed to other handler besides the NeoFission built-in DB session handler (default) - added a new config.ini key 'sessionStart' where the session can now be changed to start automatically ('auto' - default) or manually ('manual') (experimental) - added a new config.ini key 'pageAcceleratorExtendedKey' where user can now append custom variable values to the unique key index names used for storing the Page Accelerator cache. Variable values supported currently are from $_SERVER and $_COOKIE only. Values are comma delimited. (experimental) - added a new config.ini key 'maxLoadAverage' where user can now set the maximum allowed load average before system stop receiving more requests. Additional request will be notified with 'system is currently busy' message using the 'systemBusyPage' configuration key - added a new config.ini key 'errorPage' and 'systemBusyPage' where user can now set the HTML templates to use in the event the publisher needs to notify user of 'system' error - added a new config.ini key 'publisherIPs' [format = publisher_ip[,]]and 'publisherURLs' [format = webserveraccount_id|publisher_url[,]] where publishers can communicate among each other for cache synchronization. if this is not specified, the communication falls back to FTP client/server protocol. - added defense mechanism against URL path injection (eg. /index.php/javascript/css/test.php?ch=business) where $PHP_SELF is corrupted and can corrupt the website which has Page Accelerator (turbo) turned on - fixed a bug where the page accelerator cache wrongly in member mode in ::setWebCache() - fixed a bug where 'php' selector will fail if 'include' attribute is a variable - removed cache support for mxMember in the API object factory (it just can't be cached reliably due to some reason) - added new TSL attributes 'yvalue_format' and 'xvalue_format' for graph selector in order to allow customized formating of the respective axis labels - fixed a bug where the variable $_mxTSL was not created apprioprately during callback session 1.5.0 changelog (31/08/2006) =================================== - added the member/public option back to the AMS Page Accelerator module - cleaned up some codes at CLI modules - fixed a bug at the publisher's agent where the server stat data is not being inserted into the database - added a new config param "forceSSL" and "secureURL" as a AMS security enforcement to force or redirect AMS to be accessed in SSL mode only - fixed bug where listing fails if the AMS listing include any article's field that contain the backslash character - added a security feature to enforce PHP ini open_basedir setting at each virtual host entry in the Apache httpd.conf === Publisher Related === - fixed a XSS security bug when there is an error at executing callback - fixed a notification bug on program that contains workflow - fixed a re-caching issue of website license which causes the website to issue "license key has expired" - fixed a bug where $errmsg was overwritten with incorrect value during unsuccessful form submission - fixed more bugs related to virtual program and channel - added DOJO 0.3.1 support for AJAX form submission using the form selector "json" attribute 1.1.0rc2 changelog (07/07/2006) =================================== - fixed the AMS display error in the role/premission tree menu - fixed a minor dir/file listing bug at the AMS File Management module - fixed a bug a fieldset handler and object relating to fieldset creation - fixed many bugs on the ETA module - added some experimental support for solaris 10 - changed behaviour where default SMTP server is now set to 127.0.0.1 === Publisher Related === - fixed further bugs/support for virtual channel and program 1.1.0rc1 changelog (05/06/2006) =================================== - updated AMS GUI to include experimental support for the upcoming IE7 that's currently in beta - added Extended Template Application (ETA) modules - updated source code documentation across the board - split mxApp into smaller and compact classes (mxApp and mxAppMax) to allow publisher's to use the compact version for efficiently - fixed problem on articles in a multi-threaded program so that the article's status is always set as MX_STATUS_ACTIVE - changed API code program mapping for articles - added ability for user to define their own code for a program map - added addMappedArticle() function to the mxMember object to allow articles to be mapped to members - fixed problem with deletion of member group - added a category field (string type) to the member group to allow for easy management by category - added mxObject::getAll() and mxObject::getby() methods to allow for definition of DISTINCT property in fields - updated licensing model for new features - update the performance of ads banner generation algorithm - fixed slow speed of ads banner reporting - fixed ads campaign deletion problem - updated the performance of permission matrix (when setting users permission) - fixed minor bug in advanced search dialog in article listing. - added website and database initialisation routine so that jobs run in CLI (Command line interface) mode can use database connection directly. - updated backup script to be more informative, also fixed a minor wrong file size information during FTP transfer - fixed a bug where contentlog is not archived into content2log at method ::doPurge() - fixed a bug at mxAgentChild where mysql connection has to be reconnected after upgrading to mysql 5.0 since we can't reuse the parent connection after forking to child. this bug causes "MySQL server has gone away" error - fixed method mxApp::getBaseURL() where port information is omitted in the returned URL for ports other than 80 or 443 - updated methods in mxWebsite::getSSLLink(), mxWebsite::getLink() and mxWebsite::getDevLink() to accept specific webserveraccount object to return the appropriate link - fixed bug in mxApp where $mxZones declaration should be $GLOBALS['mxZones'] - added support at mxApp for various mechanism of session handling: memory (fastest), php (file system) and db (default - load balanced environment) - commented out loading of mod_security.so and mod_deflate.so in httpd.conf to improve default performance of apache httpd (during upgrade and installation) - fixed bug (contentlog) where date range was not set properly for report "Top IPs For Invalid Member Login Attempt" and "Top Usernames For Invalid Member Login Attempt" - fixed bug (contentlog) where detailed log for the report "Top IPs For Invalid Member Login Attempt" and "Top Usernames For Invalid Member Login Attempt" is missing - added new (contentlog) report type "Top Members Login" - added method to obtain information of template to be included from the template tag - added support for getting information of the templates that might be included from this current template that's being parsed - added (templateHandler) support for viewing all the templates that might be included in the current template, effectively showing the template structure - added (templateHandler) highlighting of the TSL tags when viewing the source code at the view pane - updated db objects to support persistent connections to db where it can improve performance - added support for refreshing the publisher's internal cache mechanism when the respective objects (channel, program, article, template, website's property, etc) are being modified or deleted - added support for turbo mode caching which hugely improves the performance of page acceleration - removed the support for page acceleration caching based on members/public - added code to remove a restriction of proftpd where the ftp does not allow chmod operation by default - added new method mxFTP::chmod() - added new method mxFTP::isDir() - fixed a bug at method mxFTP::putRecursive() where directories weren't created recursively. - added mxWebsite::createDir() method to allow for creation of directory at each webserveraccount for a paticular website - added a new parameter to mxWebsite::setFile() for specifying permission mode for the file after uploading to the webserveraccount - changed some default behaviour of mxWebsite::setup() to support turbo mode for certain default page accelerator items - removed default inclusion of php file containing declaration of mxDateCalc and mxDateHuman class. let the __autoload() handle the inclusion of the file when needed. - changed the default behaviour of the class where initialization of the browser detection routine is only invoked on demand rather than by default. - updated script to use the new mxApp::getCurrentTimer() rather than the deprecated mxApp::getCurrentStopWatchTime()updated script to use the new mxApp::getCurrentTimer() rather than the deprecated mxApp::getCurrentStopWatchTime() - increased default performance of apache httpd server to handle 512 requests concurrently (only for new installation of NeoFission MX) - increased default mysql settings to handle 1000 concurrent requests connection (only for new installation of NeoFission MX) - added utility tools to help monitor and control the features offered by eaccelerator and apc (at /_mxmon_/) - added publisher's internal cache refresh mechanism to article, channel, program. website property, fieldset, template and theme handlers - updated the cron script mysql analyzer to include an auto-repair option - changed session.gc_maxlifetime from 1440 to 86400 to fixed the bug where publisher's member session and AMS user session expire prematurely (during upgrade) - added changes to support latest DBD::mysql and DBI library in order to support connection to latest MySQL 5.0 - added changes to perform upgrade of DBD::mysql and DBI library when performing upgrade of this product - added a new mxCommon::define() method for ETA support - added a new method mxContentlog::getMostPopularArticles() - added a new method mxWebServerAccount::getFTPObject() to facilitate FTP connection to the publisher - added a new method mxProgram::getLatestArticle() - fixed a advert selection bug where channel and program criteria should be exclusive - updated script to delete and add new article_data for updating of article data to prevent article_data being cached indefinitely === Publisher Related === - split mxPublisher into smaller and compact classes (mxViewer and mxTSL) to improve performance (loading and concurrency time) - fixed bug when adding children article from a multi-threaded program, the status of the articles were not set to MX_STATUS_ACTIVE - updated the mxSubmitter::submitArticle() to refresh parent and main thread article cache as well when there is a new article child being added - fixed bug where articles' status with no MX_STATUS_ACTIVE are still published - improved performance of the publisher by identifying additional places for using caching to replace expensive dabatase calls: - ::setWebsite() - ::getRedirectionURL() - ::isWebCache() - ::selectTheme() - removed the need for expensive db connection to mxsystem once the publisher has cached all mxsystem objects - fixed a security bug where member migrated from old NF can login with empty password - fixed bug where if a member submit an update of its profile, mxPublisher::login() will be invoked twice - changed to once - added more logging messages for login, logout and member activities - fixed a bug where ::doAdsLog() method is moved from mxPublisher to mxViewer - moved the local logic of getting template by code based on extension to mxTemplate::getByCode() - fixed a bug where logging disregarded certain information during publisher session if userSession (AMS session) is not defined - added (mxViewer) manual obvious require_once() operations at all methods to safe time in invoking __autoload() - changed cache refresh mechanism in ::submitArticle() method so that in a more than one publisher environment, all the publishers will be able to display fresh data instead of the affected one only - changed the behaviour of listing by issuing a output buffering call within the listing block to improve the output performance of the listing text - fixed a bug at updatelastactive() method where the last active time of a member is not updated properly - fixed initialization of member's session variable during login - fixed initialization of predefined variables related to member's login upon script login - added more logging for script login, registration and logout - updated behavior of mxPublisher::registerVariable() method to using mxTSL::setVariable() if $this->tsl is already instantiated - updated submitter.inc.php script to shift control of redirection to publisher.php - updated script to support for AJAX and JSON response - added method mxPublisher::isJSONResponse() - updated scripts to reflect priority for value in 'tpl' instead of 'tl' for form mode 'search' and 'member' === TSL Related === - added new winstyle files to support new 'window' selector - fixed a bug where submitter didn't return true status for callback function with bypass=true - fixed a bug to support redirection as well for callback function that used setting bypass=true - fixed a bug where valid php code is parsed into invalid php code. eg: - fixed a few minor backward compatibility bugs - changed 'file' selector to be equivalent to 'php' selector rather than same as 'template' selector. - fixed a bug where processing of date object from global variable scope is not processed properly (eg. variable member's data such as member_dob, member_created, member_modified) - added initialization of mxTSL object during POST request to allow callback to access TSL related methods - added initialization of predefined TSL variables such as 'is_success', 'is_expire', etc - fixed a bug where dates are not reflected correct at TSL for article and member selector - added 'id' attribute support for form selector - added support for ETA related variable definitions - fixed a bug where scriptSignIn can still allow suspended member to sign in 1.0.14 changelog (13/01/2006) =================================== - fixed a bug at Apache SSL where browser client experienced intermittent "Page Not Found" symptoms by reconfiguring and recompiling apache without --with-ssl=/usr/local/mxae - fixed a bug at loading the AMS / website license causing some website to using the wrong license data - added support for APC with regards to shared memory module in addition to the currently supported eaccelerator and mmcache module. Module preference is as follows: APC, eaccelerator and mmcache - added a mxCacher class object to manage all supported shared memory module, namely APC, eaccelerator and mmcache - added caching of constant definitions and global variables declarations via APC module which improves scalability and performance slightly - added support for APC module to cache the opcode of the templates of each website (APC module has to be enabled manually for existing websites). this should improve overall website performance slightly - changed publisher to use extract() instead of foreach() whenever there is a need to import a set of variables into the current scope symbol table - fixed a caching bug where program and channel variables is not cached under the right key name, resulting in slower execution of script - splitted drawing, viewing or downloading of graphs/images/binaries functionalities from the publisher and into its own class object mxViewer. this prevents the publisher object from becoming too heavy - fixed a form submission bug where article/member with date or datetime field type can't be updated. other field types are ok - fixed a form submission bug where article/member with attachment field type can't be updated. other field types are ok - fixed a form submission bug where if all fields empty, wrong error message is being issued - fixed a bug at contentloghandler where under "Top Performing Articles" some valid articles are returned as "Deleted" - fixed browser compatibility with Firefox 1.5 at AMS - fixed notification trigger problems with callback function names - fixed a bug where template folders with the same name under different folder parent will be displayed as with the same content from one of these folders (with same name) - fixed a bug where installation failed when installing to an empty partition mounted with a name "/usr/local/mxae" - fixed navigation bar. For handlers that only list items on one page, the navigation bar will not be shown. - member group can not be deleted if it contains members or if a program has access control based on the member group. - disabled website navigation using filtering as navigation is only based on website group - fixed problem with assignment of theme map to theme objects when a same type of template is added twice. - fixed bug when adding children article from a multi-threaded program, the status of the articles were not set to MX_STATUS_ACTIVE - fixed a bug where contentlog is not archived into content2log when purged by worker === TSL Related === - added a mechanism to defend against cross site scripting (XSS) security vunerability by escaping outputs from TSL "echo" / "print" attributes. new website property 'publisherEscapeOutput' introduced where this settings would affect the behaviour of "echo" / "print" attribute. - added new attributes to support the above: secho (sprint) - safe output where all strings are escaped using htmlspecialchars(). - added new attributes to support the above: recho (rprint) - raw output where all strings are NOT escaped at all, output as raw. - added support for changing the language of the error message during a form submission by introducing a new "language" attribute at the "form" selector. Eg.: - added new website property "publisherErrorMessageFormat" to format multiple error messages that might be returned during a form submission - fixed bug where articles' status with no MX_STATUS_ACTIVE are still published 1.0.13p1 changelog (28/11/2005) =================================== - fixed a critical PHP code injection security bug using URL such as http://host.domain.com/index.php?qt='membimbing'%20"{${readfile($hdl)}}"&hdl=config.ini 1.0.13 changelog (14/11/2005) =================================== - fixed bug at contentlog where deleted object that has hits is shown with empty string. changed to show as deleted object. - fixed minor bug that caused the email notification failure when new articles is added from the publisher side - added more error logging at mxPublisher::doResizeImage() - added extension configuration for fileinfo.so and http.so at the default php.ini (applicable for new installation only) - fixed a bug that's needed to support some display option required by the feed processor - added missing program id to audit trail record relating to manipulation of article object - added new mxDate::setNow() method - this method sets the object to represent the current date and time - fixed a bug in backup script where new archive produced is with the extension .tgz rather than the old extension .tar.gz. however, when removing old archives, the script is still searching for .tar.gz instead of the new .tgz extension. - added new mxApp::setCheckPoint() method - this method when called, will insert a benchmarking info into the log file - fixed a mysterious bug by introducing a workaround on static member mxMember::approval - fixed a typo bug during logrotate config file creation - changed at mxObject::__get($nm) not to display warning when $nm is 'code' (especially when using mxArticle, will coz the log to grow unnecessarily) - changed log attribute to use mxPublisher::log() instead of the deprecated mxPublisher::logEx(), mxPublisher::logEx() is deprecated - added new method mxPublisher::getCurrentTemplate() - this method return info on the template the processing is currently taking place - added template info when logging at publisher level - enhanced ::doResizeImage() to use image magick command line tool 'convert' if imagick extension is not found - fixed caching bug at mxPublisher::isWebCache() where publisher will not be able to cache the appropriate pages - added support at "Page Accelerator" for web page caching by template id - added support for uncache level 'uc' larger than 1. when uc=1 is detected in the GET url, part of the object cache will be uncached as well - fixed a repository and article data bug where height and width is wrong after resize via tnwidth and tnheight attributes - fixed a object retrieval bug when the code of the object given is not a numeric code and a string code that begins with number === TSL Related === - added $is_passwordexpire to TSL global variables to indicate whether the current member's password has expired or not - fixed a bug at submitter where post_callback function from the same code file of callback will not be invoked - fixed bug to expose $GLOBALS['variable'] at all variable related methods instead of at mxPublisher::getOutput() - fixed bug at mxPublisher::testCondition() where the other of variable priority does not follow the same standard followed by mxPublisher::getOutput() - fixed a bug in refreshing the cached member object (relating to editing member's data) - added realtime parsing of TSL/PHP codes from a echo attribute via the parse attribute by setting it to 'true'. (eg. ) - fixed a minor bug where object variables might also be considered in the processing of the "condition" attribute - fixed a bug where article submitted via the publisher will fail for program with notification enabled 1.0.12 changelog (28/9/2005) =================================== - minor bug fixes and code clean up - changed AMS login to submit non-clear text password from browser to server. SSL connection or restricted connection is still the recommended way to secure AMS access. - updated mxGoogle with new methods reflective of the new functions available from the Google SOAP API - added new external adaptor magpierss. this adaptor allows one to create or parse RSS content - removed support for other shared memory module (namely mmcache and memcache) other than eaccelerator - optimized logging calls across the board to reduce performance hit when loglevel is not set at debug level - added support at config.ini to totally disable application logging (set logLevel = -1) - improved performance (substantially) of AMS by including the license object during caching. it was detected that decrypting the license data was very expensive on CPU time. - added AMS gui theme object in the cache too which helps speed up the AMS - added new method mxApp::getSMTPObject() to help application to obtain object for sending out mail. can be used at TSL API: $_mxPub->getApp()->getSMTPOBject(); - added new object to the data API package: mxTodo and mxCalendar - added built-in TSL calendar module (mxCalendarDraw) making use of mxTodo and mxCalendar. The TSL example is at mxlib/calendar/calendar.php - added SQL table creation for calendar and todo table to the process of website creation - fixed bug in worker.inc.php with logfile option where readfile() can't read weblog file size larger than 2MB. replaced readfile() with fopen() instead - fixed in mxBinHandler to make sure specific content-type (to be determined from the filename extension) is sent out rather than the generic 'application/octet-stream' - added more meta information in the raw page display designed to support various search crawler (mxBinHandler) - fixed search plugin to index article attachment as well when performing reindexing of program - fixed a bug when unable to delete parsed template file to show error message - added new template thXXX_style.tsl in addition to the existing templates when creating new theme with auto template creation - added default TSL code to search and style template when creating new theme with auto template creation - fixed a bug at page accelerator where the checkbox value did not "stick" when editing an item - optimized performance in handling webdav connections - added membership registration statistic at the general statistic within contentlog handler - fixed contentlog where deleted object that has hits is shown with empty string. fixed to show as deleted object. - updated PEAR library that's packaged with MXAE - fixed a bug where if page acceleration is on, the custom HTTP header will not be able to take effect as the page data is sent before the HTTP header - fixed a bug where AMS user can't even login to suspended website - added support for changing the search extension via website property 'searchExtension' - added cicada cube search extension - changed default installation of proftpd to only accept connection from AMS - changed default installation php.ini memory_limit to 128M from 48M - updated the log rotate to include the CLI (Command line interfaces) logs for rotation as well. - fixed problem with many duplicated indexes whenever fieldsets are being updated. - Optimised on programming mapping so that fields created are efficiently used before creating new fields for doing program mapping. - Added more detailed information when viewing program properties. Before this, the properties can only be obtained by editing the specific program. - Added functionalities in the upgrader process to clean up excess indexes created as well as fixing log rotate. === TSL Related === - some minor optimization of publisher code and bug fixes too - fixed where the cache attribute wasn't working correctly - added support in list selector with two new mode 'rss' and 'polling' - added support for attribute(s) for list mode='rss' is/are: 'parent' (URL of the RSS to parse), 'quantity', 'start' - added support for attribute(s) for list mode='polling' is/are 'parent' (Code of the polling item), 'quantity', 'start' - fixed where value is not reflected accordingly in the button text - added flexibility to graph selector where the chart color of different bar type can be changed using fill_color, line_color2, fill_color3, etc... - fixed bug where 'field_i' for membership formset is not working correctly due to caching. caching is now disabled for member's selector - fixed bug when editing an object with field not specified in the form inputs and the value of this field should not be overwriten when updating existing object (for form mode member and article) - added two new TSL global predefined variable: $CURRENT_TEMPLATE & $PARENT_TEMPLATE which indicate the template code scope the TSL is currently residing - changed publisherInternalCache to include caching of webcache and themerule objects - changed variable priority (highest to lowest): object -> environment (internal, _POST, _GET) -> global (internal, _SERVER, _ENV, _SESSION) -> variable (internal) - fixed bug to expose $GLOBALS['variable'] at all variable related methods instead of at ::getOutput() - fixed bug at ::testCondition() where the other of variable priority does not follow the same standard followed by ::getOutput() - added new internal function to the 'function' attribute: autonl2br - this function executes nl2br upon detecting that the string does not contain any HTML code - improved support for listing of current members online with the login time and last active time information using list mode member - improved support for listing caching with list cache attribute - added new object type that can be produced by mxPublisher::factory(): MX_OBJECT_MEMBERLOG, MX_OBJECT_CONTENTLOG, MX_OBJECT_WEBSITEVARIABLE, MX_OBJECT_CALENDAR, MX_OBJECT_TODO - added new TSL predefined variable for selector article: $edit_link & $delete_link - added new TSL predefined variable for selector member: $logout_link - fixed a bug at submitter where post_callback function from the same code file of callback will not be invoked