PHP Generators advanced to version 14.10
Oct 24, 2014
|
SQL Maestro Group is happy to announce the release of PHP Generator 14.10, a GUI frontend that allows you to generate high-quality PHP scripts for the selected tables, views and queries for the further working with these objects through the web. There are versions for MySQL, MS SQL Server, PostgreSQL, Oracle, SQLite, Firebird, DB2, SQL Anywhere and MaxDB.
Please consider the list of new features implemented in this version since the last major release:
|
- New and updated controls.
Starting from this version PHP Generator allows you to use some new HTML5 controls in Insert and Edit forms.
Also we have added some new properties to already existing controls.
-
Support for the range input (so-called slider) has been implemented. This editor is useful for imprecise number input.
It is possible to indicate the allowed range of values in the appropriate dialog window (default values are 0 and 100
for bottom and top limits accordingly).
Picture 1. Range Editor
-
Starting from this version it is possible to edit values of columns storing HTML color codes with a native-browser Color Picker
(it is assumed that a string data type is used for storing such values in the database).
Picture 2. Color Editor
-
From now on all items in radio and checkbox groups may be displayed on the same line. This can be customized
in Edit properties | Additional | Display mode (possible values are Stacked and Inline).
Picture 3. Inline-styled Radio Group
-
Enabled, Readonly, and Visible properties have been added to all editors. They allow you to setup initial
state of controls that can be later changed with the JavaScript API. The key difference between readonly
and disabled elements is that the first ones are just not editable, but get sent when the form
submits while disabled elements aren't editable and aren't sent on submit.
Picture 4. Example of disabled, readonly, and ordinal controls
-
The Placeholder property has been added to Text and Text area editors. Also we have implemented support
for prepended and appended inputs.
Picture 5. Appended Text Editor with a placeholder
-
The Time Edit control has been updated. A new spinner helps you to quickly change the editor's value
as well as reset its value to the current time.
Picture 6. Time Editor
-
Starting from this version it is possible to provide all editors with custom attributes. Such attributes
can be later handled in client-side events.
- Enhanced JavaScript API.
A number of functions have been added to the editors API (a programming interface that allows you to extend
functionality of Insert and Edit forms of generated applications). Some of implemented functions are
as follows:
- setVisible(true|false) — shows or hides the appropriate editor.
- setReadonly(true|false) — switches the editor to the readonly/normal state.
- addItem(value, caption) — adds a new item to a Combobox, Radio Group, or Checkbox Group editor.
A detailed description of all the available methods and appropriate examples can be found in the Developer’s reference.
- New security-related features. The following security-related things are now at your disposal:
-
Support for user-defined authorization
has been added. This feature requires you to define your own function that takes entered username and password and
returns true or false depending on their validity. This means you can use any possible storage for
user credentials and any encryption algorithm you like.
Listing 1. CheckIdentity function example
if ($username == $password)
$result = strlen($password) >= 5;
else
$result = false;
The code above contains an example of such a function. It returns true if the username and password are equal
and the password contains 5 or more symbols, and false otherwise. For example, the 'John'/'John' pair
will not be accepted while but the 'Michael'/'Michael' combination will be valid.
-
Support for a number of new algorithms for password encryption has been implemented. From now on
our software allows you to encrypt passwords with crypt() and hash() PHP functions (all algorithms
provided by your PHP installation are allowed).
Picture 7. Encryption settings
-
Now end-users can change their passwords themselves (on using table-based authorization). The appropriate
button is located in the top right corner of the window.
Picture 8. Change password button
-
Template management. New version introduces a number of new features related to customization
of generated web pages with user-defined templates:
-
From now on it is possible to define your own templates for the print version of pages. For example,
you can add a logo of your company, place a copyright notice, or even add a column that is missed in
the common version of the page (the appropriate example can be found in our demo application).
-
The Login page now also can be customized; moreover, there are separate options to modify the whole
page or only the login form. As usual, an example of such a page is available in the demo app.
-
A possibility of passing additional parameters to custom templates has been implemented. Values of
such parameters should be provided within the OnGetCustomTemplate event handler.
- Multi-group menu.
The new version version allows you to group items in the page list according to your needs. It is also possible
to add a separator between items.
Picture 9. Multi-group menu example
By default all the pages are placed to a single group named "Page List" (as in the previous versions).
- New application-level events.
Two new application-level (AKA project-level) events have been introduced. The OnCustomHTMLHeader event allows
you to define the contents of the HEAD section (like meta tags or favicon) for all pages of the generated
websites and the OnGetCustomTemplate event helps you to override certain templates for all or certain pages
at once. All application-level events can be defined in the Project Options dialog.
- Custom CSS and JavaScript.
Starting from this version you can provide custom CSS and JavaScript code that will be included into
all the generated pages. This is the optimal place to define, for example, JavaScript
functions that are called from several event handlers (in order to avoid duplicate code).
Picture 10. Additional CSS
- Usability improvements.
The new version features a lot of usability improvements. The most useful of them seem to be as follows:
-
The generated app now displays a warning message if the templates_c directory does not exist or is not writable.
-
A dialog window is now displayed on loading a project file containing pages that are linked to
non-existing data sources. This window allows you to either remove these pages from the project
or re-link them to valid data sources.
Picture 11. Warning: Link pages
-
The software now warns you if you forget to define key columns for a data source. Also it tries
to detect query key columns automatically.
-
Size of the project files has been decreased up to 5 times. Size of the generated PHP files has been
decreased up to 2 times, and the generated code becomes cleaner and understandable.
-
A more informative message is now displayed on entering an invalid query. Also invalid queries are now
loaded from the project file (though remain invalid :)).
Picture 12. Query wrapping error
-
A more informative message is now displayed when trying to open a non-existing project file
(More | Recent projects).
-
A warning message is displayed on possibly incorrect script connection settings at the first step of the wizard.
-
Less compiler errors (if any) are now displayed in the Preview window after theme customization.
For example, on the screenshot below we missed a semicolon after #000 and
got the corresponding compiler error.
Picture 13. Theme preview window: Less compiler errors.
-
Computed columns are now excluded from the edit and insert forms by default (where applicable).
-
A more informative message is now displayed if the generated app cannot connect to the database.
-
Links to non-installed PHP drivers are included into the appropriate error messages.
- PHP Generator UI enhancements.
-
The Page Properties window has been completely redesigned.
Picture 14. Page Properties
-
Now it is possible to include/exclude all columns to/from a certain presentation with a single click.
-
Ability to specify several output paths for a project is added (useful if you want to test the generated app under several local webservers).
Picture 15. Setting additional output directories
-
A handy editor has been added for entering ComboBox and Radio Group values.
Picture 16. Value list
-
Page titles and menu labels for detail pages can be edited now directly in the Page List.
Picture 17. Page List
-
A modal editor for lookup conditions becomes available (useful for lengthy and complex conditions).
-
Editors for entering file name templates (for example, in the Upload file to folder properties dialog) become more convenient.
- Core features.
- Other new features.
-
Page Navigator is improved to help users to estimate total number of records in the data set.
-
Brazilian, Czech, Serbian, Slovenian, and Turkish translations are added. Many thanks to our users.
-
Filter row: the "Apply filter automatically" option is added. Also it becomes possible to specify the timer interval.
-
Now it is possible to reset quick filter by entering an empty string and pressing Enter.
-
The comparison operators like =, >=, <= are now displayed as symbols in the filter string in order to
save some space ("game_date <= 2008-11-01" instead of "game_date is less than or equal to 2008-11-01").
-
The "Force download" option for opening files from BLOB columns has been added.
In addition to above,
several bugs have been fixed and some other minor improvements and corrections have been made. For more information about a specific tool see the appropriate page: