第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Moodle 插件:檢查管理員是否在管理中添加指向插件的鏈接

Moodle 插件:檢查管理員是否在管理中添加指向插件的鏈接

PHP
浮云間 2023-04-02 10:15:29
我是 moodle 插件開發(fā)的新手,正在嘗試創(chuàng)建一個(gè)向管理員顯示頁(yè)面的插件,我可以在其中添加我的 php 代碼。簡(jiǎn)而言之,我希望插件執(zhí)行的操作已經(jīng)在我上傳到 moodle 根目錄的標(biāo)準(zhǔn) php 文件中實(shí)現(xiàn)了。從這里您可以調(diào)用文件,例如 yourdomain.co.uk/moodlelocation/myfile.php,它將按預(yù)期運(yùn)行。這樣做的問題是它不安全,因?yàn)槿魏稳硕伎梢约虞d myfile.php 并依次在頁(yè)面上運(yùn)行腳本。這也意味著任何其他人使用此腳本(完成后將免費(fèi)贈(zèng)送)需要通過 FTP 連接到他們的主機(jī)并將兩個(gè) php 文件上傳到他們的 moodle 安裝。因此,我認(rèn)為插件(一個(gè)非常非?;镜牟寮┛赡苁亲詈玫慕鉀Q方案。然后他們可以通過“站點(diǎn)管理”在管理員中加載頁(yè)面。例如站點(diǎn)管理 > 開發(fā) > MyPlugin。我假設(shè)我也可以將插件的主頁(yè)限制為僅限管理員 (??)??偠灾?,我可以創(chuàng)建一個(gè) php 頁(yè)面,讓我的腳本搖擺不定,但我需要將其制作成一個(gè)插件。我做了一些閱讀,我認(rèn)為“本地”插件是最簡(jiǎn)單的方法(??)。我已經(jīng)設(shè)法使用 local/webguides/inex.php 中的以下內(nèi)容啟動(dòng)并運(yùn)行本地插件:<?php// Standard config file and local library.require_once(__DIR__ . '/../../config.php');// Setting up the page.$PAGE->set_context(context_system::instance());$PAGE->set_pagelayout('standard');$PAGE->set_title("webguides");$PAGE->set_heading("webguides");$PAGE->set_url(new moodle_url('/local/webguides/index.php'));// Ouput the page header.echo $OUTPUT->header();echo 'MY php CODE here etc';?>這工作正常但有兩個(gè)問題:任何人都可以通過http://domain/local/webguides/index.php訪問它站點(diǎn)管理中沒有指向它的鏈接(因此用戶需要輸入 URL)。誰能闡明我將如何實(shí)現(xiàn)上述兩個(gè)步驟?提前致謝ps 理想情況下,我希望將插件保留在盡可能少的文件中,因此如果可以將所需的代碼添加到 local/webguides/index.php 文件中,那將是首選。
查看完整描述

1 回答

?
侃侃無極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

您需要?jiǎng)?chuàng)建一個(gè)功能,然后在顯示頁(yè)面之前需要該功能。


首先,看一下local/readme.txt- 這給出了本地插件所需文件的概述。


或者閱讀https://docs.moodle.org/dev/Local_plugins上的文檔


還可以查看現(xiàn)有的本地插件,以便了解它們是如何創(chuàng)建的 - https://moodle.org/plugins/?q=type:local


至少,你需要


local/webguides/db/access.php - this will have the capability

local/webguides/lang/en/local_webguides.php

local/webguides/version.php

加上你的索引文件


local/webguides/index.php

在db/access.php文件中有類似的東西


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


$capabilities = array(


    'local/webguides:view' => array(

        'captype' => 'read',

        'contextlevel' => CONTEXT_SYSTEM,

        'archetypes' => array(

        ),

    ),


);

您可能還需要'riskbitmask' => RISK_XXX取決于您的代碼中是否存在任何風(fēng)險(xiǎn)。如RISK_CONFIG,RISK_PERSONAL等


在lang/en/local_webguides.php有類似的東西


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


$string['pluginname'] = 'Webguides';

$string['webguides:view'] = 'Able to view webguids';

在version.php有類似的東西


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


$plugin->version   = 2020051901;        // The current plugin version (Date: YYYYMMDDXX)

$plugin->requires  = 2015051109;        // Requires this Moodle version.

$plugin->component = 'local_webguides'; // Full name of the plugin (used for diagnostics).

替換2015051109為您正在使用的 Moodle 版本 - 這將位于version.php根文件夾中。


然后在你的index.php文件中使用它靠近頂部。


require_capability('local/webguides:view', context_system::instance());

因此只有具有該能力的用戶才能訪問該頁(yè)面。


編輯:


settings.php您可以使用類似的方式添加鏈接


defined('MOODLE_INTERNAL') || die;


if ($hassiteconfig) {

    $page = new admin_externalpage(

        'local_webguides',

        get_string('pluginname', 'local_webguides'),

        new moodle_url('/local/webguides/index.php'),

        'local/webguides:view'

    );


    $ADMIN->add('localplugins', $page);

}

然后在你的索引頁(yè)廣告這個(gè)


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

并刪除require_login()并require_capability()替換為


admin_externalpage_setup('local_webguides');


查看完整回答
反對(duì) 回復(fù) 2023-04-02
  • 1 回答
  • 0 關(guān)注
  • 134 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)