moodle-local(本地插件开发)

基本的工程目录就是这样子了
-local
   -wxpay
      -amd      //动态grunt编译js
         -build //压缩出来的js
         -src   //存放js的地方
           - pay.js // 微信支付的js
           - socketio.js//外部socketio包
      -assets // 静态资源
         -css
           - *.less
           - *.images
      -classes // 输出页面的中间层
         -output//处理渲染的
          - renderer.php//渲染
          - memberProducts.php//渲染之前的数据处理
         -pay.php // 微信支付发起的文件
         -wxpayexternallib.php//moodle内置前后端请求处理的外部函数
      -controllers
         -questionController.php // 微信回调的url
      -db//数据库操作的文件夹
         -sql 
           -*.php//增删改查的操作
         -assess.php//插件功能
         -install.php
         -install.xml // 为数据库中数据生成的xml文件
         -services.php//定义api的地方
         -uninstall.php
         -upgrade.php//安装插件时候需要王数据库增加表
         -upgradelib.php
      -lang//语言包
       -en
        -local_wxpay.php// 转换语言的地方
      -node_moudules
      -php_sdk//微信支付的sdk
      -templates // 渲染模板的地方
        -memberProduct.mustache // 排版的地方
      -utils
       -socketio // 主动推送前端的文件
      -web-msg-sender // 主动推送的插件
      -externallib.php//外部函数
      -Gruntfile.js // 配置grunt的文件
      -index.php // 入口文件
      -lib.php//函数文件
      -LICENSE.md
      -package.json
      -version.php//版本 修改数据库内容是 要手动跟新版本
      -settings.php // 设置左侧导航的

毋庸置疑,我们首先要创建入口文件(index.php)主要作为插件首页里面引用一些配置文件
主要是页面渲染 文件引用...... 算了 还是直接看代码吧 没啥可说的

require_once(dirname(__FILE__) . '/../../config.php');

require_once($CFG->libdir.'/adminlib.php');

require_once($CFG->libdir.'/accesslib.php');

require_once ('./classes/output/index_page.php');

require_once ('./classes/output/memberProducts.php');

require_once ('./classes/output/renderer.php');

require_once($CFG->dirroot .'/local/wxpay/externallib.php');

require_once($CFG->dirroot .'/local/wxpay/db/sql/mdlCommodityVip.php');

use local_wxpay\output;

require_login();

global $COURSE, $USER;

$title = get_string('pluginname', 'local_wxpay');

$pagetitle = $title;

$url = new moodle_url("/local/wxpay/index.php");

$PAGE->set_url($url); // 设置当前路径

$PAGE->set_title($title);  // 标题

$PAGE->set_pagelayout('standard');// 常用布局

$PAGE->set_heading($title);

$PAGE-> set_context (context_system :: instance ()); // 上下文

$viplist = mdlCommodityVip::getMdlCommodityVips();

$renderable = new \local_wxpay\output\index_page($viplist); // 渲染的数据

$PAGE->navbar->add($title, $url); // 头部导航

$PAGE->requires->css('/local/wxpay/assets/css/wxpay.css');

$PAGE->requires->js_call_amd('local_wxpay/addmore','init');

$PAGE->requires->js_call_amd('local_wxpay/pay','init');

echo $OUTPUT->header();

echo $OUTPUT->heading($pagetitle);// 页面标题

$output = $PAGE->get_renderer('local_wxpay'); // 执行output文件夹下renderer函数

echo $OUTPUT->render($renderable);

echo $OUTPUT->footer();
  • 渲染模板 主要写的是mustache模板语法
  • 前端

如果觉得有帮助 请给小编一个star
你的star✨、点赞和关注是我持续创作的动力!

你可能感兴趣的:(moodle-local(本地插件开发))