我是Zend FW的新手。我希望在名为Feedparsercontroller的indexAction的控制器中编写一个简单的feedparser。但我想在我的索引页面上将解析后的Feed输出显示为小部件。如何将输出/变量数据驱动到我的indexview?
以下是我的解析器。
class FeedparserController extends Zend_Controller_Action {
public function init() {
/* Initialize action controller here */
}
public function indexAction() {
$feedUrl = 'http://feeds.feedburner.com/ZendScreencastsVideoTutorialsAboutTheZendPhpFrameworkForDesktop';
$feed = Zend_Feed_Reader::import ( $feedUrl );
$this->view->gettingStarted = array ();
foreach ( $feed as $entry ) {
if (array_search ( 'Getting Started', $entry->getCategories ()->getValues () )) {
$this->view->gettingStarted [$entry->getLink ()] = $entry->getTitle ();
}
}
}
}
我想在我的登录中实现相同的功能,同时注册控制器。
答案 0 :(得分:2)
也许我不完全理解你的问题。
但是,这里最好的方法似乎是创建一个单独的饲料控制器,它独自负责与饲料相关的业务逻辑(检索,按摩,设置查看等)。
然后,创建一个包含javascript代码的partial来调用feed控制器,然后输出你想要的小部件。这样做很好。
希望这有帮助!
答案 1 :(得分:1)
我认为小部件的最佳逻辑是 ajax 。
使用一些js 小部件库(例如jQuery ui),然后通过一些ajax查询加载这些小部件,返回HTML,这允许你重新加载behviours的简单小部件(不重新编码)整页)。
在服务器端,你需要允许你的控制器/动作通过ajax请求调用,并且只发送html片段(不是包含所有布局的整个页面)。
要检查ContextSwitch and AjaxContext动作助手。您将告诉您的FeedparserController,可以使用XMLHHTTPRequest中的/ format / html调用索引操作,并且在这种情况下,视图助手将是索引。
在init部分,你会说可以在ajax模式下调用indexAction,渲染html片段('html'):
$Ajaxcontext = $this->_helper->getHelper('AjaxContext');
$Ajaxcontext->addActionContext('index', 'html')
->initContext();
现在只需将您的观看脚本feedparser/index.phtml
重命名为feedparser/index.ajax.phtml
在indexAction中,做你的东西并在你的视图脚本上输出你想要的东西,不考虑布局组合问题,你单独使用你自己的布局部分,并且组合在js方面完成。
在javascript部分,确保您通过ajax($ .load或$ .ajax,可能使用jQuery)调用格式为/ html添加为参数的url(所以http://example.com/feedparser/index/format/html)
请注意,在我看来你应该使用json响应而不是html,也许json里面有一些html。但这是关于你想如何控制你的ajax通信(并处理错误,重定向等等,这是另一个主题)的问题。
答案 2 :(得分:0)
视图助手怎么样?