首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Twig和Xajax实现

Twig和Xajax实现
EN

Stack Overflow用户
提问于 2013-03-12 16:42:50
回答 1查看 212关注 0票数 0

我有麻烦了。我需要与Twig重新制作一个网站。但是我无法实现我的xajax库。在Twig之前,它工作得很完美,但现在我认为我称xajax变量是不正确的。因此,我将展示一些代码。我在做登录页。

php header:

代码语言:javascript
运行
复制
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):

代码语言:javascript
运行
复制
{{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> 

这就是我的页面控制器:

代码语言:javascript
运行
复制
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中。

代码语言:javascript
运行
复制
{{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>

现在,当我点击登录按钮时,浏览器控制台给我一个错误:

代码语言:javascript
运行
复制
ReferenceError: xajax_login is not defined
xajax_login(xajax.getFormValues('loginform'));

所以我认为调用xajax库有一个问题,我在这个模板引擎(TWIG)中感到困惑。

EN

回答 1

Stack Overflow用户

发布于 2013-03-12 23:12:33

在您的页面控制器中

$twig->addGlobal( 'xajaxjs',$xajax->printJavascript("/library/xajax") );

在您的标题模板中

{{xajaxjs}}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15356647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档