Re: smarty

From: Date: Wed, 07 Apr 2004 17:50:02 +0000
Subject: Re: smarty
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-182683@lists.php.net to get a copy of this message
John W. Holmes said: > From: "Chris de Vidal" <chris@devidal.tv> >> Kelly Hallman said: >> > Going even one step further (the beauty of Smarty: always another > level), >> > just extend the Smarty object itself. Then, instead of making all your >> > templates includes other templates (such as a header or a footer), you > can >> > make your overall page be a template, and the extended Smarty object >> can >> > be given extra functionality to control the page: >> > >> > {* MyPage.tpl -- Smarty template for the entire page *} >> > ...header... >> > {include file=$content} >> > ...footer... >> > >> > // mypage.php -- extended Smarty object >> > class MyPage extends Smarty { >> > var $tmpl = 'MyPage.tpl'; >> > function render($x) { >> > $this->assign('content',$x); >> > $this->display($this->tmpl); } } >> > >> > // actualphpcode.php -- called by the browser >> > $pt = new MyPage; >> > $pt->render('pagecontent.tpl'); >> >> Sorry, I'm feeling better now but still don't understand what you're >> telling me/us. Could you please expound? What functionality does this >> afford? > > If I can take first shot, since this was posted to the list... :) No!!! Well, OK. :) > It's basically a wrapper around Smarty to automatically load the > header-content-footer template and dynamically fill in the content based > on what's passed to render. So, displaying all of your different pages > would be as simple as: > > $pt = new MyPage; > $pt->render('contact.tpl'); > > $pt ->render('prices.tpl'); > > $pt->render('index.tpl'); > > etc... The "wrapper" automatically loads the "master" template with the > header and footer, and then replaces the {content} tag with the content of > the appropriate template that render() was passed. > > Just one method of many. If I'm interpreting it right, that is. :) Ahh OK, that makes sense, 'cept now you've introduced new confusion (sorry, I must be dense today). What's with loading all of your pages (contact/prices/index) in one page? Or are you saying: $pt = new MyPage; $pt->render('contact.tpl'); OR $pt = new MyPage; $pt ->render('prices.tpl'); OR $pt = new MyPage; $pt->render('index.tpl'); I can see the benefit of this method if that's what you mean. Thanks for helping clarify it, /dev/idal

« previous php.general (#182683) next »