Devo mostrare tutti i corsi di moodle nell'elenco dei menu. Qualcuno può suggerirmi come posso ottenere tutti i corsi usando il codice php o le funzioni integrate di moodle.Come ottenere tutti i corsi su moodle?
Grazie
Devo mostrare tutti i corsi di moodle nell'elenco dei menu. Qualcuno può suggerirmi come posso ottenere tutti i corsi usando il codice php o le funzioni integrate di moodle.Come ottenere tutti i corsi su moodle?
Grazie
Supponendo che si sta scrivendo il codice da eseguire all'interno di Moodle, è possibile utilizzare la funzione di get_courses()
definita all'interno lib/datalib.php
. Per esempio:
<?php
require_once(PATH_TO_MOODLE_ROOT . '/config.php');
$courses = get_courses();
print_r($courses);
stamperà un data-dump del matrice restituita, che mostra i dettagli di tutti i corsi nel vostro sito Moodle. Questo esempio non è ovviamente appropriato da usare su un sito di produzione!
Se si controlla la definizione della funzione in lib/datalib.php
, verranno visualizzate le opzioni disponibili per limitare il set di risultati a determinati campi o controllare l'ordinamento.
Integrare questo
require_once($CFG->dirroot . '/lib/coursecatlib.php');
Usare questa funzione per ottenere tutti i corsi in lista menu.
$allcourses = coursecat::get(0)->get_courses(array('recursive' => true));
var_dump($allcourses);exit;
Se si desidera mostrare iscritti solo corso per studenti è possibile utilizzare il metodo seguente.
require_once($CFG->dirroot.'/blocks/course_overview/locallib.php');
global $USER,$DB;
$courses = enrol_get_users_courses($USER->id, true);
O Se si desidera elencare tutti i corsi ..
global $DB;
$query = "SELECT id, fullname, shortname from {course}";
$courselist = $DB->get_records_sql($query);
foreach ($courselist as $course) {
echo $course->fullname;
}
Grazie
Questo script deve iniziare con la linea 'define ('CLI_SCRIPT', true);' per essere correre. – shacker