Fullcalendar不在Magento块内渲染

时间:2013-02-07 10:21:25

标签: php javascript magento fullcalendar

我在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上看到了类似的主题,您必须明确引用日历所在的选项卡才能正确呈现。这就是我想要实现的目标,以便在文档准备就绪时呈现日历。

有关如何在文档准备就绪时渲染此日历的任何建议将非常感谢。

1 个答案:

答案 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') ?>"
        },

现在,日历会正确呈现事件。