2

自分のPHPアプリケーションにmoodleを統合しようとしています。iframe内にmoodleサイトを表示することはできますか?

4

2 に答える 2

0

私の問題は、エディターで iframe を保存できることでしたが、その iframe は後で編集すると取り除かれました。ブログやフォーラムに iframe を埋め込む際に問題が発生した場合は、moodle 3.9.1 で使用したコードを次に示します: config.php を編集し、

require_once(__DIR__ . '/lib/setup.php');

次に、その下に正確に次のコードを配置します。

$script_file = realpath($_SERVER['SCRIPT_FILENAME']);
if($script_file){
    $script_file_rel_path = substr($script_file,strlen(__DIR__));
    if(strpos($script_file_rel_path,'/edit.php') !== false){
        $sitecontext = context_system::instance();
        if(has_capability('moodle/site:trustcontent',$sitecontext)){
            require_once __DIR__ . '/lib/htmlpurifier/HTMLPurifier.safe-includes.php';
            require_once __DIR__ . '/lib/htmlpurifier/HTMLPurifier/ConfigSchema.php';
            $definition = HTMLPurifier_ConfigSchema::instance();
            $definition->add('HTML.SafeIframe', true, 'bool', true);
            // Only allow urls from subdomains of google.com and youtube.com
            $definition->add('URI.SafeIframeRegexp', '/:\/\/([^\/]*?)(\.(google|youtube)\.com)\//','string', true);
            // Uncomment the following and remove previous line in order to allow any url in the "src" attribute
            // $definition->add('URI.SafeIframeRegexp', '//','string', true);
        }
    }
}

これが何をするか: edit.php リンク (編集ページ) にアクセスするとき、システム内の moodle/site:trustcontent 機能を持つユーザーは、特定のドメインからの URL を使用して、テキスト エディターに iframe を埋め込むことができます。

于 2020-10-07T10:04:21.933 に答える