每一个访问Joomla网站的用户都对应这一个JUser对象,通过$user =& JFactory::getUser() 就可以获得这个对象引用并访问对象的成员函数和属性。
下面的代码就是显示用户的名称,邮件的一段代码:
echo "
Your name is {$user->name}, your email is {$user->email}, and your username is {$user->username}
";
echo "
Your usertype is {$user->usertype} which has a group id of {$user->gid}.
";
我们来看看JUser的属性和成员函数:
id - 用户唯一编号
name - 姓名
username - 帐号
email - 邮件
password - 密码
password_clear - 用户修改密码的时候设置真
usertype - 用户类型(Super Administrator, Editor)
gid - 用户的类型id ,与usertype对应
block - 是否被阻止,如果阻止就设为1
registerDate - 注册日期
lastvisitDate - 最后一次登录日期
guest - 如果用户未登录就设置为1,其他以上的字段都设置为空
以上的属性都可以直接访问,如果想获取数据库中其他的参数,可以通过 getParam函数来获得,下面的代码获取的用户的语言参数:
$user =& JFactory::getUser();
$language = $user->getParam('language', 'the default');
echo "
Your language is set to {$language}.
";
通常判断用户是否登录都是通过guest来判断的,当然通过id是否大于0也可以。
用户访问权限
不同的Joomla用户可能会有不同的权限,可以通过 authorize()成员函数来判断一个用户是否具有执行某项任务的权利。authorize()有四个参数,第一个是我们要验证组件或者函数,第二个是任务,第三,四个分别是记录类型record types和ownership respectively相对关系,(英文很清晰,中文怎么这么难懂)。
libraries/joomla/user /authorization.php文件中包含了所有的用户权限项。我们来看下面的代码:
$user =& JFactory::getUser();
if ($user->authorize('com_content', 'edit', 'content', 'all')) {
echo "
You may edit all content.
";
} else {
echo "
You may not edit all content.
";
}
if ($user->authorize('com_content', 'publish', 'content', 'own')) {
echo "
You may publish your own content.
";
} else {
echo "
You may not publish your own content.
";
}
上面的第一段代码就是判断用户是否可以编辑所有的文章,第二段则是判断是否可以发布自己的文章。
如果你自己开发了扩展,标准的权限也许并不合适你,那么你还可以添加自定义的权限项。以下是添加权限的代码例子:
$auth =& JFactory::getACL();
$auth->addACL('com_userinfo15', 'persuade', 'users', 'super administrator');
$auth->addACL('com_userinfo15', 'persuade', 'users', 'administrator');
$auth->addACL('com_userinfo15', 'persuade', 'users', 'manager');
$user =& JFactory::getUser();
if ($user->authorize('com_userinfo15', 'persuade')) {
echo "
You may persuade the system to do what you wish.
";
} else {
echo "
You are not very persuasive.
";
}
在我们自己的扩展中,进入组件或者插件的前部,就写如这样的代码,就可以判断是否有访问和执行某项任务的权限了。
下面的代码就是显示用户的名称,邮件的一段代码:
echo "
Your name is {$user->name}, your email is {$user->email}, and your username is {$user->username}
";
echo "
Your usertype is {$user->usertype} which has a group id of {$user->gid}.
";
我们来看看JUser的属性和成员函数:
id - 用户唯一编号
name - 姓名
username - 帐号
email - 邮件
password - 密码
password_clear - 用户修改密码的时候设置真
usertype - 用户类型(Super Administrator, Editor)
gid - 用户的类型id ,与usertype对应
block - 是否被阻止,如果阻止就设为1
registerDate - 注册日期
lastvisitDate - 最后一次登录日期
guest - 如果用户未登录就设置为1,其他以上的字段都设置为空
以上的属性都可以直接访问,如果想获取数据库中其他的参数,可以通过 getParam函数来获得,下面的代码获取的用户的语言参数:
$user =& JFactory::getUser();
$language = $user->getParam('language', 'the default');
echo "
Your language is set to {$language}.
";
通常判断用户是否登录都是通过guest来判断的,当然通过id是否大于0也可以。
用户访问权限
不同的Joomla用户可能会有不同的权限,可以通过 authorize()成员函数来判断一个用户是否具有执行某项任务的权利。authorize()有四个参数,第一个是我们要验证组件或者函数,第二个是任务,第三,四个分别是记录类型record types和ownership respectively相对关系,(英文很清晰,中文怎么这么难懂)。
libraries/joomla/user /authorization.php文件中包含了所有的用户权限项。我们来看下面的代码:
$user =& JFactory::getUser();
if ($user->authorize('com_content', 'edit', 'content', 'all')) {
echo "
You may edit all content.
";
} else {
echo "
You may not edit all content.
";
}
if ($user->authorize('com_content', 'publish', 'content', 'own')) {
echo "
You may publish your own content.
";
} else {
echo "
You may not publish your own content.
";
}
上面的第一段代码就是判断用户是否可以编辑所有的文章,第二段则是判断是否可以发布自己的文章。
如果你自己开发了扩展,标准的权限也许并不合适你,那么你还可以添加自定义的权限项。以下是添加权限的代码例子:
$auth =& JFactory::getACL();
$auth->addACL('com_userinfo15', 'persuade', 'users', 'super administrator');
$auth->addACL('com_userinfo15', 'persuade', 'users', 'administrator');
$auth->addACL('com_userinfo15', 'persuade', 'users', 'manager');
$user =& JFactory::getUser();
if ($user->authorize('com_userinfo15', 'persuade')) {
echo "
You may persuade the system to do what you wish.
";
} else {
echo "
You are not very persuasive.
";
}
在我们自己的扩展中,进入组件或者插件的前部,就写如这样的代码,就可以判断是否有访问和执行某项任务的权限了。
发表评论
-
joomla 模块modules开发教程
2010-05-12 14:16 2807模块是页面扩展轻量级方式,相对组件更为灵活。模块通常用来做页面 ... -
joomla 1.5——JDocument类用法
2010-04-22 14:46 1398文档类,提供一个容易 ... -
[翻译] Joomla XML 解析器规范 上
2010-04-22 14:45 1081概述 Joomla! 1.5 新增 JSimpleXML 类 ... -
Joomla插件开发规范
2010-04-22 14:44 1412概述:JPlugin Joomla 1.5的新功能 为了更好 ... -
joomla源代码探析续(三十一) JHTML 类常用的方法
2010-04-22 14:37 1742我曾经在几篇文章中涉及到JHTML的方法使用,这里不再说了,请 ... -
joomla源代码探析续(三十) JDate类参考
2010-04-22 14:36 1085JDate类与JString类一样是Joomla!中的基础类, ... -
joomla源代码探析续(二十九) JHTML 与JHTMLSelect 类的使用
2010-04-22 14:33 1207我们在form表单生成的过程中,经常需要有select 标签或 ... -
joomla源代码探析续(二十八) 如何扩展JTable类
2010-04-22 14:30 1064JTable类是Active Record设计模式(web应用 ... -
joomla源代码探析续(二十七)组件后台如何设置参数
2010-04-22 14:29 928以下的方法可以在管理后台中添加一个Parameters设置的按 ... -
joomla源代码探析续(二十五)JRequest对象的变量获取过程
2010-04-22 14:22 1189Joomla 1.5 RC3版本的SEF存在不少问题,前段时间 ... -
joomla源代码探析续(二十四)JPagination类
2010-04-22 14:22 1127JPagination类是Joomla的通用分页功能的封装类, ... -
Joomla源代码解析(二十二) 模块是如何被调用执行并渲染(下)
2010-04-22 14:16 955上一文章中提到了getBuffer函数,在函数中实际上调用了r ... -
模块是如何被调用执行并渲染?
2010-04-22 14:12 856以前的文章中,关于/index.php我们已经分析完了 $ma ... -
Joomla源代码解析(二十) MVC组件的执行
2010-04-22 14:10 932以前的文章中,我们曾经说过 $mainframework-&g ... -
Joomla源代码解析(十九) JController
2010-04-22 14:05 896同样 JController 是MVC中重要的起点,正式这个类 ... -
Joomla源代码解析(十八) Jview
2010-04-22 14:03 976MVC模式中,重要的一环,JView 和 tmpl目录中的模板 ... -
Joomla源代码解析(十六) JTable是什么 不指定
2010-04-22 14:01 1463JTable是什么? JTable是数据库中数据表在程序中的表 ... -
Joomla源代码解析(十五) 组件是如何被调用并渲染的
2010-04-22 14:00 1445Joomla代码中, 组件是如 ... -
Joomla源代码解析(十四) JRequest类 不指定
2010-04-22 13:58 867这是另一个Joomla扩展中最常用的类,这个类封装了客户端提交 ... -
Joomla源代码解析(十三) JText类
2010-04-22 11:25 1226Joomla 最常用的类之一,使用方式JTEXT::_('JJ ...
相关推荐
joomla源代码探析,比较详细阐述了joomla框架
这是 Joomla 的后台管理界面的源代码,包含了管理面板的所有组件、模块和视图,用于设置网站内容、用户管理、权限控制、模板选择等。管理员可以通过这个部分对整个网站进行全方位的控制。 总的来说,Joomla 2.5.16...
Joomla 是一个流行的开源内容管理系统(CMS),用于构建和管理网站。...通过学习和分析提供的源代码,开发者可以深化对Joomla架构的理解,提升组件开发能力。同时,不断实践和参考社区资源是提升技能的关键。
Joomla是一款广泛使用的开源内容管理系统(CMS),它允许用户创建和管理网站,具有高度的可扩展性和灵活性。在Joomla中,“模块”是构建网站布局和功能的基本元素,它们可以显示在页面的不同位置,如侧边栏、页眉或...
9. **博客平台和CMS**:除了从头编写源代码,许多人也会选择使用WordPress、Joomla或Ghost等博客平台或内容管理系统,它们提供丰富的主题和插件,使得非程序员也能轻松搭建和管理博客。 10. **性能优化**:通过压缩...
**Joomla代码分析** Joomla是一款非常流行的开源内容管理系统(CMS),它允许用户轻松地创建、管理和...通过深入研究和实践,开发者可以充分利用Joomla的开放源代码特性,实现各种定制化需求,创造出独具特色的网站。
在当今互联网时代,为了提高用户体验和方便用户登录,许多网站都引入了第三方登录功能。对于使用Joomla构建的网站来说,实现第三方登录同样非常重要。本文将详细介绍如何在Joomla上实现第三方登录,特别是QQ登录、...
`Joomla\CMS\User\UserHelper` 提供了访问控制列表(ACL)的相关方法,允许开发者定义和管理用户权限。 11. **文件和目录操作** `JFile` 和 `JFolder` 类库提供了处理文件和目录的实用函数,如读取、写入、移动、...
Joomla是一种开源的内容管理系统(CMS),它以其强大的功能和易用性在全球范围内受到广泛的欢迎。然而,尽管Joomla被公认为世界上最优秀的CMS之一,但在中国的普及和发展却面临着一些挑战。 首先,Joomla在中国的...
比较详细的分析joomla1.5源码。可以对应着源码一起学习
7. **性能优化**:CMS源代码通常包含缓存策略,如页面缓存、对象缓存和数据库查询缓存,以提升系统性能。学习这些优化技巧对于大型网站的运行至关重要。 8. **API设计**:现代CMS往往提供API供其他应用或服务进行...
【标签】"房地产源码"表明该组件的核心是源代码,这意味着用户可以深入修改和定制组件的功能,以满足特定需求。源码提供了一种灵活性,允许开发者根据目标市场、业务规则和用户体验进行调整。 【压缩包子文件】中列...
【Joomla模板仿制教程第二集】是一门针对初学者的基础入门课程,旨在教会学员如何在Joomla内容管理系统中创建和定制自己的模板。Joomla是一个流行的开源CMS平台,以其灵活性和丰富的功能闻名,广泛用于构建各种类型...
Joomla 是一款开源的内容管理系统(CMS),它允许用户构建网站和在线应用程序,而无需深入的编程知识。在本文中,我们将详细探讨"Joomla 免费企业模板"这一主题,分析这些模板如何帮助企业和个人快速建立专业且美观...
这意味着源代码是公开的,用户可以自由地使用、修改和分发。开源社区的参与使得 Joomla 不断发展,提供了丰富的扩展和插件。 4. **pkg_zh-CN.xml**:这个文件是 Joomla 包的元数据文件,包含了关于中文包的信息,如...
这些方法允许开发者轻松地访问和操作Joomla的核心服务,极大地提高了开发效率和代码的可维护性。 总的来说,Joomla API中文手册为开发者提供了详细而实用的指导,帮助他们更好地理解和利用Joomla!框架的功能,进行...
例如,第一部分只允许名叫“Tom”的用户阅读,第二部分只允许名叫“Jack”和“Emy”的两位用户阅读。 Core Design Access Text plugin 除了“按用户名控制阅读权限”,还允许“按用户级别控制阅读权限”,例如某...
5. **权限和用户管理**: Joomla 提供灵活的角色和权限设置,可以管理不同的用户组,如管理员、编辑、作者等,控制他们对网站内容的访问和编辑权限。 6. **搜索引擎优化(SEO)**: Joomla 2.5.4 支持SEO友好链接和元...
5. **权限和访问控制**:Joomla 允许设置不同级别的用户权限,确保网站内容的安全性和访问控制。 6. **SEO 友好**:Joomla 提供了搜索引擎优化工具,帮助提高网站在搜索引擎中的排名。 **VirtueMart - Joomla 的...
8. **installation**目录:安装程序的源代码,引导用户完成Joomla!的安装过程。 9. **images**目录:存储网站的静态图像资源,如图标、logo和其他图形元素。 通过理解和掌握这些核心文件及其功能,用户能够更有效...