Choose your database:
AnySQL
MySQL
MS SQL Server
PostgreSQL
SQLite
Firebird
Oracle
SQL Anywhere
DB2
MaxDB

Subscribe to our news:
Partners
SQL Maestro Group / Products / Oracle / Oracle PHP Generator / News / PHP Generators advanced to version 14.10

PHP Generators advanced to version 14.10

Oct 24, 2014

Prev Next
PHP Generator

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).
      Range EditorPicture 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).
      Color EditorPicture 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).
      Inline-styled Radio GroupPicture 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.
      Example of disabled, readonly, and ordinal controlsPicture 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.
      Text EditorPicture 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.
      Time EditorPicture 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).
      Encryption settingsPicture 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.
      Change password buttonPicture 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.
    Multi-group menu examplePicture 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).
    Additional CSSPicture 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.
      Warning: Link pagesPicture 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 :)).
      Query wrapping errorPicture 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.
      Theme preview window: Less compiler errors.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.
      Page PropertiesPicture 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).
      Setting additional output directoriesPicture 15. Setting additional output directories
    • A handy editor has been added for entering ComboBox and Radio Group values.
      Value listPicture 16. Value list
    • Page titles and menu labels for detail pages can be edited now directly in the Page List.
      Page ListPicture 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:

PHP Generator for MySQL PHP Generator for MySQL PostgreSQL PHP Generator PostgreSQL PHP Generator
MS SQL PHP Generator MS SQL PHP Generator Oracle PHP Generator Oracle PHP Generator
Firebird PHP Generator Firebird PHP Generator SQLite PHP Generator SQLite PHP Generator
DB2 PHP Generator DB2 PHP Generator MaxDB PHP Generator MaxDB PHP Generator
ASA PHP Generator ASA PHP Generator    
Prev Next