2013-03-12 76 views
0

我陷入困境。我需要用Twig重製一個網站。但我無法實現我的xajax庫工作。在Twig之前它工作得很完美,但現在我想我正在調用xajax變量不正確。所以我會展示一些代碼。我正在做登錄頁面。枝條和Xajax執行

PHP頭:

global $command; 
global $xajax; 
<!DOCTYPE html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>site name :: </title> 
$xajax->printJavascript("/library/xajax"); 

樹枝頭(header.tpl):

{{command}} //this should be global variable 
{{xajax}} //this should be global variable 
<html> 
    <head> 


     <script type="text/javascript" src="/library/jquery/jquery-1.7.1.min.js"></script> 

     {{ xajax.printJavascript("/library/xajax") }} //this should be something like this in php header -> $xajax->printJavascript("/library/xajax"); 

     <title> :: {{pageName}} :: Marius page</title>   
     <link rel="stylesheet" type="text/css" href="/includes/ui/default/css/styles.css"> 

    </head> 
    <body> 

這是我的頁面控制器:

try { 
    // specify where to look for templates 
    $loader = new Twig_Loader_Filesystem('includes/ui/default/'); 

    // initialize Twig environment 
    $twig = new Twig_Environment($loader); 

    $twig->addGlobal('xajax', $xajax); 

    // load template 
    $template = $twig->loadTemplate('login.tpl'); 

    if (!isset($_SESSION['currentuser'])) { 
    if ($_SERVER['REQUEST_URI'] != '/login') { 
     header("Location: /login"); 
    } 
} 

    $app = $_SERVER['REQUEST_URI']; 
    echo $template->render(array(  
    'url' => $app , 
    'pageName' => 'Login', 
)); 

} catch (Exception $e) { 
    die ('ERROR: ' . $e->getMessage()); 
} 

這是登錄查看文件,它是與php和Twig一樣,只有兩個全局變量在php中被調用,這個是在login.tpl

{{command}} //this should be global variable global $command 
{{xajax}} //this should be global variable global $xajax 

{% include 'include/header.tpl' %} 

    <header> 

     <h1>Wellcome,</h1> 
     <h3>this is Marius <em>Twig</em> page!</h3> 

    </header> 
    {% include 'include/navigation.tpl' %} 
    <h2>Login</h2> 



    <form action="" id="loginform"> 



        <p>Please enter your login information.</p> 


        <!-- TEXTBOXES --> 
        <label>Username</label><br /> 
        <input name="username" type="text" class="text large required" id="username" /> 
        <br /> 

        <div class="clearfix">&nbsp;</div 

        ><label>Password</label><br /> 
        <input name="password" type="password" class="text large required" id="password" /> 
        <br /> 

        <div class="clearfix">&nbsp;</div> 

       <p> 
        <input name="btnLogin" type="button" class="submit" id="btnLogin" value="LOGIN" onclick=" xajax_login(xajax.getFormValues('loginform'));" /> 

        <input type="checkbox" class="checkbox" id="cbdemo2" /> 
        <label for="cbdemo2">Remember Me</label> 
        <div id="loginresult" style="text-align:center; color:#000; text-shadow: #FFF 1px 1px 1px"></div> 

       </p> 
      </form> 


    </body> 
</html> 

而現在,當我點擊登錄按鈕,瀏覽器控制檯給我一個錯誤:

ReferenceError: xajax_login is not defined 
xajax_login(xajax.getFormValues('loginform')); 

所以,我認爲這是與調用xajax的庫中的問題,我在這個模板引擎混淆(嫩枝)..

回答

0

在你的頁面控制器

$ twig-> addGlobal( 'xajaxjs',$ xajax-> printJavascript( 「/庫/ xajax的」));

而在你的頭模板

{{xajaxjs}}