Momen Zalabany
Momen Zalabany

Reputation: 9007

CMS permalink and templating system how to?

I want to understand how to use templating system and permalinks on php websites :D !..

let me describe my self more,

1.currently i have 20 files each have its own php logic (index.php,wizard.php,search.php etc) ALL use same class's and includes.(install.php include all the required for all class's in my project abd u require_once(install.php) in all files)

i wana remodel my website into.

Analyze URL requested ---> IDENTIFY requested page ---> GET TEMPLATE for THIS PAGE -->MODIFY header(meta) and footer(javascript) ---> add logic ---> display page :D.

can some one put me on right learning track :D !. cuz i hv coded my website fully in oop and made all its content loads dynamically from MYSQL (simple small CMS) but i have no clue how to join template and php into index without repeating my self and create different file for each page in my web ! (each file do different jobs of course like file users.php does login and registration and userprofile etc)

Hope my english wassnt too too bad and u could understand my question :D !

My current approach so far:

Mysql table : page_tbl columns: pagename,LogicFile,templateFile,MetaTag.

index.php?pagename

will check if not already cached or not listed for chacing it will :

Mysql:SELECT * WHERE pagename='$_GET['page']'

loginfiles = cars.php,search.php (will be exploded with , and included) Template files = will be also exploded and modified according to MetaTag. Metatag: Serialized assoc array with ['name']=['value'];

Then i start buffer output , replace template with new descriptions and keywords(auto generated) include logic files include footer.php (which include the scripts)

am i near to correct rout or still far away ? or am did i lose my track and over killing

Upvotes: 2

Views: 507

Answers (2)

Captain Giraffe
Captain Giraffe

Reputation: 14705

If you are unsure whether you want to write your own, or use an existing one.

  • It is going to be a quite possibly very rewarding experience but a very time consuming one to write your own.
  • If you have a task at hand that you need to be solved, use an existing one.

That being said there are plenty of templating systems, smarty being the most long-lived one. You can find a short discussion on 5 popular ones at phpbuilder.

You also have entire Frameworks that you might want to consider. They are more than just a templating system, where database stuff, ajax helpers etc are included. Zend, CakePHP, and Codeigniter being popular ones. You can find comparisons of these at phpframeworks.

Upvotes: 2

Tomasz Kowalczyk
Tomasz Kowalczyk

Reputation: 10467

The best way is to take this route:

  • parse request data
  • determine controller which will be used
  • in controller select layout and template [layout "includes" template, it hold the contents that are common to all pages and template has the request-specific content]
  • in controller also fetch the data from database [MVP way]
  • assign data to array and pass it to the layout, it'll pass the data futher to the template
  • in layout and template use data from that array and construct view
  • pass everything to the browser

This is the way the frameworks work, and it isn't that bad. ;]

Upvotes: 1

Related Questions