在本地插件的页面中,我收到$ OUTPUT-> header()的错误; :
检测到编码错误,必须由程序员修复:传递给moodle_page :: set_state的无效状态。我们处于州1,州1被要求。
我已经在Google上查看原因可能是第二次调用$ OUTPUT-> header();
但是没有第二次电话。
另外,令人费解和令人惊讶的是,所有其他页面都没有错误,包括类似的其他本地插件,错误仅适用于本地插件页面。
另外,我尝试了$ OUTPUT-> has_started(),它返回false。
此外,$ PAGE->状态为0,就在调用标题之前。
Moodle版本2.8
请帮助和指导。
编辑:
require_once('../../config.php');
require_login();
global $CFG,$PAGE;
$PAGE->set_context(context_system::instance());
$PAGE->set_pagelayout('standard');
$PAGE->set_title('');
$PAGE->set_heading('');
$PAGE->set_url($CFG->wwwroot.'/local/tpmg/pending-manual.php');
if( ! $OUTPUT->has_started() )
{
// echo $PAGE->state;exit;
echo $OUTPUT->header();
}
if( isloggedin() )
{
require_once('lib.php');
$pmQuizzesObj = get_pm_quizzes();
if( $pmQuizzesObj->pendingAttsCount )
{
$pmQuizzesArr = $pmQuizzesObj->quizzesArr;
echo get_string( 'tpmgpano','local_tpmg' ) . " : " . $pmQuizzesObj->pendingAttsCount . "<br/>";
// Here goes table for Quizzes needing manual grading.
$content = "<table class='mot_table'>";
$content .= "<th>" . get_string( 'tpmgthead','local_tpmg' ) . "</th>";
foreach( $pmQuizzesArr as $key=>$currPmQuiz )
{
$tpmgQuizHref = $CFG->wwwroot . '/mod/quiz/report.php?id=' . $currPmQuiz->cmid . '&mode=grading';
$content .= "<tr>";
$content .= "<td> <a href=" . $tpmgQuizHref . ">" . $currPmQuiz->quizname . "</a></td>";
$content .= "</tr>";
}
$content .= "</table>";
echo $content;
}
else
{
echo get_string( 'tpmgnopm','local_tpmg' );
}
}
else
{
require_login();
}
echo $OUTPUT->footer();
编辑: 我发现页面正文,也可能是页面标题,正在打印两次。请指导一下。
答案 0 :(得分:0)
您必须在调用$ OUTPUT-&gt; header()之前设置页面参数($ PAGE-&gt; set_ *);