2012-11-09 65 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