如何在Drupal中使用Moodle API或Moodle函数?

时间:2016-06-17 06:46:19

标签: moodle

我在服务器上安装了Moodle实例,在同一台服务器上安装了Drupal实例。但是,他们都使用不同的域名。

drupal.example.com (running Drupal 7.44) (hosted on Server A)
www.example.net/moodle (running Moodle 2.6.2) (hosted on same server as above)

要求: 我想在Drupal中使用Moodle函数。我想让我的Moodle用户使用他们的Moodle凭证登录Drupal。

使用Moodle凭证登录Drupal的用户应该可以访问他们在Drupal上的Moodle课程。

我的方法: 将Moodle配置文件包含在外部PHP文件中(托管在Drupal站点上),将AJAX请求发送到PHP文件以验证用户,获取课程列表以及从Moodle到Drupal的其他信息。

我仍在努力完成这项要求。想知道是否有任何简单的方法来满足这一要求。

3 个答案:

答案 0 :(得分:1)

Moodle有一套非常广泛的网络服务用于这个用例,如果你浏览一下,有两种方法可以在两个系统之间实现SSO。

答案 1 :(得分:0)

你是在正确的轨道上,我也实现了不同但相似的解决方案,以便用户可以自动登录moodle,如果他们登录到另一个系统。我正在分享我的代码,如果它可以帮助你: -

<?php 


require('config.php');
$name=strtoupper($_REQUEST['username']);
$password=$_REQUEST['password'];
$dashboard = $CFG->wwwroot;
$user = authenticate_user_login($name, $password);
if(complete_user_login($user))
{   
    $actual_link = "http://$_SERVER[HTTP_HOST]/moodlevxl/login/logout.php?sesskey=".$user->sesskey;

       header("http://$_SERVER[HTTP_HOST]");
       ?>
       <script>
           location.href = "Your callback url";
       </script>
       <?php
    //print_r($_COOKIES);
//echo "login";
}
else
{
   echo "not login"; die;
}



?>

答案 2 :(得分:-1)

这个要求没有简单的解决方案。不过,你可以做到这一点。

  1. 将Moodle UI自定义为Drupal。
  2. 使用Moodle实施SSO。
  3. 在Drupal仪表板上添加指向课程列表的链接。
  4. 对于SSO和其他网络服务,请参阅此here