php
文章平均质量分 77
we13059966606
这个作者很懒,什么都没留下…
展开
-
joomla源代码探析(四)库的解析
其实这个文件没什么好说的,主要就是定义一些路径,贴出来,主要是以后文件中提这些路径的时候,有一个印象$parts = explode( DS, JPATH_BASE );//Definesdefine( 'JPATH_ROOT', implode( DS, $parts ) );define( 'JPATH_SITE', JPATH_ROOT );defin...2010-04-22 11:14:47 · 115 阅读 · 0 评论 -
joomla源代码探析续(二十四)JPagination类
JPagination类是Joomla的通用分页功能的封装类,从RC3开始一直存在一些问题,目前的版本大的问题都解决了,但是sef开启的状态下,可能url还存在一些问题,至少我的站点是这样的。源代码中的类函数与英文文档中的略有不同,暂时以源代码中的为准。__construct 构造函数这个构造函数有三个参数:$total 是集合中记录总数$limitstart 是当前页的第...2010-04-22 14:22:02 · 80 阅读 · 0 评论 -
joomla源代码探析续(二十五)JRequest对象的变量获取过程
Joomla 1.5 RC3版本的SEF存在不少问题,前段时间架站的时候曾经仔细看过这部分,昨天做apache转向的时候,突然发现又都忘记了,再回忆一次,记录下来。/index.php 中$mainframe->route(); 这一函数中实现了从URI中获取相关参数并填充到JRequest中,我们来看看这个函数的实现过程。这个函数的代码清单如下:function rout...2010-04-22 14:22:57 · 117 阅读 · 0 评论 -
joomla源代码探析续(二十六)JUser对象和用户权限判断
每一个访问Joomla网站的用户都对应这一个JUser对象,通过$user =& JFactory::getUser() 就可以获得这个对象引用并访问对象的成员函数和属性。下面的代码就是显示用户的名称,邮件的一段代码:echo "Your name is {$user->name}, your email is {$user->email}, and your userna...2010-04-22 14:23:43 · 265 阅读 · 0 评论 -
joomla源代码探析续(二十七)组件后台如何设置参数
以下的方法可以在管理后台中添加一个Parameters设置的按钮,点击按钮可以设置这个组件的相关参数,当修改这些参数后,参数保存在 component表中。首先要创建一个XML配置文件,文件中包含了相关参数,这个参数文件保存在后台管理界面相应组件中的 config.xml中。比如文章/administrator/components/com_content/config.xml.假...2010-04-22 14:29:29 · 116 阅读 · 0 评论 -
joomla源代码探析续(二十八) 如何扩展JTable类
JTable类是Active Record设计模式(web应用中应用最为广泛,最为简单的数据库相关的设计模式,笔者)的实现。JTable在joomla与数据库交互过程中广泛的使用。要使用JTable,首先要创建一个JTable的子类。下面是我们的一个例子:defined('_JEXEC') or die();class TableRecipes extends JTable...2010-04-22 14:30:12 · 86 阅读 · 0 评论 -
joomla源代码探析续(二十九) JHTML 与JHTMLSelect 类的使用
我们在form表单生成的过程中,经常需要有select 标签或者radio标签,这点上 Joomla!也给我们提供了方便的接口JHTMLSelect 。JHTMLSelect的函数可以分为两类:第一类是选项设置,包括:option,optgroup,我们来看看option,option( $value, $text='', $value_name='value', $text_...2010-04-22 14:33:32 · 104 阅读 · 0 评论 -
joomla源代码探析续(三十) JDate类参考
JDate类与JString类一样是Joomla!中的基础类,Joomla! core中的大部分日期都用到了相关的函数。JDate的构造函数有两个参数,一个是$date,一个是$tzOffset,前者是时间,默认是当前值,$date可以有三种形式,RFC 822, ISO 8601,unix time stamps,而$tzOffset是时区偏移,比如中国应该是8,默认值是全局配置中你设置的参数....2010-04-22 14:36:56 · 101 阅读 · 0 评论 -
joomla源代码探析续(三十一) JHTML 类常用的方法
我曾经在几篇文章中涉及到JHTML的方法使用,这里不再说了,请看相关的文章。Joomla!中如何使用switcher.js实现一个位置上div层的切换显示Joomla!用caption.js自动显示图片的简短描述如何在Joomla! 1.5 管理后台中实现滑动分页效果在Joomla!中怎样使用日历部分behavior.calendar在Joomla!中使用弹出提示 (Too...2010-04-22 14:37:37 · 122 阅读 · 0 评论 -
Joomla插件开发规范
概述:JPlugin Joomla 1.5的新功能为了更好使Joomla符合面向对象的框架,引入了JPlugin。Plugins 是依附于全局事件分派系统的观察者类。这就意味无论是Joomla核心,还是第三方组件,模块都能触发一个或多个JPlugins来执行一些功能。这与 mambot并不完全相同。虽然mambot与plugin都是事件触发并执行代码,但是mammot需要全局范围的声明,而...2010-04-22 14:44:18 · 143 阅读 · 0 评论 -
[翻译] Joomla XML 解析器规范 上
概述Joomla! 1.5 新增 JSimpleXML 类,可以更为简单的读取xml文件,但是现在还不能修改CDATA或或者属性,也不支持XPath.JSimpleXML需要PHP 4.2以上版本,以及 Expat扩展。2. 实现JSimpleXML 类代码:class JSimpleXML extends JObject{ /**...2010-04-22 14:45:07 · 86 阅读 · 0 评论 -
joomla 1.5——JDocument类用法
文档类,提供一个容易的接口解析和显示文件 Method Description__construct 构造函数addScript 增加一个连接到页addScriptDeclaration 增加脚本到页addStyleDeclaration 增加一个stylesheet声明到页addS...2010-04-22 14:46:08 · 148 阅读 · 0 评论 -
Joomla源代码解析(二十二) 模块是如何被调用执行并渲染(下)
上一文章中提到了getBuffer函数,在函数中实际上调用了render ,这个对象是JDocumentRendererModule 类的实例,我们看看JDocumentRendererModule 的render函数。 if (!is_object($module)) { $module =& JModuleHelper::getModule($module); ...2010-04-22 14:16:10 · 86 阅读 · 0 评论 -
模块是如何被调用执行并渲染?
以前的文章中,关于/index.php我们已经分析完了 $mainframe->dispatch()是引入了组件,并被执行。我们知道对于Joomla,一个页面只能有一个或者0个组件,而上,下左右的碎片都是module,module是页面丰富的有效补充。比如我们知道菜单是 mod_mainmenu,而footer是mod_footer等等,那么这些module是怎么被引入的,并最后执行的?...2010-04-22 14:12:26 · 148 阅读 · 0 评论 -
Joomla源代码解析(二十) MVC组件的执行
以前的文章中,我们曾经说过 $mainframework->dispatch 是如何最终调用组件的,通过这个dispatch,最终 include 相应组件目录下的 组件名称.php 文件,现在我们来看看,这个文件是怎么按部就班的联系了MVC模式相关的各个文件。require_once (JPATH_COMPONENT.DS.'controller.php');// Require...2010-04-22 14:10:09 · 84 阅读 · 0 评论 -
Joomla源代码解析(六) 重要类的几个常用的方法
在google搜索我的网站就会发现一些,因为没有注意meta和title 所有的开源项目相关的页面title和meta都一样,对用户很不友好,根本无法分清那个链接是说什么内容的,那么这里就需要JDocuement类来解决问题用法很简单,首先取得document对象 $document =& JFactory::getDocument();然后:$document->setTit...2010-04-22 11:17:26 · 141 阅读 · 0 评论 -
Joomla源代码解析(九) JUser 类 不指定
user 类处理所有程序中与用户交互的相关事情。这个类的构造函数调用load函数,输入的参数是用户id,可以初始化用户的相关信息,这些信息包括 aid ,gid,usertype,username,name,id等等,这些信息在扩展中经常用到。同时,在程序中,用刚刚说过的getUser,取得当前登录用户实例。具体用法如下:$user =& JFactory::getUse...2010-04-22 11:17:56 · 98 阅读 · 0 评论 -
Joomla源代码解析(十) JPath JFile JFolder 类 不指定
这几个类都是filesystem包中的重要类,具体的使用看我在模块快速生成器中的代码,函数意义都非常明确: if(JFolder::exists($targetpath)) JFolder::delete($targetpath); JFolder::create($targetpath); JFolder::create($targetpath.DS.'tmpl');...2010-04-22 11:20:51 · 109 阅读 · 0 评论 -
Joomla源代码解析(十一) JHtml 类 不指定
JHtml 没有几个函数,但是在组成页面已经模板书写过程中经常用到,比如:JHTML::_('date', $this->item->date, JText::_('DATE_FORMAT_LC5'))以及在后台管理中常用到的来看看这几个函数:calendar 显示一个日历插件date 显示格式化日期iframe 插入一个iframeimag...2010-04-22 11:21:38 · 142 阅读 · 0 评论 -
Joomla源代码解析(十二) JToolBarHelper JToolBar 类 不指定
这个两个类是后台管理过程经常用到的,比如: JToolBarHelper::title( JText::_( '{{component}} Manager' ), 'generic.png' ); JToolBarHelper::deleteList(); JToolBarHelper::editListX(); JToolBarHelper::addN...2010-04-22 11:23:14 · 95 阅读 · 0 评论 -
Joomla源代码解析(十三) JText类
Joomla 最常用的类之一,使用方式JTEXT::_('JJJJJ')JJJJJ对应语言文件中的相应字符串。为了实现多语言这个是常用的。当然如果你以utf-8字符集存储php文件,对于中文就不用考虑那么多了,不过不够规范喓。要是只是自己用,也无所谓啦,开发要快点。呵呵!推荐还是用吧!...2010-04-22 11:25:16 · 140 阅读 · 0 评论 -
Joomla源代码解析(十四) JRequest类 不指定
这是另一个Joomla扩展中最常用的类,这个类封装了客户端提交的请求相关的信息,通过这个类你可以得到用户提交的相关信息和数据,有几个重要的函数:首先是get($hash),我们看看部分源码就知道,get得到什么了 switch ($hash) { case 'GET' : $input = $_GET; break; case 'PO...2010-04-22 13:58:10 · 134 阅读 · 0 评论 -
Joomla源代码解析(十五) 组件是如何被调用并渲染的
Joomla代码中, 组件是如何被调用并渲染的呢?在描述 /index.php的时候,我们看到根据option参数,$mainframework->dispatch(),就进入了组件的调用并渲染的过程,我们来看看JSite 的dispatch都做了什么工作。dispatch 最关键的是这几句话: $document->setTitle( $params->get('pag...2010-04-22 14:00:25 · 88 阅读 · 0 评论 -
Joomla源代码解析(十六) JTable是什么 不指定
JTable是什么?JTable是数据库中数据表在程序中的表达,其实JTable更对应着表中的一行,以及相应的操作。Joomla中的 JTable**对应中数据库中 **表,我们在使用的时候要针对我们自己所使用的表扩展自己的JTable.我们需要关注的是JTable的函数checkin,checkout ,这两个函数对更新的数据进行合法性检查,我个人觉得对于数据完整性的检查应该放在Jtable...2010-04-22 14:01:14 · 227 阅读 · 0 评论 -
Joomla源代码解析(十八) Jview
MVC模式中,重要的一环,JView 和 tmpl目录中的模板,共同决定了,页面html的代码,Jview是在Jmodel和template之间的桥梁。我们扩展做自己的组件,都需要扩展 Jview的子类。这个类其实需要看看它的变量和函数也就理解:跟数据相关的部分:_defaultModel 默认的model ,可以通过 setModel 进行设置。同时function &get ...2010-04-22 14:03:00 · 85 阅读 · 0 评论 -
Joomla源代码解析(十九) JController
同样 JController 是MVC中重要的起点,正式这个类决定的动作的下一步流向,我们来看看表格提交数据的典型的controller的代码:function edit(){ JRequest::setVar( 'view', 'hello' ); JRequest::setVar( 'layout', 'form' ); JRequest::setVar('hi...2010-04-22 14:05:14 · 360 阅读 · 0 评论 -
joomla 模块modules开发教程
模块是页面扩展轻量级方式,相对组件更为灵活。模块通常用来做页面中不太复杂的一小块,并且能够跨越不同的组件。有时候模块可以跟组件密切联系,比如说最新新闻模块,这个模块显示来自com_content组件的最新的条目,由于它是一个模块,所以它甚至可以在com_content组件没有激活的情况下使用。站点的菜单是模块,而这些模块作为Joomla和核心应用,并没有和任何组件相关联。模块不必和任何特定的事情相...原创 2010-05-12 14:16:00 · 250 阅读 · 0 评论