Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2013, 08:44
Avatar de nanotime
nanotime
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cd. Guayana
Mensajes: 145
Antigüedad: 13 años, 1 mes
Puntos: 6
Pregunta Duda con pages en bolt-cms y herencia en twig

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
  1. <!doctype html>
  2.  <html lang="es">
  3.  <head>
  4.     <meta charset="UTF-8">
  5.     <title> {% if record.title is defined %}{{ record.title|striptags }} | {% endif %} {{ app.config.general.sitename }}</title>
  6.     <script src="{{ paths.theme }}javascripts/custom.modernizr.js"></script>
  7.     <link rel="stylesheet" href="{{ paths.theme }}stylesheets/app.css">
  8.     <link rel="stylesheet" href="{{ paths.theme }}stylesheets/base.css">
  9.     <link rel="stylesheet" href="{{ paths.theme }}stylesheets/font-awesome.min.css">
  10.  </head>
  11.  <body>
  12.     <div class="row">
  13.         <div class="small-12 colums">
  14.             {% block header %}{% endblock %}
  15.         </div>
  16.         {% block sidebar %}{% endblock %}
  17.        
  18.         <div class="small-12 small-centered colums">
  19.                 {% block post %}
  20.                     <div class="entry-post">
  21.                         {% setcontent records = 'entries/latest/2' allowpaging %}
  22.                         {% for record in records %}
  23.                             <hgroup class="titles">
  24.                                 <h1><a href="{{ record.link }}">{{ record.title }}</a></h1>
  25.                                 <h3>{{ content.datecreated|date('D, d M Y ') }}</h3>
  26.                             </hgroup>
  27.  
  28.                             {% if record.video is not empty %}
  29.                                 {{ record.video.responsive }}
  30.                             {% else %}
  31.                                 <a href="{{ image(record.image) }}"><img src="{{ thumbnail(record.image, 400, 260) }}"></a>
  32.                             {% endif %}
  33.  
  34.                             {% if record.teaser %}
  35.                                 {{ record.teaser }}
  36.                             {% endif %}
  37.                             <span class="more"><a href="{{ record.link }}">Leer más <i class="icon-caret-right "></i></a></span>
  38.                         {% endfor %}
  39.                         {{ pager() }}
  40.                     {% endblock %}
  41.                 </div>
  42.             </div>
  43.         </div>
  44.  
  45.     {% block footer %}{% endblock %}

El index:

Código HTML:
Ver original
  1. {% extends 'base.twig' %}
  2.  
  3. {% block header %}
  4.     <a href="{{ paths.root }}">
  5.         <div id="bug-head"></div>
  6.     </a>
  7. {% endblock %}
  8.  
  9. {% block sidebar %}
  10.     <div id="sidebar-nav">
  11.         <ul>
  12.             <li><a href="#"><i class="icon-group icon-3x"></i> </a></li>
  13.             <li><a href="#"><i class="icon-align-justify icon-3x"></i> </a></li>
  14.             <li><a href="#"><i class="icon-calendar icon-3x"></i> </a></li>
  15.         </ul>
  16.     </div>
  17. {% endblock %}
  18.  
  19. {% block footer %}
  20.     <div id="footer">
  21.         <div class="row">
  22.             <div class="small-12 colums ">
  23.                 <div class="footer">
  24.                     <ul>
  25.                         <li><i class="icon-html5 icon-3x"></i></li>
  26.                         <li><i class="icon-css3 icon-3x"></i></li>
  27.                     </ul>
  28.                 </div>
  29.                 <div class="footer">
  30.                     <hgroup>
  31.                         <h3>El Microkernel:</h3>
  32.                         <p>Los comentarios aquí expuestos son responsabilidad de quienes los sostienen</p>
  33.                     </hgroup>
  34.                 </div>
  35.                 <div class="footer">
  36.                     <ul>
  37.                         <li><a href="#"><i class="icon-google-plus icon-3x"></i></a></li>
  38.                         <li><a href="#"><i class="icon-twitter icon-3x"></i></a></li>
  39.                     </ul>
  40.                 </div>
  41.             </div>
  42.         </div>
  43.     </div>
  44. {% 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
  1. {% extends 'index.twig' %}
  2. {% setcontent page = "page/1" %}
  3. <div class="row">
  4.     <div class="small-8 small-centered colums">
  5.         <div class="page">
  6.             <section>
  7.                 <article>
  8.                     <header>
  9.                         <img src="image({{ page.image }})">
  10.                         <hgrpup>
  11.                             <h1>{{ page.title }}</h1>
  12.                         </hgrpup>
  13.                     </header>
  14.                     {{ page.body }}
  15.                 </article>
  16.             </section>
  17.         </div>
  18.     </div>
  19. </div>

Gracias a cualquiera por la ayuda o cualquier planteamiento que pueda probar desde ya