Click [Tools] in the main menu bar to access the following useful tools available in PHPMaker.

Advanced Settings
Copy Table Settings
Copy Field Settings
Sort Tables Alphabetically
Multi-Language Property Editor
Delete Template Cache
Menu Editor



During the course of project development, it is common that you have altered your database schema. To save the effort of doing the customization from scratch again, PHPMaker provides you with the ability to synchronize your project data with the database. The synchronization process can be invoked in the following situations:

1. When working in PHPMaker

Simply click [Tools]->[Synchronize] or click thebutton on the toolbar to perform the synchronization. PHPMaker will check automatically to see if the database schema has been altered. If there are changes, you will be prompted whether or not to proceed with the synchronization.

2. When opening a project file

When open a project file, PHPMaker will automatically check the database to see if the schema has been altered. You will be prompted to keep or update to the new schema.

Note If the database contains a large number of tables/fields, this auto-synchronization feature may make reloading a project file slow. In that case you can disable this feature by unchecking [Tool]->[Auto Synchronize].



Click [Tools]->[Extensions] to enable or disable these extensions. If the extension has advanced settings (NOT every extension has it), you'll see the [Advanced] tab after selecting the extension. Click the [Advanced] to configure advanced settings for the extension.



Advanced Settings

Advanced Settings are some advanced general settings for PHPMaker, or some rarely changed settings for the project, or custom defined settings for use during code generation. Click [Tools] -> [Advanced Settings] to change these settings:


General General settings for PHPMaker (for all projects)
Auto-Update values

The comma separated PHP function names for the Auto-Update feature (see Field Setup)

You can add your own functions by putting your functions in the server side Global Code section (see Server Events and Client Scripts) and then add your function name here. The function name must follow the standard rules for naming variables in PHP.

Custom validation functions

The comma separated function names for the Validate feature (see Field Setup)

You can add your own PHP/JavaScript functions for custom server/client-side validation. The function name is used for both PHP and JavaScript, so it must be a valid function name for both languages. You can put your server-side and client-side validation function in the Global Code (see Server Events and Client Scripts) section of server-side and client-side respectively.

Script engine timeout (milliseconds)

The Windows Script engine timeout period.

PHPMaker uses Windows Script to generate scripts dynamically, if you have a lot of tables or fields, the script engine may time out during generating a file and prompt you to cancel execution or continue. To avoid this problem, you can increase this timeout setting. For example, you can increase 60000 ms (one minute) at a time.

UTF-8 output files

If enabled, the output file is in utf-8 encoding. Otherwise, it is ASCII by default.

The template files and output files are in ASCII encoding by default. Since the phrases are separated into XML language files in utf-8 encoding, ASCII encoding will suit most cases as the scripts contain code only. When you customize a template, it is recommended you use the language file also. If you have to put unicode characters directly in the template files, you must always use utf-8 and save the file in utf-8 encoding with the byte order mark (EF BB BF), and enable this setting to make the code generator output files in utf-8 encoding.

IIS Express (iisexpress.exe) path

The installed path of iisexpress.exe. For use with Browse after generation and IIS Express as Testing web server, read Generate Settings.

PHPMaker will try to find automatically where iisexpress.exe is installed. If no found, enter your path here.

IIS Express port

The port to be used by IIS Express. For use with Browse after generation and IIS Express as Testing web server, read Generate Settings.

PHPMaker will try to find a free port automatically. If you want to specific one explicitly, enter it here.

PHP CGI (php-cgi.exe) path

The installed path of php-cgi.exe. For use with Browse after generation and IIS Express as Testing web server, read Generate Settings.

IIS Express uses php-cgi.exe to run the testing site, make sure you have included php-cgi.exe when you install PHP on your PC. If not, download the zip file from and put the php-cgi.exe in your installation folder for PHP (usually <Program Files>\PHP).

PHPMaker will try to find automatically where php-cgi.exe is installed. If not found, enter your path here.

Project Settings for the current project only
Project name

Project name. See Project File for more info.

Project ID

Unique ID of the project. Do not change the project ID unless absolutley necessary. See Project File for more info.

Disable project CSS styles

Do not generate the the project stylesheet.

Note If you use this setting, there will be no CSS styles generated for the scripts and the HTML will be malformed, make sure you provide your own CSS styles, for example, by specifying your own stylesheet, read HTML Settings.

Show the SQL and runtime error for debugging.

Compress project .css

Compress the project stylesheet (i.e. <project>.css) and output minified .css file.

Compress project .js

Compress the project JavaScript file (i.e. ewp<version>.js) and output minified .js file.

Generate database helper

Generate a database helper named <database>db.php for including in current or other project for simple access to the database and retrieiving data.

Character encoding (for Ajax/iconv)

Specify the encoding for Ajax/iconv

Some features such as Ajax require conversion between your encoding and utf-8. If you use non English languages, you may need to set character encoding for these features. By default PHPMaker will setup the encoding automatically based on your project's Charset setting. If that is incorrect, you can specify yours. Make sure either iconv functions or multibyte string functions are enabled and your encoding is supported. See PHP manual for details.

File system encoding

The encoding of the file system of the server.

When saving a file to the server, the file name need to be converted to the file system encoding. If your project charset/encoding is different from the file system encoding and you accepts non alphanumeric file names, enter the file system encoding of the server

MySQL charset (for SET NAMES)

Specify the charset for MySQL SET NAMES statement.

If actually charset encoding of your data is different from the charset of your project, you may need to specify this setting for MySQL to convert between them. Read before using this setting.

Validate NOT NULL fields By default PHPMaker will detect fields declared as NOT NULL in the database (and without default value in database or the project) and force "Required" validation. If for some special reason you need to disable this feature, disable this setting.
Default time zone Specify the default time zone of the server. Read and for supported time zones.
Use DOM XML for Language object

Use PHP 5 DOM XML to load language file instead of using PHP XML parser.

By default the scripts use PHP XML parser to load the language file for faster loading. If your PHP setup does not have PHP XML parser installed or you want to manipulate the loaded XML document by DOM XML, enable this setting.

Use JavaScript popup message

Use JavaScript popup message to display messages of the application.

By default the messages are displayed above the main table. This options uses JavaScript to show the message as a popup message on page load.

Use datenumber.js

Include datenumber.js which provides a set of utility functions to operate against Date objects and Number objects. See:

Default is FALSE (not used).

Note PHPMaker does NOT use this .js file, it is provided for users' convenience only. It is not written by the author of PHPMaker. NO TECHNICAL SUPPORT WILL BE PROVIDED.
Use handlebars.js

AutoSuggest uses typeahead.js which supports its own Custom Templates with Handlebars. If you want to use it, enable this option to include the handlebars.js in the scripts.

Note PHPMaker does NOT use this .js file, it is provided for users' convenience only. It is not written by the author of PHPMaker. NO TECHNICAL SUPPORT WILL BE PROVIDED.
Disable button on submit

Disable submit buttons when submitting the form.

Enable this setting if you need to prevent user submitting the form more than once (by clicking the submit button) when the browser is submitting the form.

Allow login by URL

Allow passing username and password to the login page as URL parameters.

By default the login page accepts HTTP POST only. If this setting is enabled, it accepts HTTP GET also, then user can login by URL , e.g.


For example, this allows user login by using PHP cURL from your own scripts.

Note For security, you can encrypt the username and password at the page you build the login URL and then decrypt them using User_CustomValidate server event, see Server Events and Client Scripts.
Remove XSS

Specify if sensitive keywords allowing XSS attack should be removed.

If enabled, all user input string will be checked against an array of sensitive keywords. If discovered, those keywords will be broken by inserting "<x>" to prevent XSS attack. If this behavior is unwanted, you can disable this feature at your own risks. Re-generate and re-upload the ewcfg*.php after changing this setting.

If you just want to allow some sensitive keywords, you can customize the array EW_XSS_ARRAY in ewcfg.php of the template. (Read Customizing Template.)

Composite key separator

The separator between key values of a composite key. Default is ",".

If your primary key values are of string type and contain commas also, the commas will affect parsing of the composite key value in the script and lead to failure of locating a record, you can change the separator to avoid such problem.

Export field caption Export field caption instead of field names during export.
Export original values Export original field values instead of looked up values (for fields setup with user values or lookup tables) during export.
Export CSS styles Export HTML/Excel/Word with CSS styles (e.g. for keeping the row color in the exported file)
Format output for XML export

Use formatted XML during export.

By default DOM XML does not output formatted XML (no line breaks and indent between tags), enable this setting to override it.

Export master record

Specify if master record should be exported during exporting master/detail records. (Not applicable to CSV) Default is true.

Export master record for CSV

Specify if master record should be exported during exporting master/detail records to CSV. Default is false.

If master record is exported, the result CSV may not be imported into other application. If you want to export it anyway, enable this setting.

Export detail records in Master/Detail-View

Specify if detail records in View page of master table (in Master/Detail-View) should be exported. Default is true.

Export detail records for CSV in Master/Detail-View

Specify if detail records in View page of master table (in Master/Detail-View) should be exported for CSV. Default is false.

Show vertical master record in List Page

Specify if master record in List page of detail table should be displayed in vertical format. Default is true.

Language files The default language files for a project. (For use with Multi-Language.)
Allow no paging section

Allow no paging section in List page.

If both paging section at top and that at bottom are disabled, users will not be able to go to the second or later pages of the recordset. The scripts will use paging section at bottom by default to make sure paging is possible. If you want to allow no paging section (e.g. you always have all records in one page), enable this setting.

Use hierarchical User ID

For used with User ID Security. (see Security Settings.)

If enabled, a parent user can view records of child users and grandchild users and so on. If disabled, a parent user can only view records of child users.

Use subquery for master/detail

For used Master/Detail with User ID Security (see Security Settings) . Default is False.

If master table is protected by User ID Security, the detail tables "inherit" the security even they have not the User ID field. This is achieved by checking the master records that the user can access with User ID Security, then limit the detail records to those belonged to the accessible master records. The checking can be done by using subquery but not all databases support subquery, you may want to disable this setting in such cases. On the other hand, if you have large number of detail records and not using subquery makes the SQL too long for your database, then enable this setting if your database supports subquery.

Initiate search panel as collapsed

Specify if the search panel should be initialized as collapse on page load

Blob field byte count for hash value calculation

For use with Check Conflicts (see Table Setup). Specify the number of bytes for calculating the hash value . Default is 200.

Check Conflicts will increase the time required to load the page, for better performance only the first hundreds of bytes of the BLOB fields are processed by default, but there are chances that change of BLOB data is not detected (if the first nth bytes are not changed). You can increase the number of bytes, if you want to process all bytes, enter 0.

Separate permissions for List/View/Search

Specify if the permissions for List, View, and Search are different. Default is true. Note: For use with Dynamic User Levels (see Security Settings) only.

If disabled, the permssions for List/View/Search are the same. That is, if the List page is accessible by an user, then the View page and Advanced Search page are also accessible by the user.

Oracle charset By default the project character is also used for connecting to Oracle. If you need to use a different charset, specify it with this setting.
Oracle compare

For setting Oracle's NLS_COMP parameter. Requires Oracle 10gR2 (or later). Possible values are: BINARY, LINGUISTIC, ANSI.

For example, if you want to do case insensitive search you can select LINGUISTIC.

Oracle sort

For setting Oracle's NLS_SORT parameter. Requires Oracle 10gR2 (or later).

For example, if you want to do case insensitive search you can enter "BINARY_CI" (no double quotes).

Auto-Suggest maximum display entries Specify the number of options to be displayed during Auto-Suggest. Default is 10.
Auto-Suggest for all display fields

Specify if Auto-Suggest should consider Display field #2 to #4.

By default Auto-Suggest only uses Display field #1 and only finds records with Display field #1 STARTS WITH the input characters. It this setting is enabled, Auto-Suggest finds records with Display field #1 to #4 CONTAINS the input characters

Auto-fill original value

For use with Auto-Fill (see Field Setup). By default the looked-up value (if any) will be used to fill the target field, enable this option to use the original (database) value instead.

Grid-Add row count

Specify the initial number of blank rows in Grid-Add and Master/Detail-Add mode. Default is 5.

Create upload file on copy

Specify if an uploaded file should be copied when copying a record with file upload fields. (For use with file upload to folder.) Default is false.

If the option Delete file on update/delete (see PHP settings) is enabled, the uploaded file will be deleted. If the deleted record is a copied record, deleting the uploaded files will affect the original record. To prevent such possible problem, enable this setting to duplicate the uploaded file when copying a record.

Multiple file upload separator

Specify the file upload separator used to separate the file names. By default, comma is used. If you allow file names with comma, you can enter another separator, e.g. "|".

Use View Tag number of decimal digits for edit

To keep the original precision of a decimal number, by default all decimal digits as outputted by the database will be used in Edit page. For example, if a number is 1.23456 in database, the Edit page will also show 1.23456 even you may have specified just 2 decimal digits in View Tag panel (see Field Setup). If you want to show the number as in the View page, you can enable this setting. However, note that after saving the record, the number will be saved as 1.23 only even you have not edited the field value.

Note If you enable this setting, there may be loss of precision after saving the record. Only use this setting when precison is unimportant.
Thumbnail default width (px)

For use with extension for image resize. (see Third-party Tools.)

If a target resize width is <= 0, this default width will be used. If this setting is also 0, the width will be auto-adjusted to keep the aspect ratio.

Thumbnail default height (px)

For use with extension for image resize. (see Third-party Tools.)

If a target height width is <= 0, this default height will be used. If this setting is also 0, the height will be auto-adjusted to keep the aspect ratio.

Thumbnail default quality (JPEG)

For use with extension for image resize. Support JPEG only. (see Third-party Tools.)

Valid values are: 0-100 (Default is 75)

Use Colorbox for images Specify if colorbox should be used to displayed full size image on clicking the thumbnail in the List/View page. Default is true.
Search multiple value option

Option for searching fields that store multiple values as comma separated string.

Valid values are: (Default is 3)
1 - no multiple value, the whole comma separated string is considered as one string
2 - all multiple values must meet the search criteria (AND condition)
3 - either one of the multiple values must meet the search criteria (OR condition)

Replace textarea by text input for search

Replace textarea by textbox in Search page and Extended Search. Default is TRUE.

Use ILIKE operator (PostgreSQL) Use ILIKE instead of LIKE for case-insensitive search (for PostgreSQL only).
Collation for LIKE operator (MySQL) Use the specified COLLATION for the LIKE operator (for MySQL only).
Collation for LIKE operator (Microsoft SQL Server) Use the specified COLLATION for the LIKE operator (for Microsoft SQL Server only).
Max email recipient

For use with Export (Email). (see PHP Settings.) Default is 3.

To avoid abusing the export to email feature, the number of email addresses in the recipient field is limited to the specified value.

Max email sent count per session

For use with Export (Email). (see PHP Settings.) Default is 3.

To avoid abusing the export to email feature, the number of emails can be sent by the user in each session is limited to the specified value.

Use responsive layout

Use responsive layout for mobile devices automatically. Default is TRUE.

Note If disabled, there will be NO mobile features, everything will be for desktop only.
Use dropdown for button group in mobile

Use button dropdown instead of button group to save more spaces for data in mobile mode. Default is TRUE.

Use place holder for text box

Add placeholder attribute to form elements automatically. Possible values are:

  • None - no placeholder
  • Caption - use field caption (see Field Setup) as placeholder attribute value (default)
  • Title - use field title (see Field Setup) as placeholder attribute value
Use css-flip Use Twitter css-flip to convert the generated <project>.css, bootstrap.css and bootstrap-theme.css to RTL version (*-rtl.css) and add dir="rtl" attribute to the BODY tag.


  1. PHPMaker and Bootstrap 3 does NOT support RTL. This setting is it is provided for users' convenience only.
  2. css-flip just flips the CSS, using it alone cannot make everything perfectly RTL automatically. You'll still to adjust some CSS (and JavaScript) yourself to make your website completely RTL. However, this will be a very good start point for your own customization.
  3. css-flip is not written by the author of PHPMaker. NO TECHNICAL SUPPORT WILL BE PROVIDED.


Note The settings are defined in the settings.xml located at the "src" folder. If you are an advanced user who customize templates, you can also add your own settings to the "Project" section. Open the settings.xml with a text or XML editor, add a <setting> node under the "Project" section. Make sure you provide an unique id to the setting. Supported data type is "String", "Integer" and "Boolean". If not specified, default is "String". The setting value can be retrieved in the template during code generation (NOT during runtime of the generated script) using the PROJ.GetV(id) method. Also read Template Tags and Template Object Properties.



Copy Table Settings

If you use database built-in query/view to make an alternate version of a table, you need to set up the table and field settings again, this tool help you quickly copies table and field settings from the source table to the view. Click [Tools] -> [Copy Table Settings] to open the following form:


Select the [Source table] and the [Target table] (e.g. the query/view), click OK to copy the table settings. If a field in the target table has the same name as that in the source table, field settings will also be copied.

Note This feature copies setting without validation. If settings from the source table/field are not applicable to the target table/field, errors may result. Check the settings after copying.



Copy Field Settings

When you create a Custom View, PHPMaker allows you to copy field settings from the source table. However, when database built-in query/view is used, you need to set up the field settings again, this tool help you quickly copies field settings from the source table to the view. Click [Tools] -> [Copy Field Settings] to open the following form:


Select the [Source table] and the [Target table] (e.g. the query/view), the fields of the target table will be listed in the left column, you can then select the respective source fields (from the specified source table) in the right column and click OK to copy the field settings.



Sort Tables Alphabetically

If you prefer to have the table list displayed in the user interface in alphabetical order, click [Tools] -> [Sort Tables Alphabetically] to do so.

  1. Re-arranging the table display order by drag-and-drop in the Table Setup page is still supported, so the display order will NOT be re-sorted automatically after synchronizing the project with your database even there are new tables added to the database. Use this tool to sort again if necessary.
  2. Only tables are sorted, the display order of the fields in the user interface or in the generated scripts will NOT be affected by this tool.
  3. The display order of the menu items in the generated scripts is still controlled by the Menu Editor, using this tool will NOT affect the menu items.




If you want to use multi-language project, make sure you have enabled Multi-Language in the [PHP]->[General] tab (see PHP Settings), then click [Tools] -> [Languages] to select the languages you want to use in the project. If more than one language is selected, a combobox will appear on the top of the generated scripts for user to select language.

After selecting the languages, select a Default Language in the [PHP]->[General] tab (see PHP Settings).

Language files are placed in the subfolder "languages" under the installed folder.

Note Only the English language file is provided by our products, you'll need to prepare the language files for other languages yourself. You may also check our website and see if there are any user submitted language files. If you want to share your language files with others (without any conditions), you can submit your language file to us too.

To translate a language, duplicate the shipped english.xml and rename it, it is recommended that the file name should contain alphanumeric characters (and underscore) and in lowercase only.

Open the new XML file with any text or XML editor, you'll see the root node:

<ew-language date="2013/07/02" version="10.0.0" id="en" name="English" desc="English" author="e.World Technology Ltd.">

You must change at least the id, name and desc attributes.

The id is an arbitrary identifier for identifying the language in generated scripts, it must be unique. The should contain alphanumeric characters only.

The name is for displaying the language name in the user interface (which does not support unicode), it should contain alphanumeric characters, underscore and spaces only.

The desc is for displaying the language name in generated scripts, it can be in the encoding of the XML file.

For example, if you want to make language file for Traditional Chinese, you may rename the file as chinese.xml and modify the node as:

<ew-language date="2013/07/02" version="10.0.0" id="cht" name="Traditional Chinese" desc="繁體中文" author="e.World Technology Ltd.">

Then translate the phrases in the file.

To translate table/field/menu captions and other properties supporting unicode, see Multi-Language Property Editor below.

  1. Multi-Language project must use utf-8 for everything. The charset of the project must be "utf-8".
  2. The data in your database must be stored in unicode, otherwise your data will not be displayed properly.
  3. If you have to customize the template and put unicode characters directly in the template instead of using language file, always use utf-8 encoding and enable the Advanced Setting UTF-8 output files (see Customizing Template and Tools).


Multi-Language Property Editor

Note If you only use single language, there is NOT need to use this editor, just enter the property value in the main UI. Only use this editor if you have enabled Multi-Language. (see PHP Settings -> General Options -> Multi-Language.)

Some text properties support Multi-Language. This editor allows you to enter your unicode property values for each language. Supported properties are:

  • Table/Field Captions
  • Menu Text
  • Site Title and Footer Text
  • Table Page Names
  • Field Edit Tag Title
  • Field Error Message
  • Field Image Tag Alt
  • Field User Values

However, note that if the Charset (see PHP Settings) of your project is not utf-8, the script will convert the unicode properties to your charset, make sure the characters in your properties are supported by your charset. For example, if you use an unicode Euro dollar symbol in the caption but your project charset is iso-8859-1, the symbol still cannot be displayed in your web pages as iso-8859-1 does not support the symbol. In such cases you should use HTML character entities such as "&euro;" in your caption.

To edit properties, click [Tools] -> [Multi-Language Property Editor] to open the editor. Alternatively, you can also click the small button next to above properties in the user interface to open.

Select a property in the Property pane on the left to edit, then enter your properties in unicode. For example, you can copy and paste from Word.

Note Previously saved properties are displayed in bold font. After editing and saving properties, remember to re-generate the languages file and upload them again.






Delete Template Cache

PHPMaker will reuse the pre-processed template scripts to speed up code-generation. We refer to these pre-processed scripts as "template cache", sometimes these template cache may become corrupted resulting from, for example, generating with a corrupted template or badly customized template. In these cases you may want to delete bad template cache and let PHPMaker builds the template cache again. You can do so by either clicking [Tools] -> [Delete Template Cache] or by manually removing the folder for the template under your Documents folder, i.e. <Documents Folder>\PHPMaker\Templates\<TemplateName>.zip\. (Also see Customizing Template.)




Menu Editor

PHPMaker allow you to modify the menu in the generated site, to open the menu editor, click [Tools] -> [Menu Editor] in the main menu or click the "Menu Editor" icon in the toolbar.

Use the following toolbar buttons to manage your menu items:

Add item

Add a new menu item

You can add new menu items and link them to your own URLs. Just click the button to add and then enter your URL. Note that the URL of the List pages of the tables are uneditable, they will be generated by PHPMaker automatically.

Add child item

Add a child menu item to the focused menu item

You can also easily drag-and-drop the icon of a menu item to another menu item to create child menu items.

Delete Delete the focused menu item
Edit item Edit the displayed text of the focused menu item. You can also click the text directly to edit.
Post Post the changes you make to the focused menu item.
Cancel Cancel the changes you make to the focused menu item.
Refresh Refresh the menu items
Move up one level Move the focused menu item up one level
Move down one level Move the focused menu item down one level
Move Up Move the menu item up
Move Down Move the menu item down
Expand all items Expanse all menu items so all menu items of each level are shown
Collapse all items Collapse all menu items so only menu items of the first level are shown
Import items from PHP Report Maker project Import menu items from PHP Repot Maker project
Delete imported menu items Delete imported menu items

Show Multi-Language Property Editor for editing unicode menu text

Chart menu items

Show/hide the menu items for charts (imported from PHP Report Maker)


Your can show/hide the menu items by checking/unchecking the checkboxes beside the menu item text. If a parent menu item is hidden, all the child items will also be hidden.

If you want to use special characters in the menu caption, you can use HTML entities such as &#euro;.

If your custom menu items requires login, uncheck [Allow Anonymous User]. For other (non custom) menu items, this setting is same as the List/Search/View permission for Anonymous User in Advanced Security. (See Security Settings.)

After modifying, make sure you click [OK] to save the changes.

By default, the menu is vertical.

Registered user can use the Horizontal Menu extension, click [Tools] -> [Extensions] to enable the graphical extension, then click [Advanced] tab to set the menu options.



Grouped menu items is supported. Grouped menu items are to be set up in the same way as a sub menu. You can check the title menu item in the Group Title column of the Menu Editor:

Then menu group title will be displayed like:

Note Since horizontal menu cannot display menu groups like vertical menu, group title should not be enabled for root level menu items in horizontal menu. If enabled, they will only be displayed as normal submenus. However, since submenu is vertical, you can use group title for menu items in submenus.
 ©2002-2014 e.World Technology Ltd. All rights reserved.