web-dev-qa-db-ja.com

JHtmlSidebarを適用してサイドバーを管理ビューに追加するにはどうすればよいですか?

JHtmlSidebarユーティリティクラスの使用方法に関するチュートリアルが見つかりません。

これはそれに近づきます: コンポーネントのツールバーを作成する ですが、非常にあいまいです。 $this->sidebarは、Viewクラスに属性サイドバーが必要であることを示しています。ただし、サイドバー属性はViewクラスには存在しません。

私はこれを使ってみました:

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

それは確かにサイドバーをエコーし​​ますが、それは私のビューの上部または下部にあり、側面ではありません。独自のレイアウトを作成する代わりに、Joomlaにレンダリングを実行させる方法があるかどうか疑問に思っています。

管理サイドバーの使用に関するいくつかのヘルプまたは便利なチュートリアルへのリンクは大いに評価されます。ありがとうございました。

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

まず、ヘルパーファイルを作成する必要があります。次に例を示します。

_administrator/components/com_helloworld/helpers/helloworld.php
_

そして、このファイルに以下を追加します:

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

VIEWNAMEと_$vName_の値を、サイドバーを追加するコンポーネントのビューに変更します。

次に、view.html.phpファイルで、次のように呼び出します。

_HelloWorldHelper::addSubmenu('VIEWNAME');
_

もちろん、サイドバーをレンダリングするには、次のコードが必要です。サイドバーは上のコードの下に配置できます。

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

Joomlaに同梱されているBannersコンポーネントを見ると、良い例がわかります。

更新:

言及するのを忘れた場合は、view.html.phpファイルのaddToolbar()関数内で、ヘルパーファイルを次のように呼び出す必要があります。

_require_once JPATH_COMPONENT . '/helpers/hellowworld.php';
_

アップデート2:

申し訳ありませんが、今日はボールに乗っていません。以下を_views/VIEWNAME/tmpl_のdefault.phpに追加する必要があります。

_<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