1

したがって、最初のコンポーネントを作成しようとしており、このために次のコントローラーを作成しました。

    <?php
defined('_JEXEC') or die ('Access denied!');
/**
 * Created by JetBrains PhpStorm.
 * User: Marc
 * Date: 18-08-13
 * Time: 02:18
 * To change this template use File | Settings | File Templates.
 */
jimport( 'joomla.application.component.controller' );
class MyCompController implements  JController{

    function create(){
        echo "Welcome to create";
    }

    function delete (){
        $id =JRequest::getVar('id');
        echo "you want to delete "-$id;
    }

}

今、私は joomla にあまり詳しくなく、2.5 のドキュメントしか見つけることができませんでした。

$controller = JController::getInstance('MyComp');

コントローラーインスタンスを取得するための適切な方法でした。

私はインターフェースを見て、JControllerインターフェースはgetInstanceメソッドを提供していません。

$controller = JController::getApplication('MyComp');

しかし、運が悪い。

では、どうやってコントローラーを入手しますか?

4

2 に答える 2

3

コンポーネントには、コンポーネントと同じ名前のブートストラップ スクリプトがあります。あなたの場合、それはmycomp.php. そのファイルは、リクエストが発生するたびに Joomla によってインクルードされoption=mycompます。そこで、コントローラーをセットアップして呼び出します。

$controller = new MyCompController;
$controller->execute(JFactory::getApplication()->input->getCmd('task'));
$controller->redirect();
于 2013-08-18T12:52:59.297 に答える
1

あなたが何を達成しようとしているのか正確にはわかりません。しかし、必要なのは Joomla 2.5チュートリアルにあると思います。

上記のリンクMyComp.phpで定義されているような名前のファイルが必要です。HelloWorld.php

それでおしまい。次に、いくつかのコードでビューを作成するときに、次のフォームを言います。

<form action='index.php?option=com_MyComp&task=delete'>
....
</form>

これにより、削除機能用のコントローラーのコードにアクセスします。

別の注意点として、 Component Creatorを使用してコンポーネントに必要なテンプレートを作成する方が簡単な場合があります。テンプレートを作成する素晴らしい無料のオンライン ツールで、すべての子供が使用しています。

于 2013-08-18T02:48:59.327 に答える