所以我一直在寻找这个问题的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();
});
});
我没有编辑与课程页面相关的任何其他内容,但这并不意味着该问题可能不在其他地方。
对于文字墙感到抱歉,但请有人帮我查一下为什么活动没有添加到正确的部分,也不允许我之后进入正确的部分?我真的很感激。