2011-07-17 16 views
0

私のブロックの1つに私のコントローラの特定のアクションにリンクを追加しようとしています。クラスのドキュメントやグーグルを見ても、何か役に立つものは解決されませんでした。 (多分私は間違った検索クエリを使用した)。Magento:カスタムモジュールのブロックにコード経由でリンクを追加する方法は?

私のコントローラは、二つの動作があります。

indexAction()とexportActionを()

さて、私のブロックのうちの一つで、私は)(exportActionへのリンクを追加するワンド。 addLink()メソッドが見つかりましたが、これは機能しません。

誰かがそれを行う方法を知っているかもしれませんか?または、ネット上の適切なリソースを指すことができますか?

よろしく、アレックス

ブロック例:

<?php 

class Polyvision_Tempest_Block_Adminhtml_View extends Mage_Adminhtml_Block_Template 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    protected function _toHtml() 
    { 

    $html = "whatever"; 

     return $html; 
    } 
} 
?> 
+0

どのような種類のブロックですか?どのようにインスタンス化していますか? – clockworkgeek

+0

ブロックの例を追加しました。 – ghostrifle

答えて

2

あなたの質問が完了/明確ではありません。

ブロックは、HTMLを、phtmlテンプレートまたはPHPコードのいずれかでレンダリングします。 HTMLリンクを追加するには、あなただけのhref

//via PHP 
protected function _toHtml() 
{ 
    $html = '<a href="<?php echo $this->url('frontname/controllername/action/key/value/key/value');?>">My Link</a>'; 
    return $html; 
}  


//via phtml template 

#your block 
class Polyvision_Tempest_Block_Adminhtml_View extends Mage_Adminhtml_Block_Template 
{ 
    protected function _construct() 
    { 
     $this->setTemplate('path/to/from/template/folder/as/basetemplate.phtml'); 
    } 
} 

#your template 
<a href="<?php echo $this->url('frontname/controllername/action/key/value/key/value');?>">My Link</a>'; 

とHTMLアンカータグをレンダリングaddLink方法はブロックのみの特定の種類に適用される特別な方法です。それを呼び出すと、ブロックのデータプロパティにリンク情報が追加されます。次に、_toHtmlメソッドまたはphtmlテンプレートが格納されたデータを出力リンクにループするように書かれています。これは一般的なブロックには適用されません。これがあなたの質問を混乱させる原因です。

希望に役立ちます!

関連する問題