Joomla 几个功能

分页功能
administrtor/com_xxx/views/xxx/tmpl/default.php
首部加上JHtml::_('behavior.multiselect');
尾部加上<?php echo $this->pagination->getListFooter();?>
地址操作

给当前地址添加参数:

         $uri = JFactory::getURI();

         $uri->setQuery($uri->getQuery().'&lang=en');

         $uri->toString()

JRoute::_("&limitstart=");

 

JHTML控件

日历:

JHTML::_('calendar', '1980-1-1', 'ielts_score_date', 'ielts_score_date', '%Y-%m-%d', array('class'=>'short', 'size'=>'25',  'maxlength'=>'19'))

 

日期显示:

JHTML::_('date', <data>, JText::_('DATE_FORMAT_LC2'));

 

载入脚本:

         JHTML::script('upload.js', 'components/com_smipa/js/', false);

         JTHML::Stylesheet('style.css', 'components/com_smipa/css/');

         JHTML::_('behavior.mootools');                载入mootools

 

JHTML::_('select.booleanlist', 'published','class="inputbox"', $item->published); //不能用于tinyint(1)类型

<input type="checkbox" name="custom_link" value="1" <?php echo $this->item->xxx?'checked="checked"':'' ?> /> //适用于tinyint(1)

JHTML::_('list.category', 'catid', $option, intval($item->catid));

JHTML::_('list.specificordering', $item, $item->id, $query,1);

JHTML::_('select.genericlist',$list,'postname',null,'id','title', 'default-value');

 


XML参数

参数类型:

<param name="" type="text" default="" label="" description="" />

<param name="" type="radio" default="" label="" description="">

         <option value=""></option>

</param>

<param name="" type="list" default="" label="" description="">

         <option value="">Use Global</option>

</param>

<param name="description" type="textarea" default="" label="Description" description="" rows="5" cols="30" />

 

在非文章组件/模块内调用分类参数

<params addpath="libraries/joomla/html/parameter/element/category">

         <param name="catid" type="category" label="Category" description="Choose a category..." />

         ...

</params>

 

组件参数取值方法:

         global $mainframe;

         $params  =& $mainframe->getParams('com_xxx');

         $params->get(key)

 

         $cparams =& JComponentHelper::getParams('com_media');

 

Component参数(基于组件,即option的值):

 

         位置:                 组件后台根目录下的config.xml

 

         后台设置点:   menus里选中组件类型后可以设置

                            JToolBarHelper::preferences('com_xxx')

 

Basic参数(基于Menu,即Itemid的值):

 

         位置:                 安装包XML,写在<params>节点

                             前台 view/tmpl 下,与 layout 同名的 XML ,可参考 con_content XML
          后台设置点 :    menus 里选中组件类型后可以设置

 


权限管理 (ACL)

 

添加权限

JAuthorization::addACL(访问资源节点(组件), 访问资源(具体权限), 访问对象节点(users), 访问对象())

验证权限

JUser::authorize(访问资源节点(组件), 访问资源(具体权限))

 

添加新的权限

61: libraries/joomla/user/authorization.php

 

后台菜单权限验证

34: administrator/modules/mod_menu/help.php

 

组件后台验证一般写在组件入口中,如admin.frontpage.php

组件前台验证一般写在view.html.php

 

加载juqery.js

jquery copymedia/system/js

调用JHTML::script('jquery.js');

 

自定义事件 (event)

VM插件为例

把插件安装包XMLgroup="vm"

插件代码:

jimport( 'joomla.plugin.plugin' );

$mainframe->registerEvent( 'onEventType', 'plgFunction' );

function plgFunction(){

         // 处理过程

}

 

触发事件

JPluginHelper::importPlugin('vm');

$dispatcher =& JDispatcher::getInstance();

$dispatcher->trigger('onEventType');               // 触发onEventType事件

        

sh404sef

应该在页面和参数都调好后再开sh404sef,如果因为sh404sef生成错误地址所影响,可以在后台查询地址路径再修改。

 

h2:

sh404sef默认把h1标签改成h2,这个要在后台设置。

 

404:

sh404sef安装后会自动新建404的文章页,当找不到页面会自动跳到404文章页。但默认没有指定Itemid,可能页面会受影响,可以在后台高级设置页上修改以下参数:

$shDefaultParams['sh404SEF_PAGE_NOT_FOUND_FORCED_ITEMID'] = 0;

 

page title:

开了sh404sefpage title需要在sh404sef的配置中设置,比如首页的title,要在URL Manager中的Home page Meta处修改

 

局部关闭sef:

virtuemart为例

components/com_sh404sef/sef_ext/com_virtuemart.php

在对应的case支点最下方(break之上)加上 $dosef = false;

 

.号替换:

URL最尾带后缀会使rewrite不生效,所以404后台配置需要把.替换掉。例如: .|-

 

地址出现中文:

由于sh404sef默认使用title作为URL,对于中文网站也将使用中文titleURL,这样就会生成中文URL,解决方法是把Use Title Alias, Use category alias, Use section alias, Use menu alias全部选上。

 


在View的函数中检查错误
if(count($errors = $this->get('Error')))
{
    JLog::add(implode('<br />', $errors), JLog::WARNING, 'jerror');
    return false;
}

获取输入内容
$jinput = JFactory::getApplication()->input;

获取输入的整型变量id值

JFactory::getApplication()->input->get('id',1,'INT');

JDate 时区日期运算
新版的JDate其实是PHP5内置日期类DateTime的扩展类,所以继承所有DateTime的方法,即可以把JDate当DateTime类来使用。
 
以下是得到前天的零时例子(PHP > 5.3.0):
$config  = JFactory::getConfig();
// 用后台设置的TimeZone创建当前时间的对象
$date  = new  JDate( 'now' , new  DateTimeZone( $config ->get( 'offset' )));
// 减去一天,DateInterval的用法可上PHP官方网查询
$date ->sub( new  DateInterval( 'P1D' ));
// 用toFormat去掉时分秒,重新创建新对象
$date  = new  JDate( $date ->toFormat( '%Y-%m-%d' ), new  DateTimeZone( $config ->get( 'offset' )));
// format的第二参数决定是否使用TimeZone,否则会以UTC来输出
echo  $date ->format(JText::_( 'DATE_FORMAT_LC2' ), true);
// 日期也可以用JHTML输出
echo JHTML::_('date', <data>, JText::_('DATE_FORMAT_LC2'));

以上代码可表现JDate更加对象化,而且和原生PHP5特征联系得更紧密。不过也许对于惯于使用timestamp进行运算的人来说会觉得很别扭。下面写一个timestamp的运算例子:
 
$config  = JFactory::getConfig();
// 用toUnix得到timestamp再减去一天的秒数
$date  = new  JDate( 'now' , new  DateTimeZone( $config ->get( 'offset' )));
$date ->setTimestamp( $date ->toUnix()-3600*24); // PHP > 5.3.0
$date  = new  JDate( $date ->toUnix() - 3600*24); // PHP > 5.2.0
echo  $date ->format(JText::_( 'DATE_FORMAT_LC2' ), true);
Component数据库脚本文件
admin/sql/install.mysql.utf8.sql     //安装时的脚本
admin/sql/uninstall.mysql.utf8.sql   //卸载时的数据库操作
admin/sql/updates/mysql/*.*.*.sql    //升级到*.*.*版本时的数据库操作

组件的xml文件,要添加下面内容

<install>  <!-- Runs on install -->
<sql>
<file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql </file>
</sql>
</install>

<uninstall>  <!-- Runs on uninstall -->
<sql>
<file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql </file>
</sql>
</uninstall>
<update>  <!-- Runs on update; New since J2.5 -->
<schemas>
<schemapath type="mysql">sql/updates/mysql </schemapath>
</schemas>
</update>

<administration>
<files folder="admin">
<folder>sql </folder>
</files>
</administration>

JForm 字段属性 Showon

<field name="foo" type="list">
    <option value="1">JYES</option>
    <option value="0">JNO </option>
</field>
<field name="bar" type="text" showon="foo:1"/>

字段bar在foo选择的值为1的时候,显现。如果要匹配多个值,使用:

showon="foo:1,2"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值