Forgot to mention $controller->render() doesn't exist in PHPTAL, so just do the try catch print execute stuff you normally do.
Levi Stanley wrote: > If your controller code is doing something like this: > > <?php > > session_start(); > include_once('MyPHPTAL.php'); > > > $controller = new MyPHPTAL('main-page.xhtml'); > $controller->set('other_variables', 2.23); > $controller->render(); > > ?> > > There shouldn't be a problem at all. > > Best regards, > Levi Stanley > > Mikael Andersson wrote: >> Hi >> >> Discovered this awesome framework a little while ago, really nice! >> >> I have created my own MyPHPTAL class in which I add a couple of >> things to its context (figured that this would be cleaner that >> setting them manually in every php page), works fine except for when >> I try and add a custom Class of mine. >> >> I have this in my constructor (actually the complete class) : >> >> require_once("globals.php"); >> require_once("User.class.php"); >> require_once("PHPTAL.php"); >> >> class MyPHPTAL extends PHPTAL{ >> >> public function __construct($path=false){ >> parent::__construct($path); >> >> if( isset($_SESSION[USER_OBJ]) ){ >> $this->set('user', $_SESSION[USER_OBJ] ); >> $this->set('hasUser', true); >> } >> else{ >> $this->set('hasUser', false); >> } >> >> } >> >> } >> >> The User class: >> >> require_once('UserRole.class.php'); >> require_once('UserStatus.class.php'); >> >> class User { >> public $id; >> public $fName; >> public $lName; >> //cut >> } >> >> When I reference the user object in my template like this: >> >> <div tal:content="user/fName" tal:condition="hasUser">The users >> name</div> >> >> I get the following error: >> >> exception 'PHPTAL_Exception' with message 'Unable to find part >> "fName" in path "fName" with base "object"' in >> C:\wamp\my_includes\PHPTAL\Context.php:357 Stack trace: #0 >> C:\Windows\Temp\tpl_1230913754_1_1_14templatehtaf12aceee0491df97ea1590f2eb17e87.php(80): >> phptal_path(Object(__PHP_Incomplete_Class), 'fName') >> #1 C:\wamp\my_includes\PHPTAL.php(466): >> tpl_1230913754_1_1_14templatehtaf12aceee0491df97ea1590f2eb17e87_page_template(Object(MyPHPTAL), >> Object(PHPTAL_Context)) >> #2 >> C:\Windows\Temp\tpl_1230911056_1_1_14loginhtmlfc12130e5db631fadfdd3a92f0355c5d.php(45): >> PHPTAL->executeMacro('template.html/p...') >> #3 C:\wamp\my_includes\PHPTAL.php(386): >> tpl_1230911056_1_1_14loginhtmlfc12130e5db631fadfdd3a92f0355c5d(Object(MyPHPTAL), >> Object(PHPTAL_Context)) >> #4 C:\wamp\www\login.php(51): PHPTAL->execute() #5 {main} >> >> >> The php page using the MyPHPTAL class is calling session_start() at >> the very top. >> >> Have been googling this and have found some information indicating >> that the session might be started before the User class definition is >> loaded preventing it from properly unserialize the it from the session. >> >> I'm more of a Java developer than a PHP one so I'm hoping that you >> guys can give me some help :) >> >> Many thanks, >> Micke >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> PHPTAL mailing list >> PHPTAL@lists.motion-twin.com >> http://lists.motion-twin.com/mailman/listinfo/phptal >> > _______________________________________________ PHPTAL mailing list PHPTAL@lists.motion-twin.com http://lists.motion-twin.com/mailman/listinfo/phptal