Bueno, pensaba ponerlo en el foro de HTML, pero la verdad es que no sé cuantos por allá hayan tenido contacto con twig y me imaginé que por acá tal vez mas gente lo haya tenido.
Bien, eso es lo de menos, lo que tengo entre manos es simplemente la implementación de un "page" en un cms, Bolt. La cuestión es que por mas que busco no sé como trata bolt exactamente las páginas, sé como definir listas de ellas y usarlas en las bases, pero lo que necesito acá es crear una plantilla para páginas que voy a rellenar desde el propio cms ¿Cuál es el problema? Pues que estoy usando las herencias de twig y los bloques.
Bien, tengo definida una "base.twig" y un "index.twig" que hereda y rellena todos los bloques. Obviamente en la base determino donde estarán los bloques y todo eso, pero no puedo poner un bloque "pages" ahí porque no quiero que se vean las páginas a menos que se clickee, por ejemplo, en el botón "about" y ahí es donde entra el problema... cree otro .twig y le extendí index para tomar todos los elementos que necesito (importar los estilos, los scripts) y tuve que crear un bloque "pages" porque sino era de esperarse un error (lo probé, sin block, lanza un fatal) pero cuando asigno la página y la relleno, no lanza error, simplemente me muestra mi web, el home... nada más, osea que no está haciendo nada o está rellenando el block y todo eso pero no está mostrándolo porque no está definido en ninguna parte.
De todos modos les voy dejando los trozos de código (que no soy un experto, estas son mis aproximaciones apenas):
El base: Nota: obvié los scripts para ahorrar líneas y si hay cosas que pueda hacer para mejorar ese template, agradezco cualquier crítica constructiva.
Código HTML:
Ver original<!doctype html>
<title> {% if record.title is defined %}{{ record.title|striptags }} | {% endif %} {{ app.config.general.sitename }}
</title> <script src="{{ paths.theme }}javascripts/custom.modernizr.js"></script> <link rel="stylesheet" href="{{ paths.theme }}stylesheets/app.css"> <link rel="stylesheet" href="{{ paths.theme }}stylesheets/base.css"> <link rel="stylesheet" href="{{ paths.theme }}stylesheets/font-awesome.min.css"> <div class="small-12 colums"> {% block header %}{% endblock %}
{% block sidebar %}{% endblock %}
<div class="small-12 small-centered colums"> {% block post %}
{% setcontent records = 'entries/latest/2' allowpaging %}
{% for record in records %}
<h1><a href="{{ record.link }}">{{ record.title }}
</a></h1> <h3>{{ content.datecreated|date('D, d M Y ') }}
</h3>
{% if record.video is not empty %}
{{ record.video.responsive }}
{% else %}
<a href="{{ image(record.image) }}"><img src="{{ thumbnail(record.image, 400, 260) }}"></a> {% endif %}
{% if record.teaser %}
{{ record.teaser }}
{% endif %}
<span class="more"><a href="{{ record.link }}">Leer más
<i class="icon-caret-right "></i></a></span> {% endfor %}
{{ pager() }}
{% endblock %}
{% block footer %}{% endblock %}
El index:
Código HTML:
Ver original{% extends 'base.twig' %}
{% block header %}
<a href="{{ paths.root }}"> {% endblock %}
{% block sidebar %}
<li><a href="#"><i class="icon-group icon-3x"></i> </a></li> <li><a href="#"><i class="icon-align-justify icon-3x"></i> </a></li> <li><a href="#"><i class="icon-calendar icon-3x"></i> </a></li> {% endblock %}
{% block footer %}
<div class="small-12 colums "> <li><i class="icon-html5 icon-3x"></i></li> <li><i class="icon-css3 icon-3x"></i></li> <p>Los comentarios aquí expuestos son responsabilidad de quienes los sostienen
</p> <li><a href="#"><i class="icon-google-plus icon-3x"></i></a></li> <li><a href="#"><i class="icon-twitter icon-3x"></i></a></li> {% endblock %}
El "page":
Nota: actualmente no tengo ningún block y está en "fase experimental", osea, estoy haciendo chorradas para descartar posibles soluciones xD
Código HTML:
Ver original{% extends 'index.twig' %}
{% setcontent page = "page/1" %}
<div class="small-8 small-centered colums"> <img src="image({{ page.image }})"> <hgrpup>
<h1>{{ page.title }}
</h1> </hgrpup>
{{ page.body }}
Gracias a cualquiera por la ayuda o cualquier planteamiento que pueda probar desde ya