it-swarm-es.tech

¿Cómo aplico JHtmlSidebar para agregar una barra lateral a mi vista de administrador?

No puedo encontrar ningún tutorial sobre cómo usar la clase de utilidad JHtmlSidebar.

Esto se acerca: Crear una barra de herramientas para su componente , pero es muy vago. Menciona $this->sidebar, lo que sugiere que la clase View debería tener una barra lateral de atributos. Pero el atributo de barra lateral no existe en la clase Ver.

Intenté usar esto:

JHtmlSidebar::addEntry('test','test',0);
echo $this->sidebar = JHtmlSidebar::render();

De hecho, hace eco de la barra lateral, pero se encuentra en la parte superior o inferior de mi vista, no en el lateral. Me pregunto si hay una manera de dejar que Joomla haga el renderizado por mí, en lugar de crear mi propio diseño.

Se agradecería alguna ayuda o enlaces a tutoriales útiles sobre el uso de la barra lateral de administración. Gracias.

com_helloworld/views/helloworld/view.html.php:

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

jimport('joomla.application.component.view');

class HelloWorldViewHelloWorld extends JViewLegacy {
    public function display($tpl = NULL){
        $this->addToolbar();
        $this->sidebar = JHtmlSidebar::render();
        }
    }

    protected function addToolbar(){
        require_once JPATH_COMPONENT . '/helpers/helloworld .php';
        JToolBarHelper::title( 'Hello World', 'helloworld' );
        JToolBarHelper::addNew();
        JToolBarHelper::deleteList();
        JToolBarHelper::editList();
        JToolBarHelper::preferences('com_helloworld', '500');
        xProfileHelper::addSubmenu('helloworld');
    }
}

com_helloworld/helpers/helloworld.php:

class HelloWorldHelper extends JHelperContent
{
    public static function addSubmenu($vName)
    {
        JHtmlSidebar::addEntry(
            'test',
            'index.php?option=com_helloworld&view=helloworld',
            $vName == 'profile'
        );
    }
}
6
user3804927

Primero necesita crear un archivo auxiliar, por ejemplo:

administrator/components/com_helloworld/helpers/helloworld.php

y en este archivo, agregue lo siguiente:

class HelloWorldHelper extends JHelperContent
{
    public static function addSubmenu($vName)
    {
        JHtmlSidebar::addEntry(
            'test',
            'index.php?option=com_hellowworld&view=VIEWNAME',
            $vName == 'banners'
        );
    }
}

Cambie VIEWNAME y el valor de $vName A la vista de su componente al que desea agregar la barra lateral.

Luego, en su archivo view.html.php, llámelo usando lo siguiente:

HelloWorldHelper::addSubmenu('VIEWNAME');

y, por supuesto, se requiere lo siguiente para representar la barra lateral que puede colocar debajo del código anterior:

$this->sidebar = JHtmlSidebar::render();

Si echa un vistazo al componente de Banners que viene con Joomla, será un buen ejemplo.

Actualizar:

Si olvidó mencionarlo, dentro de su función addToolbar() en el archivo view.html.php, deberá llamar al archivo auxiliar de la siguiente manera:

require_once JPATH_COMPONENT . '/helpers/hellowworld.php';

Actualización 2:

Lo siento, no estoy en la pelota hoy. Deberá agregar lo siguiente a su default.php en views/VIEWNAME/tmpl:

<div id="j-sidebar-container" class="span2">
    <?php echo $this->sidebar; ?>
</div>
<div id="j-main-container" class="span10">
     // Main part of the component view
</div>
9
Lodder