给当前地址添加参数:
$uri = JFactory::getURI();
$uri->setQuery($uri->getQuery().'&lang=en');
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>节点
权限管理 (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 copy到media/system/js下
调用JHTML::script('jquery.js');
自定义事件 (event)
以VM插件为例
把插件安装包XML中group="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:
开了sh404sef后page 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,对于中文网站也将使用中文title为URL,这样就会生成中文URL,解决方法是把Use Title Alias, Use category alias, Use section alias, Use menu alias全部选上。
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');
$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);
|
$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);
|
admin/sql/install.mysql.utf8.sql //安装时的脚本
admin/sql/uninstall.mysql.utf8.sql //卸载时的数据库操作
admin/sql/updates/mysql/*.*.*.sql //升级到*.*.*版本时的数据库操作
组件的xml文件,要添加下面内容
JForm 字段属性 Showon
<field name="foo" type="list">
<option value="1">JYES</option>
字段bar在foo选择的值为1的时候,显现。如果要匹配多个值,使用:
showon="foo:1,2"