it-swarm.com.de

Wie wende ich JHtmlSidebar an, um meiner Administratoransicht eine Seitenleiste hinzuzufügen?

Ich kann keine Anleitungen zur Verwendung der Utility-Klasse JHtmlSidebar finden.

Das kommt dem sehr nahe: Erstellen einer Symbolleiste für Ihre Komponente , aber es ist sehr vage. Es erwähnt $this->sidebar, was darauf hindeutet, dass die View-Klasse eine Attribut-Seitenleiste haben sollte. Das Seitenleistenattribut ist in der View-Klasse jedoch nicht vorhanden.

Ich habe Folgendes versucht:

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

Es gibt in der Tat die Seitenleiste wieder, aber es befindet sich oben oder unten in meiner Ansicht, nicht auf der Seite. Ich frage mich nur, ob es eine Möglichkeit gibt, Joomla das Rendern für mich durchführen zu lassen, anstatt mein eigenes Layout zu erstellen.

Einige Hilfe oder Links zu nützlichen Tutorials zur Verwendung der Admin-Seitenleiste wären sehr dankbar. Vielen Dank.

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

Sie müssen zuerst eine Hilfedatei erstellen, zum Beispiel:

administrator/components/com_helloworld/helpers/helloworld.php

fügen Sie in dieser Datei Folgendes hinzu:

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

Ändern Sie VIEWNAME und den Wert für $vName In die Ansicht für Ihre Komponente, der Sie die Seitenleiste hinzufügen möchten.

Rufen Sie es dann in Ihrer view.html.php -Datei folgendermaßen auf:

HelloWorldHelper::addSubmenu('VIEWNAME');

und natürlich ist Folgendes erforderlich, um die Seitenleiste zu rendern, die Sie unter den obigen Code setzen können:

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

Wenn Sie sich die mit Joomla gelieferte Banners-Komponente ansehen, ist sie ein gutes Beispiel.

Aktualisieren:

Wenn Sie vergessen haben, in Ihrer addToolbar() -Funktion in der view.html.php -Datei zu erwähnen, müssen Sie die Hilfedatei folgendermaßen aufrufen:

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

Update 2:

Entschuldigung, ich bin heute nicht am Ball. Sie müssen Folgendes zu Ihrem default.php in views/VIEWNAME/tmpl Hinzufügen:

<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