как загрузить внешний JS-файл в moodle?

#moodle

#moodle

Вопрос:

как загрузить внешний JS-файл в moodle? используя moodle api, то есть библиотеки moodle..

Ответ №1:

В Moodle 2.0 я всегда использовал $PAGE->requires->js() .

Для начала сделайте $PAGE доступным ваш код, выполнив:

 require_once($CFG->libdir . '/pagelib.php');
global $PAGE;
  

и затем в вашем коде:

 $PAGE->requires->js( new moodle_url($CFG->wwwroot . '/blocks/your_block/script.js') );
  

Требуется поместить moodle_url() вокруг вашего пути!

Комментарии:

1. Чем использование «$PAGE-> requires-> js()» лучше, чем прямое добавление «<script src=blabla>» в php темы moodle?

2. @iankit это лучше (и позволяет страницам загружаться намного быстрее) по нескольким причинам: а) Это позволяет избежать повторной загрузки одного и того же скрипта — если все четыре разных блока используют jquery, нет необходимости загружать библиотеку jquery четыре раза. б) Он может вообще не загружаться, пока это не понадобится — ваш блок, вероятно, вообще не будет нажат при большинстве загрузок страницы. c) Он загружает javascript после рендеринга страницы, поэтому пользователь не получает пустой экран в течение нескольких секунд, пока загружаются все файлы javascript. d) Moodle объединяет несколько файлов javascript, получая их в одном запросе, а не в 20.

Ответ №2:

      <?php 
         //you have load $CFG , firstly check in config.php
         //after that print_r($CFG);
         //also you can use $CFG->wwwroot;

   require ('../config.php');
    require_once ($CFG->dirroot.'/login/lib.php');

//and then in your code:// after that
echo $OUTPUT->header(); ?>


<script src="<?php $CFG->wwwroot ?>/js/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="<?php $CFG->wwwroot ?>js/jquery.validationEngine-en.js"    type="text/javascript" charset="utf-8"></script>
<script src="<?php $CFG->wwwroot ?>js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>
<?php $PAGE->requires->js(new moodle_url($CFG->wwwroot.'/blocks/your_block/script.js')); ?>
  

Комментарии:

1. не могли бы вы подробнее объяснить, куда поместить js-файл?