Yupp Framework PHP

Templates

Los templates son un mecanismo que permite la reutilización de código entre varias vistas. Un ejemplo claro de la utilidad de los templates es cuando se necesita mostrar la misma información de la misma forma en varias vistas, el uso de un template puede ahorrar mucha codificación.

Un template no es más que un script php, cuyo nombre tiene sufijo ".template.php", se ubica en el directorio del componente que contiene las vistas. Por ejemplo, un template del componente "blog" que sirva para mostrar los detalles de entradas de blog debería estar en: /components/blog/views/entradaBlog/details.template.php.

Para utilizar un template dentro de una vista, se utiliza el helper "template". Al helper "template" se le deben pasar un conjunto de parámetros mediante un mapa, estos parámetros son los que se utilizan para ubicar el template y pasarle la información que debe mostrar, o sea, el modelo.

Una llamada a este helper sería:

<?php

Helpers
::template( array("controller" => "entradaBlog",
                         
"name"       => "details",
                         
"args"       => array("entrada" => $e)
                    ) );

?>


Luego, para el template, aparecen declaradas las variables pasadas en args con los nombres que ahí se especifican, y el template puede contener html, javascript, php, llamadas a helpers (incluso a otros templates), etc.

El siguiente es el código del template, observar que la variable $entrada aparece declarada para el template, todas las claves pasadas al template como "args" aparecen declaradas en variables para el template:

<div class="entrada">
  <div class="top">
    <div class="left">
      (<?php echo $entrada->getId(); ?>)
      <?php echo Helpers::link( array("controller" => "entradaBlog",
                                      
"action" => "show",
                                      
"id" => $entrada->getId(),
                                      
"body" => $entrada->getTitulo()) ); ?>
    </div>
    <div class="right">
      <?php echo $entrada->getFecha(); ?>
    </div>
  </div>
  <br/>
  <div class="content">
    <?php echo $entrada->getTexto(); ?>
  </div>
  <div class="bottom">
    <div class="left">
      <?php echo Helpers::link( array("controller" => "comentario",
                                      
"action" => "create",
                                      
"id" => $entrada->getId(),
                                      
"body" => DisplayHelper::message("blog.entrada.action.addComment")) ); ?>

    </div>
    <div class="right">
      <?php echo DisplayHelper::message("blog.entrada.label.comments"); ?>:
      <?php echo Helpers::ajax_link( array(
                                     
"action"  => "getCommentsJSON",
                                     
"id"      => $entrada->getId(),
                                     
"body"    => "(".count($entrada->getComentarios()).")",
                                      
"after"   => "after_".$entrada->getId(),
                                      
"before"  => "before_".$entrada->getId() )  ); ?>
      <?php /* echo count( $entrada->getComentarios() ); */ ?>
    </div>
  </div>
  <div style="padding-top:20px; padding-left:10px; padding-right:10px; display:none;" id="ajax_comments_<?php echo $entrada->getId(); ?>"></div>
  
</div>
Por consultas o comentarios ir al grupo:
Grupos de Google
Suscribirte a Yupp Framework PHP
Correo electrónico:
Consultar este grupo