`
we1818
  • 浏览: 62108 次
  • 性别: Icon_minigender_1
  • 来自: 湖州
社区版块
存档分类
最新评论
文章列表
Joomla 1.5 RC3版本的SEF存在不少问题,前段时间架站的时候曾经仔细看过这部分,昨天做apache转向的时候,突然发现又都忘记了,再回忆一次,记录下来。 /index.php 中$mainframe->route(); 这一函数中实现了从URI中获取相关参数并填充到JRequest中,我们来看看这个函数的实现过程。 这个函数的代码清单如下: function route() { // get the full request URI $uri = clone(JURI::getInstance()); $router =& $this->getRouter ...
JPagination类是Joomla的通用分页功能的封装类,从RC3开始一直存在一些问题,目前的版本大的问题都解决了,但是sef开启的状态下,可能url还存在一些问题,至少我的站点是这样的。源代码中的类函数与英文文档中的略有不同,暂时以源代码中的为准。 __construct 构造函数 这个构造函数有三个参数: $total 是集合中记录总数 $limitstart 是当前页的第一个记录在集合中的顺序号 $limit 每页的显示总数 使用的例子 $pageNav = new JPagination( $total, $limitstart, $limit ) getLimitBox  ...
上一文章中提到了getBuffer函数,在函数中实际上调用了render ,这个对象是JDocumentRendererModule 类的实例,我们看看JDocumentRendererModule 的render函数。   if (!is_object($module))   {    $module =& JModuleHelper::getModule($module);    if (!is_object($module))    {     if (is_null($content)) {      return '';     } else {      /**      ...
以前的文章中,关于/index.php我们已经分析完了 $mainframe->dispatch()是引入了组件,并被执行。我们知道对于Joomla,一个页面只能有一个或者0个组件,而上,下左右的碎片都是module,module是页面丰富的有效补充。比如我们知道菜单是  mod_mainmenu,而footer是mod_footer等等,那么这些module是怎么被引入的,并最后执行的? 秘密都在$mainframe->render()这个函数上,我们看看这个函数都做了什么工作。 以下是JSite 的render 函数的内容   $document =& JFacto ...
以前的文章中,我们曾经说过 $mainframework->dispatch 是如何最终调用组件的,通过这个dispatch,最终 include 相应组件目录下的 组件名称.php 文件,现在我们来看看,这个文件是怎么按部就班的联系了MVC模式相关的各个文件。 require_once (JPATH_COMPONENT.DS.'controller.php'); // Require specific controller if requested if($controller = JRequest::getVar('controller')) { require_once (JPA ...
同样 JController 是MVC中重要的起点,正式这个类决定的动作的下一步流向,我们来看看表格提交数据的典型的controller的代码: function edit() {   JRequest::setVar( 'view', 'hello' );   JRequest::setVar( 'layout', 'form'  );   JRequest::setVar('hidemainmenu', 1);   parent::display(); } /**   * save a record (and redirect to main page)   * @return voi ...
MVC模式中,重要的一环,JView 和 tmpl目录中的模板,共同决定了,页面html的代码,Jview是在Jmodel和template之间的桥梁。我们扩展做自己的组件,都需要扩展 Jview的子类。这个类其实需要看看它的变量和函数也就理解: 跟数据相关的部分: _defaultModel  默认的model ,可以通过 setModel 进行设置。同时function &get 可以从指定的model调用函数返回相应的数据 _models 存贮model的数组,getModel,可以从中返回指定的Model assign assignref,数据赋值函数,这两个函数的任务是 ...
JTable是什么? JTable是数据库中数据表在程序中的表达,其实JTable更对应着表中的一行,以及相应的操作。Joomla中的 JTable**对应中数据库中 **表,我们在使用的时候要针对我们自己所使用的表扩展自己的JTable.我们需要关注的是JTable的函数checkin,checkout ,这两个函数对更新的数据进行合法性检查,我个人觉得对于数据完整性的检查应该放在Jtable的check中。 Jtable 比较常用的函数,看名字就明白了,记住几个吧: delete,store,bind,load,setError等,具体还是需要用的时候看看源代码吧。 数据表类 Met ...
Joomla代码中, 组件是如何被调用并渲染的呢? 在描述 /index.php的时候,我们看到根据option参数,$mainframework->dispatch(),就进入了组件的调用并渲染的过程,我们来看看JSite 的dispatch都做了什么工作。 dispatch 最关键的是这几句 ...
这是另一个Joomla扩展中最常用的类,这个类封装了客户端提交的请求相关的信息,通过这个类你可以得到用户提交的相关信息和数据,有几个重要的函数: 首先是get($hash),我们看看部分源码就知道,get得到什么了   switch ($hash)   {    case 'GET' :     $input = $_GET;     break;    case 'POST' :     $input = $_POST;     break;    case 'FILES' :     $input = $_FILES;     break;    case 'COOKIE' :   ...
Joomla 最常用的类之一,使用方式JTEXT::_('JJJJJ') JJJJJ对应语言文件中的相应字符串。 为了实现多语言这个是常用的。当然如果你以utf-8字符集存储php文件,对于中文就不用考虑那么多了,不过不够规范喓。 要是只是自己用,也无所谓啦,开发要快点。 呵呵!推荐还是用吧!
这个两个类是后台管理过程经常用到的,比如:   JToolBarHelper::title(   JText::_( '{{component}} Manager' ), 'generic.png' );   JToolBarHelper::deleteList();   JToolBarHelper::editListX();   JToolBarHelper::addNewX(); 这几句就添加了三个按钮,添加,删除,修改 其实还有几个常用的 preview  //预览 publish //发布 cancel //取消 比较常用的就这几个了,主要是在后台管理toolbar ...
JHtml 没有几个函数,但是在组成页面已经模板书写过程中经常用到,比如: JHTML::_('date', $this->item->date, JText::_('DATE_FORMAT_LC5')) 以及在后台管理中常用到的 来看看这几个函数: calendar 显示一个日历插件 date 显示格式化日期 iframe 插入一个iframe image  插入一个图片 link 插入一个超链 以上是常用的函数,函数的以用方式就如例子。
这几个类都是filesystem包中的重要类,具体的使用看我在模块快速生成器中的代码,函数意义都非常明确:   if(JFolder::exists($targetpath)) JFolder::delete($targetpath);   JFolder::create($targetpath);   JFolder::create($targetpath.DS.'tmpl');   以上是目录使用的例子   $sfile=$sourcepath.DS.'index.html';   $tfile=$targetpath.DS.'index.html';   JFile::copy($ ...
user 类处理所有程序中与用户交互的相关事情。 这个类的构造函数调用load函数,输入的参数是用户id,可以初始化用户的相关信息,这些信息包括 aid ,gid,usertype,username,name,id等等,这些信息在扩展中经常用到。 同时,在程序中,用刚刚说过的getUser,取得当前登录用户实例。具体用法如下: $user  =& JFactory::getUser(); $userId  = (int) $user->get('id'); 根据 gid 可以判断用户的相关的组以及组权限。 了解了Juser类,还需要了解一下 JUserHelper类,这个 ...
Global site tag (gtag.js) - Google Analytics