CONTEXTO:

He leído como mucho Bigote documentación como sea posible, pero no puedo conseguir mi cabeza alrededor de cómo utilizar parciales o incluso si estoy usando el Bigote en la forma correcta.

El código de abajo está funcionando correctamente. Mi problema es que tengo tres Bigote archivos que desea incluir y representar todos a la vez.

Estoy pensando que esto es lo que los parciales son para pero no puedo parecer para que funcione.


PREGUNTAS:

Cómo me gustaría conseguir los parciales de trabajo en este contexto, para que mis tres Bigote archivos se cargan y son todos los que se pasa de los $variable de datos?

Debo usar file_get_contents de esta manera para la plantilla? He visto Bigote funciones empleándose en su lugar, pero no puedo encontrar lo suficientemente extensas documentación para que funcione.


ENV:

Estoy usando la última versión de Bigote de https://github.com/bobthecow/mustache.php

Mis archivos son:
index.php ( abajo )
de la plantilla.bigote
template1.bigote
plantilla2.bigote
class.php


CÓDIGO:

//This is index.php
//Require mustache for our templates
require 'mustache/src/Mustache/Autoloader.php';
Mustache_Autoloader::register();

//Init template engine
$m = new Mustache_Engine;

//Set up our templates
$template   = file_get_contents("template.mustache");

//Include the class which contains all the data and initialise it
include('class.php');
$data = new class();

    //Render the template
print $m->render( $template, $data );

GRACIAS:

Cualquiera de los ejemplos de PHP de la aplicación de los parciales ( incluyendo cómo el archivo necesario, la estructura tendría que ser ) sería muy apreciada, sólo así soy capaz de conseguir una sólida comprensión 🙂

Permítanme sugerir este post lleno de ejemplos, incluyendo a los parciales, pero no incluyendo las estructuras de archivos, ya que esto depende de usted/su marco: coenraets.org/blog/2011/12/…
Gracias. Realmente estoy buscando una aplicación PHP con ejemplos el uso de las plantillas se almacenan en archivos separados.

OriginalEl autor Lishamatish | 2013-01-15

1 Comentario

  1. 24

    El más sencillo es utilizar el «sistema de archivos» de la plantilla de cargador:

    <?php
    //This is index.php
    //Require mustache for our templates
    require 'mustache/src/Mustache/Autoloader.php';
    Mustache_Autoloader::register();
    
    //Init template engine
    $m = new Mustache_Engine(array(
        'loader' => new Mustache_Loader_FilesystemLoader(dirname(__FILE__))
    ));
    
    //Include the class which contains all the data and initialise it
    include('class.php');
    $data = new class();
    
    //Render the template
    print $m->render('template', $data);

    Entonces, asumiendo que su template.mustache se ve algo como esto:

    {{> template2 }}
    {{> template3 }}

    La template2.mustache y template3.mustache plantillas de ser cargados automáticamente desde el directorio actual cuando sea necesario.

    Tenga en cuenta que este cargador se utiliza tanto para la plantilla original y los parciales. Si usted tiene su parciales almacena en un subdirectorio, por ejemplo, puede agregar un segundo cargador específicamente para parciales:

    <?php
    $m = new Mustache_Engine(array(
        'loader'          => new Mustache_Loader_FilesystemLoader(dirname(__FILE__).'/views'),
        'partials_loader' => new Mustache_Loader_FilesystemLoader(dirname(__FILE__).'/views/partials')
    ));

    Hay más información sobre estos y otros Mustache_Engine opciones en el Mustache.php wiki.

    Muchas gracias por esta aclaración. El bigote es el primer sistema de plantillas que he utilizado, sólo necesita algunas aclaraciones sobre la estructura de archivos. Gracias de nuevo 🙂
    No hay problema. He añadido una plantilla de carga de la página a la Mustache.php wiki, esperemos que esto ayude a aclarar como bien github.com/bobthecow/mustache.php/wiki/Template-Loading
    Me tomó un poco para conseguir este rodadura, pero funciona muy bien. Esto va a simplificar nuestra plataforma de plantillas en gran medida. Gracias a partir de 2017!

    OriginalEl autor bobthecow

Dejar respuesta

Please enter your comment!
Please enter your name here