CWIS Change Log

4.1.1  2018 May 18


    - On Metadata Tool, do not list temp resources that haven't yet

        been saved


    - Added configuration settings to specify MySQL/MariaDB slow query

        thresholds for foreground and background execution

    - Revamped background task management, to increase task throughput

    - Add support for Height and Width parameters in FormUI

    - Add TabbedContentUI utility class for displaying content in tabs

    - Add PRIV_ISLOGGEDIN Pseudo-privilege for use in Schema/Field


    - Export Users: add support for exporting users with a given privilege


    - Fixed bug that prevented page cache expiration time from

        being changed.

    - Do not cache Search Results pages that displayed a

        'please do not spider' message

    - Fix bug in handling of BMP images

    - When queuing search index rebuilds after upgrade, use the

        configured priority, rather than 'background'

    - After editing field and schema permissions, clear the caches

        used to store resource visibility

    - Do not cache 404 pages in the static page cache

    - Do not allow users to disable fields that are checked by permissions

    - Fix bug that prevented Controlled Names from being deleted if

        they were in use

    - Fix bug preventing 'Populate Field' from functioning for fields

        from non-default schemas

    - BrowseResources: Fix bug that would only display published resources,

        even when a user was logged in


    - CalendarEvents: Normalize field in the Events schema to match

        those in the Resource schema where appropriate

    - ResourceExporter: Extend to allow users to save sets of export

        settings for later re-use

    - UrlChecker: Do not queue tasks to check Urls on Resources from

        schemas that have no URL fields, improving throughput

    - MetricsRecorder: Add SQL index to improve run time of

        CleanBotFromMetrics() tasks

    - Mailer: Add a 'Delete All Shown' button to the approval queue

    - GoogleMaps: Add URL fingerprinting to the generated KML pages,

        allowing site admins to specify how often Google should re-fetch

        these pages


    - GoogleMaps: Fix bug in CleanCaches() that could cause callbacks

        information to be prematurely deleted

    - Mailer: On approval queue, make message search settings persistent

        after View/Delete/Send of individual messages

    - BatchEdit: Remove fields that cannot be edited from configuration

        of fields allowed for batch editing

    - FieldRedactor: fix bugs that prevented Title, Screenshot,

        Added By Id, or Cumulative Rating from being redacted

    - Folders: Fix incremental search for users in Transfer Folder

    - OAIPMHServer: Fix bug in creation of oai_dc format that could

       cause it not to have a dc:title element


4.1.0  2018 Feb 8


    - Many HTML and CSS changes to bring the default CWIS interface

        into WCAG 2.0 AA compliance

    - Searching for "^XYZ --" will now find XYZ and all its child


    - Moved "Help" pages out of interface files and in to Pages pages,

        allowing users to edit and extend them

    - Added support for autocomplete dropdowns on FormUI User fields

    - Numeric usernames are now forbidden, to avoid ambiguity between a

        numeric username and a user ID

    - Require secure login over plain HTTP, but do not use it over

        HTTPS (which is already secure)


    - Extended FieldEditingUI to support X-DATE-X and X-TIME-X in date

        and timestamp fields (used for setting UrlChecker actions and in


    - Added ItemListUI::AddTopCheckbox(), for easily adding a checkbox to

        the top of lists

    - Revised table creation SQL to be compatible with new requirements

        introduced in MySQL 5.7.x

    - Meta tag for site keywords is now added automatically by the core

        software (rather than in StdPageStart.html)

    - Improved compatibility with PHP 7.2.x

    - Refactored Qualifier and ControlledName to be based on Item

    - Added PieChart helper to generate pie charts

    - Added BarChart helper to generate bar charts

    - Added support for PSR-4 PHP class autoloading

    - In PrivilegeSet, GetCanonicalFieldIdentifier() is now used to

        locate fields

    - Dropped support for legacy Local_ functions

    - AxisPHP library is no longer used (necessary classes have been

        migrated into into the ScoutLib library)

    - Deprecated include/StdLib.php (some functions moved into StdLib

        class in ScoutLib)

    - Whether downloaded files display in the browser or save to file

        is now controlled by the browser, rather than being forced to

        save to file)


    - Fixed SavedSearch creation to properly load default values

    - Fixed bug in redirect after creating a new saved search

    - On EditForum, an error message is now reported when invalid

        forum ID is supplied

    - Fixed bug with session handling that could caused users to be

        unexpectedly logged out during a long session


    - BotDetector: Split cleaning bots from metrics data into one task

        per bot-IP, avoiding orphaned tasks

    - DBCleanup: Added cleaning of Saved Searches owned by

        non-existent users

    - Developer: Extended to support overriding ApplicationFramework

        settings via developer.ini

    - Mailer: Added outgoing mail approval queue

    - Mailer: Added outgoing mail log

    - Mailer: Added support for specifying that mail generated for a

        template requires manual confirmation before sending

    - Pages: Last modification info now displayed at page bottom

    - Rules: Added a link to matching resources on the EditRule screen

    - UrlChecker: Added tracking of previous check times, use this to

        decide how many URLs to check in a background task


    - Blog: print entries with class="blog-entry" rather than

        id="blog-entry", avoiding duplicate ids on pages showing more

        than one entry

    - MailIt: Send email immediately rather than queuing a task to do

        it, making the "Email successfully sent" message more true

    - MySearches: Fix handling of searches containing deleted fields


4.0.1  2017 Sep 17


    - Extended SearchEngine to support 'user is not' searches

    - Added help text to all settings on System Configuration

        and Advanced System Configuration pages

    - Any errors reported by enabled plugins are now displayed on

        the Administration page (as well as the Plugins page)

    - Added "uadd" command to cwis command line utility.


    - Revised string handling code so that the mbstring extension

        is no longer required (though it will be used if available)

    - MetadataSchema: clean up and unify caches

    - PrivilegeSet::MeetsCondition() refactored for clarity and to

        add caching of field values

    - ResourceFactory::ImportResourcesFromXml() added to simplify


    - Session cookies now have the Secure and HttpOnly flags set

        when appropriate, to help minimize the possibility of XSS



    - Updated database table definitions to avoid "max key length"

        error encountered in some newer default configurations

        of MariaDB and MySQL

    - Fixed the Currently Logged In and Recently Logged In lists

        on the Administration page, so they show the correct

        last location for users loading pages via clean URLs.

    - On ResetPassword, when a user who never activated their account

        successfully resets their password, implicitly activate their


    - Fixed issue that prevented AWStats client characteristics

        tracker script from being loaded


    - SavedSearchMailings:  replaces the saved search mailing

        feature previously in the core software, and adds support

        for saved search emails for search results from non-default

        schemas (e.g. blog posts, events, pages, etc)


    - DrupalSync: Better error reporting when login sync fails

    - MLPHPList: Add local cache of user information to speed up

        generating Mailing List Metrics page

    - BotDetector: Do not assume that any IP listed by httpBL as

        "suspicious" is a bot (as this includes many IPs that are

        just part of public wifi networks)


    - Rules: do not send email for new matches when editing an

        existing rule


4.0.0  2017 May 31


    - In PrivilegeSet, remove the somewhat confusing "Checking

        Resource" condition

    - On SearchResults, use BotDetector to discourage bots from

        spidering search results pages

    - Add configurable password complexity rules.

    - Added "config", "dumpdb", "list", "loadresources", "mysql",

        "mysqlargs", "tdel", "trun", and "userui" commands to cwis

        command line utility


    - Significantly extended FormUI class and revamped forms

        in many areas to use FormUI

    - Create SearchParameterSetEditingUI, for easy embedding of search

        parameter sets into other pages (e.g. Rules editing)

    - Extend PrivilegeEditingUI and PrivilegeSet to accept fields from

        multiple schemas in the same privilege set

    - Add "Context Filtering" in ApplicationFramework, which prevents

        variables from unintentionally leaking between PHP and HTML


    - Store standard field mappings persistently in the database

    - Allow standard field mappings to be specified in XML Metadata

        Schema descriptions

    - Allow schema-level privilege settings to be specified in XML

        Metadata Schema descriptions

    - Remove all hardcoded references to the "Release Flag" field

    - Replace the "Release Flag" in new installs with a more flexible

        "Record Status" field

    - Added support to ApplicationFramework for user interface


    - Many, many cleanups of global variable usage

    - Upgraded included jQuery UI to 1.12.1

    - Upgraded included CKEditor to 4.6.2

    - Upgraded included PHPMailer library to 5.2.21


    - Add missing UserCanView() checks to DisplayReferenceField() on


    - Many other minor bug fixes


    - Developer: Added support for conditional setting sections

        in developer.ini  (See install/EXAMPLE-developer.ini)

    - Developer: Added support for overriding system configuration

        values via developer.ini

    - DrupalSync: Rewrite to use a REST API to communicate with the

        companion Drupal plugin, rather than using access to a shared


    - Pages: Add summary information in search results

    - MetricsReporter: Make all reports available in JSON format for

        easier ingestion by other software

    - Rules: Completely refactored to use an IF/THEN model

        and support complex search parameters in the IF

        section and complex email recipient selection parameters

        in the THEN section


    - GoogleMaps: fix incorrect usage of BaseUrl() when generating


3.9.1   2016 Aug 25  (BETA RELEASE)


    - Searching for when a field was last modified is now

        supported ("@" operator -- see new entry in Tips block

        on default Advanced Search page)

    - User fields can now be configured for automatic updates

        when records are changed

    - Background tasks can now be explicitly triggered by loading


    - Added new "cwis" command line utility (can be found in

        "install" directory)


    - Resource and Classification classes are now based off of

        a new Item class, and now use a separate Create()

        method and throw an exception in the constructor when

        passed a bad ID, rather than setting an error code

        (IDs can be checked before calling a construct via the

        static Item::ItemExists() method)

    - Locking has been implemented to prevent multiple simultaneous

        invocations of long-running plugin installs or upgrades

    - Session start handling has been refactored to better

        handle corrupt or missing session IDs

    - Connections to the database server are now retried if they

        initially fail

    - New StdLib class to provide standard utility functions

        and constants

    - Added code to prevent probability of PHP session garbage

        collection from dropping too low

    - Made PHP session cleanup more tolerant of extremely full


    - FormUI helper object extended with URL field type


    - Fixed issue with plugin event hooks not being unhooked

        when the plugin is disabled

    - Miscellaneous fixes to improve PHP 7 compatibility


    - Piwik: adds tracking code for the Piwik web analytics

        tool to the HTML header


    - BrowserCapabilities: refactored to no longer be based off

        of Browscap library

    - Developer: added support for developer.ini file to force

        plugin configuration settings to specific values (see

        install/EXAMPLE-developer.ini) and to force plugins to

        be enabled/disabled

    - Mailer: in-use templates can no longer be deleted.

    - MetricsReporter: search log page now part of MetricsReporter

    - Pages: EVENT_RESOURCE_MODIFY is now signaled when a page

        is edited

    - Pages: content excerpts are now generated and stored and

        displayed as part of search results

    - ResourceExporter: now handles multiple schemas


    - Mailer: plaintext-only templates should now work correctly

3.9.0   2016 May 20  (BETA RELEASE)


    - Replaced all CSS with SCSS in default interface

    - Refactored StdPageStart and StdPageEnd to be easier to understand

        and customize, with more and better inline documentation

    - Added support for searching across all item types (resources,

        pages, blog posts, events, etc)

    - Administration page: When log entries contain a URL, they are

        now clickable

    - Added system configuration option to show metadata field group

        names on the FullRecord page

    - Search pages were completely rewritten: fielded searches are now

        entered on AdvancedSearch, search results displayed on SearchResults,

        and the confusingly-named Advanced page no longer exists

    - Generalized FullRecord page to work with Resources from

        non-default Schemas

    - Refactored interface code to make more use of jQueryUI


    - Extended User fields to support multiple values

    - Removed numerous deprecated and unused variables that had been

        retained for compatibility with much older CWIS versions

        (older than 2.0.0).

    - When enabling a plugin, any other plugins on which the selected

        plugin depends will now be automatically enabled

    - Revised logic used to determine plugin initialization order to

        be more robust

    - Caller information is now included in more exceptions for easier


    - Administration page: Smarter loading of log entries, preventing

        OOM errors when cwis.log grows very large

    - Added per-metadata-field SearchGroupLogic setting, used when

        multiple facets are selected

    - Added support for specifying a link target for image fields

    - Refactored all plugins and rest of core software to make use of

        SearchParameterSet rather than legacy format array encoding

    - Added ability to specify priviliges by name (rather than numeric

        ID) when loading metdata fields from XML files

    - Added support for prefix and suffix operators (^ and $) when

        searching text fields

    - Added caller context to logged error messages

    - Significantly improved compliance with Scout coding standards

        (including object and method documentation) in all code

    - Updated to be compatible with PHP 7


    - Fixed bug preventing uninstallation of disabled plugins

    - Fixed field permission checking on search pages so that users

        cannot search against fields they are not allowed to view

    - Updated ImportUsers/ImportUsersExecute to properly use CWUser

        rather than directly manipulating Axis--User which would result

        in half-created but unusable users

    - DownloadFile: prevent Apache from enabling transparent

        compression on already compressed files, which can cause issues

        with MS Office XML files

    - Updated to use Microsoft's recommended MIME types for Office

        XML documents

    - Fixed bug preventing CKEditor from properly loading CSS for

        paragraph fields where rich text editing is enabled


    - BatchEdit: extended to handle multiple schemas (types of items)

    - Blog: extended to allow sending of confirmation message on

        unsubscription to email notifications

    - CalendarEvents: added support for user-owned events

    - Folders: extended to support transferring folders between users

    - Folders: extended to be able to contain multiple types of items

    - GoogleMaps: now exposes more of the fine-grained address data

        provided by Google

    - MailIt: added new template keyword for recipient's email address

    - MetricsReporter: added tracking of Blog subscriber stats

    - UserCreator: extended to prompt for custom User schema fields when

        new users are created


    - UrlChecker: display correct count for 'Permission Denied' errors

    - UrlChecker: don't attempt to check URLs from deleted fields

    - Pages: added support for specifying which tab should be selected

         in the URL


3.2.0   2015 Jun 11


    - new plugin: BatchEdit, allows modifications to groups

        of resources

    - new plugin: MailIt, allows users to send resource

        summaries to themselves or others via email

    - new plugin: MySearches, displays recent searches conducted

        by the user

    - new plugin: PHPList, supports integration with PHPList

        as another option for announcement lists

    - new plugin: XML Sitemaps, to provide search crawlers

        with a directory of pages to be indexed


    - Blog plugin: added support for multiple blogs and replaced

        older 'Site News' functionality with a Blog

    - Folders plugin: revised to add/remove items from folders

        via AJAX (no page reloads)

    - Developer plugin: added support for automagically prepending

        a specified URL prefix to missing files/images to fetch

        them from an external site

    - Developer plugin: added ability to configure which

        privilege flags are required to see page load info

    - Developer plugin: added email whitelist support, to prevent

        email being inadvertently sent to end users when testing

        with a copy of a production site

    - GoogleMaps plugin: added support for customization of

        which UI controls are displayed

    - Mailer plugin: new X-RESOURCEVIEWURL-X keyword

    - Mailman plugin split into MailingList and Mailman plugins,

        the former providing generic support for integration with

        any mailing list platform

    - Pages plugin: added support for rich text editing

    - Pages plugin: added support for uploading and inserting

        images and downloaded files into a page

    - Pages plugin: now stores data in a separate metadata

        schema (with accompanying full privilege customization


    - UrlChecker plugin: more flexible configuration of what

        actions should be taken when 'withhold' and 'release'

        buttons are used


    - server-side caching of generated HTML for logged-out or

        anonymous users

    - added support for URL fingerprinting of static assets

        (images, css, javascript), so that far-future cache

        expiration times can be used

    - added automatic minimization of javascript files

    - classification editing can now search for matching terms

        to edit, simplifying management of large vocabularies

    - installation: improved checking for required PHP extensions

        and better error reporting when they are missing

    - use HTTP response codes to redirect to a CleanURL when

        one is available for a given page

    - added a per-metadata field CopyOnResourceDuplication


    - refactored to use PHP mysqli_ functions rather than the

        (soon-to-be-deprecated) mysql_ functions

    - revise database schema to provide defaults for all columns

        resolving installation problems when STRICT_TRANS_TABLES

        mode is enabled in MySQL

    - improved logic used in determining which resources

        match a saved search (previously only newly released

        resources could match)

    - added far-future expiration times in default .htaccess

        to make better use of client-side caching

    - updated the sample records to better showcase features

        like faceted searching

    - replaced internal JavaScript code with jQueryUI usage

        where applicable

    - added display of recent log messages to Administration page

    - added option to generate compact CSS from SCSS code


3.1.1   2014 Oct 20

    - added support for SCSS (SASS CSS extension language)

    - fixed bug in resource creation where flags with a

        default value of "Off" would not explicitly be set by

        PHP (though they were still set by MySQL)

    - fixed issues with Classifications that start with a

        punctuation character

    - removed display of "()" on resource editing complete

        page, for fields with item-level qualifiers and items

        that have no qualifier set

    - improved sorting of AJAX dropdown search results on

        resource edit page for controlled vocabularies that

        have terms like "Science--Study" (the lack of spaces

        around "--" was previously problematic)

    - fixed upgrade issue where fields from non-Resource

        schemas could be displayed on the EditResource page

    - fixed a problem with the current folder being reset to

        "Main" upon folder deletion when the current folder

        was not the one being deleted

    - fixed problem with missing Accessibility Wizard method

        being called from legacy interfaces

    - added additional diagnostic output upon image upload


    - other minor bug fixes

3.1.0   2014 Sep 5

    - revamped and extended permission/privilege system to

        support more complex workflows and separate out

        per-schema and per-field permssions configurations

    - moved Google Analytics support to plugin and added

        support for Google site verification code

    - moved RSS feed support to plugin (RSSExport) and added

        ability to create RSS feeds on any page using items

        from any schema type (resources, events, blog posts)

    - moved metadata export to plugin (ResourceExporter),

        which includes the ability to export selected fields

        from resources gathered into a selected folder

    - added plugins for exporting resource metadata in XML

        (REFormatXml) and tab-delimited form (REFormatTsv)

    - added display of most frequently used terms at the top

        of the AJAX dropdowns for Tree and Controlled Name

        fields when editing resources

    - updated included files for Cancore, Dublin Core, NSDL,

        and USGS vocabularies to correspond with the latest

        revision of those vocabularies

    - added Advanced System Configuration page (reachable off

        of the main System Configuration page) that now

        contains the more seldom-used technical settings

    - fixed bug that munged relative paths in interface files

        that begin with slashes when loading from a clean URL

    - made numerous small fixes for better HTML standards


    - BotDetector plugin:  improved overall detection of bots,

        including explicit support for detecting bots that do

        not load appropriate CSS or JS files

    - BotDetector plugin:  added support for Project Honeypot's

        http:BL service for enhanced detection

    - BrowserCapabilities plugin:  changed phpbrowscap

        handling to reduce memory usage issues

    - CalendarEvents plugin:  added searching to event list

    - Developer plugin:  revised Variable Monitor to display

        all POST values instead of just "F_" variables

    - Folders plugin: added pagination to folder contents

        and greatly increased the number of items that can

        be placed in a single folder

    - Mailer plugin:  mail is no longer sent to users with

        disabled accounts

    - MetricsReporter plugin:  added interactive tabular and

        graphical displays of collected metrics data

    - OAI-PMH Server plugin:  added support for specifying

        default values for fields

    - UrlChecker plugin: improved loading speed of results

        page when there are a large number of broken URLs

    - many minor and a few not-so-minor bug fixes


3.0.2   2014 Apr 16

    - added support for allowing HTML in forum posts

    - added support for WYSIWYG editing in forums posts

    - fixed installation bugs in Tags, Blog, MetricsRecorder,

        and CalendarEvents plugins

    - fixed bug where disabled fields would be displayed on

        MetadataFieldOrdering page if they were in a group

    - fixed bug where folder buttons would not reliably display

        when CleanURLs were used

    - tweaked URL Checker plugin to display the broken URL,

        rather than the primary URL field

    - changed feedback form to skip validation when Cancel

        button is pushed

    - fixed a race condition that only allowed one temporary

        resource to be edited at a time

    - fixed a bug with caching of resource counts that would

        always grey out the very first menu entry on the

        AdvancedSearch page


3.0.1   2014 Feb 10

    - added setting of default database storage engine during


    - added ability to change login prompt text

    - updated login to more reliably return users to the page

        they were browsing prior to logging in

    - fixed a bug that prevented an Advanced Search from

        working on Reference fields

    - updated faceted search to properly display tree fields

        where no top-level values are assigned to resources

    - added several modifications and additions to

        significantly decrease page load times

    - improved task crash info display

    - added option to log slow page loads

    - GoogleMaps: revised so that when two map markers have

        the exact same geographical locations, one of them

        will be shifted slightly so that both will be visible

    - AutoScreenshots: fixed a bug preventing plugin from

        working with multiple image support

    - several significant performance optimizations

    - some other minor bug fixes


3.0.0   2013 Nov 26

    - added support for faceted searching

    - added support for custom user information fields

    - added support for multiple uploads to Image fields

    - added support for incremental keyword searching

    - added support for e-mail notification subscriptions to

        blog entries

    - updated the URL checker task queuing mechanism to be far

        more efficient and capable of checking more URLs per day

    - reorganized plugin file structure

    - revamped default schema, qualifiers, and sample resources

        to load from XML file

    - removed vestigial NetPBM image support

    - moved most remaining CWIS 1.x backward-compatibility

        measures to BackwardCompatibility plugin

    - further expanded developer documentation

    - many minor and a few not-so-minor bug fixes


2.9.0   2013 Sep 30

    - alpha release (pre-3.0)

    - added new conditional privilege system for metadata

        schemas and fields

    - added internal support for multiple metadata schemas

    - added incremental keyword search (disabled by default)

    - added the ability to use Mailer (plugin) templates for

        saved search mailings

    - added Periodic Events list to Task Queue page

    - completely revamped user help

    - CleanURLs plugin added (provides SEO-friendly clean URLs

        for resource browsing and full record pages)

    - CalendarEvents plugin added (provides configurable

        full-featured events calendar)

    - Blog plugin added (provides blog support)

    - MobileUISwitcher plugin added (provides the ability to

        automatically switch to a particular user interface if

        a mobile device is detected)

    - SocialMedia plugin added (provides social-media-friendly

        data in resource full record pages to make them

        more easily shareable via social media)

    - UserCreator plugin added (provides the ability to create

        new user accounts on the fly when editing resource


    - moved all customizations and dynamic file storage under

        "local" tree

    - many CWIS 1.x compatibility measures moved into

        BackwardCompatibility plugin (and some dropped)

    - added support for using minimized JavaScript

    - updated CKEditor

    - significantly expanded developer documentation

    - many minor and a few not-so-minor bug fixes


2.4.1   2013 Jun 10

    - fixed searching for controlled names shorter than the

        SQL full-text minimum word length

    - HTML is now allowed in announcements on the home page

    - many fixes focusing on e-mail, including character

        encodings, line endings, and plain text alternatives

    - more robust database upgrades

    - many other bug fixes


2.4.0   2012 Nov 20

    - revamped the metadata field ordering functionality

    - added the ability to group metadata fields primarily to

        show/hide many at a time

    - updated the metadata field editor interface

    - added "Requeue All" option for orphaned tasks in

        task queue

    - added "Recently Added Records" display to Metadata

        Tool home page

    - added server load average display to Administration page

    - added support for using SMTP for email delivery

    - added Pages plugin (add and edit non-resource pages with

        a WYSIWYG interface)

    - added Developer plugin (displays additional info useful

        for development and debugging)

    - added Backward Compatibility plugin (encapsulates

        some of the CWIS 1.x backward compatibility code)

    - Folders plugin: Added the ability to add search results

        to the currently selected folder

    - GoogleMaps plugin: improved KML 2.2 schema compliance

    - MailMan plugin: one-click unsubscription mechnaism

    - DrupalSync plugin: added automatic propagation from

        CWIS to Drupal for CWIS accounts that predate

        CWIS/Drupal synchronization

    - AutoScreenshot plugin: improved error handling and

        added support for wkhtmltoimage-amd64 for 64 bit


2.3.1   2012 Jun 7

    - limited release

    - introduced completely revamped Metadata Field Editor

        main page interface

    - added Folders plugin

    - added email test functionality to Mailer plugin

    - modified various internal URL-generation functions to

        work correctly on completely HTTPS-based installations

    - added hooks for modifying resource editing privileges

    - added hooks for modifying authoring/editing/viewing

        privileges on a per-field basis

    - added installation log

    - added distribution integrity check during installation

    - added option to pause background task execution


2.3.0   2012 Feb 28

    - added AutoScreenshot plugin for automatic screenshot


    - added caching for statistics displayed on the Metadata

        Tool home page

    - added Instructions support for metadata fields

    - added multiple defaults for option lists

    - incorporated a WYSIWYG editor

    - added revamped user list interface with sorting and

        searching capabilities

    - added UI file location caching to reduce server load

    - added Metrics Reporter stats to full record page

    - many minor and a few not-so-minor bug fixes


2.2.4   2012 Jan 11

    - limited release

    - added support for specifying User field settings as

        metadata field access privileges

    - added support for editing User fields

    - added support for setting specific privilege sets that

        limit the legal values for a User field

    - added internal tracking of metadata field modification

        times on a per-resource basis

    - added Mailer plugin for creating and sending generalized

        email notifications

    - added Rules plugin for setting up metadata change

        conditions that will trigger email notifications


2.2.3   2012 Jan 5

    - added Tags plugin for Flickr-style tagging

    - refactored search result page internal structure

    - many minor and a few not-so-minor bug fixes


2.2.2   2011 Oct 21

    - added support for CAPTCHA during new user signup

    - added support for remapping controlled name fields

    - added Author Autofill plugin for automatically copying

        author information into specified metadata fields

    - added User Account Pruner plugin for automatically

        pruning unactivated and unused user accounts

    - added Field Redacter plugin for redacting values of

        specific metadata fields for anonymous users

    - added preliminary version of Metrics Reporter plugin

    - added support for plugin configuration instructions

    - a few minor bug fixes


2.2.1   2011 Sep 7

    - Image fields can now be configured to require a user

        privilege to preview

    - images (including preview and thumbnail versions) are

        now resized when the dimensions for the associated

        Image field change

    - Tree fields can now be configured to require a user

        privilege to browse with them

    - whether metadata fields show up as options for sorting

        search results is now configurable

    - the default sort option for search results is now


    - privilege set assigned to new users can now be configured

    - display of qualifiers on the full record page is now

        configurable on a per-field basis

    - user interfaces can now include a REQUIRES file that

        lists which CSS files they require loaded

    - OAIPMHServer plugin:  an XSLT file can now be uploaded

        to be applied to the OAI-PMH XML before it is output

    - OAIPMHServer plugin:  OAI elements can now be mapped

        to be filled in with the full record page URL

    - OAIPMHServer plugin:  can now auto-generate XSD for

        custom formats

    - added compatibility updates for MySQL 5.5 (MaxValue

        is now escaped to avoid conflict with new keyword

        and default storage engine is now forced to MyISAM

        for new installations)

    - many minor and a a few not-so-minor bug fixes


2.2.0   2011 Jun 23

    - complete revamp of CSS usage in all included UIs

    - added MyForumPosts plugin for displaying user's recent

        forum posts or resource comments

    - added DBCleanUp plugin to clean up stray database

        entries resluting from debugging or development

    - added Mailman plugin to provide functionality to

        implement Mailman mailing list subscription management

    - added AddThis plugin to provide interface to AddThis

        sharing service

    - added OpenIdServer plugin to provide support for using

        CWIS as an OpenID server

    - added NavEditor plugin to provide web interface for

        modifying main and secondary site navigation options

    - added BotDetector plugin to provide internal service

        for trying to determine whether or not user is a bot

    - added MyResourceViews plugin for displaying list of

        resources user has recently viewed

    - added option to specify whether HTML is allowed in

        text or paragraph metadata fields

    - added support for stemming of search terms

    - added default search synonym list for new installations

    - added non-UTF8 handling of incoming and exported RSS

    - forms revamped to improve accessibility

    - HTML5 input elements added to improve performance with

        mobile user agents

    - many minor and a a few not-so-minor bug fixes


2.1.2   2011 Mar 8

    - added usage display to Option List editing page

    - added CAPTCHA to feedback page

    - many minor and a couple of not-so-minor bug fixes


2.1.1   2010 Dec 22

    - revamped full record page layout in default UI

    - added support for mixed file/link resource collections

    - expanded developer documentation

    - added CAPTCHA and OpenId plugins to default

        distribution package

    - several minor bug fixes


2.1.0   2010 Oct 20

    - added Google Maps plugin

    - added phpBB login synchronization plugin

    - added OpenID single-sign-on plugin

    - replaced internal OAI-PMH server support with plugin

        that supports user configurable metadata formats

    - added CAPTCHA plugin to protect against spambots

    - enhanced URL checker plugin

    - added background rebuilding of search and recommender


    - added support for secure logins

    - added "Recent User Logins" display

    - added "Recently Modified Records" display

    - added options to jump to beginning/end and in 20%

        increments to search results interface

    - added toggle for search result ordering

    - added confirmation of user email address changes

    - made search result settings and Advanced Search

        field selections persistent

    - added "Auto-Submitted" and "Precedence" lines to

        default saved search email template to reduce

        responses from vacation programs

    - added many new event hooks (for plugins or other


    - fixes for compatibility with PHP 5.3

    - several minor and a few major bug fixes

2.0.4   2010 Mar 10

    - several minor and one major bug fix


2.0.3   2010 Feb 26

    - removed "Optional" setting for Flag fields

    - added USGS Thesaurus vocabulary

    - added toggle for Advanced Search limit display default

    - added auto-reload of Task Queue page

    - several minor and a few major bug fixes


2.0.2   2010 Jan 5

    - fixed three minor but significant bugs


2.0.1   2009 Dec 31

    - added login and logout return address events

    - added initial interface implementation doc

    - several minor and a few major bug fixes


2.0.0   2009 Dec 18

    - production release

    - Drupal Synchronization plugin added

    - URL Checker plugin added

    - Latitude/Longitude Points plugin

    - many minor and a few major bug fixes


1.9.3   2009 Nov 9

    - beta release

    - added many new hookable events

    - added comment spam cleanup option

    - PHP strict conformance cleanup

    - many minor and several major bug fixes


1.9.2   2009 Sep 30

    - alpha release

    - added "Point" base metadata field type

    - improved plugin error checking

    - enhanced plugin subsystem

    - added task queue display

    - further expanded developer documentation

    - some minor bug fixes


1.9.1   2009 Sep 18

    - alpha release

    - added event subsystem

    - added plugin subsystem

    - added "URL" base metadata field type

    - expanded developer documentation

    - many minor and several major bug fixes


1.9.0   2009 Aug 17

    - alpha release

    - moved to Scout application framework

    - refactored internal structure

    - converted all themes to interfaces

    - added "" full record shortURL

    - added "" browse shortURL

    - added "" search shortURL

    - added online class documentation

    - added search result sorting

    - many minor bug fixes


1.5.2   2009 May 29 21:00 GMT  (CWIS-only release)

    - bug fixes (many security-related)


1.5.1   2009 Jan 23 17:00 GMT  (CWIS-only release)

    - 100% web-based installation and upgrade

    - many minor and a few not-so-minor bug fixes


1.5.0   2008 Mar 31 22:00 GMT  (CWIS-only release)

    - new XML-based controlled vocabulary import support

    - new OAI harvest log display

    - new "Refine Search" option on search results page

    - new Search Log display

    - new Failed Search Log display

    - 100% web-based installation (beta)

    - many minor and a few not-so-minor bug fixes


1.4.2   2007 Nov 1 22:30 GMT  (CWIS-only release)

    - beta release

    - added support for per-field permissions

    - added new resource editor

    - added new Collection Administrator user role

    - sepearated Admin interface into Collection/User/System

    - added event logging

    - added custom privilege flags

    - revamped Advanced Search interface to reduce complexity

    - added simple resource suggestion interface

    - added "Recent Searches" box

    - added resource record problem reporting

    - IMPORTANT: minimum MySQL version is now 4.1


1.4.1   2007 May 30 23:30 GMT  (CWIS-only release)

    - beta release

    - PHP 5 and MySQL 5 compatible

    - added support for synonyms in search

    - converted to use superglobals (PHP 4.1.0 or later now


    - completely revamped new account signup and "forgotten

        password" mechanisms

    - added anti-spam protection to feedback form

    - greatly sped up advanced searches that have limits

    - added new "File" base metadata field type

    - added new AJAX-style quicksearch in Metadata Tool for

        Tree fields with more than 250 values

    - incorporated all outstanding security patches

    - various minor bug fixes


1.4.0   2006 Jan 25 20:00 GMT

    - completely overhauled search top-level infrastructure

    - introduced new "include/SPT--Local.php" file that can

        be used to define specific user-coded functions (see


    - all searches are now linkable and bookmarkable

    - added support for defining saved search e-mail header

        values (see SPT--SearchMailTemplate--Body.txt)

    - field lists in Advanced Search are now alphabetical

    - revised fielded searching mechanism (OSMASE) to reduce

        memory usage

    - new "My Searches" box now available (CWIS UI only)

    - added site keyword configuration (for Google and

        other search engines to pick up when spidering)

    - updated OAI-SQ support to match full protocol extension

    - added accessibility metadata fields to default CWIS

        schema and Access Match feature to hilight resources

        where those fields match Accessibility preferences

        as determined for user via mini-wizard

    - added capability to add parameters to filter records

        available for OAI (see SPT--Local--EXAMPLE.php)

    - added RSS feed importing and display capabilities

        (CWIS UI only)

    - added PHP configuration display option

    - user is now returned to current page when logging in

        if appropriate

    - added RSS feed indicator for RSS-aware browsers

    - "Test OAI" link updated

    - various minor bug fixes


1.3.1   2004 Oct 27 16:00 GMT

    - added accessibility "mini-wizard" as partial support

        for ACCLIP

    - added support for OAI-SQ (OAI search query extension)

    - added ability to page through user list

    - added support for removing user forum posting access

        from within forums

    - added ability to delete Tree field values that have

        child values or have resources assigned to them

    - added support for searching controlled name variants

    - expanded number of date entry formats supported

    - various minor bug fixes

1.3.0   2004 Aug 6 20:00 GMT

    - beta release

    - synchronized SPT and CWIS version numbers

    - added support for OAI sets

    - added ability to export Tree, Controlled Name, and

        Option fields via the Metadata Field Editor

    - replaced integrated search engine with OSMASE version

        of engine (adds improved internal query support)

    - increased field size for adding/editing classifications

        to 120 characters

    - importing of data will now translate \t and \n (tab

        and newline) to literal values

    - added support for customizable templates for saved

        search e-mails

    - added an optional unique field for data import

    - replaced most application-level SQL direct queries with

        calls to object methods

    - fixed more E_NOTICE warning messages

    - fixed bug that generated htmlspecialchars() error

    - various minor bug fixes


1.2.3 / 1.1.1   2004 Apr 28 18:00 GMT

    - added new "Personal Resource Administrator" user

      privilege flag that only allows entering new resources

      and editing resources you have entered

    - new interface for assigning controlled names and

      classifications if the there are less than 250

    - "Records Per Page" on Advanced Search now remembers

      the value you entered

    - improved handling of diacritics (Unicode)

    - eliminated obsolete ClassificationTypes and

      ControlledNameTypes tables

    - importing users now supports user privileges

    - added new DateOfRecordRelease field

    - fixed bug where multi-word controlled name or

      classification fields didn't work

    - fixed many E_NOTICE warning messages

    - various minor bug fixes


1.2.2 / 1.1.0   2004 Feb 11 20:30 GMT

    - added support for multiple tree (classification) fields

    - added ability to populate tree fields with prepackaged

        GEM subject taxonomy

    - added support for unicode UTF-8 character coding

    - improved import and export utilities

    - revamped saved search (user agent) feature

    - fixed import user bug which created empty user accounts

    - various minor bug fixes


1.2.1 / 1.0.1   2003 Nov 26 18:30 GMT

    - revised resource summary display (in SPT--Common.php)

        to reduce system load

    - various minor bug fixes


1.2.0 / 1.0.0   2003 Nov 14 20:00 GMT

    - added RSS and OAI links and test buttons to admin page

    - added registration capability on admin menu

    - purge sample records now also purges controlled names

    - can now specify administrator's email during install

    - user account management has been improved

    - metadata tool page now reports accurate number of

          controlled names

    - various minor bug fixes


1.1.8 / 0.9.4   2003 Oct 30 20:00 GMT  (CWIS-only release)

    - added "newinterface" script to create new UI to use as

          starting point for customization

    - added instructions for creating and customizing a new UI

    - added low vision / CSS user interface

    - added ability to search for user accounts

    - added ability to delete users

    - added permission flags to control whether a user can

          post resource comments or post to forums

    - various minor bug fixes


1.1.7 / 0.9.3   2003 Sep 26 18:00 GMT

    - fixed upgrade-related bug that could initially leave

      users with non-functional UI setting

    - CWIS-only release


1.1.6 / 0.9.2   2003 Sep 23 20:30 GMT  (CWIS-only release)

    - first beta release of CWIS

    - revamped OAI configuration interface

    - added user interface themes  [CWIS only]

    - added capability to specify display and editing order

          of metadata fields

    - added specification of administrator login and password

          during installation

    - revamped default metadata schema to include all fields

          supported under nsdl_dc  [CWIS only]

    - added initialization of OAI configuration to plausible

          values during installation

    - fixed various minor bugs


1.1.5 / 0.9.1   2003 Sep 16 02:30 GMT  (CWIS-only release)

    - added support for OAI harvesting of nsdl_dc format

    - updated help

    - revised OAI field mapping mechanisms

    - added support for OAI harvesting of qualified metadata

    - tweaked sample data to demonstrate greater variety

    - revised default schema to contain all fields supported

          by nsdl_dc harvesting format

    - added notes clarifying DC encoding scheme usage

    - added specific support for allowing and displaying

          non-destructive HTML tags within text and paragraph

          field data and user comments

    - added support for administrator editing of About content

    - fixed various minor bugs


1.1.4 / 0.9.0   2003 Sep 4 00:30 GMT  (CWIS-only release)

    - first (alpha) release of CWIS

    - added support for qualifiers

    - added additional stats to MT home page  [CWIS only]

    - revised (internal) image storage format

    - revised (internal) Metadata Tool infrastructure

    - added option to disable announcements

    - fixed various minor bugs


1.1.3   2003 May 23 14:30 GMT  (SPT-only release)

    - fixed bug that prevented dates containing full month

          names from being parsed correctly

    - fixed bug that could cause server log error messages

          when controlled name field had no names entered

    - fixed bug that could cause searches to fail where a

          possessive word form is followed by a word that

          begins with an upper case letter

    - fixed bug where editing or searching for a controlled

          name that contained special characters (quotes, etc)

          could cause an SQL error

    - fixed bug that could cause the word "Array" to appear at

          the top of the Edit Resource or Preferences pages

    - fixed bug that could cause Next Results to not display

          the correct resources in the Edit Resource search

    - fixed bug that could cause Previous Results in search

          to give you the same page of results

    - Date Issued is no longer a Required by SPT field

    - fixed bug that could prevent flag fields whose default

          was True from being disabled

    - option lists in Add/Edit Resource are now sorted


    - changed "Image" metadata field type to "StillImage" to

          comply with DCMI

    - fixed bug that could cause searches for Added By and

          Last Modified By to not work correctly

    - Added By and Last Modified By now appear in the full

          record display if the user has RESOURCE_ADMIN privs

    - added System Configuration flags for disabling updating

          of the search and recommender databases to speed up

          adds, updates, and deletes of resources

    - added check in Metadata Field Editor to prevent adding

          two fields with the same name, which could create a

          database inconsistency

    - added full support for searching Date and TimeStamp

          fields (may enter date ranges and dates in various


    - revised Help layout and content

1.1.2   2003 Mar 13 22:00 GMT  (SPT-only release)

    - code cleanup to better support register_globals = OFF

    - fixed bug where full page display only displayed one


    - fixed bug where sql errors occurred in RedHat 8 when

          assigned controlled names

    - fixed bug where option fields were not being displayed

          in full record

    - the title on full record display is now hyperlinked to

          the url

    - fixed bug where classification label was being displayed

          on full record display even if no classification


    - fixed bug where purged records would display as empty

          records if searched for

    - fix bug where import would fail if the import file

          contained more than 500 lines

    - changed Add New Record to display default values for

          all fields prior to adding record

    - fixed bug where selected option values were not being

          displayed on full record display

    - fixed bug that could cause image thumbnails to not be

          displayed under certain circumstances

    - fixed bug that could cause phrase searching to fail when

          image fields are included in searchable field list


1.1.1   2003 Feb 27 22:30 GMT  (SPT-only release)

    - made Url metadata field no longer required by SPT

    - fixed various bugs related to interface customization

    - added legal notice in system configuration

    - dates with format MM/DD/YY are now supported

    - fixed full record links on Recommendation Sources screen

    - Date Issued, Url, and Description are no longer required

          on import

    - help is now displayed more consistently

    - fixed bug where Image title was always Image Url in RSS

    - fixed bug where disabled controlled names where

          still displayed in the full record

    - fixed bug where export would not export records that

          did not have an assigned controlled name or


    - simplified and improved data export and import

    - added ability to export all resource records

    - improved logo file upload error handling

    - improved image upload error handling


1.1.0   2003 Feb 11 20:30 GMT  (SPT-only release)

    - reworked many parts to run better under PHP safe_mode

    - added image field type and the ability to upload images

            to a resource record

    - added support for customization of colors and logo in

            default user interface (now called "SPT Blue")

    - revised recommender system DB rebuild to reduce memory

            usage for larger collections

    - fixed bug that caused recommender system manual DB

            rebuild to fail on some systems

    - fixed bug which caused an SQL error when assigning a

            classification using Linux 8.x

    - added ability to browse and upload an import file

    - added the number of resources associated with a

            classification on the Assign Classifications page

    - when clicking on the name of a person posting to a

            forum, SPT now launches an e-mail compose page

            with the subject line filled in from the message

    - fixed various display bugs in the Clean Orange interface

    - fixed bug where previous "edited by" comment and forum

            messages where editable

    - added distinct Release Flag privilege

    - added distinct Edit User Account privilege

    - fixed various bugs associated with Apache safe-mode

    - changed Date Issued to no longer be a required field

    - fixed bug where invalid Date Issued values were not

            handled correctly

    - fixed bug where the moderator was not being set

            correctly when adding a new forum

    - fixed bug where user searches were not being save


    - fixed bug where user agents would not always run

    - fixed bug where exported files were not always getting


    - import and export files are now created in a local

            /TempStorage directory instead of /tmp

    - changed option list default values to be used for

            adding new resources instead of advanced search

    - changed User Agent handling on the preferencs screen

            to suppress the Save User Agents button when

            no saved searches existed

    - only one header bar is now displayed in forums when

            there are no messages associated with a topic


1.0.2   2003 Jan  3 21:30 GMT  (SPT-only release)

    - fixed bug where assigned classifications would replicate

            prior to adding the record

    - fixed bug where assigning a classification that already

            exited would cause a syntax error

    - fixed bug where rebuilding the search DB would cause an

            infinite loop

    - added ability to page through old (older than 30 days)

            news items

    - fixed bug where new controlled name types were getting

            added with the wrong ControlledNameTypeId

    - added ability to search by Last Modified By in the

            metadata tool

    - fixed bug where you could get to preferences via help

            if not logged in

    - fixed bug that prevented SQL commands from being run in

            certain situations during an upgrade installation

    - revised home page generation to allow HTML tags in

            announcement headings and text

    - fixed various issues with RSS export to comply with RSS

            2.0 standard


1.0.1   2002 Nov 20 20:00 GMT  (SPT-only release)

    - reduced install execution time to help avoid exceeding

            default 30-second limit imposed by PHP

    - added work-around for PHP config value register_globals

            being set to OFF

    - fixed bug with resumption tokens in OAI 2.0 support

    - added additional exception checking to OAI 2.0 support

    - fixed bug with permission checking in Metadata Tool


1.0.0   2002 Nov 15 19:00 GMT  (SPT-only release)

    - added resource comments

    - added support for OAI 2.0 harvesting (export)

    - added support for filtering searches based on their

            cumulative user rating

    - fixed bug that could prevent Advanced Search from

            working on imported data

    - added ability to import user accounts

    - added e-mail links to resource editors in Metadata Tool

    - added dynamically-generated metadata field help in

            Metadata Tool based on local field definitions

    - fixed various minor bugs


0.9.7   2002 Oct 17 20:30 GMT  (SPT-only release)

    - added metadata field editor, which allows all types of

            fields to be added, deleted, or disabled,and

            gives control over field labels, search weighting,

            and much more

    - revised many of the system internals to accomodate the

            greatly increased flexibility introduced by the

            metadata field editor

    - added system configuration parameter to set the maximum

            number of "News & Announcements" entries to be

            displayed on the front page

    - install now creates installation directory if it doesn't

            already exist

    - revised User Agent e-mail message format to include the

            portal name (as defined in System Configuration)

    - added option for resource administrators to have a User

            Agent check for new resources every hour

    - added option to e-mail password to user if forgotten

    - improved date entry, so most common date formats can be


    - fixed various minor bugs

0.9.6   2002 Jul 26 02:00 GMT  (SPT-only release)

    - added import of sample resource data during installation

    - an option is provided to purge sample resource data and

            classifications from the database

    - a bug with resource record ID assignment was fixed

    - an initial message must be posted as part of adding a

            new forum topic

    - a bug that made the Forum and Topic title bars invisible

            has been fixed

    - an option for exporting resource data in a tab-delimited

            format is now provided

    - searching for controlled names and clasifications in the

            Metadata Tool has been made more consistent with

            resource searching

    - fixed various minor bugs


0.9.5   2002 Jun 26 22:00 GMT  (SPT-only release)

    - added Forums (bulletin boards)

    - added Recommendations (content-based recommender system)

            including a "Why was this resource recommended to

            me?" feature

    - added display of resource ratings on front page, while

            browsing, and in search results

    - revised classification and controlled name handling in

            Metadata Tool

    - added option to set default release flag status

    - fixed various minor bugs


0.9.4   2002 May 21 20:30 GMT  (SPT-only release)

    - added resource rating

    - added ability for user to save Advanced Search settings

    - added "user agents" to run preset searches at specified

            time and mail results to user (allows users to be

            automatically notified of new resources)

    - added RSS 0.9.2 export (allows other sites to display

            new headlines (resource titles) from your site)

    - revised Advanced Search to support result ranking by


    - added support for Google-style "and" searching (all

            terms required in all search results)

    - added option for administrator to specify default

            search term handling ("and" or "or")

    - expanded online help


0.9.3   2002 Apr  5 20:30 GMT  (SPT-only release)

    - added support for prepending words with "-" to exclude

            them from a search

    - added capability to add and remove controlled name types

    - added support for allowing users to select between

            different portal user interfaces at will

    - added "Clean Orange" second user interface for portal


0.9.2   2002 Mar  6 20:30 GMT  (SPT-only release)

    - revised and expanded metadata fields to bring default

            configuration into compliance with Dublin Core

    - further separated HTML and PHP to support customization

            of interface

    - added hooks to support site-specific selection of

            announcements and resources on home page

    - revised keyword search to support relevance ranking of


    - made keyword search result pages bookmark-able (search

            encoded in URL)

    - added page generation time to bottom of pages displayed

            when logged in with an account with System Admin


    - added search time to keyword search results

    - added hooks to support site-specific filtering of search


    - added "active user interface" support, that allows

            switching between multiple user interfaces within

            a single SPT installation on-the-fly


0.9.1   2002 Feb  7 20:15 GMT  (SPT-only release)

    - added support for upgrade installation

    - changed destination directory for installation to

            directory specified by installer, instead of

            directory specified by installer plus "/SPT/"

    - added new browsing interface with dynamically-generated

        navigation links that adapt to broad or deep

        classification schemes

    - added check to block access to web install interface

        after installation is complete

    - added capability to delete classifications

    - added SPT Revision History display option

    - added check to prevent a system administrator from

        accidentally revoking their own sys admin privileges

    - announcements can now be deleted

    - a release flag has been added to resource records to

        indicate whether they are approved for viewing or not

    - when browsing resources, the title is now linked to

        the site URL rather than the full resource record,

        and a Full Record link follows the description

    - adding controlled names in the metadata tool has been


    - searching for words of three letters or less is now


    - a bug has been fixed that could, under some conditions,

        force the re-entry of data when adding a new resource

        record and assigning controlled names or

        classifications to that record

    - the workflow when deleting a duplicated record has been


    - searching and sorting resources by the resource creator

        is now supported

    - added support for specifying portal name

    - added capability to configure number of classifications

        per page in resource browsing interface

    - added support for specifying administrator email address

    - added HTML page titles to most user-visible pages

    - added support for editing text of e-mail message sent to

        new users containing their password

    - added user feedback submission screen


0.9.0   2001 Nov 27 19:40 GMT  (SPT-only release)

    - initial beta release of Scout Portal Toolkit