在Moodle的某个部分添加活动 - 不保存部分

时间:2016-07-19 07:35:56

标签: php moodle

所以我一直在寻找这个问题的2天,我无法找到代码存在的位置,或者如何编辑/修复它。

当您点击"添加活动或资源&#34时,会发生什么?在编辑课程时,它会添加活动或资源,但总是会添加到第0部分。它不会保存我点击的部分,并且当重定向到course / modedit.php时,URL显示section = 0,无论是来自第1节还是第10节。此外,将活动移动到其他部分也不会保存 - 它只是将活动重新排序到第0部分中的最后一个。

我不确定导致此问题的代码。我需要一些帮助或指导,以便开始调试和解决此问题。

我也无法确定此问题何时首次出现,因为我在开发此网站时修改了一些文件。唯一可能相关的(从我可以推测的),并可能有助于为任何比我更了解情况的人提供一些线索:

protected function section_header($section, $course, $onsectionpage, $sectionreturn=null) {
    global $PAGE;

    $o = '';
    $currenttext = '';
    $sectionstyle = '';

    if ($section->section != 0) {
        // Only in the non-general sections.
        if (!$section->visible) {
            $sectionstyle = ' hidden';
        } else if (course_get_format($course)->is_section_current($section)) {
            $sectionstyle = ' current';
        }
    }

    $o.= html_writer::start_tag('li', array('class' => 'section main'.$sectionstyle));

    // Create a span that contains the section title to be used to create the keyboard section move menu.
    $o .= html_writer::tag('span', $this->section_title($section, $course), array('class' => 'hidden sectionname'));

    $leftcontent = $this->section_left_content($section, $course, $onsectionpage);
    $o.= html_writer::tag('div', $leftcontent, array('class' => 'left side'));

    $rightcontent = $this->section_right_content($section, $course, $onsectionpage);
    $o.= html_writer::tag('div', $rightcontent, array('class' => 'right side'));

    $sectionname = html_writer::tag('span', $this->section_title($section, $course));
    $o.= html_writer::start_tag('a', array('href' => '#section-'.$section->section, 'class' => 'title'));
    $o.= $this->output->heading($sectionname, 3, 'sectionname' . $classes);
    $o.= html_writer::end_tag('a');

    $o.= html_writer::start_tag('div', array('id' => 'section-'.$section->section, 'class' => 'content'));

    // When not on a section page, we display the section titles except the general section if null
    $hasnamenotsecpg = (!$onsectionpage && ($section->section != 0 || !is_null($section->name)));

    // When on a section page, we only display the general section title, if title is not the default one
    $hasnamesecpg = ($onsectionpage && ($section->section == 0 && !is_null($section->name)));

    $classes = ' accesshide';
    if ($hasnamenotsecpg || $hasnamesecpg) {
        $classes = '';
    }

    $o.= html_writer::start_tag('div', array('class' => 'summary'));
    $o.= $this->format_summary_text($section);

    $context = context_course::instance($course->id);
    $o .= $this->section_availability_message($section, has_capability('moodle/course:viewhiddensections', $context));              


    return $o;
}

这是我对布局的修改 - 允许一个简单的Jquery手风琴来显示/隐藏这些部分。 Jquery是:

$(document).ready(function() {
function close_accordion_section() {
    $(".topics .title").removeClass("active");
    $(".topics .content").slideUp(300).removeClass("open");
    $("#section-0").stop();
}

$(".title").click(function(e) {
    // Grab current anchor value
    var currentAttrValue = $(this).attr("href");

    if($(e.target).is(".active")) {
        close_accordion_section();
    }else {
        close_accordion_section();

        // Add active class to section title
        $(this).addClass("active");
        // Open up the hidden content panel
        $(".topics " + currentAttrValue).slideDown(300).addClass("open"); 
    }

    e.preventDefault();
});
});

我没有编辑与课程页面相关的任何其他内容,但这并不意味着该问题可能不在其他地方。

对于文字墙感到抱歉,但请有人帮我查一下为什么活动没有添加到正确的部分,也不允许我之后进入正确的部分?我真的很感激。

0 个答案:

没有答案