2

Joomla 2.5/3.x API は、カスタム タスクを呼び出す JToolbarHelper::custom(X) メソッド以外をサポートしていないようです。コンポーネントのバックエンドのコンテキストで、JToolbarHelper::preferences() のようにカスタム litebox を起動する最良の方法は何ですか?

4

2 に答える 2

0

ジュムラで!3.x では、設定ビューはモーダルではなくなりました。

Joomla 3 では、Article Manager のBatchボタンで行うように、カスタム レイアウトを使用してこれを行うことができます。

次のコード:

$bar = JToolBar::getInstance('toolbar');

$layout = new JLayoutFile('joomla.toolbar.batch');

$dhtml = $layout->render(array('title' => $title));
$bar->appendButton('Custom', $dhtml, 'batch');

HTML 文字列を返すレイアウトをロードします。

<button data-toggle="modal" data-target="#collapseModal" class="btn btn-small">
    <i class="icon-checkbox-partial" title="{$title}"></i>
    $title;
</button>

クリックすると、 id を持つ要素からコンテンツが取得されるモーダル ボックスの生成がトリガーされますcollapseModal

appendButton()独自の HTML 文字列を指定することもできます。

ビューのテンプレートでモーダル コンテンツを生成できます (Article Manager は でそれを行い/administrator/components/com_content/views/articles/tmpl/default_batch.phpます)。

私はJoomlaを持っていません!現時点では 2.5 がインストールされています (したがって、次の提案をテストすることはできません) が、JavaScript メソッドにフックできるはずですJoomla.submitbutton(モーダル動作を含めることを忘れないでください)。

テンプレート コードでオーバーライドできます。

<script type="text/javascript">
    (function(){
        var submitbuttom = Joomla.submitbutton;
        Joomla.submitbutton = function(task)
        {
            if (task == 'mytask') {
                SqueezeBox.open('path/to/desired/view.php', {handler: 'iframe'});
            } else {
                return submitbutton.apply(this, arguments);
            }
        }
    })();
</script>

または既存のソースを使用する

SqueezeBox.open($('myModalContainerId'), {handler: 'adopt'});

mytask、ツールバー ヘルパーに提供されるタスクです。

JToolbarHelper::addNew('mytask');
于 2013-08-14T19:27:10.760 に答える
0

Joomla 3.x では、それよりもはるかに単純です。ここでは 2 つの簡単な選択肢を示しますが、必要に応じてさらに深く掘り下げることもできます。

選択肢 1:

JToolbarHelper::preview('index.php?option=com_option&view=yourview&tmpl=component');

選択肢 2:

$bar = JToolBar::getInstance('toolbar');
$bar->appendButton( 'Popup', 'zoom-in', 'Preview', 'index.php?option=com_option&view=yourview&tmpl=component' );

上で述べたように、JToolbarButton をオーバーライドして、さらに深く掘り下げることができます。主な指示は、/administrator/yourcomponent/toolbar/button/yourcustom.php にファイルを作成することです。次に、addtoolbar メソッドでこれを呼び出します。

$bar= JToolBar::getInstance( 'toolbar' );
$bar->addButtonPath(JPATH_COMPONENT_ADMINISTRATOR . '/toolbar/button');
$bar->appendButton('Yourcustom', 'file', JText::_('Test'), 'yourtask', false);

/libraries/cms/toolbar/button の例を見てください。

于 2016-10-16T09:07:36.203 に答える