Песочница на ветке не работает для меня - PullRequest
1 голос
/ 06 марта 2012

Игра с шаблонами веток (не частью Symfony, в CodeIgniter), и не похоже, что я могу заставить глобальную песочницу работать правильно. Я почти уверен, что делаю что-то глупое, но я действительно не вижу этого.

Функции для работы ветки:

    public function twig_setup($configs = NULL)
{
    Twig_Autoloader::register();
    $env = array(
        'cache' => config_item('cache_dir'),
        'strict_variables' => TRUE,
        'auto_reload' => TRUE,
        'extension' => 'php',
        'filesystem' => NULL
    );
    if (!is_null($configs))
    {
        $env = array_merge($env, $configs);
    }
    $this->set_extension($env['extension']);

    if (is_null($env['filesystem']))
    {
        $env['filesystem'] = VIEWPATH;  
    }
    else
    {
        $env['filesystem'] = VIEWPATH .'/'. ltrim($env['filesystem'],'/');
    }

    $this->set_filesystem($env['filesystem']);

    // These two things should not get set to the environment
    unset($env['extension']);
    unset($env['filesystem']);

    $this->set_environment($env);
}   
    public function set_sandbox($tags, $filters, $methods, $properties, $functions, $is_global = TRUE)
    {
    $user_policy = new Twig_Sandbox_SecurityPolicy($tags, $filters, $methods, $properties, $functions);
    $user_sandbox = new Twig_Extension_Sandbox($user_policy, $is_global);

    $this->twig->addExtension($user_sandbox);
}

    public function disable_logic()
{
    $tags       = array('for', 'block', 'include');
    $filters    = array();
    $methods    = array();
    $properties = array();
    $functions  = array('parent', 'block');

    $this->set_sandbox($tags, $filters, $methods, $properties, $functions);         
}

Использование:

 $twig = new TwigThing();
 $twig->twig_setup();
 $twig->disable_logic();

Теперь, когда я отображаю шаблон, я не могу использовать что-то вроде raw или url_encode

 {{ my_var|url_encode }}

Это должно вывести ошибку или что-то в этом роде, но это просто кодирует переменную ... что я здесь не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...