【问题标题】:How to add a require_once('file.php') statement in twig templates?如何在树枝模板中添加 require_once('file.php') 语句?
【发布时间】:2012-04-23 08:36:10
【问题描述】:

我是这个 symfony2 和 twig 的新手,所以我不是很熟悉。 我需要将 require_once(file.php) 添加到 mytemplate.html.twig 中,但我只是不知道该怎么做!! :S
问题是我必须在使用 symfony2 开发的网站上添加一个社交滑块。
该插件的要求是添加 require_once(file.php) 语句,所以关于如何做到这一点的任何想法? :S 这是文件.php

require_once(dirname(__FILE__) . '/common.inc.php');


DEFINE('FBLB_DEMO',true);

function fblb_slider()
{
//print_r($_REQUEST);
global $fblb_preview_options;
if (isset($_REQUEST['Preset']) && FBLB_DEMO===true && FBLB_CONFIG===0)
{
    require(dirname(__FILE__) . '/fblbconfig.inc.php');
    require_once(dirname(__FILE__) . '/config.php');
    $fblb_preview_options = array_merge((array)$fblb_options,    (array)$FBLB_Presets[$_GET['Preset']]['Options']);
}
if (isset($_REQUEST['preview']) && (FBLB_CONFIG===1 || FBLB_DEMO===true))
{
    $options = $fblb_preview_options;
}
else
{
    require_once(dirname(__FILE__) . '/config.php');
    $options = $fblb_options;
    if($options['DisableByGetParamN'] && $options['DisableByGetParamV'] && $_GET[$options['DisableByGetParamN']]==$options['DisableByGetParamV'])
    {
        return;
    }
}
if ($options['Enable'] == 1 && $options['FacebookPageURL'])
{
    require_once(dirname(__FILE__) . '/fblb_slider.php');
}
if ($options['TW_Enable'] == 1 && $options['TW_Username'])
{
    require_once(dirname(__FILE__) . '/fblb_tw_slider.php');
}
if ($options['GP_Enable'] == 1 && $options['GP_PageID'])
{
    require_once(dirname(__FILE__) . '/fblb_gp_slider.php');
}
if ($options['YT_Enable'] == 1 && $options['YT_Channel'])
{
    require_once(dirname(__FILE__) . '/fblb_yt_slider.php');
}
if ($options['LI_Enable'])
{
    require_once(dirname(__FILE__) . '/fblb_li_slider.php');
}
}
fblb_slider();

【问题讨论】:

  • 那么滑块的代码是什么?它是一个复杂的脚本还是只是带有几个 php 变量的 html?
  • 滑块提供了很多 php 文件,但我只需要为单个 php 文件添加 require_once 即可将滑块添加到网站
  • 顺便说一句,我应该需要的脚本有很多要求和一些功能

标签: php symfony twig require-once


【解决方案1】:

好吧,伙计们,我解决了! 首先我必须创建树枝扩展>_>
我遵循本指南http://www.solidwebcode.com/web-development/twig-extensions-symfony-2/ 或西班牙语版http://facultia.com/blog/2011/08/08/extensiones-personalizadas-twig-proyectos-symfony2/
我用过

Twig_Function_Method($this, 'your_method_name')  

而不是过滤器,效果很好!之后我只是授予脚本执行权限,就是这样 =D !!在树枝模板中,您可以像这样使用您的方法

{{ your_method_name(your_params) }}

感谢所有试图提供帮助的人!!! =D

【讨论】:

  • 能否给出示例代码?我需要同样的东西——在 twig 模板中调用 PHP 的 require_once,我不知道如何实现这个
  • 嗯,你需要一个树枝扩展,试试指南,如果你不能,我会在这里发布代码。
【解决方案2】:

简短回答:您不能在 twig 模板中包含 PHP 代码。

我没有详细查看您发布的代码,但您可能希望使用嵌入式控制器来包装您的滑块。

仔细阅读:

http://symfony.com/doc/current/book/templating.html

尤其是关于嵌入式控制器的部分。由您的嵌入式控制器决定是否包含 myfile.php 文件,捕获滑块生成的 html/js 代码(我假设它会这样做),然后返回它。

【讨论】:

  • 谢谢,但我使用了树枝扩展。问题是关于它的官方文档并不详细,所以我不得不寻找外部指南 xD 但一切都运行良好!
猜你喜欢
  • 2013-08-07
  • 1970-01-01
  • 2012-07-27
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多