我有一个自定义的PHP系统。如何将我的PHP注册系统与Joomla注册相结合?
我想用RSVP和其他功能做一个日历,但我注意到,Joomla有先进的插件。我的问题是如何将数据从我的自定义注册表格发送到Joomla DB。
我的用户在使用我的自定义登录表单时如何访问Joomla保护的页面(会话)?
这是可能的吗?
我有一个自定义的PHP系统。如何将我的PHP注册系统与Joomla注册相结合?
我想用RSVP和其他功能做一个日历,但我注意到,Joomla有先进的插件。我的问题是如何将数据从我的自定义注册表格发送到Joomla DB。
我的用户在使用我的自定义登录表单时如何访问Joomla保护的页面(会话)?
这是可能的吗?
所有这些都是可能的。
这听起来像你想采取现有的登录表单,并将其变成一个自定义的Joomla登录模块。这里是Joomla的文档如何创建自定义模块的链接。
http://docs.joomla.org/How_do_you_create_a_custom_module%3F
这是另一个有关修改的Joomla登录模块。
http://docs.joomla.org/Customising_the_Login_Form_module
没有为我教你如何做到这一点,但我想通过学习Joomla的模块结构和撕裂(备份)现有的Joomla mod_login(登录模块)开始没有快捷方式,以便你可以理解它是如何工作的。
然后,它只是一个将您的自定义PHP登录页面混合到其中的任务。
不切和干,但绝对有可能。
一个快速的谷歌搜索取得了很多结果,试图修改自定义Joomla登录过程的人。我建议你加入Joomla板,并尽可能地开始阅读。
这适用于joomla 1.6-2.5(和prob 3.0但未测试)。不要认为这适用于Joomla 1.5
所以在你的模型文件中有一个类似于这样的函数: 这使用最少量的字段(名称,电子邮件,用户名,密码)......并且我使用电子邮件作为用户名
<?php
//create or link joomla user
JModel::addIncludePath(JPATH_BASE.'/components/com_users/models');
$params = JComponentHelper::getParams('com_users');
$forMYSQL = array();
$forMYSQL['id'] = '';
$forMYSQL['name'] = JRequest::getVar('fname').JRequest::getVar('name');
$forMYSQL['username'] = JRequest::getVar('email');
$forMYSQL['email'] = JRequest::getVar('email');
$forMYSQL['groups'][0] = 2; //Registered user group,
//$forMYSQL['groups'][1] = 8; //Super Admin user group
$forMYSQL['password'] = JUserHelper::genRandomPassword(); //Random password.
$forMYSQL['password2'] = $forMYSQL['password'];
//If a email is found....
$query = sprintf("SELECT * FROM `#__users` WHERE `email`='%s'", $forMYSQL['email']);
$this->_db->setQuery($query);
$checkuser = $this->_db->loadObject();
if ($checkuser->id > 0) {
//E-mail in use already NOT CREATING....
} else {
//EMAIL NOT USED... CREATING Joomla user
$userModel =& $this->getInstance('User', 'UsersModel');
$userModel->save($forMYSQL);
$newuid = $userModel->getState('user.id');
if ($newuid > 0) {
//User created.
} else {
//ERROR USER NOT CREATED.
}
}
?>
使作品,如果你的Joomla内.. idealy内部组件的模型文件的......否则,你可以加载在Joomla框架,然后通过加载该下一个代码sniplet运行的代码:
// START: Initialize Joomla framework
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', dirname(__FILE__)); //This needs to point to the root of your joomla
// Including Required Files
require_once (JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once (JPATH_BASE.DS.'includes'.DS.'framework.php');
// Create the Application
$mainframe =& JFactory::getApplication('administrator');
$mainframe->initialise();
$user =& JFactory::getUser();
define('_JEXEC', 1);
//Including Required Joomla libarys
jimport('joomla.application.component.model');
jimport('joomla.application.component.modelitem');
jimport('joomla.application.component.modellist');
// END: Initialize Joomla framework