2012-11-09 48 views
3

我有一个自定义的PHP系统。如何将我的PHP注册系统与Joomla注册相结合?

我想用RSVP和其他功能做一个日历,但我注意到,Joomla有先进的插件。我的问题是如何将数据从我的自定义注册表格发送到Joomla DB。

我的用户在使用我的自定义登录表单时如何访问Joomla保护的页面(会话)?

这是可能的吗?

回答

0

所有这些都是可能的。

这听起来像你想采取现有的登录表单,并将其变成一个自定义的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板,并尽可能地开始阅读。

0

这适用于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