God bless the day I made some PHPMaker Extensions! Yes, this extensions are working only for PHPMaker 9.2.0 as this is the latest version I have been using until I was writing this article. The good news is: if you are a member of ILovePHPMaker.com, then you certainly deserve it. Please you use it for personal usage only!
So what are the Extensions I made? Well, there are eleven extensions that I published today, at June 12, 2013 and one extension that I created on July 13, 2013 (updated). They are as follow:
- MasinoGraphical
- MasinoCAPTCHA
- MasinoLogin
- MasinoForgotPwd
- MasinoRegister
- MasinoChangePwd
- MasinoSearchPanel
- MasinoFixedWidthSite
- MasinoPreviewRow
- MasinoHeaderFooter
- MasinoDetectChanges
- MasinoVisitorStatistics (new since July 13, 2013)
At the moment, I hope you can recognize them easily from their name. I will write some articles to explain one by one of them. However, you may use it without have to wait those articles though. 🙂
The Backgrounds
Okay, here is the background why then I finally create those extensions. It's time to change the method how to make web developer's life become easier from day to day. The first thing that often bothering my mind is: I don't want to touch the original PHPMaker Template and Extension files anymore, each time the latest version is released. Also, I want to always keep the original Template and Extension files which sometimes they are useful when I want to generate the web applications that do not need so many customization in it. The main idea is, how to keep maintaining the modified Template and Extension files are separated from the original ones. That's all!
In addition, I have been writing so many customization for PHPMaker Template including the Extensions that created by PHPMaker. Most of them must involve the PHPMaker Extensions. As we have already known, when we customize the Extension files, then those zipped Extension files must be placed back into the extensions sub-folder of PHPMaker installation. In other words, you may have some original Extensions (those that you have not customized, yet), and the others are the modified versions (those that you have customized) also will replace the original ones. When you get the latest version from PHPMaker, then you have to customize the PHPMaker Template and PHPMaker Extensions too. This is not a good situation.
Perhaps there is no problem for PHPMaker Template since we can create the separated Template from the original one. But the same way cannot be implemented for the Extension for the reasons I mentioned in the previous paragraph.
So, I decided to move all out the customization that I had made from the PHPMaker Template and Extensions file that provided by PHPMaker to the Extensions I made. All of the Extensions actually can use the customization I made, either in PHPMaker Template or Extension files. In other words, let's do the customization only from the Extensions side, and keep the original PHPMaker Template and Extension files are clean.
The Challenges
The first difficult part that I faced when I was trying to write the PHPMaker Extensions is the lack of information how to create them step-by-step. There are no documentation provided by PHPMaker. Only a small of piece information provided in the Help file. However, this should be a trigger for me (and also for you) to start writing the Extensions by ourselves!
The next most difficult part when I was writing the extensions is how to merge some customization which have the similar goal and located in the same files into one extension. In other words, I could not create some extensions that customizing the same files. If I did it, then the previous extension will be replaced by the latest ones that executed by PHPMaker. So I have to merge them into one extension. That's why you will see some extensions have so many code in it, and the others won't.
Another difficult part is how to customize the non-core (the core I meant are: list, add, edit, delete, and update) of Template files, such as for ewshared.php, phpcommon-scripts.php, phpfn.php, etc. The non-core files are usually had the certian Class or Functions that need to be customized from the Extensions did. There are some tricky technique I finally found by myself to solve the issue regarding this. I don't know whether this is the best one, but it's actually working! I hope someday PHPMaker has the solution for this easily by adding the tutorial in their Help file.
The last thing that you need to know is how then I have to place some Extensions in the same type with the similar Extensions which already provided by PHPMaker. For example, MasinoFixedWidthSite extension is placed in the Scrolling Table type with ScrollingTable extension. Since the main goal of both extensions are the same, then I have to place it in the same type in order to prevent user enabling both of them. In this case, you have to decide to use one of them, not both of them!
The Most Important Things
As the backgrounds and the main idea I mentioned earlier, then you have to make sure first not to implement any customization in the original PHPMaker Template and Extension files before enable or activate the Extensions I created. This is the first rule you have to follow from now on.
In other words, if you want to enable the Extensions that I created from Tools -> Extensions menu of PHPMaker, then make sure you are using the original PHPMaker Template and Extensions files. Do not use, I repeat: do not use my Extensions together with the modified Template nor Extension files you have. You have to always remember that rule, otherwise you will get unpredicted results!
The last but not least, make sure also you are using PHPMaker 9.2.0 as I created the Extensions only for version 9.2.0. If you use them for the older or different version of PHPMaker, then they may not be working properly in most cases. Just for your information, there are some different code between 9.2.0 and the older version (even they have the same major version; 9). So, the best approach is to create the separated Extensions for the seperate version of PHPMaker. But, at this moment, I won't accomadate for the older version of PHPMaker. So, it's time for you to upgrade your PHPMaker to the latest version.
So, What Next?
As I mentioned before, if you are a member of this site, then you deserve it. Go to this page. You will see there are eleven twelve Extensions at the moment. This may subject to change at any time, either the quantity or the last updated of them. Download and try it by yourself now! You may use all of them or just activate one by one. But, I strongly recommend you to use all of them to get the best results as I tested so far there are no problem.
Especially for MasinoFixedWidthSite and MasinoHeaderFooter, those both Extensions are the main of the customization I made so far. Most of customization I have been doing have been included in both of them. So, make sure you have enabled both of them also to get the best results. You will see how fast you develop a web application or even many web applications by using these Extensions. No need to touch the original Template and Extension files anymore, although in order to create those Extensions, I have to customize them first ... hahahaha... LoL. 😀
If you seriously want to use this extension in your PHPMaker project, then I strongly recommend you to read first this article. It is important, since there are some technical information that you need to know.
Sometimes, in the future, I have to update some or even all of Extensions immediately for some reasons. If you find anything that should be fixed, then please report it to me, so I will make sure they are always working properly and update the Extensions in this site. I also will let you know the special flag in the Last Updated download section in this site. I hope you can see which one the latest that I have just customized from that section. The version is actually cannot give you the idea about latest customization I made, since it will only being used for compatibility reason with PHPMaker application.
Do I have a Demo?
Yes! Picture will tell you a thousand words, and so will the video. Enjoy this video to give you the idea how the Extensions will make your life becomes easier than ever! Or, if you want to test-drive it, then simply also read this post.
I'm really sure that you're gonna love them. So, have the nice PHPMaker Extensions, everyone! 🙂
Thank you. I hope some of them work also for 8.x. I didnt upgrade…
I don’t think so, as I created those Extensions and tested it working fine only for version 9.2.0. I strongly recommend you to upgrade to 9.2.0.
No $ to upgrade to 9.2.0 atm :(, so I will continue with the licensed old 8.0. I still have some questions to ask you, why you dont make a forum? It will be easier to post. Btw, I changed the version of your files to 8.0 but still is not working. At least I tried to see if is producing something. Nevertheless, no errors but nothing generated.
As I mentioned several times, those Extensions won’t work on the older version, moreover for 8.0. Regarding forum, sorry, I would love to use Comments section in each article.
Masino,
Upgraded to 9.2 and tried to implement all your extensions, but I can’t seem to generate a project. I continuously get the following error:
PHPMaker: Generate userfn page error
PHPMaker (ewExuserfn): Microsoft JScript runtime error
(1A8), line 31
Description: Object required
Any ideas????
Thanks.
I suggest you to follow this article in order to implement all the extensions properly.