2013-08-12 7 views
5

मुझे मेनू लिस्टिंग में सभी मूडल पाठ्यक्रम दिखाना होगा। क्या कोई मुझे सुझाव दे सकता है कि मैं PHP कोड या मूडल इनबिल्ट फ़ंक्शंस का उपयोग करके सभी पाठ्यक्रम कैसे प्राप्त कर सकता हूं।मूडल पर सभी पाठ्यक्रम कैसे प्राप्त करें?

धन्यवाद

उत्तर

9

मान लिया जाये कि आप कोड लिख रहे हैं Moodle के भीतर चलाने के लिए, आप get_courses() समारोह lib/datalib.php में परिभाषित कर सकते हैं। उदाहरण के लिए:

<?php 
require_once(PATH_TO_MOODLE_ROOT . '/config.php'); 
$courses = get_courses(); 
print_r($courses); 

आपके मूडल साइट के सभी पाठ्यक्रमों का विवरण दिखाते हुए लौटाए गए सरणी के डेटा-डंप को प्रिंट करेगा। यह उदाहरण स्पष्ट रूप से उत्पादन साइट पर उपयोग करने के लिए उपयुक्त नहीं है!

यदि आप lib/datalib.php में फ़ंक्शन परिभाषा की जांच करते हैं तो आप परिणाम फ़ील्ड को विशेष फ़ील्ड में प्रतिबंधित करने या सॉर्ट ऑर्डर को नियंत्रित करने के लिए उपलब्ध विकल्पों को देखेंगे।

+0

यह स्क्रिप्ट लाइन के साथ शुरू करना चाहिए 'परिभाषित ('CLI_SCRIPT', true);' क्रम में होना करने के लिए चलाते हैं। – shacker

1

इस फाइल

require_once($CFG->dirroot . '/lib/coursecatlib.php'); 

उपयोग मेनू सूची में सभी पाठ्यक्रमों प्राप्त करने के लिए इस समारोह को शामिल करें।

$allcourses = coursecat::get(0)->get_courses(array('recursive' => true)); 

var_dump($allcourses);exit; 
0

यदि आप छात्र को केवल नामांकित पाठ्यक्रम दिखाना चाहते हैं तो आप निम्न विधि का उपयोग कर सकते हैं।

require_once($CFG->dirroot.'/blocks/course_overview/locallib.php'); 
global $USER,$DB; 
$courses = enrol_get_users_courses($USER->id, true); 

या आप सभी पाठ्यक्रमों की सूची चाहते हैं ..

global $DB; 
$query = "SELECT id, fullname, shortname from {course}"; 
$courselist = $DB->get_records_sql($query); 
foreach ($courselist as $course) { 
    echo $course->fullname; 
} 

धन्यवाद

संबंधित मुद्दे