我在Magento社区内有一个自定义块,它重写了Adminhtml中的Orders选项卡,并将其替换为Fullcalendar(arshaw.com的一个),显示产品何时发货的事件。
我已经实现了一个JSON feed,它依赖于我的自定义模块控制器来填充和保存数据。这很好用,一旦我点击Month / Today / Prev / Next,我就能看到产品。但是,这不是它应该如何工作的。它应该在页面加载时呈现,除了我看到的所有按钮。
我尝试在javascript中引用选项卡,例如。
jQuery('#diagram_tab_orders_content').tabs({
show: function(event, ui) {
jQuery('#dashCalendar').fullCalendar('render');
}
其中#dashCalendar是我的标签的id / class。
除此之外不会呈现日历。它只会改变diagram_tab_orders_content的CSS。
我在Stackoverflow上看到了类似的主题,您必须明确引用日历所在的选项卡才能正确呈现。这就是我想要实现的目标,以便在文档准备就绪时呈现日历。
有关如何在文档准备就绪时渲染此日历的任何建议将非常感谢。
答案 0 :(得分:0)
所以我已经弄清楚了日历的问题,它与Magento中的标签有关。在Javascript中显式引用选项卡会导致渲染问题,因此我不得不重写Dashboard块。
我的ModuleName / etc文件夹中的Config.xml:
<global>
<!-- Blocks -->
<blocks>
<adminhtml>
<rewrite>
<dashboard>ModuleName_Block_Adminhtml_Calendar</dashboard>
</rewrite>
</adminhtml>
</blocks>
</global>
然后在我的ModuleName / Block / Calendar.php文件中设置模板:
public function __construct()
{ //this creates the template block for the calendar
parent::__construct();
$this->setId('Calendar');
$this->setTemplate('moduleName/calendar/calendar.phtml');
}
复制/粘贴提供的fullcalendar的JSON示例页面,将您的events:tag设置为.php文件,该文件使用JSON从数据库生成/请求数据。如果您想使用提供的CSS,可以自定义主题,当您登录Adminhtml时,您将看到日历呈现事件。您将在下面看到“填充”。它是我的控制器中的一个动作,它检索数据并回显出日历的JSON提要。
events: {
url: "<? echo $this->getUrl('moduleName/adminhtml_calendar/populate') ?>"
},
现在,日历会正确呈现事件。