[PHPTAL] Using PHPTAL with index.php?page=... thing
Anton Andrievskij
x.meglio at gmail.com
Mon Jan 21 12:30:01 CET 2008
Ok, I found some idea about how to solve my problem.
The method is very easy and applicable to use both PHPTAL and PHP CMS engine
technology
described in my first letter (which is question).
The idea is to have only one index.html template with the site layout, and
then to have different
login.html, faq.html, subscribe.html (and so on) layouts to insert into
index.html layout.
Take into account that I do not want to rewrite site layout in all
templates, I want to have it only in index.html.
So I build index.html, and then I build some library with macroses for each
page. I'm planning to use them then
using "metal:use-macro" attribute.
So the steps are:
1. Create index.html template for page layout (navigation, news and so
on) and templates for each page using metal:define-macro for each page
2. Create $template = new PHPTAL("index.html") in your index.php file
and define variables in $template to use to render site's layout
3. Define something like $template->page and use it in metal:use-macro
tag to insert specific page content
4. Create faq.php, login.php and other files so you will add specific
$template->pagespecificvariable1, $template->pagespecificvariable2 (...)
values
5. Use specific variable values in specific macroses.
6. In index.php include specific pageX.php (index.php?page=pageX). So
your pageX will add specific variable values to the $template
7. Render page using $template object
Any comments may help to improve the idea.
Anton
On Jan 21, 2008 1:07 PM, Levi Stanley <levi at eneservices.com> wrote:
>
>
> Actually, phptal should only be used for the presentation of the data.
> >
> > your controller and models, should do most of the work you want.
> >
> > Here is a snippet of my index.php aka navigation controller:
> >
> > *...
> > * if (isset($__xml_attributes['redirect'])){
> > print header("Location:
> > {$__xml_attributes['redirect']}");
> > exit;
> > } else if (isset($__xml_attributes['execute'])) {
> > $benchmark->start('loading-sub-controller-section');
> >
> > include_once("controllers/{$__xml_attributes['execute']}.php");
> > $benchmark->stop('loading-sub-controller-section');
> > }
> > *...
> >
> > *Nevermind the benchmark stuff, I like to know how long everything takes
> > to run.
> >
> >
> > On Jan 21, 2008 5:27 AM, Anton Andrievskij < x.meglio at gmail.com> wrote:
> >
> > > Thanks you; I got your idea, but it seems that I can't execute PHP
> > > scripts from templates using PHPTAL (?)
> > >
> > > Anton
> > >
> > >
> > > On Jan 21, 2008 12:13 PM, Levi Stanley < levi at eneservices.com> wrote:
> > >
> > > > Sorry, forgot to change the email, I was sending this from.
> > > >
> > > > Read below:
> > > >
> > > > ---------- Forwarded message ----------
> > > > Date: Jan 21, 2008 5:08 AM
> > > > Subject: Re: [PHPTAL] Using PHPTAL with index.php?page=... thing
> > > > To: Template Attribute Language for PHP <
> > > > phptal at lists.motion-twin.com>
> > > >
> > > >
> > > > Hmm, kind of sounds like the system I built. I have a
> > > > site-controller.xml file:
> > > >
> > > > <site-controller>
> > > > *...*
> > > > <warning-page use-page="warning-page.xhtml"
> > > > execute="display-page" record-page="true" />
> > > > <send-to template-id="1">
> > > > <page alias="main-page" use-page="main-page.xhtml"
> > > > execute="main-page" record-page="true" />
> > > > <page alias="join-page" use-layout=" join-page.xhtml"
> > > > execute="join-page" record-page="true">
> > > > *...*
> > > > </send-to>
> > > > </site-controller>
> > > >
> > > > My system, I can have multiple templates, identified by the
> > > > template-id, use-page, and use-layout, this just tell me what page view to
> > > > use, and the execute attribute tells me what php file to execute,
> > > > display-page is a generic display script. The record-page attribute,
> > > > defines if I should record traffic information for that page or not.
> > > >
> > > > My directory structure looks like this:
> > > >
> > > > /www/sites/mysite.com/application -- usually
> > > > the controller resides here index.php
> > > > /www/sites/mysite.com/application/controllers -- this houses
> > > > your php code display-page, join-page etc.
> > > > /www/sites/mysite.com/application/views -- this houses
> > > > your views
> > > > /www/sites/mysite.com/application/models -- this houses
> > > > the sites BL objects, etc.
> > > > /www/sites/mysite.com/application/layouts -- This houses
> > > > your layouts, mostly header fooder stuff.
> > > > /www/sites/mysite.com/application/components -- These are
> > > > certain XHTML & javascript items you keep using throughout the site
> > > > /www/sites/mysite.com/cache -- This is
> > > > just the place I keep the code that phptal generates.
> > > > /www/sites/mysite.com/libraries --
> > > > interesting enough, there are libraries that are used for all the sites in
> > > > /www/libraries, however, you can override these libraries in this library,
> > > > this is done this way, so any changes I make for this site, won't break the
> > > > other sites I have that are up and running.
> > > > /www/sites/mysite.com/configurations -- Well in
> > > > my system, I use propel, so I have the site-controller, and the datasource
> > > > information here
> > > >
> > > > I have two kinds of controllers, a navigation controller, and a page
> > > > controller. The navigation controller, handles authentication, and sending
> > > > people from one page to the next, also it has inside of it an access
> > > > handler, so if a page, has resources, it checks to see if you are allowed to
> > > > use those resources, and grants you access or denies you. Needless to say,
> > > > the page controller, can't work without going through the navigation
> > > > controller.
> > > >
> > > > I hope that gives you some ideas.
> > > >
> > > > Best regards,
> > > > Levi
> > > >
> > > > On Jan 21, 2008 4:12 AM, Anton Andrievskij < x.meglio at gmail.com>
> > > > wrote:
> > > >
> > > > > Hi, PHPTAL users.
> > > > >
> > > > > (Sorry for my bad English as I'm from Ukraine)
> > > > >
> > > > > I write this letter to ask about what the best idea about how to
> > > > > use the PHPTAL engine with
> > > > > the standard PHP site engine technology like this:
> > > > >
> > > > > www.mysite.com/index.php?page=login
> > > > > www.mysite.com/index.php?page=faq
> > > > > www.mysite.com/index.php?page=subscrib
> > > > > and so on...
> > > > >
> > > > > I'm going to build index.html template and run it from index.phppage, but then
> > > > > I have different code to be executed on different pages like
> > > > > login.php , faq.php, subscribe.php and so on.
> > > > >
> > > > > So I have to have index.html, login.html, faq.html and
> > > > > subscrib.html templates, but also
> > > > > I want to have index.php, faq.php, subscrib.php pages with some
> > > > > code to be executed.
> > > > >
> > > > > How can I join such things together?
> > > > >
> > > > > I'm really waiting for any answer or advice and any comments may
> > > > > help.
> > > > >
> > > > > Thanks in advance,
> > > > > Anton Andriyevskyy
> > > > > _______________________________________________
> > > > > PHPTAL mailing list
> > > > > PHPTAL at lists.motion-twin.com
> > > > > http://lists.motion-twin.com/mailman/listinfo/phptal
> > > > >
> > > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > PHPTAL mailing list
> > > > PHPTAL at lists.motion-twin.com
> > > > http://lists.motion-twin.com/mailman/listinfo/phptal
> > > >
> > > >
> > >
> > > _______________________________________________
> > > PHPTAL mailing list
> > > PHPTAL at lists.motion-twin.com
> > > http://lists.motion-twin.com/mailman/listinfo/phptal
> > >
> > >
> >
>
> _______________________________________________
> PHPTAL mailing list
> PHPTAL at lists.motion-twin.com
> http://lists.motion-twin.com/mailman/listinfo/phptal
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.motion-twin.com/pipermail/phptal/attachments/20080121/d8728293/attachment.htm
More information about the PHPTAL
mailing list