Jamroom System Core change log Version 7.0.1: - Change: Updated bundled Mobile Detect library to version 2.8.43 - Bug Fix: Values on datastore items created by event listeners could appear as "keys" in the Data Browser - Bug Fix: Fix for possible missing site CSS when switching to a new skin - Bug Fix: Graph values for some graphs may be shifted by one day after daylight savings time change - Bug Fix: Time selector in Date/Time fields can be off by one hour for some timezones - Bug Fix: "weight" field value over 1000 was being formatted 1,000 on modify forms then failing validation - Bug Fix: Image orientation flag may be skipped on image uploads in some versions of Chrome Version 7.0.0: - New: Updated Activity Log with new Full Text search index for faster searches - New: Updated Activity Log priority select for finer control over displayed log priorities - New: Updated Activity Log to support monthly archiving - New: "Language Strings" option in Reset Caches tool to reset just the language string cache - New: "Max Query Run Time" Global Config option to set max seconds an SQL query can run for - New: "View Change Log" link added when viewing module "Info" tab - New: Cache Reset tool has been updated with the ability to reset individual templates - New: Integrity Check tool has been updated with the ability to repair individual modules - New: Integrity Check tool has been updated with the ability to repair individual module tables - New: Added "Verify Database" option to Integrity Check to only validate module schema files - New: Added "Verify Languages" option to Integrity Check to only validate module language files - New: Added Activity Log message throttling for duplicate messages with 10 seconds (configurable) - New: "Search Area" support added for jrCore_page_search to allow specific search areas - Change: Jamroom minimum PHP version changed to PHP 7.2+ - Change: Jamroom recommended minimum MySQL version change to 5.7.0+ - Change: Updated internal date and time functions to be PHP 8.1+ compatible - Change: Updated bundled Smarty template library to version 4.2.1 - Change: Updated bundled HTMLPurifier library to version 4.14.0 - Change: Updated bundled TinyMCE Editor to version 5.10.5 - Change: Updated date picker to make the variable available in the global space - Change: webp file extension and image support added to known file types - Change: download and stream views no longer support Parameter Injection - Bug Fix: "Select Date" form field type could cause errors when interacting with Javascript - Bug Fix: "Select and Text" form field default values not saving correctly - Bug Fix: Pending Item approved email was not being sent due to invalid user_id - Bug Fix: Pending items that had been previously rejected could show in site listings Version 6.5.13: - New: Abilty to Pause and Resume individual queues has been added to the Queue Viewer - New: Ability to "delete all matching" from activity log to delete all matching a search - Change: Updated bundled Mobile Detect library to version 2.8.39 - Change: Email is no longer blocked if the email has an empty body content - Change: Checktype for phone numbers requires 7 digits apart from spaces - Change: Cache Reset tool now has individual reset options for Javascript and CSS - Bug Fix: Fixed a bug in jrCore_weight_format where decimals on pounds may not show - Bug Fix: jrCore_strip_url_params() fails to strip empty parameters - Bug Fix: CSS Custom Editor contents may not appear after saving changes Version 6.5.12: - Change: New "Database Info" browser/tool linked to the database version in System Check - Change: Updates and optimizations to better support PHP 8+ - Bug Fix: Search may break when searching for multiple forward slashes (/) - Bug Fix: Possible duplicated CSS classes in some form fields Version 6.5.11: - New: "clear" parameter for "daterange" field that adds a "clear" button to reset them - New: Advance Config Key to force stream counter increments for configured modules on each play - New: "included_css" and "included_javascript" events fired before creating site CSS and Javascript - Change: Failed database inserts into the cache tables no longer create debug log entry - Change: Activity log debug data is now limited to a max of 64k per log entry - Change: Form fields set for "email" validation will have white space around entries stripped - Change: Template function jrCore_upload_button now takes "token" as a parameter Version 6.5.10: - New: Time display relative option now supports future as well as past times - New: Core module Recycle Bin support functions added for non-DataStore tables - New: Delete button added to form uploads prior to form submission - Change: Updates to support changes in PHP 8 - Change: "multiple" file support with upload limit added to {jrCore_upload_button} template function - Change: Updated bundled Smarty template library to version 3.1.38 - Change: Updated bundled jQuery to version 3.6.0 - Change: allow the attribute 'autofocus' to be added to text type form fields - Change: Updated bundled Mobile Detect library to version 2.8.37 - Bug Fix: Possible SQL error in Activity log when using a search string with hidden characters - Bug Fix: "page_table_row.tpl" updated to work correctly with a single table cell on mobile devices - Bug Fix: Ordering of some lists could be incorrect if using an "in" list without a specified order_by - Bug Fix: Possible double "class" elements on some custom form fields - Bug Fix: File form fields that allow multiple uploads with a limit may not enforce the limit - Bug Fix: Smarty birthday format call not returning years before 1970 Version 6.5.9: - New: Added hourly maintenance function to cleanup expired Live Search result temp database entries - New: Form Designer updated with new "Group" column to show which groups fields are visible to - Bug Fix: More than $max_entries queue entries were being created under some circumstances - Bug Fix: "datetime" and "time" fields were not displaying correctly if given a "timezone" key - Bug Fix: jrCore_format_time() was not handling the "adjust" for timezone parameter correctly - Bug Fix: Drop down calendar chooser in form fields could show incorrect weekday order in header - Bug Fix: "Stuck" queue entries may not be cleaned up correctly when exceeding allowed work time - Bug Fix: Some BBCode code blocks may not be parsed correctly if they contain embedded "code" words Version 6.5.8: - Change: Updated delete profile to work in "chunks" for very large profiles when moving to recycle bin - Change: Updated bundled jQuery to version 3.5.1 - Bug Fix: Possible SQL error when searching items with a page value greater than the result set size - Bug Fix: jrCore_delete_local_cache_key() may not correctly delete the local APCu cache key - Bug Fix: "detected" site URL during install may be incorrect on sites installing in a sub directory - Bug Fix: Phone numbers in datastores may show as dates in the Data Browser when viewing Keys - Bug Fix: The form designer "Field Options" could show incorrect if the first character was a zero (0) - Bug Fix: Sleeping a queue entry more than 9 times would delete queue_id for "failing 10 times" Version 6.5.7: - New: "timezone" is now supported as a parameter on the "datetime" form field - Change: Live Search field value must be longer than 2 characters to initiate search - Change: Name of file to be downloaded added to "download_file" event - Bug Fix: User Data variables were not always being made available for use in email templates - Bug Fix: Live Search form fields could trigger search on empty value - Bug Fix: Exporting matched CSV entries from the Dashboard -> Data Browser may not include all entries Version 6.5.6: - New: "email_info" event trigger added that is fired with email info before sending - Change: Updated form validation functions to make them more flexible for module use - Change: Updated activity log history delete function to run every 10 minutes + be lighter on the system - Change: Updated Integrity Check form to indicate the options that are not normally required - Change: Updated debug popup to better display HTML email when logging sent email to Activity Log - Bug Fix: Updating a Form Designer field could show incorrect language strings for "sublabel" and "help" Version 6.5.5: - New: Ability to define an event listener as a "priority" listener that is called first - New: Support added for "form_validate = false" to jrCore_form_create() to bypass Core form validation - New: "section_header" element added to Form Designer to allow a section header to be added to a form - Bug Fix: "live_search" fields had double class attributes in the output HTML - Bug Fix: "Repair Module DB" queue was created even if "Repair Modules" was not checked in Integrity Check - Bug Fix: Ordering by "display order" could be incorrect for lists made on items outside the profile Version 6.5.4: - Bug Fix: The display order for profile items could be different for logged in versus logged out users - Bug Fix: Some audio/video titles may not appear correctly when using the Playlist audio player - Bug Fix: Audio files for sale may not stream OGG version of sample file correctly Version 6.5.3: - Change: Updated file meta data functions to handle multiple file uploads better - Change: Updated bundled TinyMCE Editor to version 5.3.1 - Bug Fix: Changing a module URL in the module "info" page could result in a 404 not found page - Bug Fix: Fixes to prevent some errors when upgrading old versions of the Jamroom Core - Bug Fix: Previous and Next arrows showing in Lightbox on mobile when there is only 1 image - Bug Fix: Fresh install in a domain subdirectory may not redirect to the install.php script correctly Version 6.5.2: - New: "optionlist" CSS class added to right side of optionlist in form display - New: Added support for "jrCore_same_site" advanced config key to control SameSite cookie value - Change: db_error.tpl and fatal_error.tpl updated to use SVG image instead of PNG - Change: Updated bundled HTMLPurifier library to version 4.12.0 - Change: Radio fields can now be selected by clicking on the associated text label - Bug Fix: Possible "recursive trigger error" for jrCore_exit when running in cluster - Bug Fix: Form errors displayed in scrollable modal form were not scrolling to the top of the form - Bug Fix: "Delete All" button in Queue Viewer to delete all entries in a queue was not working Version 6.5.1: - Change: Updated IP address detection to work correctly with Cloudflare - Change: Updated bundled TinyMCE Editor to version 5.2.2 - Bug Fix: Editor was not working correctly on some mobile devices - Bug Fix: Possible javascript jQuery error on sites running some very old (JR5) modules - Bug Fix: Audio players may not show the title of the audio file Version 6.5.0: - New: "Custom Editor" tab added to Skin Style section to allow for custom CSS to be added to skin - New: "db_delete_multiple_item" event added that is fired when deleting multiple module items - New: Much faster template handling if APC functions are enabled on server - New: Daily and Monthly Datastore item counts added as available panels in the Dashboard - New: "Restore Selected" and "Delete Selected" options added to Recycle Bin - New: "page_table_header", "page_table_row" and "page_table_footer" events fired in page tables - New: jrCore_page_icon_button() function for creating Material Design icon buttons in the ACP - New: Date selector added to Activity Log to view entries for specific date - New: "age_range" form field for selecting an age range - New: "age_range" CheckType plugin added to validate values entered in age_range fields - New: Support added for "svg_color" skin feature registration to set default SVG color - New: "Export CSV" changes to "Export Matching CSV" to export only matching datastore browser entries - New: "Fullscreen" Dashboard view suitable for placing on a large monitor - New: HTML email logged to Activity Log is viewable without HTML stripped in the Activity Log detail popup - New: Repeat functionality added to the 'date' form field - Change: "Log in to Stream" and "Log in to Download" global config options removed - handled by modules - Change: Updated to use new CSS3 animated spinner in Admin Control Panel instead of animated PNG - Change: Pending templates updated to include information about module and item - Change: TinyMCE editor is now loaded from a custom loader to help prevent caching on Chrome - Change: "Color and Font" and "Padding and Margin" tabs removed from the Skin Style section - Change: Searching for CSS in Style editor now returns all matching CSS selectors (not just tagged) - Change: When using the Color Picker in the Style editor you can now enter a hex color code directly - Change: Performance updates to MySQL cache sub system improves delete performance on busy systems - Change: "pending_data" column has been removed from the pending table - not used - Change: Cache maintenance function moved to Minute Maintenance event - Change: Updated bundled Mobile Detect library to version 2.8.34 - Change: Updated bundled TinyMCE Editor to version 5.2.0 - Change: Updated bundled Lightbox 2 plugin to version 2.11.0 - Change: jrCore_money_format() is deprecated and not available on PHP 7.4.0+ - Change: Removed core provided jQuery.browser - provided by jQuery Migrate - Change: 'hour_format' option added to datetime fields to allow formatting of time - Change: Removed support for the "module_icons" skin registered function - no longer used - Change: The way profile and user names are checked updated - Bug Fix: Some jrCore_list calls may not be cached correctly - Bug Fix: Canceling from a form after an error was encountered may not reset the form session - Bug Fix: Uploading multiple files may not appear in the order they were selected for upload - Bug Fix: Multiple deletes of pending items was not working - Bug Fix: Cookies set using jrSetCookie JS function may not be readable by jrCore_get_cookie in PHP - Bug Fix: Was possible to upload files with size greater than the configured limit - Bug Fix: image/webp mime type images were not being detected as valid image types Version 6.4.0: - New: "get_icon_html" event added that is fired to get icon HTML for interface icons - New: jrCore_db_paged_query() now accepts "simplepagebreak" as $c_query param - New: "ten_minute_maintenance" event fired every ten minutes on the first request in the minute - New: "is_false" checktype plugin returns TRUE if value is false, "false", 0 or "0" - New: Added "item_action_button.tpl" to control display of item action buttons - New: repair.php script updated to allow individual repair option selections - Change: Updated bundled TinyMCE Editor to version 5.0.14 - Change: The label text of the sub-value form element of select_and_text fields can now be custom - Change: Profile cache reset moved to end of view process to ensure reset before refresh - Change: Updated bundled jQuery to version 3.4.1 and included Migrate plugin version 1.4.1 - Change: Control Panel fail/pass images have been changed to use HTML instead of PNG images - Change: Previous/Next icon images updated with new icons - Change: Updated live_search field to (hopefully) prevent Chrome auto fill - Change: Broken link of maintenance mode message removed - Change: item create/update/delete template button function no longer supports "image" parameter - Change: "hidden" keys are now visible in the Data Browser when using "View Keys" - Bug Fix: Deleting Activity Log may not appear to delete entry without refresh - Bug Fix: Some long key names used for images by datastore items may not save correctly - Bug Fix: Some IP6 interfaces could cause the viewer's IP address to show incorrectly - Bug Fix: Control Panel tabs without an associated URL link may not be styled correctly - Bug Fix: Possible SQL Error when saving a new Form Designer field in some instances - Bug Fix: Setting default to FALSE for "datetime" and "time" fields was showing a selected time - Bug Fix: Core provided URL handler not working correctly in PHP 7.3+ - Bug Fix: _profile_id could be set to 0 (zero) on some jrCore_db_update_item calls - Bug Fix: Form Designer fields could be saved in incorrect order - Bug Fix: "Priority Only" showing DBG (debug) log entries in Activity Log - Bug Fix: Right clicking in the TinyMCE editor showing "link" menu instead of browser menu Version 6.3.0: - New: "Log In to Stream" and "Log In to Download" config options added to global config - New: Updated table support for mobile devices to allow easier viewing on small screens - New: "DS Item Count" key added to module info page to show number of items in module datastore - New: "caching_is_enabled" core event fired when checking if caching is enabled - New: db_error.tpl is shown when the system is unable to connect to the database - New: id tags can be set on the containing rows for page custom elements - New: Ability to select multiple Activity Logs for deletion - Change: Removed "Allowed Domains" global config setting - no longer used - Change: 'upload_attachments' template now handles option to not show the delete file icon - Change: Updated bundled TinyMCE Editor to version 4.9.3 - Change: colorpicker, fileuploader, lightbox and simplemodal Javascript moved to /contrib directory - Change: Added some user facing error messages to the core language strings - Change: "Log 404 Not Found" global config option moved to "Maintenance" tab - Change: Media play keys are handled using cookies since HTTP referrer field is no longer usable - Change: Updated bundled Smarty template library to version 3.1.33 - Bug Fix: File Upoad buttons on forms using the mobile WYSIWYG editor may not work correctly - Bug Fix: Deleting an item with comments that have attachments could leave orphaned files - Bug Fix: "Use Default" button in Global Config help drop down section may not set default correctly - Bug Fix: "datetime" field validation was not being enforced in some cases - Bug Fix: Uploads with parenthesis in file name may not upload correctly Version 6.2.0: - New: Improved sort performance when listing items using a Cluster Scaling Tools key index - New: "form_create" event trigger added that is fired when a new form session is created - New: Pagination has been added to the Restore Recycle Bin Item content listing - Change: "date" and "datetime" form fields now use the same calendar chooser as the "daterange" field - Change: Updated bundled TinyMCE Editor to version 4.9.2 - Change: Text change to advise admins when deleting a pending user the associated profile will not be deleted - Change: Logged email when using the "Log Sent Email to Activity Log" option are now stripped of HTML - Change: Updated bundled Mobile Detect library to version 2.8.33 - Bug Fix: Very large profiles with thousands of items may not appear in the Recycle Bin when deleted - Bug Fix: Some select options in the module Global Config may not show as pre-selected correctly - Bug Fix: Email addresses with consecutive periods in the local portion were being allowed - Bug Fix: Some queue entries may not be deleted correctly after failing 10 consecutive times - Bug Fix: Possible CORB error when streaming audio or video using Chrome - Bug Fix: Some downloaded item files may not get the correct file extension for the file type - Bug Fix: Cached results could be used in some instances when "no_cache" parameter is set - Bug Fix: Select fields using optgroups may not validate correctly in some instances - Bug Fix: Some [code] blocks with embedded [code] blocks could be rendered incorrectly Version 6.1.11: - New: "validate_location_url" event trigger added to check URL when performing CSRF URL check - New: "weight" form field added to Form Designer for accepting weight in Pounds and Kilograms - New: "daterange" form field added to Form Designer for ability to select date range - New: "time" form field added to Form Designer to allow for stand alone time chooser - New: "include_now" and "minute_size" field parameter support for datetime and time form field - Change: Download file name now includes the field name to distinguish items with multiple files - Bug Fix: Redirect URL after deleting an item may be incorrect when using a mapped domain - Bug Fix: Invalid module value could be used in {jrCore_item_detail_features} template function - Bug Fix: included missing "fatal_error.png" image file missing from version 6.1.10 - Bug Fix: date_birthday fields may be missing their value after a page refresh - Bug Fix: weight fields may be missing their value after a page refresh - Bug Fix: Some ACP search fields could double the search_string URL parameter Version 6.1.10: - New: Added "fatal_error.tpl" that is shown when the system encounters an unrecoverable error - New: Added support for %O ordinal suffix for use in jrCore_format_time - Change: Updated local cache functions to allow caching in Developer Mode - Change: "onchange" event now fires for both the calendar and time select in a "datetime" field - Change: "date" and "datetime" form fields now use only the drop down date picker to select the date - Bug Fix: @mentions not linking without at least 1 lowercase version of the mention in the text - Bug Fix: Opening bracket in a function may be placed incorrectly within a [code] block - Bug Fix: Admin javascript may not be included in page when doing a Marketplace update - Bug Fix: Possible "Truncated incorrect DOUBLE value" SQL error in Activity Log - Bug Fix: "Users" tab may not show in Pending Items dashboard depending on other pending items - Bug Fix: "default" value in some form fields may not be used correctly - Bug Fix: "Human Check" form field element may not respect form ordering in Form Designer - Bug Fix: Chained Select form field elements may not always display in correct select order - Bug Fix: Chained Select custom form fields may appear incorrectly in the Form Designer Version 6.1.9: - Change: Changes to form_field_elements.tpl + updates to make forms look better on mobile devices - Change: Updated bundled Smarty template library to version 3.1.32 - Change: Updated bundled Mobile Detect library to version 2.8.32 - Change: Updated bundled TinyMCE Editor to version 4.7.13 - Change: X-Frame-Options header will no longer be set if set previously by a module - Change: Removed older versions of jQuery that were no longer being used - Bug Fix: Form Designer fields set to specific quota IDs may not show to multi-profile users - Bug Fix: Time stamp could show in wrong location in Time selector for existing form dates Version 6.1.8: - New: Optional "skin_verify" and "skin_deactivate" include.php functions called when skin activates and deactivates - New: New queue events "validate_queue_info" and "validate_queue_data" added - Change: Added additional font-weights 100-900 for font-weight selector in skin Style editor - Change: Form Designer hidden field value can now be changed from the default value - Bug Fix: "placeholder" text was not showing correctly in custom Live Search fields - Bug Fix: Checktype for float could return FALSE on numbers with a very long fractional part - Bug Fix: Item List widget was not showing item "count" keys for use in searching or ordering - Bug Fix: font-weight and font-family rules may change incorrectly in skin Style editor - Bug Fix: "simplepagebreak" could show next-page link even if there were no more items - Bug Fix: "ignore_missing" jrCore_list param not returning all items if ordering on *_count key - Bug Fix: Chained Select custom form fields could be displayed in the wrong order - Bug Fix: Smileys in quoted text may not show depending on active string formatters in Quota - Bug Fix: Some {jrCore_list} calls that would group by _profile_id may not work correctly - Bug Fix: SweetAlert modal window could be off center on some mobile devices Version 6.1.7: - New: "is_local_url" Event triggered when checking if a URL is a local URL - New: 'range' form field added which displays the HTML5 input type - Change: Added gzip support to HTML responses for browsers that support it - Change: Cache functions updated to use a bit more memory for improved performance - Change: Additional queue info is recorded to the Activity Log when a queue worker is reset - Change: "printable" checktype function now allows emoji to pass through - Change: Improved checking of in-progress queue workers to ensure the process is still running - Bug Fix: Pager URLs when Jamroom is installed in a sub directory may not be created correctly - Bug Fix: Broken link in the View button of the Tools section of the ACP search results page - Bug Fix: Restoring a deleted item from the recycle bin may not restore correctly - Bug Fix: Modified template could be saved with a syntax error in the Template Editor - Bug Fix: New Form Designer field was not requiring the underscore after the module prefix Version 6.1.6: - New: Improved ability to repair and recover from template files corrupted by the file system - New: "module_activated" event trigger fired when a module is activated from the info tab - New: "module_deactivated" event trigger fired when a module is deactivated from the info tab - New: Ability to set "queue_sleep" option for jrCore_send_email to delay email delivery - New: 'placeholder' values get replaced by language value keys if one exists - Change: Upgraded bundled TinyMCE Editor to version 4.7.6 which includes mobile phone support - Change: Updated bundled PEAR and Tar libraries with code for compatibility with PHP 7.2+ - Bug Fix: Multiple _profile_id not_in search conditions for jrCore_db_search_items not working correctly - Bug Fix: SQL Query could hang if error received from MySQL server during connection - Bug Fix: Expired queue entries not being reset if posix functions not enabled in PHP install - Bug Fix: Search condition in Item List Widget may only show first word of multi word match - Bug Fix: {jrCore_item_list_buttons} size, class and color parameters not working on admin config button - Bug Fix: "Purge Activity Logs" set to "never" could still delete some activity logs - Bug Fix: Emptying Recycle Bin may not update Profile Disk Usage for all profiles affected - Bug Fix: Some profile_id specific jrCore_list calls could return empty for logged out users - Bug Fix: Form Designer editor fields set to "required" could be saved with empty content - Bug Fix: Modifying CSS in Style tab for module could override all CSS elements in module CSS file - Bug Fix: emoji in url could cause a blank white screen in some circumstances Version 6.1.5: - New: Added support for "IN" where clause in jrCore_db_run_key_function() - New: Added $cache_reset boolean parameter to update/delete multiple item functions - New: db_search_params listeners can set full_result_set key to be used as results - New: "db_search_results" event triggered with results from jrCore_db_search_items() - Change: "Set Item Order" button no longer shows if there are no items created - Change: Update to counter IP address checking to improve performance on large systems - Change: Update to jrCore_tinymce.css so text editor text area is not one line. - Change: Downloaded file name will now use title_url.extension if item has one - Bug Fix: Users unable to delete comment attachments if not on home profile - Bug Fix: db_search_count_query event did not include actual count of result set Version 6.1.4: - New: "Purge Activity Logs" global config setting to purge activity logs older than X days - New: "db_create_item_data" event listener to get data keys before item_id is created - New: Support added for "between" and "not_between" search operators for jrCore_list - Change: User and URL included in DB query logging to help identify location - Change: Hourly Maintenance only logs to Activity Log if it takes longer than 5 seconds to run - Bug Fix: Queue Latency could show highlighted even if queue was already being worked - Bug Fix: Using a language other than English could result in malformed characters being saved - Bug Fix: Minute maintenance queue may not run if queue data gets corrupted - Bug Fix: Possible "invalid button type" error when re-ordering bundle detail item action buttons - Bug Fix: Email delivery throttling may not work correctly for send_email_low_priority queue - Bug Fix: Progress bar and seeking were not working correctly in Chrome when streaming audio - Bug Fix: Date and DateTime calendar form field was not showing selected date when updating - Bug Fix: Item display order may not be set correctly when deleting profile items Version 6.1.3: - Change: Item List widgets now include ignore_missing parameter by default - Bug Fix: Calendar Date Picker may show invalid date error if not using English - Bug Fix: Quota Limit for items error may show to some users incorrectly - Bug Fix: jrCore_stats template function could return invalid counts for some modules - Bug Fix: jrCore_list order_by RAND with limit 1 would not return all item_id's equally - Bug Fix: System Check may show error for Language Support if not using English as system default Version 6.1.2: - New: Queue data is now optimized and validated by the hourly maintenance worker - Change: Added missing "per page" text in table pager to language file - Change: Admin JavaScript added to separate file to decrease main JS file size - Bug Fix: Save Changes not working from modify template interface - Bug Fix: Smarty functions provided by disabled modules could still be executed - Bug Fix: Audio/Video may not stream on some versions of IE/Edge due to bad headers from browser Version 6.1.1: - New: Advanced Config Keys tool for creating/updating options in the data/config/config.php file - Bug Fix: Tools and Config buttons would return a 404 page in ACP search if module is disabled - Bug Fix: Invalid permissions on data/cache directory could cause a parse template error loop - Bug Fix: MySQL version 5.1.x was showing as supported in the System Check when it is not supported - Bug Fix: "Reset" Button when viewing a modified module or skin template was not working - Bug Fix: Possible order_by error in activity log if ordering by _profile_id in jrCore_list Version 6.1.0: - Change: Updated bundled TinyMCE WYSIWYG Editor to version 4.6.5 - Change: upload_button.tpl added ability to limit uploads via the Profile Daily Limits module - Change: Updated way site is tested for SSL to make it more reliable - Bug Fix: Ordered and unordered lists could have unwanted line breaks before and/or after list - Bug Fix: Cached Javascript not being reset for alternate skins used in Profile Tweaks - Bug Fix: Pending Items delete confirmation was not working correctly Version 6.1.0b6: - Change: Quota Max Upload limit is no longer applied to admin users working on a profile - Change: Datastore query optimizations for jrCore_list calls with mixed quota settings - Bug Fix: Item List Site Builder widget search conditions may show incorrect modifier on edit - Bug Fix: "fdebug" jrCore_db_search_items parameter not working when added to a jrCore_list call Version 6.1.0b5: - Change: Updated bundled TinyMCE WYSIWYG Editor to version 4.6.4 - Change: Updated add to activity log SQL query to make it more efficient - Bug Fix: Custom video player templates using "video_file_mobile" field would not stream - Bug Fix: Full Page cache key updated to differentiate between mobile, tablet and desktop Version 6.1.0b4: - New: Text strings in date picker have been added to the System Core "language" tab - Bug Fix: Upgrading from Jamroom Core 5.2.x or older could hang when running an integrity check - Bug Fix: Some URLs with unicode characters may not show the entire URL as "clickable" - Bug Fix: Using "ignore_missing" jrCore_list parameter could include incorrect items in list Version 6.1.0b3: - Change: Form Designer fields must now be lowercase only - Bug Fix: Full Page caching was not working correctly for some logged out browsers - Bug Fix: Dates with month or day names may not render correctly in some languages - Bug Fix: New modal alert dialog box was causing long pages to scroll to the top - Bug Fix: Profile item counts could be incorrect after deleting audio and video albums Version 6.1.0b2: - New: Images for items with attached images are now shown in the Recycle Bin - New: Detect corrupted templates and automatically rebuild them at display time if needed - New: Admin users can create profile items even if profile has reached the quota limit - New: Updated support for template buttons to include "bundled" items such as albums, galleries, etc. - Change: jrCore_strip_html now strips embed tags when used as a variable modifier - Bug Fix: Bullet and Unordered list buttons may not show in WYSIWYG editor even if allowed in HTML tags - Bug Fix: "Search" in Language tab would revert to en-US if different language selected before search - Bug Fix: Some non-admin Javascript could be excluded from the main site Javascript file Version 6.1.0b1: - New: Template Compare updated to make it easier to spot differences between custom and default templates - New: "Compare" button not clickable if no differences found between the compared templates (in new clones) - New: Admin specific JavaScript is now loaded only for admins from a separate "admin" Javascript file - New: Custom confirm prompt has replaced the default Javascript confirm prompt - New: "Full Page Caching" support added for logged out users (enable in Global Config) - New: "upload_prepare" and "upload_saved" event triggers for custom file upload checks - New: "X-Frame-Options" header is now sent on requests to enhance site security - Change: Icon Sprites are now served from the active skin cache directory instead of media directory "0" - Change: Updated bundled TinyMCE WYSIWYG Editor to version 4.5.6 - Change: Updated bundled Mobile Detect library to version 2.8.25 - Change: Updated bundled Lightbox2 JavaScript library to version 2.9.0 - Change: Updated bundled Smarty template library to version 3.1.31 - Bug Fix: "required" message showing instead of "recommended" for some modules in the Info tab Version 6.0.7: - New: Support for "hidden" form field type in Form Designer - Change: footer removed from Installer as it could cover up form fields on small screens - Change: Forms missing "submit_value" key will now show default "save" for form submit button - Bug Fix: Rare chance an item could be updated with a profile_id set to 0 - Bug Fix: Some templates with embedded Javascript may not work correctly coming from cache Version 6.0.6: - Change: debug() updated to accept variable parameters the same as fdebug() - Change: database table type is now validated if Repair Modules is checked during Integrity Check - Bug Fix: Passwords with backslash as last character not written correctly to config.php on install - Bug Fix: "use_total_row_count" jrCore_db_search_items() parameter ignored if using simplepagebreak - Bug Fix: Resetting a queue entry may not decrement in progress worker count Version 6.0.5: - New: Queue performance improvements for very busy systems with deep queues - New: "Empty Queue" button in Queue Viewer to quickly delete all queue entries in a queue - New: "placeholder" support added to custom textarea form fields in Form Designer - Bug Fix: Latency value in Queue Viewer could be incorrect for mixed working and sleeping queues - Bug Fix: Template name in template compare could be wrong when comparing a skin and module template - Bug Fix: Added missing language strings for some form validation fields - Bug Fix: Admin users getting email notifications for Timeline entries linked to pending items Version 6.0.4: - New: Template Compare tool updated to allow comparing skin override templates to module version - Bug Fix: List ordering by _created may be incorrect if "Use Optimized Ordering" is unchecked - Bug Fix: "view_results" event trigger was not being fired in jrCore_notice_page() on exit - Bug Fix: Compiled "error_notice.tpl" not saved to active skin cache directory in some instances Version 6.0.3: - New: "Reset Caches" checkbox option on Integrity Check to reset database and template cache - Change: Europe/Istanbul changed to Europe/Helsinki for UTC +2 in timezone selection - Change: "Reset" queue entry button is now active for sleeping queue entries - Bug Fix: Resetting template cache could interrupt an upload in progress - Bug Fix: DataStore browser searches for explicit % (percent sign) not working - Bug Fix: Emoji characters not showing in some HTML emails - Bug Fix: Queue entries not working on dedicated Queue Server if missing worker modules - Bug Fix: BBCode [quote] could cut off last word of sentence before quoted portion - Bug Fix: BBCode replacement codes could show in HTML transactional emails - Bug Fix: Fixed maintenance.tpl CSS so login link shows on all skins Version 6.0.2: - Change: Used memory is now formatted for easier reading when using fdebug() - Change: repair.php.html is now copied to root directory when Core is updated in Marketplace - Change: hardcoded "length" error messages in form validation moved to Language strings - Bug Fix: "dotted" and "dotless" i no longer stripped when creating a title URL - Bug Fix: Some GMT dates formatted with jrCore_date_format could be off by 1 hour - Bug Fix: Emoji characters were being replaced with placeholders in some HTML emails Version 6.0.1: - Change: Process timeout value for Integrity Check increased for larger systems - Bug Fix: HTML email detection for some modules may not work correctly - Bug Fix: Some characters could show as HTML entities in email subject - Bug Fix: Installer for Premium Packages failing for users with existing Jamroom.net account Version 6.0.0: - New: "Reset Form Sessions" option has been added to the Reset Caches tool - Bug Fix: Time selection in Date/Time field could be off when modifying an item Version 6.0.0b8: - New: Pending Items are validated during an Integrity Check if "Repair Modules" is checked - New: Pending Items show small "lock" icon to admins and profile owner to show state of item - New: Approved Pending Item emails not being sent to item owners - Bug Fix: Less than signs (<) could create HTML tag imbalance in allowed HTML - Bug Fix: The order of tools in the ACP Tools menu may be incorrect for some modules - Bug Fix: "User" pending items tab would show even if there were no pending users - Change: Item Detail features no longer show on items while pending - Change: Pending Item email URL includes direct link to dashboard tab pending item is under Version 6.0.0b7: - Bug Fix: Fix regression in 6.0.0b6 jrCore_list showing items from the wrong profile_id Version 6.0.0b6: - Change: Updated bundled jQuery to version 1.12.4 - Change: Updated bundled TinyMCE WYSIWYG Editor to version 4.4.3 - Change: Updated bundled Mobile Detect library to version 2.8.22 - Change: Updated bundled Smarty template library to version 3.1.30 - Change: Template functions for disabled modules are now excluded at the core level - Bug Fix: Form button may not submit after modal popup window on Firefox browser - Bug Fix: Multiple attachment uploads may only show a subset of files actually uploaded Version 6.0.0b5: - New: "email_addresses" event trigger that fires with email addresses before sending - Change: Updated help tips that now cover much more ACP and Dashboard functionality - Change: "Reset Icon Cache" now defaults to enabled in "Reset Caches" core tool - Bug Fix: "domain" Check Type validator plugin may report some sub domains as invalid - Bug Fix: JSON values were not showing in the DataStore browser "Modify Item" form - Bug Fix: "search" from ACP -> Skins section could return module config options - Bug Fix: Email sent to addresses not attached to a user account may format weird - Bug Fix: "Delete Module" checkbox showing on modules that had not been installed - Bug Fix: Errors in custom templates may not be caught when saving in Template Editor Version 6.0.0b4: - New: "verify_skin" event that is fired during Integrity Check and when a skin is activated - New: "minute_maintenance" event fired once a minute on the first request in the new minute - New: "Low Priority" email delivery Queue for large sends of email to multiple recipients - New: Activity Log email plugin logs email to Activity Log instead of sending for debugging purposes - New: Offline repair script (repair.php.html) updated to run full integrity check - Change: Info tab for a module now shows all modules (if any) that require it to function - Change: If HTML transactional email is enabled, URLs are automatically hyperlinked before sending - Change: Updated Maintenance Mode now shows a splash page with customizable background - Change: Default Data Browser changed to User Accounts from User Profiles - Bug Fix: Unable to reset password if site is in maintenance mode Version 6.0.0b3: - New: jrCore_is_developer_mode() function added - Change: "Daylight Savings" Date and Time config removed and replaced with UTC Time Zone option - Bug Fix: Setting skip_triggers to FALSE in jrCore_db_search_items params was skipping triggers - Bug Fix: Possible double Location header in jrCore_location() Version 6.0.0b2: - New: "Daylight Savings" Date and Time config option to enable or disable automatic DLS adjustment - Bug Fix: Multiple file uploads for different fields on same form may number incorrectly - Bug Fix: Emoji replacement string could appear in non-HTML transaction emails - Bug Fix: jrCore_format_string called on the exact same text multiple times may not work - Bug Fix: Item deletion bypassing recycle bin if done during daily maintenance - Bug Fix: @profile tags not being hyperlinked in some cases when using the WYSIWYG editor - Bug Fix: "a string with more than 1 word" field validation type now working correctly Version 6.0.0b1: - New: jrCore_is_datastore_module() and jrCore_is_media_module() functions added - New: A module can now include a "recommended" key for other modules in the meta function - New: New "error_notice.tpl" template to allow customization of jrCore_notice() errors - New: jrCore_db_get_multiple_items() now caches results by default (use $skip_caching) - New: jrCore_get_option_image() now supports "notice" and "warning" - New: Server side BBCode Code parser that is faster, simpler and safer than CodeMirror - New: Skins can now have categories for grouping in the ACP Skin menu - New: [s] strikethrough bbcode plugin added - Change: BBCode plugins have been moved to the Core from the Profile Forum module - Change: Cache performance updates to improve cache access and deletion on large systems - Change: Low Level DataStore schema changes to improve performance on large sites - Change: Delete Skin and Delete Module option is now a header button in the info page - Change: Skins in ACP skin list are now listed in alphabetical order - Change: Module and Skin Info pages updated with new layout - Change: Section header in Global Config no longer shows if it is the only one on the page - Change: Modules missing an icon will now show a default icon (default_module_icon.png) - Change: Skins missing an icon will now show a default icon (default_skin_icon.png) - Change: Old form session and play key cleanup moved to Hourly Maintenance event - Change: Removed DataStore active cache functionality - moved to future, separate module - Change: bundled TinyMCE WYSIWYG Editor updated to version 4.4.1 - Change: Lightbox will now "wrap" to the beginning when at the end of a group of images - Change: [code] blocks are now checked for balanced opening and closing tags - Change: Uploaded Custom Images now default to being active - Bug Fix: {jrCore_image} may not use correct URL for skin or ACP enable image override - Bug Fix: Approving/Deleting pending item may not remove associated pending jrAction entry - Bug Fix: jrCore_hilight_string could highlight matching HTML substrings - Bug Fix: Some SQL Queries generated by jrCore_list could cause an SQL error - Bug Fix: It was possible to change a module URL to an existing module URL - Bug Fix: Multiple uploads of very small files very quickly could result in wrong upload count - Bug Fix: Items created with text that has a lot of emoji characters could cause SQL error Version 5.4.0b4: - Change: DataStore optimizations for privacy checking and when searching profile_ids - Change: Approving, Deleting or Rejecting a pending item now refreshes to active pending list - Bug Fix: SQL Error with multiple DataStore order_by conditions which include reserved keys - Bug Fix: Slow Query logging may not always include query time for COUNT queries - Bug Fix: Multiple pending item rejections could result in "invalid pending_id" error Version 5.4.0b3: - Change: jrCore_json_response() now triggers "process_exit" event - Change: IP Address lookup changed to use new Whois tool from User module 1.8.7+ - Change: Moved process_exit functionality to new function and out of router.php - Change: {jrCore_upload_button} now generates better unique upload tokens - Bug Fix: jrCore_load_url() cURL options error if running PHP version older than 5.5.0 Version 5.4.0b2: - New: DataStore Active Cache functionality to pre-run expensive DS queries on large systems - New: "Enable Active Cache" global config setting to enable new DataStore Active Cache - New: The jrCore_date_birthday_format variable modifier now accepts a date format - Bug Fix: Multiple uploads using jrCore_upload_button may not always work correctly Version 5.4.0b1: - New: Anchor button added in the HTML Editor - New: Datastore event triggers "db_increment_key" and "db_decrement_key" added - New: Ability to set Queue Worker Priority in jrCore_register_queue_worker() - New: {jrCore_icon} accepts a "color" parameter in RRGGBB format for colorized sprite icons - Change: default "generator" meta tag that showed Jamroom version and skins has been removed - Change: Updated bundled PEAR Tar library to version 1.4.2 - Change: "no media found for player" error removed from output if no media found - Change: Module icons no longer shown in module form and tool headers by default - Bug Fix: Profile owners of Shared profiles may not be able to stream their own media - Bug Fix: 404 Not Found page could send out incorrect Content-Length header - Bug Fix: Symbolic links not being preserved correctly when creating a TAR Archive - Bug Fix: Queue Workers named the same from different modules may not work correctly - Bug Fix: Multiple approval of pending items system fails if only one item is selected - Bug Fix: Modules with the same module_name may not show correctly in ACP - Bug Fix: jrCore_load_url() POST params that start with @ being treated as file uploads Version 5.3.6: - New: Deleted time added to Recycle Bin listing - New: Image Editing options now available for images when using the WYSIWYG editor - Change: ALLOW_ALL_DOMAINS in Global Config Allowed Domains no longer requires referrer - Change: bundled TinyMCE WYSIWYG Editor updated to version 4.3.12 - Change: remove formatting button added to the editor - Bug Fix: Some items may return old cached version of the item after an item update - Bug Fix: Free memory in dashboard is incorrect when running on Ubuntu 16.04 - Bug Fix: jrCore_db_get_items_missing_key() could return _item_id 0 - Bug Fix: emoji characters in an email subject showing emoji replacement code - Bug Fix: Possible SQL error when passing invalid id's to jrCore_db_get_multiple_items() - Bug Fix: Cancel URL for profile forms could point to incorrect active profile - Bug Fix: Embedded profile_id in some profile forms could be incorrect - Bug Fix: Uploaded files not cleared when upload form page is refreshed - Bug Fix: Removed z-index from lightbox.css .lb-nav - causing issues with fixed headers and menus Version 5.3.5: - New: "db_verify_table" event fired when creating/updating a DB table - Change: Expired cache cleanup moved to hourly maintenance for better performance on large systems - Change: Better support in the WYSIWYG editor for pasting HTML and having it work correctly - Bug Fix: emoji check function was triggering warnings to error_log from util.php - Bug Fix: Possible PHP warnings with developer mode enabled for preg_match_all() in util.php - Bug Fix: Modifying form_submit.tpl and moving the spinner image was breaking the form submit - Bug Fix: Some custom form fields with values over 512 bytes may not show all contents - Bug Fix: Style changes from the search tab in the style editor could change wrong CSS elements - Bug Fix: Domain validation failing on some sub domains (i.e. sub.domain.co.uk) - Bug Fix: Changing label name in User Menu Entry was not working correctly - Bug Fix: "notice" form type could be set to "required" in Form Designer causing an error Version 5.3.4: - New: "email_prepare" event trigger that is fired before each batch of queued emails is sent - New: Sleeping queue entries in Queue Viewer now show how much longer they are sleeping for - New: Enhanced search in "Skin Style" now searches for Selectors, Rules and Values - New: "array" checktype plugin to test for a value being an array - Change: Browser spellchecker activated by default in editor - Change: bundled TinyMCE WYSIWYG Editor updated to version 4.3.8 - Change: DataStore optimizations to improve query time for very large result sets - Bug Fix: Result ordering from a module index search could duplicate results across pages - Bug Fix: Item Display Order may not order correctly when used in a Seamless list - Bug Fix: Bad caching of timezone data was making some event timestamps incorrect - Bug Fix: Breaks being added inside tables when created in the WYSIWYG editor - Bug Fix: Emptying recycle bin may not remove all attached media files - Bug Fix: Editor form fields were not being tested for banned words correctly Version 5.3.3: - New: Added tabindex plugin to TinyMCE so pressing tab will now activate the editor - New: "email_sent" event trigger that is fired after a batch of queued emails is sent - Change: Pending items now show their title (if available) and not their link - Change: Pending items now link to their update form and not the detail page - Bug Fix: Admin created items missing "pending" flag which could prevent some listings - Bug Fix: Quota check for user menu items not checking user "home profile" values - Bug Fix: Very wide images uploaded to the IMAGES tab cause the content to be hidden - Bug Fix: menu_onclick value was displaying invalid html when used - Bug Fix: Pending item view tabs were showing all pending items, not just the selected one - Bug Fix: URL error in the pending user search form fixed - Bug Fix: Emoji in a Profile Name not showing correctly in Page Title used on profile pages - Bug Fix: Emoji characters in DS data not being written to CSV export file correctly - Bug Fix: Emoji characters in cached items may not insert correctly - Bug Fix: CSV DataStore file export generation taking longer than 30 seconds may fail - Bug Fix: Timestamps may not adjust correctly for Daylight Saving Time - Bug Fix: Cancel button in Form Designer not taking you back to actual form - Bug Fix: Profile and User images for "shared" profiles may not show to the profile owner Version 5.3.2: - Change: HTTP request method added to fdebug() logging - Bug Fix: Quota limit not being properly checked if enabled in jrCore_db_create_item() Version 5.3.1: - New: unicode database functions to provide support for emoji characters in text fields - Bug Fix: Quota Config not redirecting back to correct tab when an error is encountered Version 5.3.0: - Change: Europe/Minsk changed to Europe/Istanbul for UTC +2 in timezone selection - Bug Fix: modifying admin_menu.css in Style Editor could cause the ACP menu to disappear - Bug Fix: jrCore_clean_html() stripping initial script tag if multiple script tags found - Bug Fix: Possible SQL error when updating global config - Bug Fix: "Incorrect String Value" SQL error when inserting text that contains emoji - Bug Fix: Deleting a pending datastore item was not removing it from the pending table Version 5.3.0b10: - Bug Fix: Saving Global Config for non-active skin not saving changes correctly - Bug Fix: Some uploaded files with single quotes in the file name may fail - Bug Fix: module override templates for disabled modules in active skin still showing - Bug Fix: Searches in page search containing a forward slash resulting in 404 not found - Bug Fix: Tinymce strips out script tags even if allowed in Quota Config Version 5.3.0b9: - New: "dashboard_tabs" Core event to allow modules to add their own tab to the Dashboard - New: "Repair Module" integrity check option for modules to provide additional DB checks - Change: "Pending Users" and "Pending Items" consolidated in new "Pending" tab in dashboard - Change: bundled TinyMCE WYSIWYG Editor updated to version 4.3.2 - Change: "Clear Cache" option removed from Integrity Check - Change: "Tours" tab will now always show as the last tab in ACP tab bar - Bug Fix: "Allow All HTML" setting may show different HTML to visitor versus logged in - Bug Fix: DataStore queries with multiple group_by parameters not working correctly on MySQL 5.7 - Bug Fix: Some errors when saving Global Config may not refresh back to right section - Bug Fix: Some date stamps could be off by the offset as set in the Date and Time settings - Bug Fix: Item List Widget "does not contain" search option being saved as "contains" - Bug Fix: Item List Widget inserting multiple % signs for like value in Template Code - Bug Fix: Uploaded files with ( or ) in the file name returning with invalid file extension Version 5.3.0b8: - New: You can now use % on key names in OR conditional searches using jrCore_list - Change: improved schema update handling for module database tables - Bug Fix: Unable to use style or class on "hr" HTML tag if allowed in HTML tags - Bug Fix: select_and_text select not showing all items if profile has more than 250 items - Bug Fix: "align" attribute being stripped from some Allowed HTML elements - Bug Fix: Possible "invalid location redirect" error when using Custom Domains module - Bug Fix: Gradient background on HD sprite icons may not show correctly - Bug Fix: Convert @ Tags may not work correctly in text entered in the Editor Version 5.3.0b7: - New: "View Changes" tab in Skin Style editor to see all customized CSS on one page - New: "hourly_maintenance" event for listeners that need hourly notification - Change: Form Notices now only show on the form they were submitted from - Change: Custom templates in the "Templates" ACP tab can now be larger than 64kb - Bug Fix: Date and Time stamps may not be adjusting to timezone offset - Bug Fix: Custom image replacements not working correctly for modules in "Images" tab Version 5.3.0b6: - New: "Reset This View" button in Form Designer to reset the selected view to the default - Change: tools/diff binary removed - no longer being used in Template Compare - Change: templates/page_divider.tpl updated to make it easier to style with CSS - Bug Fix: WYSIWYG plugins registered by modules not showing when editor used in template Version 5.3.0b5: - New: "Reset Skin Style" button in style editor to reset all custom CSS for a skin - Bug Fix: Some DataStore queries with order_by on key not being searched could "hang" Version 5.3.0b4: - New: "simplepagebreak" parameter for jrCore_list to enable Optimized Pager on individual lists - New: "slow_query_time" parameter for jrCore_list to log slow queries for individual lists - Change: "_item_id" included if not specified in return_keys parameter to jrCore_db_search_items() - Change: Module specific Tools now show first in the "Tools" view for a module - Bug Fix: "hr" button not showing in WYSIWYG editor even if hr HTML tag is added to Allowed Tags - Bug Fix: order_by on list where not all items in DS have the order_by key may not order correctly - Bug Fix: Profile Privacy set to be Visible in Search not working correctly on Profile lists Version 5.3.0b3: - Change: Page Jumper now uses skin select form element style - Bug Fix: Queue names that were the same but for different modules were being grouped together - Bug Fix: Page Jumper not showing in Data Browser if "Optimized Pager" checked in some cases - Bug Fix: "script" tag not being allowed even if configured correctly in Allowed Tags Version 5.3.0b2: - Bug Fix: Correct template may not be selected in Template Compare tool when changing templates - Bug Fix: "Change Update Field" showing on Create Form Designer even if not linked to update form - Bug Fix: Integrity Check could "hang" on System Core Version 5.3.0b1: - New: "Recycle Bin" Dashboard tool for browsing and restoring deleted items in the Recycle Bin - New: "Enable Recycle Bin" Global Config to enable the system-wide Recycle Bin - New: "Delete After" Global Config setting to set Recycle Bin retention length - New: "Show Bots" button in User Online Dashboard section to show bots accessing site - New: CSS icon sprites updated to support High Resolution / Retina displays - New: Updated Queue Viewer with ability to view and manage individual queues and workers - New: "template_list" event triggered with parameters when {jrCore_list} is called in a template - New: Improved HTML formatting and detection to prevent malformed HTML from editor posts - New: "date_birthday" form field for use in the Form Designer to get dates in YYYYMMDD format - New: "date_birthday" CheckType added to validate values entered in date_birthday fields - Change: Template Editor now edits file in full width ACP (admin menu does not show) - Change: "Activity Logs" and "Queue Viewer" tools moved to Dashboard - Change: bundled Smarty upgraded to version 3.1.27 - Change: bundled TinyMCE WYSIWYG Editor updated to version 4.2.7 - Change: bundled HTML Purifier updated to version 4.7.0 - Change: "temp value" functions now enforce uniqueness on module and key - Change: Disabled modules now appear at the bottom of the category list in the ACP - Change: Integrity Check now validates all module DB Schemas first - Change: jrCore_db_get_all_key_values() no longer accepts $limit as 3rd parameter - Change: Form Designer now validates the default value for Select fields is a valid option - Bug Fix: New Item could be added to Pending even if user is admin - Bug Fix: Multiple jrCore_format_string modifier calls on same template variable could corrupt output - Bug Fix: Replacing custom images on "images" tab for modules and skins not working correctly - Bug Fix: duplicate file keys showing in Item List widget for search and order by - Bug Fix: "Images" tab could show in ACP for modules even if no images were present - Bug Fix: Time in DateTime form fields could be off by 1 hour for some timezones when modified - Bug Fix: jrCore_db_get_all_key_values() not working correctly with multi-index DS keys - Bug Fix: Profile names only a single character long forwarded to the index page Version 5.2.41: - Bug Fix: DataStore performance regression on large systems introduced in version 5.2.40 Version 5.2.40: - New: "admin_tabs" and "skin_tabs" event triggers fired when Tabs are created for modules and skins - Change: numerical_asc and numerical_desc order by optimizations - Bug Fix: "order_by" numerical_asc or numerical_desc without search not returning correct result - Bug Fix: "next page" and page jumper issues when using Optimized Pager is enabled - Bug Fix: CSS Minifier not handling all * selectors correctly - Bug Fix: Core module and settings cache not being saved correctly resulting in multiple DB queries Version 5.2.39: - New: Global Config "section" tabs to better organize a module's Global Config settings - New: "Use Optimized Pager" Global Config setting to help larger system DataStore performance - New: "Use Optimized Ordering" Global Config setting to help larger system DataStore performance - New: Activity Log debug window now includes a close button in the header - Change: jrCore_db_search_items() optimizations for !=, not_like and not_in search conditions - Change: Updated bundled Mobile Detect library to version 2.8.17 - Bug Fix: JSON checktype would see boolean and PHP array attributes as being valid JSON - Bug Fix: jrCore_db_search_items() using pagination with no results running query twice - Bug Fix: jrCore_load_url() may not properly encode URL query string on a GET request Version 5.2.38: - New: "Allow ALL HTML Tags" Quota setting to allow All HTML tags for a quota - New: Font Size selector when using HTML Editor - Change: Updated bundled TinyMCE editor to version 4.2.3 - Bug Fix: Pagination next page button could show even when there are no further results - Bug Fix: Inactive modules shown as options in selection lists - Bug Fix: Profile URLs could contain an underscore which could result in an error Version 5.2.37: - New: Support for new HTML 5 elements added to "Allowed HTML Tags" Core quota setting - New: Total profile count added to the results of the jrCore_stats Smarty call - Bug Fix: Form Tokens may not be unique with multiple logins in same browser Version 5.2.36: - New: Item List widget has been updated to show Smarty Template code of created lists - New: template function to allow file uploads for items: {jrCore_upload_button} - New: template function to display files attached to an item: {jrCore_get_uploaded_files} - Change: Sections in [code] blocks are not limited by the quota's allowed_html - Bug Fix: Adding a table via the editor caused too many extra linebreaks to be added - Bug Fix: Adding a custom page menu item to the User Menu was not including the Page ID - Bug Fix: valid domains with double dots not passing domain name validation, eg: uwe.ac.uk Version 5.2.35: - Change: Check if lightbox is already loaded before trying to load it again - Bug Fix: "domain" checktype validation allowing domains without TLD - Bug Fix: "domain" checktype validation failing on generic TLDs - Bug Fix: jrCore_load_multiple_urls() was using port 80 for https connections - Bug Fix: File type image may not show in file upload form field for non-standard files - Bug Fix: Unrelated error messages appearing in activity log debug info if activity log is emptied - Bug Fix: Possible "Query Error: value too long" error in Performance Check Version 5.2.34: - New: jrCore_list now works with the return_item_id_only jrCore_db_search_items parameter - New: "Log 404 Not Found" Global Config option to log 404 errors to Activity Log - Change: skin_template event can now over-ride the default skin template. - Change: jrCore_url_string() now allows _ character through without conversion to - - Bug Fix: "Pending" notice may show at all times to non-admin users - Bug Fix: Graph buttons only show on dashboard if Graph module is active Version 5.2.33: - New: Template Compare tool updated to ignore white space changes - Change: Invalid "order_by" message in Activity Log only shows in Developer Mode - Bug Fix: Fixed a regression from 5.3.32 where "allowed_html" validation was failing Version 5.2.32: - New: mergely added to the modify button to compare differences - New: "live_search" field type added for use in Form Designer - New: jrCore_db_search_items() logs a MAJ Activity Log on invalid order_by condition - Bug Fix: "printable" checktype form field validation could allow HTML - Bug Fix: list_pager not showing the current active page in the select list. - Bug Fix: Item List widget not showing _item_id available as a Search option Version 5.2.31: - New: Notice shows on create form to indicate item will be pending if pending enabled - Change: Customizing a CSS rule only overrides the rule changed, not the entire class or id - Bug Fix: Timeline entries for pending items showing before item approval - Bug Fix: Template Editor syntax check not working correctly if site in maintenance mode Version 5.2.30: - New: jrCore_db_get_unique_keys() DataStore function - New: jrCore_page_custom() now supports "help" as 4th function parameter - New: "allow_all_formatters" flag for jrCore_format_string template variable modifier - New: CSV Export button to export DataStore in CSV format in Data Browser - Bug Fix: saving multiple files from forms may not put in proper order in DS - Bug Fix: items created with attached media item may have pending flag reset - Bug Fix: uploaded images to the IMAGES tab don't show in the custom column. Version 5.2.29: - New: fdebug option for jrCore_db_search_items now includes original pre-trigger parameters - New: HTML is allowed in the Options text for "notice" custom form fields - New: Language ID for custom form fields now shows in Help drop down in form designer - Change: "module" or "option" when passed as a URL parameter will be removed from $_post - Change: error_log and debug_log files over 3 days old are removed during daily maintenance - Change: "Skin Menu Editor" changed to "User Menu Editor" to better describe what it does - Bug Fix: Deleting skin could delete other skins with same skin name as prefix Version 5.2.28: - New: "notice" field type has been added to Form Designer for creating for notices - New: TinyMCE editor now includes Font Family selector + preview buttons - Change: Updated bundled Lightbox to version 2.7.1 - Change: Updated bundled jQuery to version 1.11.2 - Change: Updated bundled TinyMCE editor to version 4.1.9 - Bug Fix: Additional Images uploaded to modules IMAGE tab not displaying correctly. - Bug Fix: Existing image in "file" form field type may show cached version on update - Bug Fix: Better detection of AJAX requests in jrCore_is_ajax_request() - Bug Fix: Added hardcoded language strings in Set Item Order to language file - Bug Fix: Default date being added when no date is entered Version 5.2.27: - New: {jrCore_get_media_url} function to get URL to system media directory - New: Support for FULLTEXT indexes added to table support for MyISAM table types - New: Core support added for new Profile privacy option (Followers Only + search) - Bug Fix: "empty" skin templates could result in "Unable to write to template cache" error - Bug Fix: Multiple messages display when module is de-activated - Bug Fix: Some https: URLs not being made clickable even if Quota option enabled - Bug Fix: Some @ tags for profile links were not being made clickable - Change: Unused jquery.lightbox.min.js and jrCore/img/lightbox-*.gif images removed - Change: Adjustments in performance check to better account for multiple CPU servers Version 5.2.26: - New: "size" parameter accepted for jrCore_item_[create|delete|update]_button template function - New: "parsed_template" event fired with the content of a parsed template - New: create_action, update_action and delete_action parameter support for jrCore_item_index_buttons - Bug Fix: When uploading multiple files at once some files may not be saved properly Version 5.2.25: - New: 2 new DS functions: jrCore_db_item_key_exists() and jrCore_db_get_all_key_values() - New: Active Media System Global Config for (coming soon) offsite media storage - Change: module cannot be deactivated if other active modules "require" the module - Change: list_pager.tpl updated to show page jumper even if less than 3 pages - Change: New Form Designer fields checked against existing DS Keys to ensure they are unique - Bug Fix: jrCore_db_search_items() group_by not working if key name contains "_item_id" - Bug Fix: jrCore_db_search_items() "return_count" mixed with "group_by" not working right - Bug Fix: Audio bit rate not being detected properly on some FLAC files - Bug Fix: Custom images in Skin Images tab showing "module" instead of "skin" in embed code - Bug Fix: Sprite icons could be corrupted if corrupt PNG icon image was included Version 5.2.24: - Bug Fix: Version 5.2.23 Schema error that could prevent the system from installing - Bug Fix: Compare Templates not working correctly on Cloned Skins Version 5.2.23: - New: title tag now allowed on html code coming in from the editor - New: PUT and DELETE support as methods in jrCore_load_url() - Change: Template Compare tool drop down now contains module files of the same name - Change: Triggered Events could sometimes be run for disabled modules - Bug Fix: "Reset" button showing in Style editor on selectors that were not changed - Bug Fix: Extra line break in list created in the editors - Bug Fix: ACP search from the skins tab could return no result found - Bug Fix: Language appearing as the default tab for some modules even though Quota Config exists - Bug Fix: Play Counter may not count play on newer versions of Firefox - Bug Fix: "Invalid Play URL" error could come up when playing audio on some versions of Opera Version 5.2.22: - New: "View Keys" button in User/Profile browser to view raw DataStore key/values - New: Multiple file attachments will now show all attachments in "update" forms - New: Queue worker can return "EXIT" to force exit of worker even if queues left - Change: Performance Check optimized to be a little more consistent across runs - Change: Custom module URL can now contain a dash (-) - Change: Template Compare tool drop down select list now ordered by version number - Bug Fix: Email Throttling not working properly if no requests kick off exit listener - Bug Fix: Embed code with "flashvars" param not embedding even with object,embed,param allowed - Bug Fix: 404 Not Found missing page title Version 5.2.21: - New: "Optimize Tables" option added to Integrity Check tool - New: Share your Performance Test results tool to submit your results to the Network - Change: Additional fixes for "extra" spacing showing in TinyMCE editor output - Change: HTML "alt" tag change to "title" tag on index, list, and item detail buttons - Change: Removed Content-Encoding header from response - Change: "Font Size" updated to support all pixel sizes from 8px to 96px - Bug Fix: Dashboard total RAM size could be incorrect when running on Mac OS X (10.9+) - Bug Fix: Some items not being deleted properly when a skin is deleted - Bug Fix: "line-height" had incorrect pixel values in Style Editor Version 5.2.20: - New: Template Compare tool updated with ability to merge template changes line by line - Change: Additional spacing between paragraphs in TinyMCE editor output removed - Bug Fix: Saving changes in "Untagged" Style editor section refreshing to wrong tab - Bug Fix: "Reset" button could show on style elements that had not been modified - Bug Fix: Selector Search not working properly in tabs outside of "Color and Font" - Bug Fix: Form Fields with the form_designer flag set to FALSE not always ordering correctly Version 5.2.19: - Bug Fix: Possible CRI SQL error on install could keep system from installing - Change: Updates to Performance Check tool to add performance history Version 5.2.18 - New: "Performance Check" tool avialable in System Check screen to test server performance - Change: $_data object in html_purifier event listener is no longer "finalized" - Change: jrCore_copy_dir_recursive() updated to support better variable replacement - Change: Updated bundled Mobile Detect library to version 2.8.11 - Change: jrCore_is_tablet_device() now returns TRUE if device is a tablet OR mobile device - Change: Updated bundled jPlayer to version 2.9.2: https://github.com/happyworm/jPlayer/releases - Bug Fix: Deleting module or skin from info screen may not remove all release directories - Bug Fix: Allowed Domains not properly stripping www. before domain check Version 5.2.17: - New: Style Editor updated with new tabs and search features - New: {jrCore_include} now accepts a "skin" parameter for loading template from alternate skin - Change: {jrCore_media_player} updated to not force Firefox to the flash first solution for audio - Change: Updated bundled jPlayer to version 2.9.1: https://github.com/happyworm/jPlayer/releases - Bug Fix: jrCore_list with order_by _created not always working correctly - Bug Fix: jrCore_list pager param set to "false" causing pager to show. - Bug Fix: User's active profile_id may not be set correctly on "update" form view Version 5.2.16: - New: modules can include their own sprite icons in img/icons_(black|white) - Change: ordering by _created no longer maps to ordering by _item_id - Change: Form Designer field ordering updated to be more consistent - Bug Fix: Form Designer could get "stuck" turned on for a specific form - Bug Fix: Cache key used in {jrCore_list} could be incorrect based on listeners Version 5.2.15: - New: "disable_override" parameter for {jrCore_include} disables skin template override - New: added new core icons 'male' and 'globe' - Change: Updated bundled jPlayer to version 2.8.1 - Change: added a default page title for modules index page - Bug Fix: object/embed/param tags not working correctly even if allowed in Core Tags Version 5.2.14: - Change: Modal status updates should now be more stable on resource limited servers - Change: Updated bundled TinyMCE editor to version 4.1.6 - Bug Fix: Multiple editor fields on a single form was not working - Bug Fix: Custom image replacement for skins in the "image" tab may not save correctly Version 5.2.13: - New: Eight new Event Triggers built in to the Core queue system (see Core Info in developer mode) - New: Search location in ACP has been udpated, and now also searches module and skin names - Change: Updates and Fixes to core Queue System to make it faster and more efficient - Change: Server Check no longer shows checks for inactive modules - Change: Improvements to table support in the TinyMCE editor - background color and colspan now work - Bug Fix: "X" and "!" buttons in Activity Log were not showing correctly after 5.2.12 update - Bug Fix: "All Events" registered event listener may not fire in some instances - Bug Fix: Skin Info tab may not update to show latest skin Meta information - Bug Fix: Form Designer help for Select and Text was incorrect and has been removed - Bug Fix: Template Editor when running on SSL could return an OpenSSL error Version 5.2.12 - Change: jrCore_media_player type parameter is now optional - will use skin defined players by default - Bug Fix: Checktype plugins outside the Core may not load correctly in rare instances - Bug Fix: Profile and Item URLs with non ASCII characters and double quotes may not encode correctly - Bug Fix: Better detection of base site URL when doing a new Jamroom install Version 5.2.11: - New: Override support for module CSS and JS files (works the same as templates) - New: Ability to Pause and Resume worker queues from Queue Viewer tool - Change: Browser location changes now work with User Accounts "Force SSL" global config setting - Change: Activing a new or previously deactivated module now resets the User Language caches - Bug Fix: Possible SQL error for daily maintenance when running in Developer Mode - Bug Fix: "Radio" custom form field may return "Invalid Checktype" error when submitted - Bug Fix: jrCore_download_file() appending '1' to end of downloaded content - Bug Fix: Number of queue entries returned for active queues could be incorrect on a busy system Version 5.2.10: - New: Support added for UNIQUE option on {jrCore_list} group_by parameter - New: New "tpl_404" event trigger fired when a template is not found - Change: Updated bundled jPlayer to version 2.7.0 - Change: Updated bundled Mobile Detect to version 2.8.3 - Change: Updated bundled TinyMCE to version 4.1.5 - Bug Fix: Custom form fields not having custom lang strings copied to other languages - Bug Fix: Timeline entries stripped of HTML may cause icons to not show - Bug Fix: Chained Select fields might be split up on form display - Bug Fix: User needed Quota Permissions for an item for it to be displayed - Bug Fix: "Reset" button for CSS class/id in Style Editor was overlapping element help button - Bug Fix: checktype 'file_name' was not working correctly - Bug Fix: templates included via a template {capture} that contain a {jrCore_list} call may not work properly Version 5.2.9: - New: checktype 'file_name' to allow for strings that also contain a . (dot) - Change: Tinymce upgraded to version 4.1.3 - Change: Quota item count restriction no longer enforced when viewed by profile owner (allows for delete) - Bug Fix: Item updates by non-creating module when Item Approval set to "modify" causing item to go pending - Bug Fix: magic_quotes_gpc PHP setting is now properly handled for $_COOKIE values - Bug Fix: Custom form fields not showing if multiple quota ids are selected in form designer Version 5.2.8: - New: added profile_id option to {jrCore_get_count} to get counts for a specific profile - New: Updated installer so a marketplace account can be created at install time - Change: Invalid event trigger data array now logged only if running in Developer Mode - Bug Fix: bug fixes and improvements in Form Designer ordering of custom fields - Bug Fix: User Group restrictions for Form Designer fields may not work properly Version 5.2.7: - Bug Fix: regression bug in 5.2.6 where the active skin config may not be loaded properly Version 5.2.6: - New: "create_queue_entry" event trigger - fired when a new queue entry is created - New: jrCore_load_url() and jrCore_download_file() updated to allow a custom User Agent string - New: jrCore_get_support_dir() function for module storage that is not reset - Change: unmodified form designer fields will use field definition from module - Bug Fix: Global Config options for non-active skin may not be saved correctly Version 5.2.5: - Change: bundled Smarty upgraded to version 3.1.19 - Change: bundled Mobile Detect upgraded to version 2.8.2 - Change: contrib/pear/XML directory removed (was not used) - Bug Fix: jrCore_json_response() not sending custom headers beyond Content-Type - Bug Fix: jrCore_strip_html not stripping text values inside