Tutorial - Integrating with PHP Report Maker Project

In this tutorial we will show you how to put scripts generated by PHP Report Maker together with scripts generated by PHPMaker. We'll use security in both projects and demonstrate how you can make them compatible with each other.

To make PHPMaker and PHP Report Maker projects work together, there are 3 requirements:

  1. The projects share the same web folder. In general, the projects share the same application root and destination folder.
  2. The projects share the same project name.
  3. If Advanced Security is used, they shares the same Advanced Security settings, including the User ID field, Parent User ID field, User Level field and User Levels.

Project name in PHP Report Maker or PHPMaker is used in session variable to distinguish projects. For example, if the project name of your PHPMaker project is named as "project1", the session variable of the logged in status is session variable "project1_status". If your project name of your PHP Report Maker project is named as "project2", when users browse from PHPMaker generated pages to PHP Report Maker generated pages, you will be considered as not logged in and be redirected to the login page. Therefore, to make PHP Report Maker project compatible with PHPMaker project, we need to use the same project name for both projects.

Select one of your PHPMaker projects that uses security, check the project name (see Project File) by clicking [Tools] -> [Advanced Settings].

In this example, the project name of the PHPMaker project is "demo", we'll use the same project name in PHP Report Maker.

On the other hand, PHP application generated by PHP Report Maker is self-contained, it has its own header, footer, login, logout and default page. However, if you have an existing PHP application generated by PHPMaker, you may already have those pages already. Since those pages typically have the same name like "header.php", "footer.php", "login.php", "logout.php" and "index.php", generating your PHP Report Maker project to the same folder may create several problems:

  1. The header, footer, login, logout and default page of the existing application may be overwritten.
  2. Even if they are different (so they will not be overwritten), you'll need to maintain 2 sets of header and footer. To make the look and feel of your site consistent, you'll need to make the 2 sets of header and footer look the same too.
  3. If both projects uses security, each project has its own login and logout page, users will need to login or logout twice.

To solve these problem, PHP Report Maker allows you to enable Compatibility Properties. When enabled, PHP Report Maker will behaves a little differently during generation. If existing paths are specified, the header, footer, login, logout and default pages will not be generated so they won't overwrite existing files. Instead, the generated scripts will use the paths of header, footer, login, logout and default pages specified by the Compatibility Properties so both PHP application shares the common files. Therefore, once you have customized the header and footer for use with both PHP applications, they will not be overwritten when you re-generate scripts using PHP Report Maker.

 

Steps to Setup Compatibility Properties

1. Make Sure the Advanced Security Settings in Both Projects Are the Same

The Advanced Security settings in both projects must be the same. Open the PHP Report Maker project you previously used in the Advanced Security tutorials (Tutorial - User ID Security or Tutorial - User Level Security). Compare the Advanced Security settings with that in your PHPMaker project. Check the User ID field, Parent User ID field, User Level field and User Levels.

Close the project. (In next step, PHPMaker may need to change your project settings, so you should not open the project in PHP Report Maker.)

2. Setting up Compatibility Properties

Compatibility can be set up easily in the PHPMaker project. PHPMaker can load the PHP Report Maker project, set up above properties automatically and load the menu items from the PHP Report Maker project to the PHPMaker project. Since PHPMaker will update your PHP Report Maker project, to avoid overwriting each other, you should save your PHP Report Maker project and close PHP Report Maker first. Then in PHPMaker, open the Menu Editor, click the [Import] button in the toolbar,

Note: This is menu editor in PHPMaker.

Select your PHP Report Maker 8 project, click [OK]. The imported menu items will be represented by orange icons, you can then re-arrange the display order of the menu items if necessary.

 

Note If you change User Level settings in your PHP Report Maker project later, the imported menu items in the PHPMaker project will NOT be updated automatically, you'll need to repeat above again.

If you open your report project again in PHP Report Maker (not PHPMaker) and click [Tools] -> [Compatibility Properties], you should see that PHPMaker has changed some settings for compatibility:

  1. The project name has been set as the same as that of PHPMaker project,
  2. [Enable compatibility properties] is enabled,
  3. The file names of the shared files has been setup. If they are not correct, enter the file name of the header, footer, login, logout and default pages in your PHPMaker project.

 

Click [OK] to save.

3. PHP Script Generation

Go to the [Generate] tab, select the same [Application root folder] and [Destination folder] as in your PHPMaker project. Click the [Generate] button and PHP Report Maker will generate the required PHP scripts automatically.

4. Running the PHP Application

Run your existing PHP application with your browser. If use security and you have not logged in, you'll be redirected to the login page, If your PHPMaker project uses security, you should find yourself been redirected to the login page from the PHPMaker project.

Login so you can browse the existing PHPMaker pages.

Now click the new links in the menu to view the reports. You'll be redirected to the default report you specified in your PHP Report Maker project without the need to login again.

Check the User ID security or User Level security by browsing the reports and you'll find that it works as expected.

 

 

 ©2002-2017 e.World Technology Ltd. All rights reserved.