- Zend library updated to version 1.12.18
Removed old library from project. This included removing it as a sub-module
and adding it as directly supported files. This was necessary as there is no
ongoing maintenance for Zend Framework 1 on Github.
- Enhancements for extension development
These changes implement a process that allows files that might be updated by multiple
extensions to specify only the section that needs to be changed rather than having to
replicate the entire file. This means there won't be competition between extensions
having to consider whether or not another extension has been enabled and uses the same
file. The following files were specifically enhanced to accommodate the likely use in
multiple extensions:
- template/default/reports/index.tpl: Modified to contain section identifiers
at which an extension can specify a menu entry is to be inserted. Use the
extension/past_due_report/template/default/reports/index.tpl file as an
example.
- templates/default/menu.tpl: Modified to contain section identifiers
at which an extension can specify a menu entry is to be inserted. Use the
extension/custom_flags/templates/default/menu.tpl file as an example.
- Modified to move popup calendar to move it over a bit.
If you use a start and end date that are positioned vertically, the popup for
the start date covers the icon to access the popup for the stop date making it a
two click process to get to the stop date when no change is made in the start date.
This change positions the popup to the right so the icons aren't obscured and the
stop date can be accessed directly.
- Added Past Due Report extension.
This change include a report to show customer's with past due invoices. The
report can optionally display which invoices are past due for each customer.
Additionally, this extension adds a smarty template variable: $past_due_amount
for use in the invoice template.
- Add user definable documentation support. This was added for use by the custom_flags
extension. This allows the help field text to be accessed from the database and therefore
can be tailored to field use on each system.
- Change to show user defined field label in help dialog.
- Clean up FAQ document
- General changes to support HTML 5:
- Modified HTML document generation logic to render HTML 5 files. This includes removal
of attributes such as, <table align="center" >.
- Modified all occurrences of <textarea> sections to use class="editor"
and eliminate the nowrap attribute.
- Changed all instances of the text, SimpleInvoices to be SimpleInvoices
consistent with the logo and name of this applications.
- Remove the class="buttons" values from all <table> tags. The class
is commented out in the main.css file.
- Changed to minimize maintenance of extension language files. Typically the en_US
and en_US are both defined in extensions and have the same content. To eliminate
this doubling of maintenance, the en_US/lang.php file simply includes the content
of the en_US/lang.php file.
- Formalized the hooks feature so that they will work within extensions. The existing
custom/hooks.tpl file contains complete documentation on this feature including the
necessary cautions concerning the drawback of over using them. Basically, extensions should
be used rather than hooks.
- Fix missing $patchCount and query syntax error in getSystemDefaults()
method.
- Enhanced install from scratch process to better handle case of no database matching
the name in the config.php or if present, the custom.config.php file. Also
cleaned up formatting of screens and added additional information to the screen instructions
to better assist users with setting SimpleInvoices up.
- Added User Security extension.
This is an important enhancement and is recommended for all users that have internet
access to their SimpleInvoices system. New features with this enhancement are:
- Addition of a username field to the database that will contain the unique ID
that will be used to log into SimpleInvoices. Initially this is set to
the email currently used. It can and should be changed by each user when
they first logon the system. Their email information is retained for
informational purposes.
- Addition of password constraint options maintained in the si_system_defaults
table. Based on the settings of these fields, a validation pattern is generated
that will be used to verify user password compliance. The new database fields are:
- password_min_length: Specifies the minimum length user passwords
must be. It can be set from 6 to 16 and defaults to 8
when initially enabled.
- password_upper: Specifies if the password should contain at least one
upper case character. Set to true when extension is enabled.
- password_lower: Specifies if the password should contain at least one
lower case character. Set to true when extension is enabled.
- password_number: Specifies if the password should contain at least one
numeric character. Set to true when extension is enabled.
- password_special: Specifies if the password should contain at least one
special character. Set to true when extension is enabled.
- Enhanced the set up and maintenance of user records for customers and billers.
This feature already exists and is enhanced by this change to display a dropdown
list of available settings for the user_id and field help information to
explain this feature.
- Changes to allow your company name to replace the setting in the lang.php file
as well as specify your company's logo do display on the logon screen and any other
place you wish to use it. New fields added to the si_system_defaults table are:
- company_name_item: Company name to replace default value (typically
SimpleInvoices. The new value will be used in all places where this language
it is currently used.
- company_logo: Name of your logo file. That file must reside in the
extensions/user_security/images folder. This will be displayed on the
SI logon screen.
- Addition of an option to specify in minutes, the time interval for which an inactive session
will be terminated. Currently, all sessions terminate after 60 minutes of inactivity. This is
too long for a secured system. The new option allows you to specify a different interval ranging
from 15 to 999 minutes. New field added to the si_system_defaults table is:
- session_timeout: Number of minutes that a user session will remain alive before
being terminated for inactivity. The session expiration interval will be renewed with
each screen submission (note that entering data in a field is not considered a submission).
- Addition of new image files for help and required help will be used to make them less prominent
on the user screens. These images are stored in the extensions/user_security/images
folder and can be replaced by the original images if desired.
- Several housekeeping changes:
- Added global statements modified files to eliminate undefined variable warnings
for variables defined in other included files.
- Added a test that does nothing to eliminate unused variable warnings for variables
that are referenced by other files included following this one. The form of the test
is: if ($variable_name) {}
- Deleted unused source.
- Excluding HTMLPurifier cache file from git management.
- Provide error log information if email fails.
- Added missing css class to fix display issue on invoice quick view form.
- Modified logic to only display Custom Fields if their associated label is defined.
Currently custom fields display and function whether they have a label defined of not. This
change imposes a rule that a label must be defined to activate a custom field cleaning up the
interface and removes confusion by imposition of this simple requirement.
- Added new PdoDb class and supporting classes.
This is a step towards replacement of existing database logic through use of a class that
will properly format and execute all database requests through a common interface. This
interface abstracts the underlying database from the application code. The class also supports
the dynamic build of SQL database maintenance statements, INSERT, UPDATE
and DELETE, from key/value information defined in the $_POST super
global. This will allow extensions (or any code) that maintains a database table to perform
the maintenance request without the need specify table fields to maintain in the PDO
requests. This also eliminates the need to add table maintenance functions to the
sql_queries.php file which complicated extension development.
- Fixed payments to show actual Invoice # rather than the Invoice ID.
- Remove warnings for BROWSE constant redefinition warnings by testing if already defined.