2011-12-17 16 views
8

que tienen vista (frontend) en mi propio componente (view.html.php):¿Cómo mostrar la vista sin plantilla?

class MevViewMev extends JView{ 
     function display($tpl = null){ 
       parent::display($tpl); 
     } 
} 

Y plantilla:

<?php defined('_JEXEC') or die('Restricted access'); ?> 
<div> 
ASFADSFDSF 
</div> 

Cómo visualizar sin plantilla Joomla (sección de la cabeza, estilos, etc.) Quiero llamar a esta parte del método jquery onclick en la ventana.

Respuesta

21

Para mostrar el componente solo agregue el parámetro "tmpl = component" a url. Si necesita mostrar algo además de la vista del componente, se puede personalizar: cree el archivo "component.php" en la carpeta raíz de la plantilla e incluya en él lo que necesite. Se pueden hacer más plantillas de la misma manera: cree "some_template.php" en la carpeta raíz de la plantilla y agregue el parámetro "tmpl = some_template" a url.

+0

Gracias! ¡Avesome! – Nips

+0

No puedo creer el archivo "_creating" component.php "en la carpeta raíz de la plantilla_" nunca se me ocurrió. – Ejaz

4

Comenzar Editar

Bien, entonces el siguiente funciona, pero encontré una manera mejor. En el controlador de hacer ...

if (JRequest::getVar('format') != 'raw') { 
    $url = JURI::current() . '?' . $_SERVER['QUERY_STRING'] . '&format=raw'; 
    header('Location: ' . $url); 
    // or, if you want Content-type of text/html just use ... 
    // redirect($url); 
} 

Fin Editar

Puede establecer 'tmpl' a 'componente', según lo sugerido por Babur Usenakunov, en el que las secuencias de comandos de casos y CSS se pueden cargar, como .. .

JRequest::setVar('tmpl','component'); 

Sin embargo, si desea crear la salida pura puede agregar & format = cruda o en su componente de hacer una vista de tipo 'en bruto' ...

Desafortunadamente la única forma funcional que puedo encontrar para hacer un ViewType de prima representa correctamente es llamar a exit() después de la clase de vista llama a los padres :: display() ...

En su controller.php ...

class com_whateverController() extends JController 
{ 
    function __construct() 
    { 
     // the following is not required if you call exit() in your view class (see below) ... 
     JRequest::setVar('format','raw'); 
     JFactory::$document = null; 
     JFactory::getDocument(); 
     // or 
     //JFactory::$document = JDocument::getInstance('raw'); 
     parent::__construct(); 
    } 

    function display() 
    { 
     $view = $this->getView('whatever', 'raw'); 
     $view->display(); 
    } 

} 

continuación, en vistas/lo/view.raw.php ...

class com_whateverViewWhatever extends JView 
{ 
    public function display($tpl = null) 
    { 
      parent::display(); 
      exit; // <- if you dont have this then the output is captured in and output buffer and then lost in the rendering 
    } 
} 
Cuestiones relacionadas