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

Reply via email to