我有一個自定義的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