# Version History

Back to manual

- Nucleus v4.00 (SVN)
  - CHANGE: allow - and _ characters in skin and template names. And enforce name validation during skin/template import.(ftruscot)
  - FIX: close ul tag in bookmarklet.php. Thanks WillyP. (ftruscot)
  - FIX: caching of global plugin options. Thanks slightlysome. (ftruscot)
  - CHANGE: Some enhancements to pdo.php for sqlite handler suggested by kotorisen. (ftruscot).
  - CHANGE: install.sql now creates tables using ENGINE= to define table engine instead of TYPE=. (ftruscot).
  - CHANGE: SKIN::update() to add events PreUpdateSkinPart, PreAddSkinPart, PreDeleteSkinPart, PostUpdateSkinPart, PostAddSkinPart, PostDeleteSkinPart. Thanks slightlysome. (ftruscot).
  - Remove the file vars4.0.6.php from the core which was used to support PHP versions lower than 4.1.0 (kg)
  - ADD: class i18n to support other languages (sakamocchi)
  - ADD: a new class Link with a collection of all functions which create links (kg).
  - ADD: on overview page, list drafts from other authors for blogs for which user has admin rights. Suggestion from WTFranklin. (ftruscot).
  - FIX: Comments are disabled when publishing over the XML-RPC API (kg)
  - More and improved comments in the classes BaseActions, BLOG, BODYACTIONS, SKIN and PARSER (kg)
  - FIX: Replaced deprecated $variable =& new CLASS() with $variable = new CLASS() to work for PHP 5.3 in strict mode. May break PHP4 installs, but nucleus ended support for PHP4 in 3.50. (ftruscot)
  - FIX: Escaped newline characters in New Item Notification. Use fix from Japanese team (Mocchi).
  - FIX: Javascript parse error when autosave is turned off. Use fix from Japanese team (Mocchi).
- Nucleus v3.64 (March 14, 2011)
  - ADD: labels in the installation form (kg)
  - FIX: minor problems with invalid XHTML in the installation form (kg)
- Nucleus v3.63 (March 1, 2011)
  - FIX: security issue in createaccount.php. Thanks Katsumi. (ftruscot)
  - FIX: call of special skin parts using fancy url scheme like special/specialname was not working. Thanks slightlysome. (ftruscot)
  - FIX: extra params in generated links with fancy urls on were not using the designated keys. Thanks slightlysome. (ftruscot)
  - ADD: catiscurrent variable to Category List Header and Footer. Thanks slightlysome. (ftruscot)
- Nucleus v3.62 (January 6, 2011)
  - CHANGE: add redundant safeguards against security issues caused by case where register_globals is on and the config.php file is missing (Rare!!!) (ftruscot)
  - CHANGE: make CONF variable, AdminCSS, to hold name of admin area style to use. default to original. (ftruscot)
  - FIX: use of strripos in cleanFileName() not PHP4 compatible, switched to use of strrpos() since no functionality lost. (ftruscot)
  - FIX: replace ereg* functions in remaining core files, including core plugins. (ftruscot).
  - FIX: multiple newlines in comment body being reduced to only one newline. (gRegor)
  - FIX: highlight() function still using ereg* functions. (ftruscot)
  - CHANGE: cleanFileName() function simplified to replace all but a-z0-9-. (ftruscot)
  - FIX: install problem when only mysqli _* is available. (ftruscot)
  - FIX: fix comment body text not appearing on Edit Comment form (gRegor)
- Nucleus v3.61 (December 19, 2010)
  - FIX: fix comment body being lost (ftruscot)
  - FIX: fix edit comment form formatting (ftruscot)
  - FIX: fix search title and body of items not displayed in search results (ftruscot)
- Nucleus v3.60
  - ADD: MediaUploadFormExtras event to nucleus/media.php to allow plugin to add extra fields to media uploader form. See NP_ImageLimitSize (0.20+) for example of using event. (ftruscot)
  - CHANGE: use sql_real_escape_string() function in place of addslashes() in all but 2 places where sql_real_escape_string() doesn't make sense. (ftruscot)
  - ADD: mysql_real_escape_string() function to wrapper for mysqli (libs/mysql.php). (ftruscot)
  - FIX: globalfunctions.php. PostParseUrl event only firing when using urlmode=pathinfo (fancyurls). (ftruscot)
  - FIX: sql_affected_rows() function in nucleus/libs/sql/mysql.php. Was causing error in ban deletion. (ftruscot)
  - CHANGE: ACTIONS::_searchlink() to improve creation of next/prev link for index skin parts. Also, add $navigationItems global that can be set by plugin to affect next/prev link when plugin lists items on index page, see NP_Ordered 1.37. (ftruscot)
  - ADD: if-else-elseif-ifnot-ifelsenot-endif to the Item Body actions. Same as in Item Templates. see help.html for details. (ftruscot)
  - ADD: cleanFileName() function to globalfunctions.php and then use in nucleus/media and in MEDIA.php to clean up filenames of uploaded files to avoid problems with spaces and other characters. Thanks WillyP. (ftruscot)
  - ADD: global $currentcomentid and $currentcommentarray during item template processing so can get comment info in phpinclude called from comment template. (ftruscot)
  - ADD: if-else-elseif-ifnot-ifelsenot-endif to the comment field templates. see help.html for details. (ftruscot)
  - ADD: global $currentitemid during item template processing so can get item info in phpinclude called from item template. (ftruscot)
  - ADD: if-else-elseif-ifnot-ifelsenot-endif to the item field templates. see help.html for details. (ftruscot)
  - FIX: bug where categorylist with blogname parameter did not work on member, error, or special skin parts. (ftruscot)
  - FIX: bug in commentform skinvar where form showing to nonmembers when bpublic=0. Thanks WillyP. (ftruscot)
  - CHANGE: length of bnotify column in blog table to 128 characters to allow for longer lists of notification recipients. (ftruscot)
  - ADD: recount parameter to nextlink skinvar to force recalculation of iAmountOnPage for nextlink instead of using amountfound from last blog skinvar. Helpful in more advanced situations where multiple blog skinvars used on single page. (ftruscot)
  - FIX: tightened security around includes in PLUGINADMIN class. (ehui)
  - ADD: globalfunctions: include_libs() and include_plugins() to be used to safely include libs and plugins. (ehui).
  - REMOVE: config.php. rename to config.php.sample to avoid overwrite during upgrade. config.php created by build.xml during generation of full install package and modified by install.php. (ehui)
  - FIX: tune db tables in sqlinstall. (ehui)
  - ADD: yourprofileurl parameter value to member skinvar to produce url to logged on member's profile for use in link to member profile. (ftruscot)
  - FIX: Fixes to NP_SecurityEnforcer suggested by cacher at Japanese Forum. (ftruscot)
  - FIX: When changing settings for a member, call to PrePasswordSet event was happening even if password not being changed. Admin.php, action_changemembersettings() method. (ftruscot)
  - ADD: PostParseURL event to globalfunctions. Triggers right after url is fully parsed (by ParseURL in globalfunctions). Useful to tweak global variables before selector() runs or to set something based on path-related globals. Used by new version of NP_EventBlog (min 3.60) to display future posts (events) on item pages skin part. (ftruscot)
  - CHANGE: selector() itemid, change itemexists check to be aware of allowDrafts and allowFuture. (ftruscot)
  - ADD: $CONF settings for allowDrafts and allowFuture so can set selector to permit showing of these items if needed. Can be set in config.php or in plugin event (probably authentication related for timing). (ftruscot)
  - CHANGE: Blog::readLogFromList() and Blog::getSqlItemList() methods to add parameters permitting drafts or future items to be shown. (ftruscot)
  - FIX: unloaded ITEM class error casued by NP_Ping when creating new weblog. See here (ftruscot)
  - FIX: convert/livejournal.php set to use sql_table for prefixes. suggested by quandary (see here). (ftruscot)
  - FIX: improvements to isValidMailAddress() function as suggested by quandary here (ftruscot)
- Nucleus v3.51 (November 1, 2009)
  - FIX: fix warning caused by unreachable code in PDO (admun)
  - FIX: fix typo in NP_Ping (admun)
  - FIX: fix typo in XMLRPC api (admun)
  - FIX: Bug in upgrade procedure where no check to verify new column does not currently exist before running the add query. See this thread (ftruscot)
  - FIX: Bug where activation not completed. See this thread (ftruscot)
- Nucleus v3.50 (September 19, 2009)
  - FIX: enhancements to language and input escaping in NP_SecurityEnforcer as suggeted in Japanese forum. (ftruscot)
  - FIX: bug in install.php when shell_exec not available and bug in MANAger.php when certain language constant not defined. Suggestions by shizuki, added by ftruscot.
  - ADD: Comment template variable userwebsitelink which acts like userlink, but only shows web address and never email. (ftruscot)
  - ADD: 2 Category List template variables, catiscurrent and its synonym, currentcat. (ftruscot)
  - ADD: code to warn if using a non-mysql database handler and a plugin does not supportsFeature 'SqlApi'. (ftruscot)
  - CHANGE: set php setting, display_errors, to 0 when not in debug mode to keep users with poorly configured servers from displaying errors on the page. (ftruscot)
  - FIX: PHP5.3 warning caused by MANAGER::notify(). See this thread. (ftruscot)
  - FIX: bookmarklet unaware of character set being used. Fix suggested by wgroleau. (ftruscot)
  - FIX: super-admin disallowed from uploading files if not on any teamlists. (ftruscot)
  - ADD: $CONF['ActivationDays'] variable to control days before activation expire. Manually set in config.php if needed (no admin interface). (ftruscot)
  - CHANGE:Notify ITEM link after karma votes(ACTION.php). (shizuki)
  - CHANGE:Remove bsendping col from nucleus_blog table(install.sql/upgrade3.5.php). (shizuki)
  - ADD:sql_field_name function for backup class(mysql.php/pdo.php). (shizuki)
  - FIX:Fix short open tag(NP_Ping.php). (shizuki)
  - CHANGED: NP_Ping and related infrastructure changes. (admun)
  - ADDED: upgrade code for 3.5 in upgrades folder. Includes notices about end of PHP4 support and info on 2 new plugins included in plugins folder. (ftruscot)
  - CHANGED: modified upgrade functions to use 3 digit version indicators everywhere. i.e. 340 instead of 34. (ftruscot)
  - CHANGED: increased length of displayname, mname, to 32 characters. (ftruscot)
  - CHANGED: modified install.php and sql_* handlers to allow installation using PDO. Activation is manual and not intended for public consumption in 3.50. Only tested for pdo-mysql handler. (ftruscot)
  - ADDED/CHANGED: extended sql_* api to cover all mysql_* functions used in core. Functions loaded from nucleus/libs/sql/ folder. See here. (ftruscot)
  - ADDED: NP_Text plugin to core installation. Makes distribution of internationalised plugins easier. See this thread. (ftruscot)
  - ADDED: links in plugins help of help.html to link to two main plugin repositories. See this thread. (ftruscot)
  - ADDED: selectSpecialSkinType() function to globalfunctions.php. (ftruscot)
  - ADDED: Check in ADMIN.php pagehead() function to display alert if newer version is available. new function, getLatestVersion() in globalfunctions.php, and new files on nucleuscms.org, version_check.php, to serve latest version. (ftruscot)
  - ADDED: skinvar for all skin types to display a sticky item from any blog anywhere. (ftruscot)
  - REMOVED: check on canlogin during forgotpassword process. See this thread. Suggestion by phillip_r. (ftruscot)
  - ADDED: div with id of adminwrapper around contents of admin page for improved control of admin page look. See this thread. Suggestion by monkeybrain. (ftruscot)
  - ADDED: NP_SecurityEnforcer plugin to core installation. It can be set to enforce password length and complexity rules, as well as maximum failed login attempts. Put in plugin so can be superceded later by better techniques. (ftruscot)
  - CHANGED: LoginSuccess event in globalfunctions.php to inlcude username in the data array to specify the login name entered by the user. (ftruscot)
  - FIXED: backup.php, _backup_dump_structure() function, to use SHOW CREATE TABLE name, to generate table creation SQL. Adds ENGINE, AUTO_INCREMENT, and DEFAULT CHARSET. (ftruscot)
  - ADDED: PrePasswordSet event in ADMIN.php to allow plugin to enforce any password length or complexity rules for improved security. (ftruscot)
  - FIXED: When inclusion tried to do the special skin type by skin of error types, $skinid wasn't set.(yu/shizuki)
  - CHANGED: move send update ping option override to NP_Ping
  - ADDED: Year-based archives and archivelists, adds archiveyearlist and otherarchiveyearlist skin vars (ftruscot)
- Nucleus v3.41 (March 15, 2009)
  - FIXED: Reduce PHP Notices caused by undefined variables and wrong offsets (shizuki, kaigreve)
  - FIXED: additional changes in the language files english.php and english-utf8.php to reflect modifications since version 3.30 (kaigreve)
  - FIXED: SQL error in Member::write() where mautosave not forced to be integer. See Problem with 3.40. (ftruscot)
  - CHANGED: Modify Fix SQL error when new blog add by shizuki, to give a default english value for category name, category desc, first item title, and first item body in case where user does not have updated language file. (ftruscot)
  - FIXED: Fix SQL Error when new blog add. (shizuki)
  - CHANGED: Mod Change link URI of 'help icon' to full URI (documentation/help.html to $CONF['AdminURL'].'documentation/help.html') (shizuki)
  - ADDED: getTeamBlogs() method to MEMBER class to retrieve list of blogs to which a member has team rights (ftruscot)
  - FIXED: rearrange english.php and english-utf8.php files so all new-to-3.40 contants are grouped together at top (ftruscot)
  - FIXED: Add missing language item to english-utf-8.php (admun)
  - FIXED: CONF['Self'] merging error in globalfunctions.php (admun)
- Nucleus v3.40 (February 14, 2009)
  - ADDED: check cmail column to separate to URL and cemail when Nucleus upgrade to 3.3 or later. (kimitake/katsumi)(added by shizuki from Ver.jp)
  - CHANGED: Comment count at items list display via 'sprintf()'. (shizuki)
  - ADDED: instructions for manually adding .htaccess files to media and skins folder after upgrade. (ftruscot)
  - FIXED: the unwished ping after adding an item to a new category (what you have written here: http://forum.nucleuscms.org/viewtopic.php?p=89142#89142)(shizuki)
  - FIXED: Few hardcoded strings moved to langage file(shizuki)
  - CHANGED: Ease the solution for the new member option for autosave draft(kaigreve)
  - CHANGED: Move System overview in the menu of the admin area under the entry for the configuration (ADMIN.php)
  - CHANGED: Shorten menu entry to 'System info' and correct 'enable' to 'enabled' (english.php)
  - CHANGED: height of page class in help.html to avoid overlaps on long help topics. (ftruscot)
  - ADDED: .htaccess file in skins/ and nucleus/libs/ to fight possible script execution due to certain apache configurations. (Code recommended by Katsumi, added to svn by ftruscot)
  - ADDED: .htaccess file in media/ to fight possible script execution due to certain apache configurations. (Code recommended by Katsumi, added to svn by ftruscot)
  - ADDED: New member option to decide whether the autosave draft function is used or not (kaigreve)
  - CHANGED: Additional improvements and updates in devdocs and help.html (ftruscot)
  - ADDED: Warning for PHP 4.x depreciated during upgrade(admun)
  - ADDED: Documentation, as needed, for changes below. (ftruscot)
  - ADDED: Blog::readLogFromList() and Blog::getSqlItemList() to allow using the core item display mechanisms for customized lists of items. Will be used primarily by plugins. (ftruscot)
  - CHANGED: Member::login() to add CustomLogin event. Provides hook for plugins to perform authentication from external sources. (ftruscot)
  - ADDED: Upgrade scripts for version 3.40. Lengthen nucleus_template.tpartname column to 64. Lengthen nucleus_template_desc.tdname to 64. (ftruscot)
  - ADDED: Warning for PHP 4.x depreciated (admun)
  - FIXED: MySQL version check failure in install.php (admun)
  - FIXED: bugs in last fix of directory traversal vulnerability in Nucleus media manager. Fix code providedby kmorimatsu inserted by ftruscot.
  - FIXED: directory traversal vulnerability in Nucleus media manager. Fix code provided by kmorimatsu inserted by ftruscot.
  - FIXED: cuser field of non-member comments being blanked out intermittentlyOld comments from field is gone. Caused by registration with names longer than 16 characters. Enforce 16 character limit in createaccount.php, ADMIN.php, ACTION.php (ftruscot)
  - ADDED: Add delete permission check (katsumi/admun)
  - ADDED: Add ATOM1.0 autodiscovery for default skin. (shizuki)
  - FIXED: Fix short open tag on skins/default/show_benchmark.inc. (shizuki)
  - FIXED: Fix broken XML for Skins. (shizuki)
  - ADDED: Japanese forum:Special skin parts are used as a skin part. (Andy/shizuki)
  - ADDED: The number of comments is indicated on the item list screen. Japanese forum(The confirmation and the elimination which are a comment every item.) (shizuki)
  - ADDED: Automatic re loading after an item renewal. Bibou-Nikki/Automatic re loading after an item renewal. (shizuki)
  - ADDED: Prevention of comment double contribution. Bibou-Nikki/Prevention of comment double contribution. (shizuki)
  - ADDED: Addition of an item The hack which checks a radio button of "of the date and time, designation" automatically if the item of the date is changed at the time of edit. Japanese forum(Check box of "later, addition" and "of a time stamp, renewal") (shizuki)
  - FIXED: (#110(JP)): When an item is added by "new category", a SendPing event doesn't occur. (shizuki)
  - FIXED: (#58(JP)): When database backup, table name and a column name are bound up with back quotat. (shizuki)
  - CHANGED: Eliminate few hardcoded language (shizuki)
  - FIXED: (#94(JP)): A plugin option isn't generated. (kimitake/shizuki)
  - FIXED: (#79(JP)): Permission setting of upload isn't effective. (shizuki/yu)
  - FIXED: (#77(JP)): [XHTML] When the attribute of the option is hidden,<tr> isn't output. (shizuki)
  - FIXED: (#76(JP)): [XHTML] Validate admin-area. (shizuki)
  - FIXED: (#67(JP)): Change isn't reflected on ValidateForm event. (shizuki)
  - FIXED: (#107(JP)): When editing an item, time generation will be an error. (kotorisan/yu/shizuki)
  - FIXED: (#108(JP)): Pop-up, for if a character string is empty, nothing is indicated. (sato-na/shizuki)
  - FIXED: Fix history. (shizuki)
  - FIXED: "history.html" is XHTML 1.0 Strict. (shizuki)
  - FIXED: (#142): Plugin API: Incorrect operation order. (shizuki/Andrew Black)
  - ADDED: Add tool tip for "MEDIA" button (shizuki/kyasya)
  - FIXED: (#82(JP)): fix <%itemtitle%> on COMMENT_HEADER COMMENT_BODY COMMENT_FOOTER (shizuki)
  - CHANGED: (#83(JP)): Change bookmarklet height. Add 50pix. (kmorimatsu)
  - CHANGED: (#84(JP)): To avoid showing ticket in the URL, redirect to pluginlist, instead. (kmorimatsu)
  - CHANGED: make ItemVars case insentive to ease the usage (work with plugins that use the function doItemVar) (kaigreve)
  - ADDED: new event in TEMPLATE.php called PreTemplateRead to allow plugin developers to change name of template being used. This is obscure and probably won't be publicized, but I need it for NP_MultiLanguage to allow mapping of templates depending on language being viewed, permitting translations of all parts of a template and localization of dates. (ftruscot)
  - ADDED: three new events in BLOG.php called PreArchiveListItem, PreCategoryListItem, and PreBlogListItem to allow plugin developers to modify or add template variables to the ArchiveList Item, Category List Item and Blog List Item template fields (ftruscot)
  - FIXED: fix redirect function in globalfunctions so that it does not strip out the permitted "*" character. See forum(Trying to get a create an account link) (ftruscot)
  - ADDED: add description of the doIf function to the plugin documentation (ftruscot)
  - FIXED: fix description of if/else/endif skin variables to documentation, inlcuding ifnot, elseif, and elseifnot (ftruscot)
  - ADDED: add description of charset skin variable to documentation. (ftruscot)
  - ADDED: add global configuration, DefaultListSize, which sets and maintains a custom value for length of item/comment lists in the admin area (ftruscot)
  - FIXED: fix content type of bookmarklet.php file to text/html to conform with other pages (ftruscot)
  - ADDED: new event in createaccount.php called RegistrationFormExtraFields to allow fields from plugins onto registration form (ftruscot)
  - FIXED: CONF['Self'] fix (admun)
  - ADDED: Add a link to the front end that allows to add an item in a bookmarklet popup window (two new skinvars addlink and addpopupcode needed) (kaigreve)
  - ADDED: add a cancel button to the bookmarklet add and edit forms (kaigreve)
  - CHANGED: Move the submit button in the bookmarklet edit from to the end of the button bar (logical order) (kaigreve)
  - ADDED: Add the possibility to move a published item back to drafts (kaigreve)
  - ADDED: more and improved comments in classes NucleusPlugin, BACKUP, ITEM and ITEMACTIONS (kaigreve)
  - CHANGED: Use ISO date for backup filename and add hour, minute and second (kaigreve)
  - CHANGED: Put backup functions in an own class Backup (kaigreve)
  - FIXED: add default values for the parse_bloglist function to avoid warnings (kaigreve)
  - FIXED: fix case sensitive function name createDraftFromRequest in class ACTION (admun)
  - ADDED: add description of the doItemVar function to the plugin documentation (kaigreve)
  - ADDED: add language file install_lang_english.php to install process (admun)
  - ADDED: add option to install NP_Ping during installation (admun)
  - FIXED: remove bug in the plugin api: function clearOptionValueCache hasn't worked correct with the getOption function (kaigreve)
  - ADDED: add global configuration DebugVars which decides if unresolved Vars (SkinVars, TemplateVars, ItemVars) are shown on the blog (kaigreve)
  - FIXED: Fix getNotifyFromMailAddress to use email field now that we've separated email/url fields (gregorlove)
  - CHANGED: extend skinvar Bloglist with parameters to specify the sort order (kaigreve)
  - ADDED: add comment URL and email to "edit comment" form and make them editable (gregorlove)
  - ADDED: new event in ADMIN.php called TemplateExtraFields to allow plugin developers to add fields to templates. This should encourage plugin authors to make use of the core template storage to provide formatting for their output. This event just presents the extra fields on the template edit form and stores data entered there into the nucleus_template table. It is the responsibility of the plugin authors to use the template fields they add and to provide the variables used in those fields. Plugins should also document their variables and provide for a default, either in the code or through a plugin option. (ftruscot)
- Nucleus v3.33 (August 20, 2008)
  - FIXED: Security issue (Thanks to Bradley Bell)
- Nucleus v3.32 (January 26, 2008)
  - FIXED: An XSS issue
- Nucleus v3.31 (October 22, 2007)
  - ADDED: add `createaccount.html` with a redirect to `createaccount.php` for backward compatibility with the old location of the form
  - CHANGED: protect the 'create account form' against abuse: show the form only if needed and add FormExtra (e.g. Captcha) and ValidateForm (to validate input) events (ftruscot and kaigreve)
  - FIXED: bug in upgrade script (admun)
  - CHANGED: update xmlrpc client to version 2.2, this version supports PHP 5.2.x (kimitake)
  - CHANGED: use require instead of include for the file inclusion (kimitake)
  - CHANGED: rollback benchmark default skin (admun)
  - FIXED: possible security problem in NP_Ping (admun)
- Nucleus v3.3 (August 7, 2007)
  - ADDED: NP_Ping sends ping for future post via JustPosted event (admun)
  - ADDED: JustPosted event (admun)
  - ADDED: move weblogs.com ping function into plugin (admun)
  - ADDED: Serveral changes and fixes from Nucleus Japan (details in the log files of the Nucleus repository at sourceforge.net)
    - ADDED(JP): (#68(JP)): Encrypted cookie key. (Katsumi)
    - FIXED(JP): (#60(JP)): Item link in notification email is wrong. (shizuki)
    - FIXED(JP): (#62(JP)): email address is not referred in <%usermail%>. (shizuki)
    - FIXED(JP): (#66(JP)): Even if calling PostPluginOptionsUpdate, getOption does not returns correct value. (Katsumi)
    - FIXED(JP): (#49(JP)): PLUGIN::getAllItemOptions does not work correctly. (NKJG)
    - FIXED(JP): (#57(JP)): SQL error happens when updating plugin option. (Katsumi)
    - FIXED(JP): (#56(JP)): When creating db backup, the key length drops (Katsumi)
    - FIXED(JP): (#41(JP)): fixed dropped info during backing up (Katsumi)
    - FIXED(JP): (#40(JP)): fixed PostAddCategory event (Kimitake)
    - CHANGED(JP): (#48(JP)): Super-admin always can login to admin page (Kimitake)
    - ADDED: (#45 from the Japanese Tracker): include code from NP_0TicketForPlugin in the core (Changes from Nucleus Japan)(Katsumi)
  - ADDED: Sanitize parameters such as $_GET and $_SERVER['REQUEST_URI'] etc. to avoid XSS (from Nucleus Japan)
  - ADDED: new events for Media upload: PreMediaUpload and PostMediaUpload (kaigreve)
  - ADDED: new skinvar bloglist (kaigreve)
  - ADDED: new method for URL rewriting with the global variable virtualpath, new .htaccess file can be found in the folder extra/fancyurl-2, more information forum(Another approach to Fancy URLs) (kaigreve and Legolas)
  - FIXED: allow + in email address, see forum(Minor bug fix in globalfunctions.php) (wgroleau)
  - FIXED: XHTML compliance in default skin (admun)
  - FIXED (#80): Atom 1.0 support (rakaz)
  - FIXED (#129): Plugin API: SpamCheck event called from core. (rakaz)
  - FIXED (#128): Don't show DISALLOWED(XXXX) errors (karma)
  - FIXED (#127): parse_commentform: double-escaped URLs (karma)
  - FIXED (#121): backup fails when `$plugin->getTableList()` doesn't return an array (karma)
  - FIXED (#118): Errors in default skin (legolas)
  - ADDED (#119): Added optional includeMode/includePrefix parameters to `parseFile()` (karma)
  - FIXED (#115): Redundant database queries on member table (karma)
  - FIXED (#114): Magic quotes not correctly undone when `magic_quotes_sybase` enabled (karma)
  - FIXED (#104): Return to blogsettings - link missing on edit category
  - FIXED (#107): Better path detection in install.php (dekarma)
  - FIXED (#106): Make 'Log Out' link under Comment box work with Fancy URLs (Wendy Smoak)
  - FIXED (#99): Use workaround when the only installed MySQL PHP extension is mysqli (dekarma)
  - FIXED (#98): More "Fatal error: Only variables can be passed by reference" occurrences on some installations (pete)
  - ADDED (#23): adding email/url + email field display in blog comment list (admun)
  - FIXED (#12): item id and timestamp were not sent along with `GenerateURL` event when `itemlink` called from commentvars (karma)
  - CHANGED: Now using XML-RPC for PHP (phpxmlrpc) v1.2.1
  - FIXED: (#97): file uploads didn't check `$_FILES['file']['error']` codes. (dekarma)
  - CHANGED: Update user instruction for Blogger conversion tool
  - ADDED: When an e-mail is provided in the comment-form it is validated. (TeRanEX)
  - ADDED (#23): Splitted the URL & E-mail field in comments. (gRegor, ketsugi, Red Dalek, TeRanEX)
  - ADDED: (bug 817364): delete member enhancement (admun)
  - ADDED: Auto save draft (Legolas)
  - ADDED: Custom skin parts (tutorio)
- Nucleus v3.24 (November 11, 2006)
  - FIXED: XSS issue (reported by JPCERT/CC).
- Nucleus v3.23 (May 23, 2006)
  - FIXED: Remote code execution vulnerability (reported by rgod).
- Nucleus v3.22 (August 21, 2005)
  - FIXED: Major security vulnerability in the phpxmlrpc library.
  - FIXED: New NP_SkinFiles version, fixing a minor security issue. (rakaz)
  - CHANGED (#17): An errormessage is now displayed when logon through loginform failed. (karma)
  - FIXED (#91): Initialize variables in MEMBER class (andrew)
  - FIXED (#90): there was no plugin callback on member edits when the email address changed (andrew)
  - FIXED (#90): when editing members other than yourself, you shouldn't be logged out (andrew)
  - FIXED (#85): If both `itemid` and `catid` are specified in the URL, ignore `catid` if it doesn't match `itemid` (karma)
  - FIXED (#49): 'name clashes' warning on skin import no longer displayed when no clashes detected (karma)
  - FIXED (#67): Add resilency to upgrade scripts (Frankenstein)
  - FIXED (#88): PHP5.1: "Fatal error: Only variables can be passed by reference" (karma)
  - FIXED (#87): Translate & -> &amp; when links added via toolbar (karma)
  - FIXED (#42): `formatDate` didn't always use the correct timezone (karma)
  - FIXED (#43): Only load user language file when logged in (karma).
  - FIXED (#76): Disabling site blocked admin menu access (karma).
  - FIXED (#57): PostRegister event not fired from inside admin area.
  - FIXED (#58): images and popups were not in feeds. (karma)
  - FIXED (#33): add item form invalid ticket error (admun)
  - FIXED: Most buttons of the toolbar reset the scroll position of the textarea to the top in Firefox (leonbloy)
  - ADDED (#64): Applications that use the metaweblogAPI, such as Ecto can now also access and edit the extended body (rakaz)
  - FIXED (#63): _getArrayVal() always returned first element of array (rakaz)
  - ADDED: add InitSkinParse event (rakaz)
  - ADDED (#38): added alternative output for <%title%>, <%itemtitle%>, <%previtemtitle%> and <%nextitemtitle%> (rakaz)
  - FIXED (#51): removed hardcoded charset declaration from the RSS 2 skin (rakaz)
  - ADDED (#55): add <%skinvar%> variable that corresponds with _CHARSET (rakaz)
  - ADDED (#24): add PostUpdateItem event (admun)
  - FIXED (#48): <%if(nextitem)%> and <%nextlink%> didn't use the timezone offset. (Basic)
  - FIXED: "ADMIN.php line 5270" fatal error when plugin filename and plugin classname mismatch (Frankenstein)
  - CHANGED (#16): Event `PreSkinItem` can now modify the skin contents; `PreComment` now knows the ItemID. (suggested by Andy)
- Nucleus v3.21 (June 30, 2005)
  - FIXED: XML-RPC for PHP Unspecified PHP Code Execution Vulnerability
- Nucleus v3.2 (March 7, 2005)
  - ADDED: NP_SkinFiles plugin installed on full install
  - FIXED: Installing plugins through install.php failed (karma)
  - FIXED: whitespace at start/end got trimmed on skin edit/import (karma)
  - ADDED: `title`-attributes on inline/popup images (moraes)
  - ADDED: New default skin (Ivan, hcgtv, moraes, ...)
  - ADDED: fr 1081569, `<%if(category,catid,1)%>` support (moraes)
  - ADDED: support for `rel="nofollow"` (Rakaz)
  - FIXED: bug 1058978, subscription list of updated plugin showed the updated subscriptions while the old subscription-list was still in the database. Nucleus now gives a warning (TeRanEX)
  - FIXED: bug 1083959, closed site still allowed posting comments (karma)
  - FIXED: bug 1083971, editing blog settings was not possible on PHP versions < 4.2.0 (floatval) (karma)
  - FIXED: In v3.15, deleting an item via the bookmarklet failed (karma)
  - ADDED: Support for `<%blogsetting(short)%>`, as suggested by caw (karma)
  - FIXED: Default skin used `application/xml+rss` instead of `application/rss+xml`, causing RSS autodiscovery to fail. (karma)
  - FIXED: Moved more hardcoded text into language files
  - FIXED: Made it so malicious users cannot trick a logged in site member/admin into visiting a specifically crafted URL that performs some admin area task. (karma).
  - FIXED: bug 976777, weblogs.com was not ping when posting draft (admun)
  - ADDED: bug 1008171, cookie-prefix (karma)
  - CHANGED: bug 1008175, move `getTemplate` into `MANAGER` class + some other performance tweaks (karma)
  - ADDED: add plugin dependency check (admun)
  - CHANGED: Sending out activation links rather than new passwords on new accounts, forgotten passwords, etc. (karma)
  - ADDED: Plugins can now make text- and textarea-optiontypes readonly (TeRanEX)
  - CHANGED: new plugin event `FormExtra` (for use with `ValidateForm`) (karma)
  - CHANGED: better error handling when commenting. Errors now displayed together with comment form. (karma)
  - CHANGED: actions (commenting, membermail, ...) can be done using any entry point, not just through `action.php` (karma)
  - CHANGED: Added `$``Id$` info in sourcefiles (karma)
  - CHANGED: PrePluginOptionsEdit-event now has an `extra`-field which can be used to add option-specific code to the page (TeRanEX)
  - ADDED: new event, PrePluginOptionsUpdate, can be used by plugins to verify/modify the new value for an option (TeRanEX)
  - ADDED: Plugins can now provide a documentation page, which is shown inside the admin area (TeRanEX)
  - ADDED: Plugins can now limit values for an option to be only numeric (`datatype=numerical`) (TeRanEX)
  - ADDED: OptionTop-methods, to let a plugin retreive an array of the x-highest (or lowest) values of an option (TeRanEX)
  - ADDED: Plugins can now make specific options for items. These options can be edited directly from the item add or edit page (TeRanEX)
- Nucleus v3.15 (November 14, 2004)
  - FIXED: Some XSS issues, as reported by Alexander Antipov
  - FIXED: Validate data that is sent as HTTP headers (redirects etc) (karma)
  - FIXED: bug 1029057, parsed include doesn't accept empty files (karma)
  - FIXED: bug 1036849, 'relevance' listed in list of available skinvars, while it's a templatevar (karma)
  - FIXED: It was possible to spoof the username on comments, even when "protect member names" was turned on. Reported by bigmouth. (karma)
  - FIXED: bug 1025675, if(hasplugin) causes warnings in action log when plugin does not exist (karma)
  - FIXED: bug 1008700, taking away admin attribute from a member was disallowed when that member did not have logon rights (karma)
  - FIXED: bug 968925, member edit leak out repeat password box while it should be hidden (admun)
  - FIXED: bug 933580, URLs in comments followed with a comma should not have the comma in the generated hyperlink (karma)
  - FIXED: bug 1019584, separating search terms with a '+' character caused SQL errors (karma)
  - FIXED: bug 1016217, superadmin should be allowed to edit all items/comments (karma)
  - FIXED: bug 1019191, `<%if(blogsetting,..)%>` / `<%if(category,...)%>` broken on error pages (karma)
  - FIXED: Made sure no code relies on the PHP5 setting `register_long_arrays` to be `On` (karma)
  - FIXED: `Call to undefined function` when user specified a language in its profile (jef pober)
  - FIXED: Quickmenu didn't show up after login from `index.php?action=showlogin` (karma)
  - CHANGED: new plugin event `ValidateForm` (karma)
  - CHANGED: Extra whitespace to make skin exports easier to read in text editors (karma)
  - CHANGED: e-mail notifications are now sent as `utf-8` rather than `iso-8859-1` (karma)
  - ADDED: Admin members can click the version number in the admin area to check for a newer version (karma)
  - ADDED: `<%if(admin)%>` and `<%if(admin,blogname)%>` in skins (karma)
  - ADDED: In the admin area, a list of all comments for a blog is now available (karma)
  - ADDED: `ITEM::getitem` returns blogid, as suggested by leonbloy (karma)
- Nucleus v3.1 (July 28, 2004)
  - FIXED: Nucleus v3.01 was missing a fix in `backup.php`, which could cause fulltext key info not to be backed up correctly
  - ADDED: support for patch levels, so plugin API enhancements can be distributed to power users earlier (suggested by TeRanEX)
  - FIXED: bug 974090, multiple identical SQL queries were executed when checking if a plugin is available (karma)
  - FIXED: Default language wasn't always respected (fushimi)
  - CHANGED: new bookmarklet style (TeRanEX / moraes)
  - FIXED: After a karma vote, redirection to referer URL failed if `register_globals` is turned off (karma)
  - FIXED: SQL Injection Vulnerability, reported by aCiDBiTS
  - FIXED: bug 689468, moved PostAddComment from action.php to COMMENTS.php(admun)
  - FIXED: bug 967580, Class variables were not explicitly defined in PHP classes (karma)
  - FIXED: IE6 unreadable Admin menu textarea (admun)
  - FIXED: Skin exports for skins containing CDATA sections (like the RSS feeds) caused the `skinbackup.xml` to contain invalid XML. (Import still worked, however) (karma)
  - FIXED: German language file wrong translation (admun)
  - CHANGED: replaced `split` by `preg_split` in the parser class. Should be faster according to PHP docs (karma)
  - FIXED: documentation typo (admun)
  - FIXED: PHP5: Install script failed to discover install path automatically (karma)
  - FIXED: Skin parser no longer parses skinvars when they are inside a non-displayed `if`-section (karma)
  - FIXED: bug 817361, prefix http:// to member's URL if missing (admun)
- Nucleus v3.01 (July 13, 2004)
  - FIXED: PHP5: Links to plugin admin area broken (radekradek)
  - FIXED: bug 966011, skins created with v2.0 could not be imported (karma)
  - FIXED: Security issue spotted by rADo2
- Nucleus v3.0 (May 30, 2004)
  - FIXED: When adding a weblog, select globally defined default skin by default (TeRanEX)
  - FIXED: CSS conflict in default skin (moraes)
  - FIXED: ADMIN.php no-cache after doctype added to support dynamic content for plugins in admin area (rADo2)
  - FIXED: vars4.1.0.php fixed a strange bug for some PHP installs having empty $_REQUEST[] (rADo2)
  - FIXED: globalfunctions.php - added a flag preventing include of vars...php twice for custom install (rADo2)
  - FIXED: install.php - added a flag preventing include of vars...php twice for custom install (rADo2)
  - FIXED: install.php - installCustomSkins skinbackup.xml renamed (rADo2)
  - FIXED: install.php - installCustomPlugs now correctly syncs plugin events (rADo2)
  - FIXED: Forcing focus on add/edit window after closing media library (nakahara21)
  - ADDED: `class` attributes on textareas that allow skins/templates to be edited (karma)
  - FIXED: Documentation and errors now tell to chmod config.php to 444 instead of 644 (hcgtv)
  - CHANGED: Admin area style power-up (Radek)
  - FIXED: Install script used $PHP_SELF, which is not available when register_globals is off (nakahara21)
  - FIXED; Skin import failed if there were CDATA sections (Nucleus Japan)
  - FIXED: `undoMagic` choked on array variables (Nucleus Japan)
  - FIXED: htmlspecialchars causes broken url like "&amp;amp;" (Nucleus Japan)
  - FIXED: PostAddCategory event was never called (Nucleus Japan)
  - FIXED: PostAddCategory event was not called when creating a new weblog (Nucleus Japan)
  - FIXED: <%blogurl%> problem on category lists (nakahara21)
  - CHANGED: Took out the HTTP Authentication part for now (it has no real use yet, and caused problems when Nucleus is installed in a protected directory)
  - FIXED: When the 'Allow login edit' option was disabled, the e-mail address was not checked for validity when a user edited his/her settings. This would cause an e-mail with new password to be sent out to an invalid address. (Frankenstein)
  - FIXED: Some PHP files were missing the closing `?>` tag (ikeizer)
  - FIXED: Plugins were inable to delete options (leonbloy)
  - FIXED: XML-RPC: `metaWeblog.newPost` fails when an empty array is passed as list of categories (caused problems with Ecto)
  - FIXED: Eliminated 2 SQL queries on most requests.
- Nucleus v3.0 RC (April 27, 2004)
  - CHANGED: Labeled it v3.0, since users started believing "2.5 beta == 25 final"
  - FIXED: XML-RPC: `metaWeblog.editPost` assigned the default category again when no categories were passed along (karma).
  - FIXED: XML-RPC: `mt.getPostCategories` returned an invalid result (karma)
  - CHANGED: On clean install, RSS and Atom feeds contain full items rather than excerpts only (karma)
  - REMOVED: Clean installation does not include RSS 0.91 feed anymore. Only the RSS 2.0 and Atom 0.3 feeds are included (karma)
  - ADDED: When a skin provides a preview thumbnail, it is displayed in the skin overview (include prefix required, 100x75 preview.png, preview-large.png). Also, when a readme.html file is present in the skin include dir, a link to that file is added (karma)
  - CHANGED: Allowed skin names to have slashes (`/`) in them (karma)
  - FIXED: When adding media in non-IE browsers, all text was removed
  - FIXED: Wrong times displayed / 'no such item' errors when MySQL server and PHP server are in different timezones (karma)
  - ADDED: Made sure language files for v2.5beta can be used with v2.5final without strange strings (e.g. _SETTINGS_EXTAUTH) showing up in the admin area (karma)
  - FIXED: No CSS styles were applied on 'insert media' popup (karma)
  - FIXED: Some more possible problems with URL linking in comments (karma)
  - FIXED: In Opera, buttons on the extended area added text to the main body text instead (karma)
  - CHANGED: Admin pages are being sent as `text/html` instead of `application/xhtml+xml` again, since it caused too much javascript problems. When `$CONF['debug']` is `1` however, the pages are still sent as `application/xhtml+xml` (karma)
  - FIXED: `itemlink` in templatevars didn't include itemid when used on item skins (mas)
  - FIXED: Errors when deleting plugins with options (Curtis)
  - FIXED: & not encoded in category names/descriptions in admin area (karma)
  - ADDED: `hasplugin` option on `if` skinvars (Kazuhiko)
  - ADDED: External Authentication (plugin contains authentication code) (Frankenstein) (not in 3.0 final)
  - ADDED: HTTP Authentication (Frankenstein) (not in 3.0 final)
  - FIXED: When using the JavaScript buttons to add images/bold text/... to the extended text area, the text was added to the main text body instead if JavaScript toolbar style was set to 'simple' (karma)
  - FIXED: XML-RPC: Added `postid` in structs returned by `metaWeblog.getPost` and `metaWeblog.getRecentPosts` (karma)
  - FIXED: XML-RPC: `metaWeblog.getRecentPosts` expected a `string` instead of an `int` for the `amountOfPosts` parameter. (karma)
  - FIXED: convert linebreaks broke `\r\n` linebreaks (jmuto)
  - FIXED: On `index` and `search` skinparts, `nextlink`/`prevlink` could not be used before a `blog` or `searchresults` skinvar was called (karma)
  - FIXED: SQL errors when search query contained single quotes (`'`) (karma)
  - FIXED: Backup did not store information about FULLTEXT keys. (karma)
  - ADDED: Extended the `date` templatevariables with pre-defined formats `utc` and `iso8601` (needed for Atom syndication; karma)
  - FIXED: super-admins that were not on a blog team did not see the categories when trying to add an item to that blog (karma)
  - FIXED: `nextresults` and `prevresults` were listed as available skunvars, while they don't exist (karma)
  - FIXED: XML-RPC library wrote `<?phpxml version="1.0"?>` as XML header (jmuto)
  - FIXED: not longer showing comment form when comments disabled for blog (jmuto)
  - CHANGED: Plugin options are no longer limited to 128 characters (karma)
  - CHANGED: Exported skins are now saved as `skinbackup.xml` instead of `skindata.xml` to avoid confusion. (karma)
  - ADDED: New plugin events `AdminPrePageHead`, `AdminPrePageFoot`, `PreSendContentType`, `QuickMenu`, `BookmarkletExtraHead` (karma)
  - FIXED: Fix for bookmarklet, which failed in Opera (jmuto)
  - FIXED: `nextitemtitle` and `previtemtitle` skinvars did not htmlencode their output (karma)
  - CHANGED/ADDED: make all skinvars that insert links consistent. They can now all take a linktext parameter to insert a full link instead of a raw link. The `nextlink`/`prevlink` on search/index pages (introduced 2.5 beta) had to change for this. Skinvars that can take a linktext: `todaylink`, `archivelink`, `prevlink`, `nextlink` and `itemlink` (karma)
  - FIXED: XML-RPC: `mt.setPostCategories` asumed that `isPrimary` was always present (karma)
  - FIXED: Plugins that generate output when they are loaded can not longer break backups. (Xiffy)
  - FIXED: The test that auto-disabled fancy URLs was incorrect, and also applied to top-level domains that use 3 characters (like .com) (karma)
- Nucleus v2.5 beta (October 11, 2003)
  - ADDED: `if(previtem)`, `if(nextitem)` and `if(skintype,typename)` skinvars.
  - FIXED: RSS conditional GET wasn't working correctly (Visa Kopu)
  - ADDED: Templatevar `relevance` available when displaying search results (Xiffy)
  - CHANGED: `nextlink` and `prevlink` skinvar now also available on `search` and `index` skins. (Xiffy)
  - ADDED: Skinvars `nextitemtitle` and `previtemtitle` on `item` skins (Xiffy)
  - FIXED: Upload did not notice duplicates correctly
  - ADDED: XML-RPC: Support for `metaWeblog.newMediaObject` and `metaWeblog.getRecentPosts` methods
  - ADDED: XML-RPC: Support for the Movable Type API (except for `mt.getTrackbackPings`)
  - CHANGED: Fulltext search, prev/next links on search pages, ... (Xiffy)
  - FIXED/CHANGED: Action log size drops back to 250 when more than 500 entries.
  - FIXED: No more restrictions on category names
  - ADDED: possibility to create custom installs
  - FIXED: XHTML admin documents now have a proper `xmlns` attribute set; admin pages are now sent as `application/xhtml+xml` if the client browser accepts it. Removed again in 3.5final
  - ADDED: Plugins can now make specific options for blogs, categories and members. These options can be edited directly from the blogsettings or member settings page.
  - FIXED: It's no longer possible to select an item from an other weblog through `?itemid=` when there is a different `blogid=` parameter set in the request (or set using `selectBlog`)
  - FIXED: Disallowed while trying to create a new category on item edit
  - FIXED: Date/Time variables in date footer were not parsed
  - FIXED: Adding an item while creating a new category prevented ping to be sent to weblogs.com
  - FIXED: Right-click bookmarklet for IE (re-install to get it working with IE6)
  - FIXED/CHANGED: hyperlink conversion in comments: ftp/http/mailto supported
  - FIXED: spaces in between multiple notify e-mail addresses caused ar error message saying the e-mail address is invalid.
  - FIXED: `archivedate` skinvar ignored the 'locale' parameter that was passed to it
  - FIXED: `selectBlog` did not protect for changes in `?archivelist`
  - FIXED: `selectCategory` now takes a category id instead of a name (multiple categories can have the same name)
  - CHANGED: Fancy URLs are only generated when `$CONF['Self']` does not end in `.php` (this avoids URLs like `index.php/item/95/item/94/member/1` when turning fancy URLs on without further configuration)
  - CHANGED: Install script updates config.php automatically when it is writable
  - CHANGED: When the content type of a skin is `application/xhtml+xml`, only send this to browsers that specify this type in their `HTTP_ACCEPT` header (otherwise, send `text/html` instead)
  - CHANGED: More intelligent search keywords highlighting (multiple separate keywords etc), also available inside comment bodies now
  - ADDED: Possibility to filter on filename in media library
  - FIXED: `include('config.php')` caused problems when another `config.php` was in the PHP include path (nils bernhard)
  - ADDED: LiveJournal conversion (moraes)
  - FIXED: Karma Vote URLs used relative links to `action.php`
  - CHANGED: Support for PHP versions having `short_open_tag = Off` (Andrew Brampton/Terry Chay)
  - ADDED: Plugin options can now also use a `textarea` type. (max. size for data is still 128 bytes though)
  - FIXED: When unable to load a plugin, an error message is added to the actionlog
  - FIXED: Not all messages sent to the actionlog actually appeared there
  - ADDED: Made it possible to install more than one Nucleus installation in the same database (using a prefix to the tablenames)
  - ADDED: Nucleus does not longer allow access to the Admin Area when files like `install.php`, `install.sql` or the `nucleus/upgrades` directory are still on the server.
  - ADDED: `<%member%>` skinvar now also accepts `id` and `yourid` as parameter
  - FIXED: JavaScript toolbar works better in Gecko-based browsers (Mozilla Firebird/Netscape 7)
  - ADDED: `supportsFeature` method to plugin interface
  - FIXED: Destination URL parameter on `membermailform` skinvar didn't work
  - FIXED: Encoding of the window title of popup images (Osamu Higuchi)
  - FIXED: Link at end of install sequence was pointing to install.php
- Nucleus v2.0 Final (April 3, 2003)
  - FIXED: renamed the `xmlrpc_encode` and `xmlrpc_decode` methods in `xmlrpc.inc.php`, avoiding naming conflicts on some PHP configurations that are compiled with XMLRPC support
  - FIXED: restore did not work on some PHP configurations, and did not correctly recognize `application/x-gzip` encoding type
  - ADDED: `if(onteam[,blogname])` skinvar
  - ADDED: automatic warning when headers have already been sent, with filename and linenumber included
  - ADDED: About 40 extra plugin events
  - ADDED: Made `<%member%>` available on all skin parts, and added yourname, yoururl, ... parameters
  - FIXED: plugin loading is now a little more robust (non-fatal errors in the plugin PHP file used to cause a fatal error afterwards)
  - ADDED: extra variables inside popup code/image code/media code template-parts: `width`, `height`, `link` and `text`
  - ADDED: Extra optional parameter for `image` skinvar, indicating which information to insert on the page
  - CHANGED: Marked the `imagetext` skinvar as deprecated (use `image(caption)` instead)
  - CHANGED: Marked the `ifcat` skinvar as deprecated (use `if(category)` instead)
  - CHANGED: Marked the `vars` skinvar as deprecated (if anyone needs a hidden 'itemid' formfield [are there?], the itemid skinvar can be used instead)
  - ADDED: `doTemplateCommentsVar(&$item, &$comment)` method in plugin interface
  - CHANGED: comments are now also parsed using the same method as skins and items, allowing plugins, includes and more to be used there as well
  - FIXED: guests cannot longer place 'fake' comments (making it look as if a regsitered memeber made the comment)
  - FIXED: item contents is no longer trimmed
  - FIXED: Made install script look less messy
  - ADDED: `selectItem($id)` method
  - FIXED: Unable to disable comments through 'edit item'
  - ADDED: Plugins: EditItemFormExtras event gets itemid as separate parameter
  - FIXED: missing ; in presented new blog code
  - FIXED: PHP 4.0.6 didn't show item/member/... lists on admin area (PHP bug)
  - ADDED: Plugin Hook: BlogSettingsFormExtras
  - FIXED: <%if(blogsetting,bcomments,1)%> skinvars were not working
  - ADDED: <%if(loggedin)%> skinvars were not working
- Nucleus v2.0 beta (January 18, 2003)
  - FIXED: Highlighted text no longer has <!--h--> in it
  - ADDED; Plugin hook: PostAuthentication
  - ADDED: Plugin hooks PreAddItemForm, AddItemFormExtras and EditItemFormExtras
  - CHANGED: Notifications emails (new comment, etc) are not sent to the person causing the notification (comment author)
  - ADDED: plugins can access global variables `$currentTemplateName` and `$currentSkinName`
  - CHANGED: Spaces after commas in <%image%>, <%popup%>, <%media%>
  - FIXED: HTML to Text conversion didn't always work
  - ADDED: <%date%> templatevars extras (rfc822 & rfc822GMT) (Xiffy)
  - ADDED: ranges for <%blog(...)%> and <%otherblog(...)%> skinvars
  - ADDED: templatevars <%author(email)%>, <%author(url)%> and <%author(id)%<
  - CHANGED: Added info on new weblog creation (split up creation process into two steps)
  - FIXED: Login screen after email address change did not work correctly
  - ADDED: Plugin Hook: PrePluginOptionsEdit
  - ADDED: Added a getMinNucleusVersion method to the plugin interface
  - ADDED: PostPluginOptionsUpdate plugin event
  - ADDED: Javascript toolbar: align left/center/right buttons (Irmo)
  - ADDED: RSD skin/template
  - ADDED: 'Fancy' URLs option & support files. Allows for URLs like http://hostname/archive/1/2003-01-05 instead of http://hostname/index.php?blogid=1&archive=2003-01-05
  - ADDED: RSS 2.0 skin/template (Xiffy)
  - ADDED: skinvar <%skinname%>
  - ADDED: if/else in skins. parameters for 'if' are currently 'category' (=ifcat) or 'blogsetting/settingname' (settingname = columnname from database...)
  - ADDED: Etag/If-None-Match support for xml-rss.php (needs some more work)
  - FIXED: more friendly bookmarklet for Opera 6 users (all tabs are visible, editing through bookmarklet works)
  - ADDED: on edit item, the post time can be changed (only if 'allow post to past' is enabled)
  - ADDED: 'Allow Post to Past' option on weblog basis
  - ADDED: IncludeMode and IncludePrefix settings in nucleus_skin_desc + interface to change these settings + user IncludePrefix while parsing includes.
  - CHANGED: nucleusbutton skinvar now takes into account IncludeMode
  - CHANGED: btimeoffset column is now DECIMAL instead of INT
  - CHANGED: took away actionurl parameters from commentform and membermailform skinvars (it's a global setting now)
  - ADDED: <%set(property,value)%< skin/template-var to set global parser properties. Only one option defined so far: 'IncludeMode'. Can be 'skindir' or 'normal' and affects the include/parseinclude/phpinclude skin/templatevars
  - ADDED: <%skinfile(filename)%> skinvar (to be used on imported skins)
  - ADDED: $CONF['SkinsURL'] and $DIR_SKINS (config.php)
  - CHANGED: friendly names used on skin edit (instead of 'index', 'item' etc)
  - ADDED: action url to global settings (action.php location)
  - ADDED: $desturl and $actionurl parameters on membermailform skinvar
  - ADDED: skin import/export class
  - CHANGED: media library now works with multiple collections, of which one is private to the site member, and the rest is globally shared.
  - CHANGED: base skin can now be changed (it's now a config setting). This skin is ONLY used in two cased: when all else fails, and when the selected skin does not have contents for the needed skinpart
  - CHANGED: positive and negative karma votes are now kept separately, since that works better and is more flexible. The <%karma%> templatevar received an extra parameter to select which information to show
  - ADDED: skinvars archivenext/archiveprev/archivetype
  - CHANGED: skinvars nextlink/prevlink now also work on archive skins
  - CHANGED: move item now also allows to choose a category
  - CHANGED: new items can be added to other blogs also now
  - FIXED: archivedate skinvar displaying wrong date
  - FIXED: serverVar function was not working when using vars4.0.6.php
  - ADDED: now also listing category in itemlist
  - CHANGED: Admin Area now uses the Site Name instead of Nucleus
  - CHANGED: admin.css and admin area: corrected h1, h2, h3 depth levels
  - ADDED: batch operations
  - FIXED: when language settings are changed, the new language is used immediately (only for global settings, not for member settings)
  - CHANGED: archivelist query now uses the SUBSTRING MySQL function instead of the YEAR/DAYOFMONTH/MONTH functions (caused trouble for some people)
  - ADDED: maxlength attributes on forms
  - CHANGED: commentlists: placed time/author in same table cell
  - ADDED: extra convertor for Blogger blogs that use YACCS comments (exportable in CAIF format)
  - FIXED: some possible security issues (thanks to Morgan Tocker)
  - FIXED: shortening of strings does not corrupt HTML entities anymore (e.g. in RSS-feeds)
  - CHANGED: links in comments are now handled differently. Part of the URL is now displayed instead of just http://.../
  - ADDED: Opera version of bookmarklet
  - ADDED: selectLanguage() function to force the use of a certain language file
  - REMOVED: there was a plugin event AddItem which was actually not needed at all (wasn't included in the documentation too)
  - ADDED: archivelist skinvars now takes an extra limit-parameter
  - CHANGED: moved all forms which can be included through skinvar out of SKIN.php and into .template files in the nucleus/forms directory.
  - FIXED: 'clone skin' did not copy contenttype
  - FIXED: Errors in XML-RSS template (upgrading users might need to change this manually or by importing an updated skin)
- Nucleus v1.55 (August 26, 2002)
  - ADDED: <%archivedaylist%> and <%otherarchivedaylist%> skinvars (to show archives by day instead of by month)
  - FIXED: PHP error on createAccount through action.php
  - ADDED: new parseFile-method available in index.php. Allows to parse non-blog pages with skinvars
  - FIXED: editing comments with hyperreffed links
  - ADDED: 'delete item' option on edit item, plus 'delete item' confirmation screens (also on bookmarklet)
  - CHANGED: on multi-blog systems, the admin now only gets to see the blogs for which (s)he is on the team. All other blogs are available through an 'show all blogs...' link
  - FIXED: link to recent items after weblogs.com ping was broken
  - CHANGED: plugin event call 'PreAddComment' moved to immediately before the item is added to the database
  - FIXED: tab-orders were not correct on multiple admin pages
  - ADDED: <%itemid%> and <%itemlink%> available on item pages
  - FIXED: install.php now works when the PHP option magic_quotes_runtime is enabled
  - CHANGED: install.php gives an error when PHP is compiled without MySQL installed
  - CHANGED: install.php automatically fills the 'mysql hostname' field when PHP option mysql.default_host is set.
  - FIXED: greymatter convert was not putting a reference to the weblog in the comments table.
  - CHANGED: added some linebreaks in the login screen of the admin area
  - ADDED: new plugin events: PreAddItem, PreUpdateItem, PrepareItemForEdit, PreUpdateComment, PrepareCommentForEdit
  - ADDED: JavaScript to hide empty fields when editing templates
  - CHANGED: Admin area CSS now uses relative fontsizes and fontsize-keywords (also added trick to make IE5 get it right)
  - FIXED: backup was broken :(
  - CHANGED: replaced an SQL query that caused problems (NATURAL JOIN replaced by implicit inner join)
  - ADDED: <%self%> available in categorylist templates
  - ADDED: <%itemtitle%> skinvar available on item-skins
  - FIXED: editing a comment you made in a blog that's not your own resulted in a 'disallowed action' error
  - FIXED: plugin was listed twice in the list of available skinvars
  - ADDED: <%archivedate%> skinvar on archive skins
  - FIXED: admininstrators could not edit details of other members
- Nucleus v1.5 (August 13, 2002)
  - ADDED: Introducing plugins (define your own skinvars and templatevars, add event listeners, ...)
  - CHANGED: simpler and more accessible default templates/skins
  - FIXED: GreyMatter convert now works when the `asp_tags` option in PHP is enabled
  - ADDED: title and authorName fields in Blogger API getRecentItems call
  - ADDED: HTML label tags for radio buttons and checkboxes (this way you can click anywhere on the text instead of only on the radio button/checkbox itself)
  - FIXED: deleting a comment you made in a blog that's not your own resulted in a 'disallowed action' error (thanks moraes)
  - CHANGED: the place where comments are inserted can now be chosen from within the template. Just include <%comments%> in the ITEM templatepart whereever you want the comment count (or comments) to appear. In upgrading, the old ordening is imitated by adding '<%comments%>' to the end of the ITEM template part.
  - CHANGED: now trimming parameters that were passed to skinvars/templatevars
  - ADDED: <%referer%> skinvar, which inserts HTTP_REFERER
  - ADDED: '- New Category -' can now be chosen on add/edit item (only for blog admins). A new category is then created, and the chance is given to edit the category details.
  - ADDED: optional attributes for templatevars <%time(format)%>, <%date(format)%>, <%syndicate_title(maxLength)%>, <%syndicate_description(maxLength)%>
  - ADDED: new user registrations show up in action log
  - ADDED: new option to allow non-members to send messages (the membermailform)
  - FIXED: when an admin edits an item written by someone else, and uploads an image, the image is now saved under the original authors media directory
  - CHANGED: <%author(realname)%> in item templates now inserts the real name of the author
  - FIXED: install.php now works when magic_quotes_gpc is disabled
  - ADDED: New settings: PluginURL, MaxUploadSize, ProtectMemNames
  - ADDED: hotlinks to the defined skinparts from the skin overview (also gives a good view on which skinparts have been defined and which have not been defined)
  - ADDED: <%smartbody%> for item templates, which chooses between showing the body and extended part, based on the extended part being empty or not. Using this, the body text can be your full text, and the extended part could be seen as an 'introduction', which you want to show on the front page. (request from smarko)
  - ADDED: <%edit%>, <%editlink%> and <%editpopupcode%> can be used in item templates (and in items themselves) to insert a link to where the item can be edited/deleted. (default setting uses bookmarklet to do this). The edit links only get shown when the user is allowed to edit a certain item (blog admin or item author).
  - FIXED: bookmarklet now works correctly when magic_quotes_gpc and register_globals are turned off
  - ADDED: PHP and MySQL versions are listed during the installation proces, with warnings when those version numbers are lower than what Nucleus requires
  - CHANGED: item parsing method changed, so it's more easily extensible. plugin, parsedinclude, include and phpinclude are now also allowed in some templates. Inside items, there are also 3 allowed variables: 'image', 'media' and 'popup'
  - FIXED: image popups didn't work with register_globals disabled
  - CHANGED: renamed method: getBlogidFromName -> getBlogIDFromName (consistency)
  - ADDED: method selectCategory($name)
  - FIXED: Nucleus now handles data correctly when magic_quotes_gpc is disabled (solves some problems with template editing)
  - CHANGED: categories in selection box are now sorted by name (tip from katatonik)
  - FIXED: Not all tables got exported on backup :( (thanks Xiffy!)
  - FIXED: add item form didn't handle keyboard shortcuts correctly (thanks Hop!)
  - CHANGED: 'remember me' checkbox is now checked when the information was remembered from before (this way, the cookie gets set again and does not expire)
  - FIXED: after a category got selected through skinvar parameters, skinvars applying to all categories also got applied only to the last category that was selected (thanks Xiffy!)
  - ADDED: table nucleus_comment got an extra cblog column (redundant) to allow to find the blog that goes with a comment more easily.
  - FIXED: email address checking routine (false email addresses like foo@@bar.com were allowed)
  - CHANGED: New installations now get a robots.txt file (disallows karma voting/commenting/... by bots)
  - CHANGED: JavaScript preview now shows image outlines and popup image links
  - CHANGED: searchform now available on ALL skintypes
  - FIXED: headers in globalfunctions/SKIN.php now sent _only_ when no other headers have been sent before. Should make including easier.
  - CHANGED: RSS-auto-discovery tag in default skin
  - CHANGED: formfields got labels (accessibility issue). Also access keys have been defined: L for login, 4 for Search (on windows, actions keys are used together with the ALT key)
  - ADDED: left and right box buttons on JS toolbar
  - FIXED: truncated entry when login is requested after adding (data didn't get passed on correctly)
  - ADDED: <%authorlink%> to template vars for item templates (this one can take catid into account)
  - ADDED: $CONF['Self'] => $CONF['ItemURL'], $CONF['IndexURL'], ... to optionally allow people to use different files for items/archives/...
  - CHANGED: Now using mysql_fetch_assoc instead of mysql_fetch_array (efficiency)
  - CHANGED: The <%searchresults%> and <%othersearchresults%> skintags got an extra parameter to limit the number of results (defaults to 50)
  - FIXED: doError did not take into account chosen skin
  - FIXED: Commentform not shown anymore for closed items (a message is shown instead)
  - CHANGED: Removed all unneccessary javascript: links (deprecated)
  - CHANGED: Media: Procentual width and height values are now allowed in image and inline constructs (e.g. <%image(bla.gif|50%|50%|lala)%>)
  - FIXED: Blogger API: getPost wasn't returning category name
  - FIXED: Blogger API: getRecentPosts wasn't converting linebreaks
  - FIXED: surpressed warning on mysql_close
  - FIXED: install-script now also accepts email addresses that contain uppercase characters
  - FIXED: imported items did not show up in the weblog
  - FIXED: blogger api <title> thingie didn't work
  - CHANGED: Made all uploaded files be chmodded to 644
  - FIXED: template cloning didn't clone all parts
  - FIXED: After new user registration, there was a redirect to the members url (use 'desturl' now to indicate destination url)
  - ...and a lot of small changes
- Nucleus v1.1 (April 30, 2002)
  - Started assuming that at least PHP 4.0.5 is available. (for older PHP versions, some small code-changes should do the trick)
  - Added bookmarklets for Mac/IE5 users and Mozilla. Also, made the title of the page also show up in the title field of the new item. Makes more sense. (thanks to Ricardo Lamego)
  - Made the predefined PHP variables available in scripts called through <%phpinclude(..)%> (thanks to Polskaya for noticing the problem)
  - Fixed: <%additemform%> and <%nucleusbutton%> didn't work when admin area was not in a dir named 'nucleus'
  - Added: <%sitevar(adminurl)%> and shortcut <%adminurl%> to include the URL of the admin area
  - Changed all references to nucleus.demuynck.org into references to nucleuscms.org
  - Extra settings: cookie domain, cookie path, secure cookie (for https)
  - Instead of stripping tags in comments, < and > are now replaced by their entities (&lt; and &gt;). This way, greater than and lower than signs can be used in comments (inspiration by Steven Verbruggen)
  - Added charset to language files, so international character sets can be used when needed (forum)
  - Added an extra content-type attribute to skins, so the output type can be set correctly by Nucleus
  - Removed the 'headlines' skin and templates. Don't want new users to get too confused.
  - Notification emails now also get the senders display name
  - All errors now handled by doError method in globalfunctions.php (makes it easier when you want to use your own error handler instead of the error skin)
  - Site-members can now override the default site-language setting for the pages they visit
  - Added skinvars <%otherarchive%> and <%othersearchresults%> for use on archive/search pages.
  - Skinvar <%searchform%> now takes an optional parameter: blogname (for which you want a search form)
  - Introducing categories! (new settings; new skinvars category, categorylist and ifcat; new template vars <%category%>, <%catid%> and <%categorylink%>; new optional category params for skinvars blog, otherblog, archive, otherarchive, archivelist, otherarchivelist)
  - Fixed: error skin didn't get copied on skin cloning
  - Even more new skinvars to make skinning easier: <%todaylink%>, <%archivelink%>, <%prevlink%> and <%nextlink%> (forum)
  - Fixed: The install script was giving warnings about uninitialized variables on some PHP configurations
  - Moved version history to separate file
  - Made upgrade scripts a little more robust and more verbose
  - XML-RPC: metaWeblog API support
  - XML-RPC: <title> and <category> tags can now be used with the Blogger API (similar to b2)
  - Fixed problem with create account (forum)
  - Made it so Nucleus still works when using PHP >4.1.0 with register_globals turned off, which is the default setting for new installations (forum)
  - Media library: popup now requests login when needed
  - Media library: option to auto-prefix uploaded files with date (turned on by default)
  - Backup/Restore: backup file name now has date + nucleus.sql renamed to install.sql + extra "I'm sure"-checkbox on restore to avoid errors (forum)
  - Javascript toolbar: simpler version available that works in Mozilla
  - Fixed: Closed items don't show 'no comments' link anymore (forum)
  - Fixed: Drafts items don't result in 'January 1970' entries in archivelist
  - Fixed: Added <image> tag to xmlrss skin for new installs. It's required. (defaults to a nucleus logo, up to you to change it)
  - Fixed: Error with restore (content with semicolons in it would not get restored)
  - Added: Extra notification options
  - Archives can now also be accessed by day, and an extra daylink template var is available in date headers
  - Fixes in default skin
  - As always, lots of small fixes & code rewrites
  - Changes (additions to and deletions from) language file:
    - _SETTINGS_COOKIES_TITLE
    - _SETTINGS_COOKIEDOMAIN
    - _SETTINGS_COOKIEPATH
    - _SETTINGS_COOKIESECURE
    - _SKIN_UPDATED
    - _TEMPLATE_UPDATED
    - _CHARSET
    - _MEMBERS_DEFLANG
    - _MEMBERS_USESITELANG
    - _ADD_CATEGORY
    - _ADD_DRAFTNFUTURE
    - _ERROR_NOSUCHLANGUAGE
    - _ERROR_NOSUCHCATEGORY
    - _ERROR_DELETEDEFCATEGORY
    - _ERROR_DELETELASTCATEGORY
    - _ERROR_BADCATEGORYNAME
    - _ERROR_DUPCATEGORYNAME
    - _CONFIRMTXT_CATEGORY
    - _DELETED_CATEGORY
    - _LISTS_TYPE
    - _SKIN_TYPE
    - _YOURSITE
    - _LIST_COMMENT_HOST
    - _SETTINGS_MEDIA
    - _SETTINGS_MEDIAPREFIX
    - _SETTINGS_MEMBERS
    - _LOGIN_FORGOT
    - _TEMPLATE_CATEGORYLIST
    - _TEMPLATE_CATHEADER
    - _TEMPLATE_CATITEM
    - _TEMPLATE_CATFOOTER
    - _EBLOG_DEFCAT
    - _EBLOG_CAT_TITLE
    - _EBLOG_CAT_NAME
    - _EBLOG_CAT_DESC
    - _EBLOG_CAT_CREATE
    - _EBLOG_CAT_UPDATE
    - _EBLOG_CAT_UPDATE_BTN
    - _EBLOG_NOTIFY_ON
    - _EBLOG_NOTIFY_COMMENT
    - _EBLOG_NOTIFY_KARMA
    - _EBLOG_NOTIFY_ITEM
- Nucleus v1.0 (March 6, 2002)
  - Fixed: width & height of <%image()%> construct
  - Changed: windows in popup windows don't have a white border anymore (see forum)
  - Fixed: bug with single quotes in image/popup constructs (see message)
  - Fixed: fatal error in 'send password' method (thanks to HANK!)
  - Fixed: removed some illegal characters from code documentation since they caused parse errors on some systems (thanks to Martin Belle-Isle and Rodrigo Moraes; see forum for extra details)
  - Refined: added a note about spaces to the install-script (see forum)
  - Added: donate-link on admin page (hey! it's free, I have the right to bug you with this sort of things ;-)
  - Changed: it's not possible anymore to create a draft future item. That didn't make sense. You can now choose whether you want to publish a draft item either immediately or in the future when editing the item
  - Changed: made it so that the 'disable comments' choice is not offered anymore on add/edit item form when commenting is disabled in the blogsettings
  - Fixed: where possible, redirection after commenting is now done to the correct file (instead of index.php)
  - Fixed: bug where only superadmins could change usernames/passwords, even if the corresponding option in the settings was set (thx slekke)
  - Added: allowed variables for a skinpart now shown when editing skin
  - Wrote new re-usable parser that does skin parsing in a way that is more flexible and less prone to errors.
  - Changed: passwords now stored in encrypted form
  - Optimizing: optimized some queries
  - Added: <%otherarchivelist(blogname,templatename)%> in skins
  - Added: Blogger Convert
  - Added: "shared computer" checkbox on login. Checking this box will make your cookie expire at the end of the session (instead of taking the global site setting) (see forum)
  - Added: "remember me" checkbox on comment forms for non-members
  - Most language related things are now moved to language files. Now you can roll your own :)
  - Added: optional parameters rows/cols in membermailform skinvar
  - Added: skinvars: <%phpinclude(file)%> and <%parsedinclude(file)%>. <%plugin%> is now deprecated (in favor of phpinclude). The plugins directory should also not be used anymore (it'll get another function in a later version)
  - Added: skinvar <%self%> which includes the filename of the currently executing script (index.php or whatever is sen in $CONF['Self'])
  - Automatich hyperlink detection in comments now also recognizes comma's
  - Added: selectSkin('name') and selectBlog('name') functions available for use in index.php
  - Added: Small restore-guide for the worst case scenario
  - Added: A toolbar with markup buttons on add/edit item, plus option to disable it in the settings. When Mozilla is used, Nucleus tries to disable it automatically (since it doesn't work there anyway)
  - Fixed: media were not expanded in extended text (thx raoul)
  - Changed javascript code of popup help so it works better in Mozilla (thanks to Paul Sowden)
  - UI improvements
  - New default skin (the old one was just plain ugly :-)
  - Small bug-fixes
- Nucleus v0.96 (December 13, 2001)
  - Added: add-item-preview now also in admin area
  - Added: action log
  - Added: media library and file-upload
  - Added: karma votes
  - Added: Option to disable loginname/password changing by members
  - Added: simple popup windows for image viewing
  - Fixed: E-mail address validation check does not longer require addresses to be all lowercase
  - Fixed: magic_quotes are now explicitly disabled, solving escaping problems (thanks to Dennis Slagers)
  - Fixed: error handling when pinging weblogs.com
  - Added: now also storing IP with comments (next to hostname)
  - Added: IP banlist (to prevent nasty people from commenting/voting)
  - Changed: Notification mails now include the item's title
  - Changed: Weblogs can only be deleted by super-admins
  - Changed: XML-RPC for PHP v1.02
  - Added: Small guide to changing/setting filepermission in docs
  - Changed: Upgrade and conversion scripts now get packed separately
  - Fixed: For error skins, the default skin is used now instead of 'default' (thanks to Slekke)
  - Fixed: The code to insert the Nucleus button was not XHTML (strict) compliant, oh my!
  - GM Conversion: The conversion of {{popup}} now works correctly (and copies image files to the media dir)
  - Fixed: a minor bug in XML-RPC call blogger.getUsersBlogs
  - Fixed: a major bug in XML-RPC call blogger.getRecentPosts
  - Fixed: problem concerning template editing and the XML-RPC call blogger.setTemplate
- Nucleus v0.95 (October 10, 2001)
  - Added: per-blog setting to enable/disable line break conversion
  - Added: per-blog setting to send a ping to Userland (weblogs.com) when you update your blog. This way, you'll be able to end up in the weblogs.com update-list
  - Switched to v1.01 of the XML-RPC for PHP libs (was v1.0)
  - Upgrade scripts are available (for upgrade from versions < 0.95 to v0.95)
  - Added: <%previtem%> and <%nextitem%> can be used in item-skins
  - Some changes in the default database dump
- Nucleus v0.94 (September 27, 2001)
  - Changed: 'Add Item' in admin-area now redirects to blog url (if available)
  - Changed: headlines.php and xml-rss.php adapted to behave better in disabled-site situations
  - Changed: <%userlink%> got smarter in recognizing e-mail addresses
  - Added: tabindices in forms to make traversal with the TAB-button more natural
  - Fixed: bookmarklet login did not pass data correctly
  - Added: JavaScript to open links in new window (javascrip/opennew.js)
  - Added: <%year%> and <%month%> in templates for archivelist-items
  - CSS lightly changed because IE6 is a little bit more picky (which is actually a good thing)
  - Fixed: popup code (JavaScript) for help-windows (didn't work ok in IE6)
  - Added: Description or summary of what you are going to delete on the confirmation screens
  - Added: Workaround (for advanced users) to get your archives into search engines (on tips & suggestions page)
  - Fixed: A bug in the XML-RPC server
- Nucleus v0.93 (September 19, 2001)
  - Added: friendly error message on error with nucleusdir definition in config.php
  - Changed: call_user_func instead of eval
  - Added: forms included by skin variables now have class="formfield" and class="formbutton" arguments, to allow more control on the layout
  - Created a 'Tips & Suggestions' page next to this manual
  - XML-RPC API: added nucleus.addDatedItem method
  - XML-RPC API: added nucleus.editItem method
  - XML-RPC API: added nucleus.getRecentItems method
  - XML-RPC API: added nucleus.getItem method
  - Added documentation for XML-RPC nucleus.* methods
  - Fix: Search results didn't show the amount of comments. Now they do.
- Nucleus v0.92 (September 18, 2001)
  - GM conversion: {{linkmo and {{emailmo conversion now also works with PHP versions < 4.0.4
  - GM conversion: Fixed occasional JavaScript errors with {{linkmo and {{emailmo
  - GM conversion: Fixed [read more] bug
  - GM conversion: Extra intelligence in choosing URL or e-mail to save as userid for comments
  - Added: ?archivelist can now be used without arguments to show the list of archives for the default weblog
  - Fixed: Editing comments now does not allow the use of HTML anymore. The same checks as when adding new comments are performed on update attempts.
  - Added: check to find out if update file is writable (on changing blogsettings and creating new weblog)
  - Changed: hard returns in add item now get converted to line breaks (<br />), Also, modified javascript code that handles preview to behave in the same way.
  - Changed: <%commentform%> does not show user and userid fields for logged in users. Instead, it shows the name of the user.
  - GM Conversion: {{popup command now also translated (will be converted into a link to the image, not into a popup window!)
  - Updated: default templates (?archivelist)
  - Changed: E-mail Address Validation Check
- Nucleus v0.91 (September 15, 2001)
  - Improved conversion for GreyMatter blogs. Special markup commands are now recognized. (thanks to Raoul for pointing this out)
- Nucleus v0.90 [beta 2 release] (September 14, 2001)
  - an install-script is now available, no more messing around in shells
  - created default skins/templates for a release version
  - option to store 'last visit' cookie and to use 'new' indication on items
  - ?archivelist=.. request can now also be used with a blogid instead of a blog shortname
  - forgotten password reminder
  - Bookmarklet can be used without being logged in. A login prompt is shown in that case.
  - When not being logged in to the admin area, requested actions are now completed after passing login information. Before, you would always end up at the action overview after passing login information, and your requested action would have gone lost.
  - Super-admins now have access to all blogs, even if they are not on the team
  - Logtext passed to bookmarklet now gets <br /> added before each newline
  - Added little JavaScript to prevent submitting form data twice
  - Sample plugin: google referer check
  - Conversion script to import GreyMatter blogs included
  - Removed 'assign comment to member' feature
  - Added toolbar to popup help windows (because of the back/forward buttons)
  - Added <%blogurl%> variable for item templates
  - bug-fixes
  - small esthetic changes
  - ...
- Nucleus v0.80 [beta 1 release] (September 2, 2001)
  - XML-RPC Interface implementing the blogger methods
  - fixes and code-reorganisation
  - popup-help on item pages
  - bookmarklets/right click blogging
  - the start of something that looks like documentation
- Nucleus v0.70 [not released] (August 20, 2001)
  - mySQL instead of XML
  - extensive admin area
  - 'member' concept, including blog teams/admins/...
  - rewrote most of the code
  - skin format slightly changed
  - almost ready for public release :)
  - adding items with instant preview (when viewing the weblog)
  - LOCALE used for time/date notations.
- Nucleus v0.60 and earlier (since February 2001)
  no history (XML versions with limited functions)