Library is not complicated, it easily works v1.1(2.0.6 I did not use yet). It was necessary to rewrite the table to div. And put them in the template file. User do not need to edit the php files in the future.
I'm an author of OPT and I've registered here to help you choosing by answering some questions about this library.
Rafik89 wrote about the older library version, 1.x which is not developed anymore. Currently, the entire development focuses on 2.0 and 2.1 branches which have been redesigned from scratch. The library is very different from Smarty and most of the template engines in many areas. I wanted to create a template engine that does not reinvent the wheel by putting PHP into curly brackets (which makes absolutely no sense to me), but actually helps template designers.
I use the library in all my projects, and it is itself very popular in my country, where there are several companies that develop in it. Outside it, it is present for much shorter time and this is why many programmers have not heard about it.
The key issue when choosing OPT is the different template writing philosophy. Smarty is in fact a "PHP in curly brackets", so it brings almost nothing new and you solve all the problems in the old fashion. This can be good for new programmers, but it can be less efficient and much harder to maintain, because both in PHP and Smarty you have to hard-code most of the things directly in the templates. OPT language is XML-based, so it automatically validates the output HTML code syntax against well-formedness (properly closed tags etc.) and provides some tools that simplify managing HTML tags. The language itself is declarative which means that you define what you want to get, not - how it must be implemented. The implementation details are added automatically by OPT during the template compilation. A simple example:
In Smarty/PHP you make lists by saying: "OK, here I want to have a list generated by iterating through an array taken from an element of a nested list of this name, if the number of elements is 0, there must be generated a message, and before we enter the loop, we set a temporary variable to false, which is resetted to true after the first iteration, and once it is true, we display a separator between the list elements. The element data are stored as a PHP array."
In OPT you say: "OK, I want a list here nested in another list, and the elements must be separated with a comma."
It can be a bit confusing at the first time, but once we get used to it, it is very nice, and I think it could be easier to explain it to people who have little knowledge in PHP.
Technical details:
- OPT 2.0 requires PHP 5.2 or newer
- OPT 2.1 requires PHP 5.3 or newer
- Performance: faster than Smarty, comparable to pure PHP, and sometimes faster - some problems can be resolved during template compilation, and the library is not limited by the output PHP code readability, so it can use faster language constructs.
When it comes to library API, it follows the most modern trends in PHP development. There is no "class for everything" known from Smarty and most of the template engines, but smaller, specialized classes, and interfaces that allow to extend it. I've been working with Extreme-Fusion authors for a while and they showed me some CMS-related problems which allowed me to add some stuff useful for Content Management Systems. They are present in OPT 2.1.
The library has a complete English user and template designer manual, as well as several tutorials. If you are interested, there is no problem to provide you some extra support during the implementation, especially concerning template writing strategies, their structure and several useful patterns. I can also help with an introductory tutorial for Pimped-Fusion users.
Add cache control by default to .htaccess and compression with 'gzip' or 'deflate' mod.
Also another way to improve website loadspeed will be to spread ressources across different domains or subdomains. This could by added as an option to admin panel.
U can add a field for different folders (images/, themes/, includes/, etc.) for wich u can assign different hostnames.
Let's say u want to add an option to serve the "/images" from a diferent location like http://images.yoursite.com to parallelize downloads, the coding will be verry simple, when requesting an image from the "/images" folder to check 1st if there was assigned any hostname for "/images" in admin panel and serve the image form that location } else { server it as before, let's say from ../images instead of http://images.yoursite.com. However this method would require (i guess) to change most of the core file but is verry effective and simple.
Add cache control by default to .htaccess and compression with 'gzip' or 'deflate' mod.
Do you have any experience with that?
I never worked with this kind of caching ;/
Also another way to improve website loadspeed will be to spread ressources across different domains or subdomains. This could by added as an option to admin panel.
U can add a field for different folders (images/, themes/, includes/, etc.) for wich u can assign different hostnames.
Let's say u want to add an option to serve the "/images" from a diferent location like http://images.yoursite.com to parallelize downloads, the coding will be verry simple, when requesting an image from the "/images" folder to check 1st if there was assigned any hostname for "/images" in admin panel and serve the image form that location } else { server it as before, let's say from ../images instead of http://images.yoursite.com. However this method would require (i guess) to change most of the core file but is verry effective and simple.
This idea is interesting too. I'll write a note in my todo list
What cache control does is "tells" to the browser after what period of time browser should check if a file was modified and download it again.
U can read more about cache control here.
Here is an example of how to set cache control.
Code
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType image/x-icon "access plus 1 year"
</IfModule>
Compressing resources like html, css and javascript will reduce significantly the file size, up to 90%. However, some browsers have problems with gZip compression so i recommend testing/using DEFLATE.
Also, more information here.
Here is an example of compression using deflate method.
Anyway, piF is very optimized and is loading very fast than other CMS. slaughter, can inspire from wp-total cache from wordpress CMS, it`s an incredibile plugin, if it will be nice to be ported on piF.
1, It would be nice to also add (Shop ,Commerce, Store) infusion or mod. To me exactly what i need now PLEASE i would be very grateful...
2. another good thing can also be done infusion for announced which can create different Browse Categories notices, and when a user wants to place an ad to be first considered and agreed upon by the administrator.
3. rss parser infusion when any put the (site-link.xml) to show the news on my main news page or another that we like
Pimped Fusion system has everything that most systems do not like downloads system, articles, news, forum, web links, gallery and many infusions i mods that can make a great website. If I think of another will write again
a system that works is an advantage,
and improvement with the new forum icon pictures several themes and other phpfusion programs work, and a new improvement with multiple support contacts several contact options