在Moodle

时间:2016-05-31 05:19:45

标签: moodle

我创建了一个自定义页面,其中显示了所有可用的课程。我还上传了课程的图像,现在想要显示课程的名称和图像。我可以从数据库中获取课程的名称,但是如何获取图像。

2 个答案:

答案 0 :(得分:2)

尝试这样的事情

// Create a course_in_list object to use the get_course_overviewfiles() method.
require_once($CFG->libdir . '/coursecatlib.php');
$course = new course_in_list($courseid);

$outputimage = '';
foreach ($course->get_course_overviewfiles() as $file) {
    if ($file->is_valid_image()) {
        $imagepath = '/' . $file->get_contextid() .
                '/' . $file->get_component() .
                '/' . $file->get_filearea() .
                $file->get_filepath() .
                $file->get_filename();
        $imageurl = file_encode_url($CFG->wwwroot . '/pluginfile.php', $imagepath,
                false);
        $outputimage = html_writer::tag('div',
                html_writer::empty_tag('img', array('src' => $imageurl)),
                array('class' => 'courseimage'));
        // Use the first image found.
        break;
    }
}
echo $outputimage;

答案 1 :(得分:0)

您可以直接从“ overviewfiles”文件区域中获取课程图像。

    function get_course_image()
    {
       global $COURSE;
       $url = '';
       require_once( $CFG->libdir . '/filelib.php' );

       $context = context_course::instance( $COURSE->id );
       $fs = get_file_storage();
       $files = $fs->get_area_files( $context->id, 'course', 'overviewfiles', 0 );

       foreach ( $files as $f )
       {
         if ( $f->is_valid_image() )
         {
            $url = moodle_url::make_pluginfile_url( $f->get_contextid(), $f->get_component(), $f->get_filearea(), null, $f->get_filepath(), $f->get_filename(), false );
         }
       }

       return $url;
    }