concur/twig-resource

Resource handling for Twig templates

dev-master 2017-09-22 02:00 UTC

This package is not auto-updated.

Last update: 2024-06-12 14:27:02 UTC


README

Resource handling for Twig templates

Example Template

index.php

$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader);
$twig->addExtension ( new Concur\Resource\Twig () );
echo $twig->render('home.twig');

base.twig

<!DOCTYPE html>
<html lang="en">
<head>
{% resource CSS '/css/bootstrap.min.css' %}
{% resource CSS '/css/bootstrap-theme.min.css' %}
{% resource JS '/js/jquery.min.js' %}
{% resource JS '/js/bootstrap.min.js' %}

{% for c in ResourceList('CSS')  %}
  <link rel="stylesheet" type="text/css" href="{{ c.name }}" />
{% endfor %}  
</head>
<body>
{% block body %}
{% endblock %}

{% for s in ResourceList('JS') %}
  <script src="{{ s.name }}" ></script>
{% endfor %}
</body>
</html>

home.twig

{% extends "base.twig" %}
{% resource CSS '/css/home.css' %}
{% resource JS '/js/home.js' %}

{% block body %}
<div class="container">
  HOME PAGE
</div>
{% endblock %}

render

<!DOCTYPE html>
<html lang="en">
<head>
  <link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css" />
  <link rel="stylesheet" type="text/css" href="/css/bootstrap-theme.min.css" />
  <link rel="stylesheet" type="text/css" href="/css/home.css" /> 
</head>
<body>
  <div class="container">
    HOME PAGE
  </div>

  <script src="/js/jquery.min.js" ></script>
  <script src="/js/bootstrap.min.js" ></script>
  <script src="/js/home.js" ></script>
</body>
</html>