【moodle】moodle dialog开发笔记 1

颜河
2023-12-01

moodle plugin慕课网插件开发笔记 1

参考文章:http://t.csdn.cn/9KgS1
session原理: https://www.cnblogs.com/lisqiong/p/10172780.html
因为毕设,重新捡起 php,开始敲代码。

安装环境

先用bitnami的stack安装moodle,一键架服务器和数据库,非常方便,在阿里云上linux版本装的moodle 3.10.0,在本地装的4.0.0。

Dialogflow PHP API

moodle用的是php语言,目前没找到dialogflow和php的官方api,还好有万能的github,看了半天总算是把dialogflow搞定,能回复纯文字信息即可。

  • 推荐谁的api?
    • https://github.com/eristemena/dialogflow-fulfillment-webhook-php 种类多,品种全;
    • https://github.com/ryderdamen/PHP-DialogFlow-Webhooks-Fulfillment-API 精巧简单;
  • 为什么不用官方的service account?问就是穷鬼没visa card。
  • 为什么不用nodejs?编写前端比较麻烦,直接用的kommunicate的免费一个月机器人做前端交互。

困难重重

  1. 先看教程,https://docs.moodle.org/dev/Tutorial,学到了plugin的分类,有很多,但是不知道自己用哪个比较好。block相对比较好写,结构简单不涉及与后台数据的联通,容易上手,但我的需求需要后台……
  2. 跟着写了个mod类的demo,但是安装的时候总是报错。
  3. 下载github上生成插件的骨架插件pluginskel,安装生成插件后yaml文件注释的内容过多太难懂,放弃。
  4. 后来在youtube上找到了Moodle plugin developer tutorial系列教程。

开始上手

  1. 在/moodle/htdocs/local/目录下直接新建文件夹作为插件名称
  2. 先写版本文件 version.php
<?php
// This file is part of the Local Chatbot Dialogflow plugin
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
* This plugin verify group user ldap and create
* cohort same name specified settings
*
* @package    local 
* @copyright  20XX 开发者姓名 邮箱
* @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die();

/** @var plugin $plugin */
$plugin->version  = 2022100400;//版本号
// moodle version
//$plugin->requires = 2013051400;
$plugin->release = '0.1.0';//版本号
$plugin->maturity = MATURITY_ALPHA;
$plugin->component = 'local_message';//插件类_名称
  1. 然后在控制台调用 htdocs/admin/cli/upgrade.php 升级moodle
  2. 新建lib.php直接写方法,我这里是调用了Notification的通知
<?php
//上述的文件头略

function local_message_before_footer() {
    \core\notification::add("test Message", \core\output\notification::NOTIFY_INFO);

//    redirect('../../index.php', 'Message on redirect', null, \core\output\notification::NOTIFY_SUCCESS);
//    die('hello');//这条代码可以在首页上直接打印hello
}

数据库操作

  1. 调用数据库前,在插件目录下新建db文件夹,新建文件access.xml,moodle中所有与数据库相关的文件都是xml格式的
  2. 如需新建数据库则新建文件install.xml

PHP-DIALOGFLOW API

ytb上有PHP开发合集,虽然是5年前的,但是还是依然好用。
Webhook: PHP | Part - 8 | Create Chatbots using Dialogflow(API.AI) & deploy on GCloud
https://www.youtube.com/watch?v=mMtd-Fmr2to&list=PLZmfj7vJb0aFv-JQwSXh1VPAnKkOadhlX&index=20&t=14s

动态加载

待更新

 类似资料: