コード例 #1
0
       $link_back = "admin.php?course=$course_code".(isset($exerciseId) ? "&exerciseId=$exerciseId" : "").(isset($_GET['newQuestion']) ? "&editQuestion=$_GET[newQuestion]" : "&editQuestion=$_GET[modifyQuestion]");
   }  
   $tool_content .= action_bar(array(
       array('title' => $langBack,
           'url' => $link_back,
           'icon' => 'fa-reply',
           'level' => 'primary-label'
       )
   ));
   $q_cats = Database::get()->queryArray("SELECT * FROM exercise_question_cats WHERE course_id = ?d", $course_id);
 
   $options = "<option value='0'>-- $langQuestionWithoutCat --</option>\n";
   foreach ($q_cats as $q_cat) {
       $options .= "<option value='$q_cat->question_cat_id' ". (($category == $q_cat->question_cat_id) ? "selected" : "") .">$q_cat->question_cat_name</option>\n";
   }
   enableCheckFileSize();
   $tool_content .= "
   <div class='form-wrapper'>
       <form class='form-horizontal' role='form' enctype='multipart/form-data' method='post' action='$form_submit_action'>
           <div class='form-group'>
               <label for='questionCat' class='col-sm-2 control-label'>$langQuestionCat:</label>
               <div class='col-sm-10'>
                   <select name='category' id='questionCat' class='form-control'>
                       $options
                   </select>
               </div>
           </div>        
           <div class='form-group ".(Session::getError('questionName') ? "has-error" : "")."'>
               <label for='questionName' class='col-sm-2 control-label'>$langQuestion:</label>
               <div class='col-sm-10'>
                 <input name='questionName' type='text' class='form-control' id='questionName' placeholder='$langQuestion' value='" . q($questionName) . "'>
コード例 #2
0
ファイル: index.php プロジェクト: nikosv/openeclass
function new_assignment() {
    global $tool_content, $m, $langAdd, $course_code, $course_id, $answer;
    global $desc, $language, $head_content, $langCancel, $langMoreOptions, $langLessOptions;
    global $langBack, $langSave, $langStudents, $langMove, $langWorkFile, $langAssignmentStartHelpBlock,
           $langAssignmentEndHelpBlock, $langWorkSubType, $langWorkOnlineText, $langStartDate,
           $langGradeNumbers, $langGradeScalesSelect, $langGradeType, $langGradeScales,
           $langAutoJudgeInputNotSupported, $langAutoJudgeSum, $langAutoJudgeNewScenario,
           $langAutoJudgeEnable, $langAutoJudgeInput, $langAutoJudgeExpectedOutput,
           $langAutoJudgeOperator, $langAutoJudgeWeight, $langAutoJudgeProgrammingLanguage,
           $langAutoJudgeAssertions;

    $connector = AutojudgeApp::getAutojudge();

    load_js('bootstrap-datetimepicker');
    load_js('select2');

    $scales = Database::get()->queryArray('SELECT * FROM grading_scale WHERE course_id = ?d', $course_id);
    $scale_options = "<option value>-- $langGradeScalesSelect --</option>";
    foreach ($scales as $scale) {
        $scale_options .= "<option value='$scale->id'>$scale->title</option>";
    }
    $head_content .= "<script type='text/javascript'>
        $(function() {
            $('#scales').select2();
            $('input[name=grading_type]').on('change', function(e){
                var choice = $(this).val();
                if (choice == 0) {
                    $('#max_grade')
                        .prop('disabled', false)
                        .closest('div.form-group')
                        .removeClass('hidden');
                    $('#scales')
                        .prop('disabled', true)
                        .closest('div.form-group')
                        .addClass('hidden');
                } else {
                    $('#max_grade')
                        .prop('disabled', true)
                        .closest('div.form-group')
                        .addClass('hidden');
                    $('#scales')
                        .prop('disabled', false)
                        .closest('div.form-group')
                        .removeClass('hidden');
                }
            });
            $('#WorkEnd, #WorkStart').datetimepicker({
                format: 'dd-mm-yyyy hh:ii',
                pickerPosition: 'bottom-left',
                language: '".$language."',
                autoclose: true
            });
            $('#enableWorkEnd, #enableWorkStart').change(function() {
                var dateType = $(this).prop('id').replace('enable', '');
                if($(this).prop('checked')) {
                    $('input#'+dateType).prop('disabled', false);
                    $('#late_sub_row').removeClass('hide');
                } else {
                    $('input#'+dateType).prop('disabled', true);
                    $('#late_sub_row').addClass('hide');
                }
            });
            $('#hidden-opt-btn').on('click', function(e) {
                e.preventDefault();
                $('#hidden-opt').collapse('toggle');
            });
            $('#hidden-opt').on('shown.bs.collapse', function () {
                $('#hidden-opt-btn i').removeClass('fa-caret-down').addClass('fa-caret-up');
                var caret = '<i class=\"fa fa-caret-up\"></i>';
                $('#hidden-opt-btn').html('$langLessOptions '+caret);
            })
            $('#hidden-opt').on('hidden.bs.collapse', function () {
                var caret = '<i class=\"fa fa-caret-down\"></i>';
                $('#hidden-opt-btn').html('$langMoreOptions '+caret);
            })
        });

    </script>";

    $tool_content .= action_bar(array(
        array('title' => $langBack,
              'level' => 'primary-label',
              'url' => "$_SERVER[PHP_SELF]?course=$course_code",
              'icon' => 'fa-reply')));
    $title_error = Session::getError('title');
    $max_grade_error = Session::getError('max_grade');
    $scale_error = Session::getError('scale');
    $max_grade = Session::has('max_grade') ? Session::get('max_grade') : 10;
    $scale = Session::getError('scale');
    $submission_type = Session::has('submission_type') ? Session::get('submission_type') : 0;
    $grading_type = Session::has('grading_type') ? Session::get('grading_type') : 0;
    $WorkStart = Session::has('WorkStart') ? Session::get('WorkStart') : (new DateTime('NOW'))->format('d-m-Y H:i');
    $WorkEnd = Session::has('WorkEnd') ? Session::get('WorkEnd') : "";
    $enableWorkStart = Session::has('enableWorkStart') ? Session::get('enableWorkStart') : null;
    $enableWorkEnd = Session::has('enableWorkEnd') ? Session::get('enableWorkEnd') : ($WorkEnd ? 1 : 0);
    enableCheckFileSize();
    $tool_content .= "
        <div class='row'><div class='col-sm-12'>
        <div class='form-wrapper'>
        <form class='form-horizontal' role='form' enctype='multipart/form-data' method='post' action='$_SERVER[SCRIPT_NAME]?course=$course_code'>
        <fieldset>
            <div class='form-group ".($title_error ? "has-error" : "")."'>
                <label for='title' class='col-sm-2 control-label'>$m[title]:</label>
                <div class='col-sm-10'>
                  <input name='title' type='text' class='form-control' id='title' placeholder='$m[title]'>
                  <span class='help-block'>$title_error</span>
                </div>
            </div>
            <div class='form-group'>
                <label for='desc' class='col-sm-2 control-label'>$m[description]:</label>
                <div class='col-sm-10'>
                " . rich_text_editor('desc', 4, 20, $desc) . "
                </div>
            </div>
            <div class='form-group'>
                <div class='col-sm-10 col-sm-offset-2 margin-top-fat margin-bottom-fat'>
                    <a id='hidden-opt-btn' class='btn btn-success btn-xs' href='#' style='text-decoration:none;'>$langMoreOptions <i class='fa fa-caret-down'></i></a>
                </div>
            </div>
            <div class='collapse ".(Session::hasErrors() ? "in" : "")."' id='hidden-opt'>
                <div class='form-group'>
                    <label for='userfile' class='col-sm-2 control-label'>$langWorkFile:</label>
                    <div class='col-sm-10'>" .
                      fileSizeHidenInput() . "
                      <input type='file' id='userfile' name='userfile'>
                    </div>
                </div>
                <div class='form-group'>
                    <label class='col-sm-2 control-label'>$langGradeType:</label>
                    <div class='col-sm-10'>
                        <div class='radio'>
                          <label>
                            <input type='radio' name='grading_type' value='0'". ($grading_type ? "" : " checked") .">
                             $langGradeNumbers
                          </label>
                        </div>
                        <div class='radio'>
                          <label>
                            <input type='radio' name='grading_type' value='1'". ($grading_type ? " checked" : "") .">
                            $langGradeScales
                          </label>
                        </div>
                    </div>
                </div>
                <div class='form-group".($scale_error ? " has-error" : "").(!$grading_type ? " hidden" : "")."'>
                    <label for='title' class='col-sm-2 control-label'>$langGradeScales:</label>
                    <div class='col-sm-10'>
                      <select name='scale' class='form-control' id='scales' disabled>
                            $scale_options
                      </select>
                      <span class='help-block'>$scale_error</span>
                    </div>
                </div>
                <div class='form-group".($max_grade_error ? " has-error" : "").($grading_type ? " hidden" : "")."'>
                    <label for='title' class='col-sm-2 control-label'>$m[max_grade]:</label>
                    <div class='col-sm-10'>
                      <input name='max_grade' type='text' class='form-control' id='max_grade' placeholder='$m[max_grade]' value='$max_grade'>
                      <span class='help-block'>$max_grade_error</span>
                    </div>
                </div>
                <div class='form-group'>
                    <label class='col-sm-2 control-label'>$langWorkSubType:</label>
                    <div class='col-sm-10'>
                        <div class='radio'>
                          <label>
                            <input type='radio' name='submission_type' value='0'". ($submission_type ? "" : " checked") .">
                             $langWorkFile
                          </label>
                        </div>
                        <div class='radio'>
                          <label>
                            <input type='radio' name='submission_type' value='1'". ($submission_type ? " checked" : "") .">
                            $langWorkOnlineText
                          </label>
                        </div>
                    </div>
                </div>
                <div class='input-append date form-group".(Session::getError('WorkStart') ? " has-error" : "")."' id='enddatepicker' data-date='$WorkStart' data-date-format='dd-mm-yyyy'>
                    <label for='WorkStart' class='col-sm-2 control-label'>$langStartDate:</label>
                    <div class='col-sm-10'>
                       <div class='input-group'>
                           <span class='input-group-addon'>
                             <input style='cursor:pointer;' type='checkbox' id='enableWorkStart' name='enableWorkStart' value='1'".($enableWorkStart ? ' checked' : '').">
                           </span>
                           <input class='form-control' name='WorkStart' id='WorkStart' type='text' value='$WorkStart'".($enableWorkStart ? '' : ' disabled').">
                       </div>
                       <span class='help-block'>".(Session::hasError('WorkStart') ? Session::getError('WorkStart') : "&nbsp;&nbsp;&nbsp;<i class='fa fa-share fa-rotate-270'></i> $langAssignmentStartHelpBlock")."</span>
                    </div>
                </div>
                <div class='input-append date form-group".(Session::getError('WorkEnd') ? " has-error" : "")."' id='enddatepicker' data-date='$WorkEnd' data-date-format='dd-mm-yyyy'>
                    <label for='exerciseEndDate' class='col-sm-2 control-label'>$m[deadline]:</label>
                    <div class='col-sm-10'>
                       <div class='input-group'>
                           <span class='input-group-addon'>
                             <input style='cursor:pointer;' type='checkbox' id='enableWorkEnd' name='enableWorkEnd' value='1'".($enableWorkEnd ? ' checked' : '').">
                           </span>
                           <input class='form-control' name='WorkEnd' id='WorkEnd' type='text' value='$WorkEnd'".($enableWorkEnd ? '' : ' disabled').">
                       </div>
                       <span class='help-block'>".(Session::hasError('WorkEnd') ? Session::getError('WorkEnd') : "&nbsp;&nbsp;&nbsp;<i class='fa fa-share fa-rotate-270'></i> $langAssignmentEndHelpBlock")."</span>
                    </div>
                </div>
                <div class='form-group ". ($WorkEnd ? "" : "hide") ."' id='late_sub_row'>
                    <div class='col-xs-10 col-xs-offset-2'>
                        <div class='checkbox'>
                          <label>
                            <input type='checkbox' id='late_submission' name='late_submission' value='1'>
                            $m[late_submission_enable]
                          </label>
                        </div>
                    </div>
                </div>
                <div class='form-group'>
                    <label class='col-sm-2 control-label'>$m[group_or_user]:</label>
                    <div class='col-sm-10'>
                        <div class='radio'>
                          <label>
                            <input type='radio' id='user_button' name='group_submissions' value='0' checked>
                            $m[user_work]
                          </label>
                        </div>
                        <div class='radio'>
                          <label>
                            <input type='radio' id='group_button' name='group_submissions' value='1'>
                            $m[group_work]
                          </label>
                        </div>
                    </div>
                </div>
                <div class='form-group'>
                    <label class='col-sm-2 control-label'>$m[WorkAssignTo]:</label>
                    <div class='col-sm-10'>
                        <div class='radio'>
                          <label>
                            <input type='radio' id='assign_button_all' name='assign_to_specific' value='0' checked>
                            <span id='assign_button_all_text'>$m[WorkToAllUsers]</span>
                          </label>
                        </div>
                        <div class='radio'>
                          <label>
                            <input type='radio' id='assign_button_some' name='assign_to_specific' value='1'>
                            <span id='assign_button_some_text'>$m[WorkToUser]</span>
                          </label>
                        </div>
                    </div>
                </div>
                <div class='form-group'>
                    <div class='col-sm-10 col-sm-offset-2'>
                        <div class='table-responsive'>
                            <table id='assignees_tbl' class='table-default hide'>
                                <tr class='title1'>
                                  <td id='assignees'>$langStudents</td>
                                  <td class='text-center'>$langMove</td>
                                  <td>$m[WorkAssignTo]</td>
                                </tr>
                                <tr>
                                  <td>
                                    <select class='form-control' id='assign_box' size='10' multiple></select>
                                  </td>
                                  <td class='text-center'>
                                    <input type='button' onClick=\"move('assign_box','assignee_box')\" value='   &gt;&gt;   ' /><br /><input type='button' onClick=\"move('assignee_box','assign_box')\" value='   &lt;&lt;   ' />
                                  </td>
                                  <td width='40%'>
                                    <select class='form-control' id='assignee_box' name='ingroup[]' size='10' multiple></select>
                                  </td>
                                </tr>
                            </table>
                        </div>
                    </div>
                </div>";
                if(AutojudgeApp::getAutojudge()->isEnabled()) {
                $tool_content .= "
                <div class='form-group'>
                    <label class='col-sm-2 control-label'>$langAutoJudgeEnable:</label>
                    <div class='col-sm-10'>
                        <div class='radio'><input type='checkbox' id='auto_judge' name='auto_judge' value='1' /></div>
                        <table style='display: none;'>
                            <thead>
                                <tr>
                                  <th>$langAutoJudgeInput</th>
                                  <th>$langAutoJudgeOperator</th>
                                  <th>$langAutoJudgeExpectedOutput</th>
                                  <th>$langAutoJudgeWeight</th>
                                  <th>".$m['delete']."</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr>
                                  <td><input type='text' name='auto_judge_scenarios[0][input]' ".($connector->supportsInput() ? '' : 'readonly="readonly" placeholder="'.$langAutoJudgeInputNotSupported.'"')." /></td>
                                  <td>
                                    <select name='auto_judge_scenarios[0][assertion]' class='auto_judge_assertion'>
                                        <option value='eq' selected='selected'>".$langAutoJudgeAssertions['eq']."</option>
                                        <option value='same'>".$langAutoJudgeAssertions['same']."</option>
                                        <option value='notEq'>".$langAutoJudgeAssertions['notEq']."</option>
                                        <option value='notSame'>".$langAutoJudgeAssertions['notSame']."</option>
                                        <option value='integer'>".$langAutoJudgeAssertions['integer']."</option>
                                        <option value='float'>".$langAutoJudgeAssertions['float']."</option>
                                        <option value='digit'>".$langAutoJudgeAssertions['digit']."</option>
                                        <option value='boolean'>".$langAutoJudgeAssertions['boolean']."</option>
                                        <option value='notEmpty'>".$langAutoJudgeAssertions['notEmpty']."</option>
                                        <option value='notNull'>".$langAutoJudgeAssertions['notNull']."</option>
                                        <option value='string'>".$langAutoJudgeAssertions['string']."</option>
                                        <option value='startsWith'>".$langAutoJudgeAssertions['startsWith']."</option>
                                        <option value='endsWith'>".$langAutoJudgeAssertions['endsWith']."</option>
                                        <option value='contains'>".$langAutoJudgeAssertions['contains']."</option>
                                        <option value='numeric'>".$langAutoJudgeAssertions['numeric']."</option>
                                        <option value='isArray'>".$langAutoJudgeAssertions['isArray']."</option>
                                        <option value='true'>".$langAutoJudgeAssertions['true']."</option>
                                        <option value='false'>".$langAutoJudgeAssertions['false']."</option>
                                        <option value='isJsonString'>".$langAutoJudgeAssertions['isJsonString']."</option>
                                        <option value='isObject'>".$langAutoJudgeAssertions['isObject']."</option>
                                    </select>
                                  </td>
                                  <td><input type='text' name='auto_judge_scenarios[0][output]' class='auto_judge_output' /></td>
                          <td><input type='text' name='auto_judge_scenarios[0][weight]' class='auto_judge_weight'/></td>
                                  <td><a href='#' class='autojudge_remove_scenario' style='display: none;'>X</a></td>
                                </tr>
                                <tr>
                                    <td> </td>
                                    <td> </td>
                                    <td> </td>
                                    <td style='text-align:center;'> $langAutoJudgeSum: <span id='weights-sum'>0</span></td>
                                    <td> <input type='submit' value='$langAutoJudgeNewScenario' id='autojudge_new_scenario' /></td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
                <div class='form-group'>
                  <label class='col-sm-2 control-label'>$langAutoJudgeProgrammingLanguage:</label>
                  <div class='col-sm-10'>
                    <select id='lang' name='lang'>";
                    foreach($connector->getSupportedLanguages() as $lang => $ext) {
                        $tool_content .= "<option value='$lang'>$lang</option>\n";
                    }
                    $tool_content .= "</select>
                  </div>
                </div>
                ";
                }
                $tool_content .= Tag::tagInput()."
            </div>
            <div class='form-group'>
                <div class='col-sm-offset-2 col-sm-10'>".
                    form_buttons(array(
                        array(
                            'class'         => 'btn-primary',
                            'name'          => 'new_assign',
                            'value'         => $langSave,
                            'javascript'    => "selectAll('assignee_box',true)"
                        ),
                        array(
                            'href' => "$_SERVER[SCRIPT_NAME]?course=$course_code",
                        )
                    ))
                    ."</div>
            </div>
        </fieldset>
        </form></div></div></div>";
}