拡張機能がインストールされており、モジュールからその機能を使用したいと考えています。その拡張機能の postAction ですべてが行われます。YouTube API を使用してビデオ情報を取得し、Magento EAV データ モデルの複数のテーブルに保存します。
ボタンとテキストボックスを使用して検索語を送信するだけで、YouTube API 関数をテストするために作成した機能モジュールが既にあります。しかし今は、コードから手動ですべてを行うのではなく、拡張機能を使用してその呼び出しを行い、必要なテーブルに入力することを自動的に行いたいと考えています。
そのため、その postAction への呼び出しをセットアップするか、それを拡張またはオーバーライドする必要があります (または、したいですか? またはしなければなりませんか?)。ここで迷子になりました。Magento と PHP は初めてなので、何をすべきか明確にわかりません。
これは私が呼び出したいクラスです:
/**
* Youtube Upload Controller
*/
class AW_Vidtest_YoutubeController extends Mage_Core_Controller_Front_Action {
.....
}
そしてその中に postAction 関数があります:
/**
* Get customer video
*/
public function postAction() {
$data = new Varien_Object($this->getRequest()->getPost());
....
}
これらのリンクの情報を読みましたが、正確に何をしなければならないのか明確ではありません。Observer
パターンに従いますか?たぶんpost
、自分で呼び出しを作成し、何らかの方法で$data
構造を追加して、呼び出しで使用できるようにしますか? ありがとう
編集済み:
これは私が今まで持っていたコードで、@Francesco による提案があります。この関数printVideoEntry
は、カタログの最初の 3 つの製品を処理する for each 内の他の関数から呼び出されます。
<?php
class Dts_Videotestimonials_Model_SearchVideo extends Mage_Core_Model_Abstract
{
public $search_term;
private $productModel;
function printVideoEntry($videoEntry, $_product, $tabs = "")
{
# get user data
$user = Mage::getSingleton('admin/session');
$userName = $user->getUser()->getFirstname();
$userEmail = $user->getUser()->getEmail();
$data = array(
"ProductId" => $_product->getId(),
"AuthorEmail" => $userEmail,
"AuthorName" => $userName,
"VideoLink" => $videoEntry->getVideoWatchPageUrl(),
"VideoType" => "link",
"Title" => $videoEntry->getVideoTitle(),
"Comment" => "this is a comment"
);
$actionUrl = Mage::getUrl('vidtest/youtube/post');
Mage::app()->getResponse()->setRedirect($actionUrl, $data);
}
}