首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Joomla jquery如何加载Joomla模块

Joomla jquery如何加载Joomla模块
EN

Stack Overflow用户
提问于 2014-08-12 10:45:01
回答 1查看 466关注 0票数 0

是否可以通过JQuery加载Joomla模块?

在php中,我可以用

代码语言:javascript
复制
<?php echo JModuleHelper::renderModule($module);?>

现在我想通过JQuery触发这个事件!背后的原因是,我必须动态加载模块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-12 17:45:33

是的,您需要有一个服务器端AJAX请求处理程序来呈现内容。附在底部的文章是针对javascript的,但是可以很容易地转换为处理原始的html。首先,您需要一个控制器来处理请求。在组件中,前端控制器创建文件mycontroller.raw.php:

代码语言:javascript
复制
jimport( 'joomla.application.module.helper' );

class MyControllerControllerMyView extends JControllerLegacy
{
    public function renderModule()
    {
        $type = $this->input->get('module_type');
        $name = $this->input->get('module_name');
        $style = $this->input->get('module_style', 'xhtml');
        $module = JModuleHelper::getModule($type, $name);
        echo JModuleHelper::renderModule($module, array('style' => $style));  
    }
 }

然后在前端根目录中,将以下内容添加到显示方法中的controller.php文件中:

代码语言:javascript
复制
$this->registerTask('myview.renderModule', 'renderModule');

然后,处理请求客户端的javascript:

代码语言:javascript
复制
(function($) {
    function processAjaxRequest() {
        $.ajax({
            type: 'POST',
            url: 'index.php?option=com_mycomponent&task=myview.renderModule&format=raw',
            dataType: 'html',
            data: {module_type: 'MyModuleType', module_name: 'MyModuleName', module_style: 'xhtml' },
            success: function(r) {
                $('#my-side-column').append(r);
            }
         });
     }
 })(jQuery);

这都假设您有一个要自定义的组件,但现实情况是,没有它就无法实现这一点。

祝好运!

*编辑*

我编辑了控制器类名,以反映从MyComponent到MyComponentControllerMyView的适当Joomla语法。此外,在保存到控制器文件夹时,请确保将此文件命名为mycomponent.raw.php。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25262318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档