`
we1818
  • 浏览: 61872 次
  • 性别: Icon_minigender_1
  • 来自: 湖州
社区版块
存档分类
最新评论

Joomla源代码解析(二十二) 模块是如何被调用执行并渲染(下)

    博客分类:
  • php
阅读更多
上一文章中提到了getBuffer函数,在函数中实际上调用了render ,这个对象是JDocumentRendererModule 类的实例,我们看看JDocumentRendererModule 的render函数。

  if (!is_object($module))
  {
   $module =& JModuleHelper::getModule($module);

   if (!is_object($module))
   {
    if (is_null($content)) {
     return '';
    } else {
     /**
      * If module isn't found in the database but data has been pushed in the buffer
      * we want to render it
      */
     $tmp = $module;
     $module = new stdClass();
     $module->params = null;
     $module->module = $tmp;
     $module->id = 0;
     $module->user = 0;
    }
   }
  }

  // get the user and configuration object
  $user =& JFactory::getUser();
  $conf =& JFactory::getConfig();

  // set the module content
  if (!is_null($content)) {
   $module->content = $content;
  }

  //get module parameters
  $mod_params = new JParameter( $module->params );

  $contents = '';
  if ($mod_params->get('cache', 0) && $conf->getValue( 'config.caching' ))
  {
   $cache =& JFactory::getCache( $module->module );

   $cache->setLifeTime( $mod_params->get( 'cache_time', $conf->getValue( 'config.cachetime' ) * 60 ) );
   $cache->setCacheValidation(true);

   $contents =  $cache->get( array('JModuleHelper', 'renderModule'), array( $module, $params ), $module->id. $user->get('aid', 0) );
  } else {
   $contents = JModuleHelper::renderModule($module, $params);
  }

这段代码完成了找到对应的module ,和helper文件,兑取参数,并最后由'JModuleHelper'执行,并渲染。

至此,我们也完全了解了模板是如何被调用,模块是如何并调用并渲染的。
分享到:
评论

相关推荐

    Joomla2.5.16源代码

    **Joomla 2.5.16 源代码详解** Joomla,作为一个开源的内容管理系统(CMS),在网站开发领域有着广泛的应用。Joomla 2.5.16 是该系统的一个版本,提供了丰富的功能和易用性,适用于构建各种类型的网站,包括企业...

    joomla 组件 开发 详解 (附带源代码)

    本篇将深入探讨Joomla组件开发的详细过程,并结合源代码进行解析。 一、Joomla组件概述 在Joomla中,组件是最大的功能单元,它由多个部分组成,包括模型、视图、控制器、模板和语言文件等。组件开发涉及以下几个...

    joomla模块用户列表

    在这个情况下,它可能会解释如何将模块安装到Joomla网站上,如何配置以显示用户列表,以及如何进行任何必要的设置调整。确保按照readme.txt中的步骤操作,以避免可能出现的问题。 "upgrade_v1.6.zip"文件可能是一个...

    joomla 标签云模块

    然而,需要注意的是,Adobe Flash已经逐渐被淘汰,许多现代浏览器默认不再支持Flash内容,因此这个模块可能不适用于最新的浏览器环境。如果你的网站目标用户群主要使用的是较新的设备和浏览器,可能需要寻找一个基于...

    joomla视频模块

    - `components`: 这个目录通常用于存放Joomla组件,不过在这里可能是模块的一部分,用于处理更复杂的视频功能。 - `plugins`: 可能包含与视频播放相关的插件,如视频格式转换、播放器功能增强等。 - `install....

    Joomla模板开发-模版是如何执行的

    4. **加载并执行index.php**:PHP开始加载模板的主文件`index.php`,并执行其中的PHP代码。这个阶段中,所有在`和`?>`之间的代码都会被执行,而其余部分作为HTML直接输出。但此时的输出被缓存,并未传递到浏览器。 ...

    joomla图片循环播放模块

    Joomla图片循环播放模块是基于Joomla CMS(内容管理系统)的一种功能组件,它允许网站管理员在网站上创建一个动态的图片展示区,这些图片能够自动循环播放,为访客提供吸引眼球的视觉体验。这样的模块通常包含一系列...

    joomla模块开发教程

    Joomla模块开发是扩展Joomla网站功能的关键途径,使其能够支持多语言,为全球用户提供更加友好和便捷的体验。在本教程中,我们将探讨如何创建和管理Joomla模块的语言文件,以便实现多语言功能。 首先,为了使模块...

    joomla模板和模块

    - **模块(Module)**:Joomla中的模块主要用于整合数据,并将其以可视化的形式展示出来。例如,一个新闻摘要模块可以展示最新的新闻条目。 - **位置(Position)**:是指模板中用于放置模块的具体位置。这些位置由模板...

    joomla图片模块

    1. **uninstall.morfeoshow.php**:这是模块的卸载脚本,当用户不再需要该模块时,可以通过执行此脚本来从Joomla系统中移除模块及其关联数据。 2. **install.morfeoshow.php**:这是模块的安装脚本,它包含了安装...

    joomla PNG 补丁 模块

    总的来说,"Joomla PNG补丁模块"是一个解决PNG图像透明度问题的重要工具,它提升了Joomla网站在各种浏览器下的用户体验。对于那些依赖PNG图像透明效果的Joomla网站管理员来说,这个模块是一个不可或缺的资源,它确保...

    joomla 新闻联播 模块

    "新闻联播模块"在Joomla中是一个特别设计的组件,它允许用户在网站上创建动态且吸引人的新闻展示,通常以幻灯片的形式呈现,以吸引访问者的注意力并提供最新的信息。 **Joomla模块详解** Joomla模块是系统中的小...

    joomla留言板模块

    **Joomla 留言板模块详解** Joomla 是一款基于PHP的开源内容管理系统(CMS),广泛用于构建网站和在线应用程序。它拥有丰富的扩展库,包括各种模块和组件,以增强其功能。"joomla留言板模块"就是这样一个扩展,专为...

    joomla分享按钮模块

    6. **mod_itpshare.php**:这是模块的主要PHP代码文件,实现了模块的核心功能。它处理用户的交互请求,例如当用户点击分享按钮时,调用相应的API将内容发布到选定的社交网络。 7. **mod_itpshare.xml**:XML配置...

    joomla category模块

    Joomla 是一个流行的开源内容管理系统(CMS),用于构建和管理网站。Category 模块是 Joomla 系统中的一个重要组成部分,它允许用户在网站上展示和组织内容的分类。在这个特定的"joomla category模块"中,我们可以...

    joomla代码分析

    Joomla的架构是模块化的,主要由组件(Components)、模块(Modules)和插件(Plugins)构成: 1. **组件(Components)**:是Joomla中最大的功能单元,例如文章管理、用户管理等。每个组件都有自己的模型、视图和...

    joomla modules

    要使用 mod_banner 模块,首先需要将其解压并上传到 Joomla 网站的 "modules" 目录下。然后,在 Joomla 后台管理界面中找到“模块管理”,点击“安装新模块”导入 "mod_banner.xml" 文件。安装成功后,你可以对模块...

    joomla 幻灯片模块

    Joomla幻灯片模块是用于Joomla内容管理系统(CMS)的一种功能组件,它允许网站管理员在网站的首页或任何其他页面上创建引人注目的动态幻灯片展示。这种模块通常用于显示产品、新闻、活动或者任何需要突出展示的内容...

Global site tag (gtag.js) - Google Analytics