parent
2a6d7ae991
commit
40f012b0fa
@ -0,0 +1,12 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* Config the plugin |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
|
||||
require_once api_get_path(SYS_PATH) . 'main/inc/global.inc.php'; |
||||
require_once api_get_path(LIBRARY_PATH) . 'plugin.class.php'; |
||||
require_once api_get_path(PLUGIN_PATH) . 'createdrupaluser/src/HookCreateDrupalUser.php'; |
||||
require_once api_get_path(PLUGIN_PATH) . 'createdrupaluser/src/CreateDrupalUser.php'; |
||||
@ -0,0 +1,8 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* Config the plugin |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
require_once __DIR__ . '/config.php'; |
||||
@ -0,0 +1,10 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* Initialization install |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
require_once __DIR__ . '/config.php'; |
||||
|
||||
CreateDrupalUser::create()->install(); |
||||
@ -0,0 +1,12 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* Strings to english L10n |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
$strings['plugin_title'] = 'Create Drupal user'; |
||||
$strings['plugin_comment'] = 'This plugin create a user in Drupal website when a user is registered in Chamilo LMS'; |
||||
|
||||
$strings['drupal_domain'] = 'Drupal website URL'; |
||||
$strings['drupal_domain_help'] = 'The server domain name should be written with a trailing slash and with the protocol, e.g. http://www.example.com/'; |
||||
@ -0,0 +1,12 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* Strings to spanish L10n |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
$strings['plugin_title'] = 'Crear usuario Drupal'; |
||||
$strings['plugin_comment'] = 'Este plugin permite crear un usuario en un sitio web Drupal cuando un usuario es registrado en Chamilo LMS'; |
||||
|
||||
$strings['drupal_domain'] = 'URL del sitio web Drupal'; |
||||
$strings['drupal_domain_help'] = 'La dirección del servidor debe escribirse con el protocolo al comienzo y con la barra al final, por ejemplo http://www.example.com/'; |
||||
@ -0,0 +1,10 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* Get the plugin info |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
require_once __DIR__.'/config.php'; |
||||
|
||||
$plugin_info = CreateDrupalUser::create()->get_info(); |
||||
@ -0,0 +1,72 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
/** |
||||
* Create a user in Drupal website when a user is registered in Chamilo LMS |
||||
* |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
class CreateDrupalUser extends Plugin implements HookPluginInterface |
||||
{ |
||||
|
||||
/** |
||||
* Class constructor |
||||
*/ |
||||
protected function __construct() |
||||
{ |
||||
$parameters = array( |
||||
'drupal_domain' => 'text' |
||||
); |
||||
|
||||
parent::__construct('1.0', 'Angel Fernando Quiroz Campos', $parameters); |
||||
} |
||||
|
||||
/** |
||||
* Instance the plugin |
||||
* @staticvar null $result |
||||
* @return CreateDrupalUser |
||||
*/ |
||||
static function create() |
||||
{ |
||||
static $result = null; |
||||
|
||||
return $result ? $result : $result = new self(); |
||||
} |
||||
|
||||
/** |
||||
* Install the plugin |
||||
*/ |
||||
public function install() |
||||
{ |
||||
$this->installHook(); |
||||
} |
||||
|
||||
/** |
||||
* Uninstall the plugin |
||||
* @return void |
||||
*/ |
||||
public function uninstall() |
||||
{ |
||||
$this->uninstallHook(); |
||||
} |
||||
|
||||
/** |
||||
* Install the Create User hook |
||||
*/ |
||||
public function installHook() |
||||
{ |
||||
$hook = HookCreateDrupalUser::create(); |
||||
HookCreateUser::create()->attach($hook); |
||||
} |
||||
|
||||
/** |
||||
* Uninstall the Create User hook |
||||
*/ |
||||
public function uninstallHook() |
||||
{ |
||||
$hook = HookCreateDrupalUser::create(); |
||||
HookCreateUser::create()->detach($hook); |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,63 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
/** |
||||
* Hook to create an user in Drupal website |
||||
* |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
class HookCreateDrupalUser extends HookObserver implements HookCreateUserObserverInterface |
||||
{ |
||||
|
||||
/** |
||||
* Class constructor |
||||
*/ |
||||
public function __construct() |
||||
{ |
||||
parent::__construct( |
||||
'plugin/createdrupaluser/src/CreateDrupalUser.php', 'drupaluser' |
||||
); |
||||
} |
||||
|
||||
/** |
||||
* Create a Drupal user when the Chamilo user is registered |
||||
* @param HookCreateUserEventInterface $hook The hook |
||||
*/ |
||||
public function hookCreateUser(HookCreateUserEventInterface $hook) |
||||
{ |
||||
$data = $hook->getEventData(); |
||||
|
||||
$drupalDomain = CreateDrupalUser::create()->get('drupal_domain'); |
||||
$drupalDomain = rtrim($drupalDomain, '/') . '/'; |
||||
|
||||
if ($data['type'] === HOOK_EVENT_TYPE_POST) { |
||||
$return = $data['return']; |
||||
$originalPassword = $data['originalPassword']; |
||||
|
||||
$userInfo = UserManager::get_user_info_by_id($return); |
||||
$fields = array( |
||||
'name' => $userInfo['username'], |
||||
'pass' => $originalPassword, |
||||
'mail' => $userInfo['email'], |
||||
'status' => 1, |
||||
'init' => $userInfo['email'] |
||||
); |
||||
$extraFields = array( |
||||
'firstname' => $userInfo['firstname'], |
||||
'lastname' => $userInfo['lastname'] |
||||
); |
||||
|
||||
var_dump($drupalDomain . 'sites/all/modules/chamilo/soap.php?wsdl'); |
||||
|
||||
$options = array( |
||||
'location' => $drupalDomain . 'sites/all/modules/chamilo/soap.php?wsdl', |
||||
'uri' => $drupalDomain |
||||
); |
||||
|
||||
$client = new SoapClient(null, $options); |
||||
$client->addUser($fields, $extraFields); |
||||
} |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,10 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
/** |
||||
* Initialization uninstall |
||||
* @author Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com> |
||||
* @package chamilo.plugin.createDrupalUser |
||||
*/ |
||||
require_once __DIR__ . '/config.php'; |
||||
|
||||
CreateDrupalUser::create()->uninstall(); |
||||
Loading…
Reference in new issue