moodle 页面联动效果
文件
https://docs.moodle.org/dev/Web_services:Files
Javascript 模塊
https://docs.moodle.org/dev/Javascript_Modules
https://docs.moodle.org/dev/Guide_to_adding_third_party_jQuery_for_AMD
https://docs.moodle.org/dev/Useful_core_Javascript_modules
https://docs.moodle.org/dev/Templates#What_if_a_template_contains_javascript.3F
windows下的相關(guān)安裝
安裝 NVM 和node
安裝 NodeJS 的推薦方式是通過Node Version Manager或 NVM。NVM 允許您在計算機上安裝和使用多個不同版本的 NodeJS。支持的 Moodle 版本均使用 NodeJS v14.18.0 版本。
安裝node.js
1、node.js版本要大于14.15小于15.00.0
安裝grunt
安裝watchman
1、在開始菜單里找到Windows PowerShell.并以管理員身份運行
2、輸入以下代碼安裝 watchman
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) https://facebook.github.io/watchman/docs/install.html注意:使用 Windows PowerShell 安裝watchman 是為了避免提示Set-ExecutionPolicy不是內(nèi)部命令。
(運行Windows PowerShell后可以輸入 set-ExecutionPolicy RemoteSigned 回車,再輸入 A 回車,再使用Set-ExecutionPolicy 命令不會再提示不是內(nèi)部命令問題)
打開cmd 命令 提示符
cd D:\wamp64\www\moodle\server\moodle\mod grunt watchmod/univilab/db/services.php:54
注意:每當services.php 更改時,不要忘記增加插件的version.php 文件中的版本號,否則Moodle 將無法檢測到更改。
https://docs.moodle.org/dev/External_functions_API
https://docs.moodle.org/dev/Adding_a_web_service_to_a_plugin
a list => external_multiple_structure
an object => external_single_structure
a primary type => external_value
https://docs.moodle.org/dev/Web_services_API
'mod_univilab_get_prov_base_images' => array('classpath' => 'mod/univilab/classes/external.php','classname' => 'mod_univilab_external','methodname' => 'get_prov_base_images',//在上面的類中實現(xiàn)這個函數(shù)'description' => 'Get the list of base images for a certain environment','ajax' => true,//true/false 如果您允許通過 ajax 調(diào)用此 Web 服務(wù)功能'type' => 'read', //如果您的函數(shù)進行了任何數(shù)據(jù)庫更改,則值為 'write',否則為 'read'。'capabilities' => 'mod/univilab:addbaseimage'//列出所需的功能函數(shù)(在 require_capability() 調(diào)用中的那些)(為授權(quán)用戶顯示缺少的功能,也為在 Web 界面中手動創(chuàng)建的令牌顯示,這只是提供信息)。),mod/univilab/db/access.php:75
// 添加一個配置'mod/univilab:addbaseimage' => ['riskbitmask' => RISK_CONFIG,'captype' => 'write','contextlevel' => CONTEXT_SYSTEM,'archetypes' => ['manager' => CAP_ALLOW,],'clonepermissionsfrom' => 'moodle/site:config'],報錯信息
mod/assign/externallib.php:1710
一
error: “異常 - Call to undefined function external_multiple_structure()”
errorcode: “generalexceptionmessage”
stacktrace: null
debuginfo: null
reproductionlink: null
1、是名字不一致
public static function get_prov_api_info(baseurl,base_url,baseu?rl,key_id,keysecret,key_secret,keys?ecret,provider_type){
$params = self::validate_parameters(self::get_prov_api_parameters(),array());
}
2、_returns()方法中 代碼不對
二、檢測到無效的響應(yīng)值
exception: {message: “檢測到無效的響應(yīng)值”, errorcode: “invalidresponse”, link: “http://localhost/”,…}
message: “檢測到無效的響應(yīng)值”
errorcode: “invalidresponse”
link: “http://localhost/”
moreinfourl: “https://docs.moodle.org/311/zh_cn_wp/error/debug/invalidresponse”
2、***_returns()與***_parameters()中的描述未寫
三、檢測到無效的參數(shù)值
message: “檢測到無效的參數(shù)值”
errorcode: “invalidparameter”
link: “http://localhost/”
moreinfourl: “https://docs.moodle.org/311/zh_cn_wp/error/debug/invalidparameter”
JS中的異步參數(shù)名 與 PHP方法中的參數(shù)名要一致
const getprovapi = (base_url,key_id,key_secret,provider_type) => {require(['core/ajax'], function (ajax) {var promises = ajax.call([{methodname: 'mod_univilab_get_prov_api_info',args: {base_url: base_url,access_key_id:key_id,access_key_secret:key_secret,provider_type:provider_type}},]);promises[0].done(function (response) {window.console.log('response:'+response);});}); }; $params = self::validate_parameters(self::get_prov_api_info_parameters(),array('base_url'=>$base_url,'access_key_id'=>$access_key_id,'access_key_secret'=>$access_key_secret,'provider_type'=>$provider_type));四 message: “異常 - Too few arguments to function mod_univilab_external::get_prov_api_info(), 4 passed in [dirroot]\lib\externallib.php on line 261 and exactly 5 expected”
errorcode: “generalexceptionmessage”
link: “http://localhost/”
moreinfourl: “https://docs.moodle.org/311/zh_cn_wp/error/moodle/generalexceptionmessage”
public static function get_prov_api_info_returns(){return new external_multiple_structure(new external_single_structure (array('region_id' => new external_value(PARAM_RAW, 'region id'),'pay_type' => new external_value(PARAM_RAW, 'pay type'),))); }
對外服務(wù)說明
https://docs.moodle.org/dev/External_services_description
參數(shù)類型
請注意,此列表在您閱讀時幾乎肯定會過時。幫自己一個忙,看看 lib/moodlelib.php 中的列表。這保證是最新的。
‘PARAM_ALPHA’, ‘阿爾法’
‘PARAM_ALPHAEXT’, ‘a(chǎn)lphaext’
‘PARAM_ALPHANUM’, ‘字母數(shù)字’
‘PARAM_ALPHANUMEXT’, ‘a(chǎn)lphanumext’
‘PARAM_AUTH’, ‘認證’
‘PARAM_BASE64’, ‘base64’
‘PARAM_BOOL’, ‘布爾’
‘PARAM_CAPABILITY’, ‘能力’
‘PARAM_CLEANHTML’, ‘cleanhtml’
‘PARAM_EMAIL’, ‘電子郵件’
‘PARAM_FILE’, ‘文件’
‘PARAM_FLOAT’, ‘浮動’
‘PARAM_HOST’, ‘主機’
‘PARAM_INT’, ‘int’
‘PARAM_LANG’, ‘lang’
‘PARAM_LOCALURL’, ‘localurl’
‘PARAM_NOTAGS’, ‘notags’
‘PARAM_PATH’, ‘路徑’
‘PARAM_PEM’, ‘pem’
‘PARAM_PERMISSION’, ‘權(quán)限’
‘PARAM_RAW’, ‘原始’
‘PARAM_RAW_TRIMMED’, ‘raw_trimmed’
‘PARAM_SAFEDIR’, ‘safedir’
‘PARAM_SAFEPATH’, ‘安全路徑’
‘PARAM_SEQUENCE’, ‘序列’
‘PARAM_TAG’, ‘標簽’
‘PARAM_TAGLIST’, ‘標簽列表’
‘PARAM_TEXT’, ‘文本’
‘PARAM_THEME’, ‘主題’
‘PARAM_URL’, ‘url’
‘PARAM_USERNAME’, ‘用戶名’
‘PARAM_STRINGID’, ‘stringid’
‘PARAM_CLEAN’, ‘干凈’
‘PARAM_INTEGER’, ‘int’
‘PARAM_NUMBER’, ‘浮動’
‘PARAM_ACTION’, ‘a(chǎn)lphanumext’
‘PARAM_FORMAT’, ‘a(chǎn)lphanumext’
‘PARAM_MULTILANG’, ‘文本’
‘PARAM_TIMEZONE’, ‘時區(qū)’
‘PARAM_CLEANFILE’, ‘文件’
‘PARAM_COMPONENT’, ‘組件’
‘PARAM_AREA’, ‘區(qū)域’
‘PARAM_PLUGIN’, ‘插件’
——————————————————————————————
Windows下安裝及使用NVM
https://github.com/coreybutler/nvm-windows/releases
https://github.com/nvm-sh/nvm#installing-and-updating
command -v nvm //驗證nvm是否已安裝成功 nvm install 14.18.0 //安裝指定的版本的nodejs nvm use 14.18.0 //使用指定版本的nodejsnvm的使用
nvm arch [32|64]: 顯示node是運行在32位還是64位模式。指定32或64來覆蓋默認體系結(jié)構(gòu)。 -nvm install <version> [arch]:該可以是node.js版本或最新穩(wěn)定版本latest。(可選[arch])指定安裝32位或64位版本(默認為系統(tǒng)arch)。設(shè)置[arch]為all以安裝32和64位版本。在命令后面添加– insecure,可以繞過遠端下載服務(wù)器的SSL驗證。 nvm list [available]:列出已經(jīng)安裝的node.js版本。可選的available,顯示可下載版本的部分列表。這個命令可以簡寫為nvm ls [available]。 nvm on: 啟用node.js版本管理。 nvm off: 禁用node.js版本管理(不卸載任何東西) nvm proxy [url]: 設(shè)置用于下載的代理。留[url]空白,以查看當前的代理。設(shè)置[url]為none刪除代理。 nvm node_mirror [url]:設(shè)置node鏡像,默認為https://nodejs.org/dist/.。可以設(shè)置為淘寶的鏡像https://npm.taobao.org/mirrors/node/ nvm npm_mirror [url]:設(shè)置npm鏡像,默認為https://github.com/npm/npm/archive/。可以設(shè)置為淘寶的鏡像https://npm.taobao.org/mirrors/npm/ nvm uninstall <version>: 卸載指定版本的nodejs。 nvm use [version] [arch]: 切換到使用指定的nodejs版本。可以指定32/64位[arch]。 -nvm use <arch>:將繼續(xù)使用所選版本,但根據(jù)提供的值切換到32/64位模式 nvm root [path]: 設(shè)置 nvm 存儲node.js不同版本的目錄 ,如果未設(shè)置,將使用當前目錄。 -nvm version: 顯示當前運行的nvm版本,可以簡寫為nvm v nvm version //顯示當前運行的nvm版本,可以簡寫為nvm v總結(jié)
以上是生活随笔為你收集整理的moodle 页面联动效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是EJB?EJB详解
- 下一篇: 2008 r2 server sql 中