我安装了一个扩展,我想从我的模块中使用它的功能。该扩展中的 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
是从其他函数调用的,其中一个 for each 现在遍历目录中的前 3 个产品。
<?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);
}
}