- Changelog moved to be in Github commit notes
- 🖊️ Changed how scripts load in the footer to use a
$loadScripts
array - 🖊️ Changed how session handling works to allow subdomain support
- 🧹 Fixed account page styling
- 🧹 Fixed a bug with the remember me cookie not setting
- 🧹 Fixed a bug when adding a user wouldn't send the password
- 🖊️ Changed how SMTP Secure is handled in PHP Mailer to be security type, not boolean
- 🧹 Fixed bugs with subfolder support
- 🧹 Fixed bug with creating the initial tables in the install script
- ➕ Added database connection test
- ➕ Added initial role permissions
TO-DO: Fix rename install folder on completion
- ➕ Added the install script
- 🔄 Updated ezsql/ezsql (4.0.12 => 5.1.1): Extracting archive
- 🔄 Updated filp/whoops (2.9.2 => 2.11.0): Extracting archive
- 🔄 Updated guzzlehttp/psr7 (1.7.0 => 1.8.1): Extracting archive
- 🔄 Updated illuminate/macroable (v8.32.1 => v8.34.0): Extracting archive
- 🔄 Updated illuminate/contracts (v8.32.1 => v8.34.0): Extracting archive
- 🔄 Updated illuminate/collections (v8.32.1 => v8.34.0): Extracting archive
- 🔄 Updated illuminate/support (v8.32.1 => v8.34.0): Extracting archive
- 🔄 Updated illuminate/filesystem (v8.32.1 => v8.34.0): Extracting archive
- 🔄 Updated illuminate/cache (v8.32.1 => v8.34.0): Extracting archive
- 🖊️ Changed the core files to use
ezSQL v5
- ➕ Added a starter template system
- ➕ Added the install folder
- ➕ Added the ability to update your user details from the account section
- 🖊️ Changed the
user_role_id
to be allowed to beNULL
for guest users - ➕ Added the 'pdfs' system folder
- ➕ Added the ability to preview email and pdf templates from the admin panel
- ➕ Added the ability to register for an account if that option is enabled
- ➕ Added the ability to update a user from the admin panel
- ➕ Added the 'files' system controller
- 🖊️ Changed the 'images' system controller to have the thumbnail feature
- 🖊️ Changed the 'page' system controller to handle a universal menu and admin protect the changelog
- ❌ Removed jeremeamia/superclosure (2.4.0)
- ❌ Removed nikic/php-parser (v4.5.0)
- ❌ Removed symfony/polyfill-php56 (v1.17.0)
- ❌ Removed symfony/polyfill-util (v1.17.0)
- 🔄 Updated ezsql/ezsql (4.0.10 => 4.0.12)
- 🔄 Updated filp/whoops (2.7.3 => 2.9.2)
- 🔄 Updated guzzlehttp/psr7 (1.6.1 => 1.7.0)
- 🔄 Updated icanboogie/inflector (v2.0.0 => v2.0.1)
- 🔄 Updated illuminate/cache (v7.15.0 => v8.32.1)
- 🔄 Updated illuminate/contracts (v7.15.0 => v8.32.1)
- 🔄 Updated illuminate/filesystem (v7.15.0 => v8.32.1)
- 🔄 Updated illuminate/support (v7.15.0 => v8.32.1)
- 🔄 Updated intervention/imagecache (2.4.1 => 2.5.1)
- 🔄 Updated nesbot/carbon (2.35.0 => 2.46.0)
- 🔄 Updated paragonie/random_compat (v9.99.99 => v9.99.100)
- 🔄 Updated phpmailer/phpmailer (v6.1.6 => v6.3.0)
- 🔄 Updated psr/container (1.0.0 => 1.1.1)
- 🔄 Updated symfony/finder (v5.1.1 => v5.2.4)
- 🔄 Updated symfony/polyfill-mbstring (v1.17.0 => v1.22.1)
- 🔄 Updated symfony/polyfill-php80 (v1.17.0 => v1.22.1)
- 🔄 Updated symfony/translation (v5.1.1 => v5.2.5)
- 🔄 Updated symfony/translation-contracts (v2.1.2 => v2.3.0)
- 🔄 Updated voku/portable-ascii (1.5.1 => 1.5.6)
- 🔄 Updated whichbrowser/parser (v2.0.42 => v2.1.1)
- ❌ Removed symfony/polyfill-util (v1.17.0)
- ❌ Removed symfony/polyfill-php56 (v1.17.0)
- ❌ Removed nikic/php-parser (v4.5.0)
- ❌ Removed jeremeamia/superclosure (2.4.0)
- ➕ Added the
outputPDF
function to the 'output' helper - ➕ Added the 'cron' common system model
- ❌ Removed the 'users' common system model
- ❌ Removed
login_user_type
from thecs_login_log
table - ❌ Removed
cookie_user_type
from thecs_auth_cookie
table - ❌ Removed
pwdreset_user_type
from thecs_password_reset
table - ❌ Removed the 'userauth' and 'ext.userauth' admin models
- ➕ Added the
checkAdminAccess
function to the 'session' helper - 🖊️ Changed the user login to be handled through the 'account' section, including admin login
- ➕ Added TypeScript
cornerstone.ts
file and re-wrote the core functions to work in typed vanilla JS where possible - ➕ Added the
animateElm
function - 🖊️ Changed the pagination generation to allow better styling for mobile
- ➕ Added the debounce function
- 🖊️ Changed returned type in definition for the
get_sort_order()
filter function - ➕ Added check for cron job running via variable (
$cronFile
) in thebootstrap.php
file - ➕ Added the ability to add a user
- 🧹 Fixed bug with user login loading incorrect account and refactored login code to use new available functions for loading SQL queries
- ➕ Added support for the filp/whoops error handling package
- ➕ Added error logging for "warning" and "danger" flash messages
- ➕ Added the "logs" section of the settings to view any logs in the system
- ➕ Added
$errorsData
as a protected property in the core controller class - ➕ Added the
init_list_page
andget_sort_order
methods to the core controller class - ➕ Added trimming the trailing comma off
$data['filterData']
in the view loader - 🖊️ Changed the properties for the pagination class to be protected and added the
set_props
method - 🖊️ Changed the way that models are loaded to include the database handler as the first parameter so that a new database connection isn't being loaded every new model
- 🖊️ Changed the way that database connections are loaded in core classes
- ➕ Added the
ModelBase
core class - ➕ Added the
load_child_controller
method to the core controller
- ➕ Added the ability to edit FAQ sections
- ➕ Added the ability to see menu and FAQ section item counts from the section list
- ➕ Added check to skip any line containing the phrase "password" or "pwd" when printing an error page out
- 🧹 Fixed bug if jQuery modal failed to load
- ➕ Added the "Infield Top Aligned" (
.csc-ifa
) input field styling classes - ➕ Added the
.csc-hint
class for adding a hint icon to the end of an input field - 🧹 Fixed bug when trying to remove an FAQ item from and FAQ section from the FAQ page
- ➕ Added the scroll to element from hash function in the core
cornerstone.js
file - ➕ Added the
addid
option to the page editor
- ➕ Added initial debugging to the core
cornerstone.js
file - 🧹 Fixed bug when saving menu items would clear them
- ➕ Added the ability to set a slug for an FAQ
- ➕ Added the ability to edit an FAQ
- ➕ Added the ability to output an FAQ section using the
$contentOP->outputFAQSection()
method - ➕ Added the
toggleFAQCollapsible
function to the corecornerstone.js
file - ➕ Added the ability to check for FAQ Section and FAQ items in a page using the
$contentOP->checkStringFAQ()
method - ➕ Added the ability to output an FAQ item using the
$contentOP->outputFAQ()
method - ➕ Added the
menui_custom_title
column to thecs_content_menu
table - ➕ Added the ability to output a menu using the
$contentOP->outputMenu()
method - 🧹 Fixed bug where the
addLabelActive()
andremoveLabelActive()
functions would fail if an input didn't have an ID - 🧹 Fixed bug with
csc-btn--light
css class showing the text the same colour as the foreground
- ➕ Added the
content_sort_order
column to thecs_content
table - ➕ Added the
cs_content_faq_section
andcs_content_menu
tables - ➕ Added the ability to add a "menu" section type
- ➕ Added the ability to hide the section "location" if "type" isn't "page"
- ➕ Added the "menu" type to the sections index list
- ➕ Added the ability to edit menu items
- ➕ Added the to assign a page to a menu when creating the page
- ➕ Added the to assign/un-assign a page to a menu when editing the page
- ➕ Added the ability to add an FAQ
- ➕ Added the ability to view the FAQ index list
- ➕ Added the collapsible feature
- 🔄 Updated ezsql/ezsql (4.0.9 => 4.0.10)
- 🔄 Updated phpmailer/phpmailer (v6.1.5 => v6.1.6)
- 🔄 Updated html2text/html2text (4.2.1 => 4.3.1)
- 🔄 Updated voku/portable-ascii (1.4.10 => 1.5.1)
- 🔄 Updated symfony/translation-contracts (v2.0.1 => v2.1.2)
- 🔄 Updated symfony/polyfill-mbstring (v1.15.0 => v1.17.0)
- 🔄 Updated symfony/polyfill-php80 (v1.17.0)
- 🔄 Updated symfony/translation (v5.0.7 => v5.1.1)
- 🔄 Updated nesbot/carbon (2.32.2 => 2.35.0)
- 🔄 Updated illuminate/contracts (v7.4.0 => v7.15.0)
- 🔄 Updated doctrine/inflector (1.3.1 => 2.0.3)
- 🔄 Updated illuminate/support (v7.4.0 => v7.15.0)
- 🔄 Updated illuminate/cache (v7.4.0 => v7.15.0)
- 🔄 Updated symfony/finder (v5.0.7 => v5.1.1)
- 🔄 Updated illuminate/filesystem (v7.4.0 => v7.15.0)
- 🔄 Updated nikic/php-parser (v4.3.0 => v4.5.0)
- 🔄 Updated symfony/polyfill-util (v1.15.0 => v1.17.0)
- 🔄 Updated symfony/polyfill-php56 (v1.15.0 => v1.17.0)
- 🧹 Fixed bug with loading main style sheet
- 🖊️ Changed default cornerstone.sql files
- 🖊️ Changed the
top.php
theme file tolayout.php
- 🧹 Fixed bug where the
loadpage
method didn't fire loading theindex
method when requested - 🖊️ Changed the Toastify gradients for
-info
andwarning
for better contrast`
- ➕ Added extra checks to the
userPageProtect()
function to make sure roles were set between sessions - ➕ Added the ability to show page updated on page
- 🧹 Fixed bug where page wouldn't redirect properly if in wrong directory
- 🖊️ Changed the
section_location_name
column tosection_location_name
in thecs_content_section
table - 🖊️ Changed section "directory" to "location"
- ➕ Added
toastify-xxx
style classes - ➕ Added validation for "chosen" fields
- 🧹 Fixed bug when viewing the user list and the last login date wasn't populating
- 🧹 Fixed bug where user list has been changed. Added
listUsersBasic()
to fix this - ➕ Added styling to input labels with a
data-tippy-content
attribute - ➕ Added the ability to view and change core, mail, security, site, and add-on settings
- ➕ Added the ability to view a permissions list and search for keys
- ➕ Added the
cs_roles
,cs_roler_permissions
, andcs_role_perms
tables - 🖊️ Changed the
user_group_id
column touser_role_id
in thecs_users
table - ➕ Added
role()
class for handling user role permissions - ➕ Added the
canDo(x)
andisMasterUser()
checks on the role class - ➕ Added loading user permissions in the bootstrap
- ➕ Added the
permission
variable to theoutputAdminMenu
function to allow setting a permission to a menu item - 🧹 Refactored the user model
- 🧹 Refactored the userauth model
- ➕ Added the settings section
- ➕ Added the ability to view, add, and edit user roles
- ➕ Added the ability for a master user to add a permission
- ➕ Added mobile support for the admin section
- ➕ Added form switch element and moved the form components into a sub-folder for easier readability
- ➕ Added the Intervention Image package
- ➕ Added the Intervention Image Cache package
- ❌ Removed the
nielse63/phpimagecache
,gumlet/php-image-resize
, andswiftmailer/swiftmailer
packages from production - ➕ Added the
Images
controller from the ME project - 🔄 Updated
whichbrowser/parser
(v2.0.41 => v2.0.42) - 🔄 Updated
phpmailer/phpmailer
(v6.1.4 => v6.1.5) - ➕ Added the Roboto font from Google for the image placeholder text
- ➕ Added the placeholder text for the
config-sample.php
file - 🔄 Updated the
cornerstone.sql
file - ➕ Added the Tippy.js script as a vanilla JS alternative to Tooltipster
- 🖊️ Changed all instances of Tooltipster to Tippy and phased out Tooltipster
- ➕ Added the ability to view the pages list
- 🧹 Refactored the
admin.js
file to be vanilla js - 🧹 Refactored the admin menu code to use an array and output function
- ➕ Added the ability to view the sections list
- ➕ Added the ability to add a section
- ➕ Added the ability to edit a section
- ➕ Added the ability to add a page
- ➕ Added the ability to edit a page
- ➕ Added the vanilla JS ready state function
- ➕ Added the
cs_content
,cs_content_meta
,cs_content_section
, andcs_seo_url
tables - ➕ Added the
cornerstonecore.model.php
file to the system models for loading seo and content data - 🖊️ Changed the
core.class.php
default$currentMethod
fromerror
toloadpage
- ➕ Added the Html2Text package
- ➕ Added the options class
- ➕ Added the setting to set option data in the load view data
- 🧹 Fixed session and bootstrap EOF bugs
- 🧹 Fixed an error where
request->set_params()
fell over if a data item was an array or object - ➕ Added files and documentation for personal usage
- 🔄 Updated ezSQL to v4.0.9
- 🔄 Updated whichbrowser to v6.1.4
- 🔄 Updated phpmailer to v6.1.4
- 🔄 Updated symfony polyfills (php72 v1.13.1, mbstring v1.13.1, intl-idn v1.13.1, iconv v 1.13.1)
- 🔄 Updated egulias email validator to v2.1.15
- ➕ Added loader, pagination, registry, and request classes
- ➕ Added the
outputBreadcrumbs()
function to theoutput
helper file - 🧹 Refactored the core controller
- ➕ Added the ability to debug load view data
- ➖ Removed the
outputPagination()
function from the output helper file
- ➕ Added the
cs_notification
table - ➕ Added the
notification
andnotificationManager
classes - ➕ Added the Toastify script
- ➕ Added the
.csc-btn--inlineunder
modified button class - ➕ Added to
getUrl()
function in the core loader to change dashes to underscores - ➕ Added styling to allow the use of the select2 script
- ➕ Added the ability to set an alert as not closable by setting
data-clsoable="false"
- Fixed issue where error was being thrown if an input didn't have a label
- Changed the styling for the
.csc-helper-text
class to be positioned so it can "float" rather than shift the page
- ➕ Added the script to reload a table when the page limit is changed
- ➕ Added the pagination output function (
outputPagination()
) - ➕ Added the sort URL builder function (
get_sort_url()
) - ➕ Added the check sort item function (
check_sort_item()
) - ➕ Added
.csc-pagemenu
styling - ➕ Added the
.csc-data-table__search
styling - Updated the
get_sort_order()
function to output the sort if set
- ➕ Added component subdirectory for example components
- ➕ Added the Inflector package
- ➕ Added the Pickadate script
- ➕ Added custom styling for Pickadate script output
- Changed the Uppy button to follow the button outlined styling as it was most often be a secondary button
- ➕ Added function to remove AJAX modals from the DOM on close
- ➕ Added the Inputmask script
- Cleaned up the cornerstone.js file
- ➕ Added an animation to submit buttons
- Changed button styles to match alert styles and added proper class names (
cs-btn--color
prefixes) - Changed the alert styles to allow for icons and a cleaner design
- ➕ Add the ability to close alerts on click
- Changed event listeners for active input labels to ES6 Javascript
- ➕ Added a
pageType
property to the controller class - Fixed no results styling bug on chosen
- Changed
csc-bi
tocsc-bi--left
- Lowered the
min-height
on the trumbowyg editor
- ➕ Added a filters functions file
- ➕ Added a function to refactor the
sort
filter
- ➕ Added styling for uppy script elements
- Fixed autoloading the Trumbowyg editor if not loaded
- Started to integrate webpack
- ➕ Added the Trumbowyg script
- ➕ Added
$pageHasForm
boolean variable to header and footer tags to allow of loading form related scripts and stylesheets only where needed. - Removed the default
text-align: center;
oncsc-data-table
elements - ➕ Added the Lazysizes script for lazy image loading
- ➕ Added the php-image-resize package for image uploading and dynamic resizing
- ➕ Added the Uppy script for image uploading
- Installed
include-media
into core scss Helpers - Moved grid system into its own .scss file in the layout folder and moved relevant media queries here as well
- Updated Users index to reflect new grid styling
- ➕ Added auto resizing textarea thanks to Stephan Wagner
- ➕ Added character counter based on this character countdown script
- Changed input label active to trigger on change as well as focus
- Removed tinylimiter script
- ➕ Added
$pageHasForm
variable to admin footer to only load form specific scripts when required - Updated all cdnjs scripts to have integrity checks
- Updated user forms to reflect new styling
- ➕ Added default colour border on
chosen-container-active
to show active chosen element when tabbed onto
- Changed flat button styling to relate to good ux. Added underline and hover elements
- ➕ Added requirement for span in
csc-btn--flat
to allow for underlined text but not icon - ➕ Added
csc-btn--outlined
back in to the stylesheet - Fixed waves selector in
cornerstone.js
to load anycsc-btn*
class - Removed css grid from
csc-col
- ➕ Added
align-items:center
tocsc-card
- ➕ Added
.inline
tocsc-badge
to allow displaying the badge next to text - ➕ Added
width: 100%;
tocsc-data-table
- ➕ Added
display: grid;
to.csc-ga*
to allow positioning - Fixed button link color in data table
- Fixed
csc-badge
extension styling
- Changed how core methods get the url to prevent spaces being stripped and added code to strip tags to prevent malicious code being executed
- Changed how flashMsg class is assigned. No longer requires the full class name
- Add a tiny button size for sidebars
- Changed
.csc-col
fromalign-items
toalign-content
- ➕ Added more styling options for
csc-badge
to allow use of framed layout
- Removed
clearCustomAuth
function from logout script - Cleaned up admin dashboard to allow more breathing room
- ➕ Added
--wide
button style - Changed admin user form page style
- ➕ Added animation to admin forms
- Re-designed admin menu
- Fixed dead breadcrumb design
- Updated notification styling
- ➕ Added option for card with no max-width set
- ➕ Added requirement to use
.vw.php
suffix on view files for easier identification in IDE/SCE - ➕ Added ability to set custom logo in admin header
- ➕ Added
ext.navbar.php
to theme files for extending the sidebar menu - Moved models into folders and modified controller to handle retrieving the model name
- Removed
clearCustomAuth()
function fromext.userauth.php
file as it's not longer user in the logout method - Fixed link to
ext.userauth.php
file in theauthenticateUser()
method - Initialised protected
$data
property as an array in core controller class - Defined default param types in model methods
- Changed
listUsers()
method in 'user.model.php' to default to order byuser_first_name
- Fixed error of infinite loop when loading 404 page
- Updated Admin UI sidebar navigation
- Updated password reset templates
- Fixed fallover if method doesn't exist in controller
- ➕ Added the JavaScript Cookie script
- ➕ Added cookie for saving collapsed menu state
- Changed Admin common file to load 'index' model by default.
- Add "All Users" page
- ➕ Added grid layout options for aligning
- Fixed early closing tag in head that wasn't loading jquery
- Removed async tag from jquery loading to resolve double loading fallover
- ➕ Added support for custom admin css file
- ➕ Added
get_public_path()
function - Changed csc-data-table to default to 100% width
- ➕ Added link visited colour variable to sass
- Fixed time reset bug when checking if
$_SESSION['_cs']['CREATED']
is expired - ➕ Added Chosen selector script
- Moved mail helper into its own class and deleted the
fn.mail
helper file. This can now be called usingnew SendMail()
. - ➕ Added
userPageProtect()
function to the session helper - Changed how cookie data is set on 'remember me'
- Changed how session data is handled and expired. Added default values for
session.use_strict_mode
,session.use_trans_sid
, andsession.cookie_domain
. - ➕ Added
htmlspecialchars
to$_GET
variables to restrict XSS - Implemented further security recommendations based on OWASP cheat sheets
- Invalidate users existing sessions and cookies if set when changing their password.
- ➕ Added manual session time out and session re-generating for users for extra security.
- ➕ Added
$hideThemeFooter
variable for hiding the theme footer if you want to define your own in the view. - ➕ Added alpha dashboard UI design
- Core MVC Structure
- Initial admin user functions (login, email based 2FA, remember me, login log, forgot password, password reset)
- Custom database based session handler
- Custom error handler
- PHPMailer and Swiftmailer support
- HTML and Plain text Email templates for:
- 2FA (auhorization)
- Forgot Password - Account exists (password-reset)
- Forgot Password - Account doesn't exist (password-reset-help)
- New Password confirmation (new-password)
- HTML and Plain text Email templates for:
- Initial Helpers/Functions:
- Master:
- redirectTo()
- get_option()
- get_site_url()
- get_sys_path()
- get_lib_path()
- get_theme_path()
- Generate:
- get_crypto_key()
- get_crypto_token()
- get_pin()
- Mail:
- get_mail_options()
- send_phpmail()
- send_swiftmail()
- create_email_template()
- Output:
- friendlyDtmDiff()
- showValidationErrors()
- Session (this also holds the session controller information):
- flashMsg()
- checkFlashMsg()
- isLoggedInUser()
- Master:
- Custom material design based component specific css styling generated from sass file(s)