7 Stimmen

Twig rendert keine HTML-Tags

Bitte ich würde gerne wissen, warum Twig die Ausgabe so ausspuckt: http://twig.sensiolabs.org/doc/tags/filter.html

Daran arbeite ich:

class MyClass {

  public function loadViewWithContent($name, $variables) {
    $twig = load_twig();
    // schau im Seitenverzeichnis
    $page = getdir("pages") . $name . '.html';
    $variables['vars'] = $this->menuItem();
    if(file_exists($page)) {
      print $twig->render($name . '.html', $variables);
    }
  }

  public function menuItem() {
    $loginmenu = array(
      'text' => 'Login',
      'path' => '/login',
      'attributes' => array(
        'target' => '',
        'title' => 'Login'
      )
    );   
    $menus = array(
      'primary_menu' => array(
        'login' => $this->theme_link($loginmenu),
      ),
    );

    return $menus;
  }

  public function theme_link($menu) {

    if(is_array($menu)) {
      $output = '' . $menu['text'] . '';
    }
    return $output;
  }

}

$clazz = new MyClass();
$clazz->loadViewWithContent('home', array());

home.html

{{ vars.primary_menu.login }}

Zeigt [Login](stackoverflow.com/login) im Browser an

Warum werden die HTML-Tags nicht gerendert, wenn sie im Browser angezeigt werden?

Vielen Dank für die Hilfe.

18voto

Louis Huppenbauer Punkte 3709

Autoescape ist wahrscheinlich aktiv. Du möchtest Twig möglicherweise sagen, dass login ein "sicherer" Wert ist.

{{ vars.primary_menu.login|raw }}

oder

{% autoescape false %}
    {{ vars.primary_menu.login }}
{% endautoescape %}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X