it-swarm.dev

Come posso applicare JHtmlSidebar per aggiungere una barra laterale alla mia vista amministratore?

Non riesco a trovare alcun tutorial su come utilizzare la classe di utilità JHtmlSidebar.

Questo ci si avvicina: Creazione di una barra degli strumenti per il componente , ma è molto vago. Menziona $this->sidebar, che suggerisce che la classe View dovrebbe avere una barra laterale dell'attributo. Ma l'attributo della barra laterale non esiste nella classe View.

Ho provato a usare questo:

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

Fa davvero eco alla barra laterale, ma si trova nella parte superiore o inferiore della mia vista, non sul lato. Mi chiedo solo se esiste un modo per consentire a Joomla di eseguire il rendering per me, invece di creare il mio layout.

Alcuni aiuti o collegamenti a tutorial utili sull'uso della barra laterale dell'amministratore sarebbero molto apprezzati. Grazie.

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/aiutanti/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

Innanzitutto è necessario creare un file di supporto, ad esempio:

administrator/components/com_helloworld/helpers/helloworld.php

e in questo file, aggiungere quanto segue:

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

Cambia VIEWNAME e il valore di $vName Nella vista per il tuo componente a cui desideri aggiungere la barra laterale.

Quindi, nel tuo view.html.php file, chiamalo usando il seguente:

HelloWorldHelper::addSubmenu('VIEWNAME');

e, naturalmente, per rendere la barra laterale che puoi inserire sotto il codice sopra è necessario quanto segue:

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

Se dai un'occhiata al componente Banners fornito in dotazione con Joomla, fornirà un buon esempio.

Aggiornare:

Se hai dimenticato di menzionare, all'interno della tua funzione addToolbar() nel file view.html.php, dovrai chiamare il file helper in questo modo:

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

Aggiornamento 2:

Scusa, non sono in ballo oggi. Dovrai aggiungere quanto segue al tuo default.php in 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