✏️ 正在编辑: MarkingPeriods.php
路径:
/home/eblama1/sms.karnplayinland.com/modules/School_Setup/MarkingPeriods.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php require_once 'modules/School_Setup/includes/MarkingPeriods.fnc.php'; DrawHeader( ProgramTitle() ); // Default MP ID to Full Year. if ( empty( $_REQUEST['marking_period_id'] ) ) { $_REQUEST['marking_period_id'] = GetFullYearMP() ? GetFullYearMP() : 'new'; $_REQUEST['mp_term'] = 'FY'; } if ( $_REQUEST['marking_period_id'] === 'new' ) { switch ( $_REQUEST['mp_term'] ) { case 'FY': $title = _( 'New Year' ); break; case 'SEM': $title = _( 'New Semester' ); break; case 'QTR': $title = _( 'New Marking Period' ); break; case 'PRO': $title = _( 'New Progress Period' ); break; } } else { $_REQUEST['marking_period_id'] = (string) (int) $_REQUEST['marking_period_id']; } // Add eventual Dates to $_REQUEST['tables']. AddRequestedDates( 'tables', 'post' ); // UPDATING if ( ! empty( $_POST['tables'] ) && AllowEdit() ) { foreach ( (array) $_REQUEST['tables'] as $id => $columns ) { //FJ fix SQL bug invalid sort order if ( isset( $columns['SORT_ORDER'] ) && $columns['SORT_ORDER'] !== '' && ! is_numeric( $columns['SORT_ORDER'] ) ) { $error[] = _( 'Please enter a valid Sort Order.' ); break 1; } // UPDATE if ( $id !== 'new' ) { foreach ( (array) $columns as $column => $value ) { if ( $column === 'START_DATE' || $column === 'END_DATE' || $column === 'POST_START_DATE' || $column === 'POST_END_DATE' ) { //FJ fix SQL bug START_DATE or END_DATE is null if ( ( ! VerifyDate( $value ) && $value !== '' ) || ( ( $column === 'START_DATE' || $column === 'END_DATE' ) && $value === '' ) ) { $error[] = _( 'Not all of the dates were entered correctly.' ); break 2; } //FJ verify END_DATE > START_DATE $mp_dates_RET = DBGet( "SELECT START_DATE, END_DATE, POST_START_DATE, POST_END_DATE FROM school_marking_periods WHERE MARKING_PERIOD_ID='" . (int) $id . "'" ); $start_date = ! empty( $columns['START_DATE'] ) ? $columns['START_DATE'] : $mp_dates_RET[1]['START_DATE']; $end_date = ! empty( $columns['END_DATE'] ) ? $columns['END_DATE'] : $mp_dates_RET[1]['END_DATE']; $post_start_date = ! empty( $columns['POST_START_DATE'] ) ? $columns['POST_START_DATE'] : $mp_dates_RET[1]['POST_START_DATE']; $post_end_date = ! empty( $columns['POST_END_DATE'] ) ? $columns['POST_END_DATE'] : $mp_dates_RET[1]['POST_END_DATE']; if ( ( $column === 'END_DATE' && date_create( $value ) <= date_create( $start_date ) ) || ( $column === 'START_DATE' && date_create( $end_date ) <= date_create( $value ) ) || ( $column === 'POST_END_DATE' && $value !== '' && $post_start_date !== null && date_create( $value ) <= date_create( $post_start_date ) ) || ( $column === 'POST_START_DATE' && $value !== '' && $post_end_date !== null && date_create( $post_end_date ) <= date_create( $value ) ) ) { $error[] = _( 'Start date must be anterior to end date.' ); break 2; } } } $go = true; $sql = DBUpdateSQL( 'school_marking_periods', $columns, [ 'MARKING_PERIOD_ID' => (int) $id ] ); } // New: check for Title. elseif ( ! empty( $columns['TITLE'] ) ) { $insert_columns = [ 'MP' => $_REQUEST['mp_term'], 'SYEAR' => UserSyear(), 'SCHOOL_ID' => UserSchool(), ]; switch ( $_REQUEST['mp_term'] ) { case 'SEM': $insert_columns['PARENT_ID'] = (int) $_REQUEST['year_id']; break; case 'QTR': $insert_columns['PARENT_ID'] = (int) $_REQUEST['semester_id']; break; case 'PRO': $insert_columns['PARENT_ID'] = (int) $_REQUEST['quarter_id']; break; } foreach ( (array) $columns as $column => $value ) { if ( $column === 'START_DATE' || $column === 'END_DATE' || $column === 'POST_START_DATE' || $column === 'POST_END_DATE' ) { //FJ fix SQL bug START_DATE or END_DATE is null if ( ! VerifyDate( $value ) && $value !== '' || ( ( $column === 'START_DATE' || $column === 'END_DATE' ) && $value === '' ) ) { $error[] = _( 'Not all of the dates were entered correctly.' ); break 2; } //FJ verify END_DATE > START_DATE if ( ( $column === 'END_DATE' && date_create( $value ) <= date_create( $columns['START_DATE'] ) ) || ( $column === 'POST_START_DATE' && $columns['POST_END_DATE'] !== '' && date_create( $value ) > date_create( $columns['POST_END_DATE'] ) ) ) { $error[] = _( 'Start date must be anterior to end date.' ); break 2; } } } $go = true; $sql = DBInsertSQL( 'school_marking_periods', $insert_columns + $columns ); } // CHECK TO MAKE SURE ONLY ONE MP & ONE GRADING PERIOD IS OPEN AT ANY GIVEN TIME $dates_RET = DBGet( "SELECT MARKING_PERIOD_ID FROM school_marking_periods WHERE MP='" . $_REQUEST['mp_term'] . "' AND ( true=false" . ( ! empty( $columns['START_DATE'] ) ? " OR '" . $columns['START_DATE'] . "' BETWEEN START_DATE AND END_DATE" : '' ) . ( ! empty( $columns['END_DATE'] ) ? " OR '" . $columns['END_DATE'] . "' BETWEEN START_DATE AND END_DATE" : '' ) . ( ! empty( $columns['START_DATE'] ) && ! empty( $columns['END_DATE'] ) ? " OR START_DATE BETWEEN '" . $columns['START_DATE'] . "' AND '" . $columns['END_DATE'] . "'" . " OR END_DATE BETWEEN '" . $columns['START_DATE'] . "' AND '" . $columns['END_DATE'] . "'" : '' ) . ") AND SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "'" . ( $id !== 'new' ? " AND SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' AND MARKING_PERIOD_ID!='" . (int) $id . "'" : '' ) ); $posting_RET = DBGet( "SELECT MARKING_PERIOD_ID FROM school_marking_periods WHERE MP='" . $_REQUEST['mp_term'] . "' AND ( true=false" . ( ! empty( $columns['POST_START_DATE'] ) ? " OR '" . $columns['POST_START_DATE'] . "' BETWEEN POST_START_DATE AND POST_END_DATE" : '' ) . ( ! empty( $columns['POST_END_DATE'] ) ? " OR '" . $columns['POST_END_DATE'] . "' BETWEEN POST_START_DATE AND POST_END_DATE" : '' ) . ( ! empty( $columns['POST_START_DATE'] ) && ! empty( $columns['POST_END_DATE'] ) ? " OR POST_START_DATE BETWEEN '" . $columns['POST_START_DATE'] . "' AND '" . $columns['POST_END_DATE'] . "'" . " OR POST_END_DATE BETWEEN '" . $columns['POST_START_DATE'] . "' AND '" . $columns['POST_END_DATE'] . "'" : '' ) . ") AND SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "'" . ( $id !== 'new' ? " AND MARKING_PERIOD_ID!='" . (int) $id . "'" : '' ) ); if ( ! empty( $dates_RET ) ) { $error[] = sprintf( _( 'The beginning and end dates you specified for this marking period overlap with those of "%s".' ), GetMP( $dates_RET[1]['MARKING_PERIOD_ID'] ) ) . ' ' . _( 'Only one marking period can be open at any time.' ); $go = false; } if ( ! empty( $posting_RET ) ) { $error[] = sprintf( _( 'The grade posting dates you specified for this marking period overlap with those of "%s".' ), GetMP( $posting_RET[1]['MARKING_PERIOD_ID'] ) ) . ' ' . _( 'Only one grade posting period can be open at any time.' ); $go = false; } if ( $go ) { DBQuery( $sql ); if ( $id === 'new' ) { $_REQUEST['marking_period_id'] = DBLastInsertID(); } } } // Unset tables & redirect URL. RedirectURL( [ 'tables' ] ); } // DELETING if ( $_REQUEST['modfunc'] === 'delete' && AllowEdit() ) { switch ( $_REQUEST['mp_term'] ) { case 'FY': $name = _( 'Year' ); $parent_term = ''; $parent_id = ''; break; case 'SEM': $name = _( 'Semester' ); $parent_term = 'FY'; $parent_id = issetVal( $_REQUEST['year_id'] ); break; case 'QTR': $name = _( 'Quarter' ); $parent_term = 'SEM'; $parent_id = issetVal( $_REQUEST['semester_id'] ); break; case 'PRO': $name = _( 'Progress Period' ); $parent_term = 'QTR'; $parent_id = issetVal( $_REQUEST['quarter_id'] ); break; } if ( DeletePrompt( $name ) ) { DBQuery( MarkingPeriodDeleteSQL( $_REQUEST['marking_period_id'], $_REQUEST['mp_term'] ) ); $_REQUEST['mp_term'] = $parent_term; $_REQUEST['marking_period_id'] = $parent_id; // Unset modfunc & redirect URL. RedirectURL( 'modfunc' ); } } if ( ! $_REQUEST['modfunc'] ) { echo ErrorMessage( $error ); if ( $_REQUEST['marking_period_id'] && $_REQUEST['marking_period_id'] !== 'new' ) { // Check marking period ID is valid for current school & syear! $marking_period_RET = DBGet( "SELECT MARKING_PERIOD_ID FROM school_marking_periods WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' AND MARKING_PERIOD_ID='" . (int) $_REQUEST['marking_period_id'] . "'" ); if ( ! $marking_period_RET ) { $_REQUEST['marking_period_id'] = GetFullYearMP() ? GetFullYearMP() : 'new'; $_REQUEST['mp_term'] = 'FY'; // Unset year & semester & quarter IDs & redirect URL. RedirectURL( [ 'year_id', 'semester_id', 'quarter_id' ] ); } if ( AllowEdit() && $_REQUEST['marking_period_id'] !== 'new' && $_REQUEST['marking_period_id'] !== GetFullYearMP() ) { // @since 6.6 Add warning when Marking Period dates are not within Parent MP dates range. $parent_mp_type = GetMP( $_REQUEST['marking_period_id'], 'MP' ) === 'SEM' ? 'FY' : ( GetMP( $_REQUEST['marking_period_id'], 'MP' ) === 'QTR' ? 'SEM' : 'QTR' ); $parent_mp_id = GetParentMP( $parent_mp_type, $_REQUEST['marking_period_id'] ); $parent_mp_end_date = GetMP( $parent_mp_id, 'END_DATE' ); $mp_end_date = GetMP( $_REQUEST['marking_period_id'], 'END_DATE' ); $parent_mp_start_date = GetMP( $parent_mp_id, 'START_DATE' ); $mp_start_date = GetMP( $_REQUEST['marking_period_id'], 'START_DATE' ); if ( $mp_end_date > $parent_mp_end_date ) { $warning[] = _( 'End date for current Marking Period is posterior to parent Marking Period\'s end date.' ); } if ( $mp_start_date < $parent_mp_start_date ) { $warning[] = _( 'Start date for current Marking Period is anterior to parent Marking Period\'s start date.' ); } } } echo ErrorMessage( $warning, 'warning' ); // ADDING & EDITING FORM. if ( $_REQUEST['marking_period_id'] !== 'new' ) { $RET = DBGet( "SELECT TITLE,SHORT_NAME,SORT_ORDER,DOES_GRADES,DOES_COMMENTS, START_DATE,END_DATE,POST_START_DATE,POST_END_DATE FROM school_marking_periods WHERE MARKING_PERIOD_ID='" . (int) $_REQUEST['marking_period_id'] . "'" ); $RET = $RET[1]; $title = $RET['TITLE']; } $mp_href = 'Modules.php?modname=' . $_REQUEST['modname'] . '&mp_term=' . $_REQUEST['mp_term'] . '&year_id=' . issetVal( $_REQUEST['year_id'] ) . '&semester_id=' . issetVal( $_REQUEST['semester_id'] ) . '&quarter_id=' . issetVal( $_REQUEST['quarter_id'] ) . '&marking_period_id=' . $_REQUEST['marking_period_id']; $delete_button = ''; if ( AllowEdit() && $_REQUEST['marking_period_id'] !== 'new' ) { // Is Single Marking Period? Do NOT delete. $not_single_mp = $_REQUEST['mp_term'] !== 'FY' || $_REQUEST['mp_term'] === 'PRO'; if ( $_REQUEST['mp_term'] !== 'FY' && $_REQUEST['mp_term'] !== 'PRO' ) { $mp_count = DBGetOne( "SELECT COUNT(MARKING_PERIOD_ID) FROM school_marking_periods WHERE MP='" . $_REQUEST['mp_term'] . "' AND SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'" ); $not_single_mp = $mp_count > 1; } if ( $not_single_mp ) { // @since 5.0 MP has Course Periods? Do NOT delete. $can_delete = DBTransDryRun( MarkingPeriodDeleteSQL( $_REQUEST['marking_period_id'], $_REQUEST['mp_term'] ) ); if ( $can_delete ) { $delete_URL = URLEscape( $mp_href . "&modfunc=delete" ); $delete_button = '<input type="button" value="' . AttrEscape( _( 'Delete' ) ) . '" onclick="' . AttrEscape( 'ajaxLink(' . json_encode( $delete_URL ) . ');' ) . '" />'; } } } echo '<form action="' . URLEscape( $mp_href ) . '" method="POST">'; DrawHeader( $title, $delete_button . SubmitButton() ); $header = '<table class="width-100p valign-top fixed-col"><tr class="st">'; $header .= '<td>' . TextInput( issetVal( $RET['TITLE'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][TITLE]', _( 'Title' ), 'required maxlength="50"' ) . '</td>'; $header .= '<td>' . TextInput( issetVal( $RET['SHORT_NAME'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][SHORT_NAME]', _( 'Short Name' ), 'required maxlength="10"' . ( $_REQUEST['marking_period_id'] === 'new' ? ' size="3"' : '' ) ) . '</td>'; if ( AllowEdit() ) { // Hide Sort Order from non editing users. $header .= '<td>' . TextInput( issetVal( $RET['SORT_ORDER'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][SORT_ORDER]', _( 'Sort Order' ), ' type="number" min="-9999" max="9999"' ) . '</td></tr>'; } // @since 4.1 Grade posting date inputs are required when "Graded" is checked. $header .= '<script>var mpGradedOnclickPostDatesRequired = function(el) { var dates = ["month", "day", "year"], dateStartInput, dateEndInput; for (var i=0,max=dates.length; i<max; i++) { dateStartInput = document.getElementsByName( dates[i] + "_tables[' . $_REQUEST['marking_period_id'] . '][POST_START_DATE]" )[0]; dateEndInput = document.getElementsByName( dates[i] + "_tables[' . $_REQUEST['marking_period_id'] . '][POST_END_DATE]" )[0]; dateStartInput.required = dateEndInput.required = el.checked; } // Add .legend-red CSS class to label if input is required/ $(dateStartInput).parent().nextAll(".legend-gray").toggleClass("legend-red", el.checked); $(dateEndInput).parent().nextAll(".legend-gray").toggleClass("legend-red", el.checked); };</script>'; $js_onclick_post_dates_required = 'onclick="mpGradedOnclickPostDatesRequired( this );"'; $header .= '<tr class="st"><td>' . CheckboxInput( issetVal( $RET['DOES_GRADES'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][DOES_GRADES]', _( 'Graded' ), '', $_REQUEST['marking_period_id'] === 'new', button( 'check' ), button( 'x' ), true, $js_onclick_post_dates_required ) . '</td>'; if ( AllowEdit() || ! empty( $RET['DOES_GRADES'] ) ) { // Hide Comments from non editing users if MP not Graded. $header .= '<td>' . CheckboxInput( issetVal( $RET['DOES_COMMENTS'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][DOES_COMMENTS]', _( 'Comments' ), '', $_REQUEST['marking_period_id'] === 'new', button( 'check' ), button( 'x' ) ) . '</td>'; } $header .= '</tr><tr><td colspan="3"><hr></td></tr>'; $required = $allow_na = $div = true; $header .= '<tr class="st"><td>' . DateInput( issetVal( $RET['START_DATE'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][START_DATE]', _( 'Begins' ), $div, $allow_na, $required ) . '</td>'; $header .= '<td>' . DateInput( issetVal( $RET['END_DATE'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][END_DATE]', _( 'Ends' ), $div, $allow_na, $required ) . '</td></tr>'; $required = ! empty( $RET['DOES_GRADES'] ); $red = ! empty( $RET['DOES_GRADES'] ) && empty( $RET['POST_END_DATE'] ); if ( AllowEdit() || ! empty( $RET['DOES_GRADES'] ) ) { // Hide Grade Posting Dates from non editing users if MP not Graded. $header .= '<tr class="st"><td>' . DateInput( issetVal( $RET['POST_START_DATE'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][POST_START_DATE]', ( $red ? '<span class="legend-red">' : '' ) . _( 'Grade Posting Begins' ) . ( $red ? '</span>' : '' ), $div, $allow_na, $required ) . '</td>'; $header .= '<td>' . DateInput( issetVal( $RET['POST_END_DATE'], '' ), 'tables[' . $_REQUEST['marking_period_id'] . '][POST_END_DATE]', ( $red ? '<span class="legend-red">' : '' ) . _( 'Grade Posting Ends' ) . ( $red ? '</span>' : '' ), $div, $allow_na, $required ) . '</td></tr>'; } $header .= '</table>'; DrawHeader( $header ); echo '</form>'; // DISPLAY THE MENU $LO_options = [ 'save' => false, 'search' => false, 'responsive' => false ]; // FY $fy_RET = DBGet( "SELECT MARKING_PERIOD_ID,TITLE FROM school_marking_periods WHERE MP='FY' AND SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' ORDER BY SORT_ORDER IS NULL,SORT_ORDER" ); if ( ! empty( $fy_RET ) ) { if ( ! empty( $_REQUEST['mp_term'] ) ) { if ( $_REQUEST['mp_term'] === 'FY' ) { $_REQUEST['year_id'] = issetVal( $_REQUEST['marking_period_id'] ); } foreach ( (array) $fy_RET as $key => $value ) { if ( $value['MARKING_PERIOD_ID'] === $_REQUEST['year_id'] ) { $fy_RET[$key]['row_color'] = Preferences( 'HIGHLIGHT' ); } } } } echo '<div class="st">'; $columns = [ 'TITLE' => _( 'Year' ) ]; $link = []; $link['TITLE']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=' . $_REQUEST['modfunc'] . '&mp_term=FY'; $link['TITLE']['variables'] = [ 'marking_period_id' => 'MARKING_PERIOD_ID' ]; if ( empty( $fy_RET ) ) { $link['add']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&mp_term=FY&marking_period_id=new'; } ListOutput( $fy_RET, $columns, 'Year', 'Years', $link, [], $LO_options ); echo '</div>'; // SEMESTERS if ( ( $_REQUEST['mp_term'] === 'FY' && $_REQUEST['marking_period_id'] !== 'new' ) || $_REQUEST['mp_term'] === 'SEM' || $_REQUEST['mp_term'] === 'QTR' || $_REQUEST['mp_term'] === 'PRO' ) { $sem_RET = DBGet( "SELECT MARKING_PERIOD_ID,TITLE FROM school_marking_periods WHERE MP='SEM' AND SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' AND PARENT_ID='" . (int) $_REQUEST['year_id'] . "' ORDER BY SORT_ORDER IS NULL,SORT_ORDER,START_DATE" ); if ( ! empty( $sem_RET ) ) { if ( ! empty( $_REQUEST['mp_term'] ) ) { if ( $_REQUEST['mp_term'] === 'SEM' ) { $_REQUEST['semester_id'] = issetVal( $_REQUEST['marking_period_id'] ); } foreach ( (array) $sem_RET as $key => $value ) { if ( ! empty( $_REQUEST['semester_id'] ) && $value['MARKING_PERIOD_ID'] === $_REQUEST['semester_id'] ) { $sem_RET[$key]['row_color'] = Preferences( 'HIGHLIGHT' ); } } } } echo '<div class="st">'; $columns = [ 'TITLE' => _( 'Semester' ) ]; $link = []; $link['TITLE']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=' . $_REQUEST['modfunc'] . '&mp_term=SEM&year_id=' . $_REQUEST['year_id']; $link['TITLE']['variables'] = [ 'marking_period_id' => 'MARKING_PERIOD_ID' ]; $link['add']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&mp_term=SEM&marking_period_id=new&year_id=' . $_REQUEST['year_id']; ListOutput( $sem_RET, $columns, 'Semester', 'Semesters', $link, [], $LO_options ); echo '</div>'; // QUARTERS if ( ( $_REQUEST['mp_term'] === 'SEM' && $_REQUEST['marking_period_id'] !== 'new' ) || $_REQUEST['mp_term'] === 'QTR' || $_REQUEST['mp_term'] === 'PRO' ) { $qtr_RET = DBGet( "SELECT MARKING_PERIOD_ID,TITLE FROM school_marking_periods WHERE MP='QTR' AND SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' AND PARENT_ID='" . (int) $_REQUEST['semester_id'] . "' ORDER BY SORT_ORDER IS NULL,SORT_ORDER,START_DATE" ); if ( ! empty( $qtr_RET ) ) { if ( ( $_REQUEST['mp_term'] === 'QTR' && $_REQUEST['marking_period_id'] !== 'new' ) || $_REQUEST['mp_term'] === 'PRO' ) { if ( $_REQUEST['mp_term'] == 'QTR' ) { $_REQUEST['quarter_id'] = issetVal( $_REQUEST['marking_period_id'] ); } foreach ( (array) $qtr_RET as $key => $value ) { if ( $value['MARKING_PERIOD_ID'] === $_REQUEST['quarter_id'] ) { $qtr_RET[$key]['row_color'] = Preferences( 'HIGHLIGHT' ); } } } } echo '<div class="st">'; $columns = [ 'TITLE' => _( 'Quarter' ) ]; $link = []; $link['TITLE']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=' . $_REQUEST['modfunc'] . '&mp_term=QTR&year_id=' . $_REQUEST['year_id'] . '&semester_id=' . $_REQUEST['semester_id']; $link['TITLE']['variables'] = [ 'marking_period_id' => 'MARKING_PERIOD_ID' ]; $link['add']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&mp_term=QTR&marking_period_id=new&year_id=' . $_REQUEST['year_id'] . '&semester_id=' . $_REQUEST['semester_id']; ListOutput( $qtr_RET, $columns, 'Quarter', 'Quarters', $link, [], $LO_options ); echo '</div>'; // PROGRESS PERIODS if ( ( $_REQUEST['mp_term'] === 'QTR' && $_REQUEST['marking_period_id'] !== 'new' ) || $_REQUEST['mp_term'] === 'PRO' ) { $pro_RET = DBGet( "SELECT MARKING_PERIOD_ID,TITLE FROM school_marking_periods WHERE MP='PRO' AND SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' AND PARENT_ID='" . (int) $_REQUEST['quarter_id'] . "' ORDER BY SORT_ORDER IS NULL,SORT_ORDER,START_DATE" ); if ( ! empty( $pro_RET ) ) { if ( $_REQUEST['mp_term'] === 'PRO' && $_REQUEST['marking_period_id'] !== 'new' ) { $_REQUEST['progress_period_id'] = issetVal( $_REQUEST['marking_period_id'] ); foreach ( (array) $pro_RET as $key => $value ) { if ( $value['MARKING_PERIOD_ID'] === $_REQUEST['marking_period_id'] ) { $pro_RET[$key]['row_color'] = Preferences( 'HIGHLIGHT' ); } } } } echo '<div class="st">'; $columns = [ 'TITLE' => _( 'Progress Period' ) ]; $link = []; $link['TITLE']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=' . $_REQUEST['modfunc'] . '&mp_term=PRO&year_id=' . $_REQUEST['year_id'] . '&semester_id=' . $_REQUEST['semester_id'] . '&quarter_id=' . $_REQUEST['quarter_id']; $link['TITLE']['variables'] = [ 'marking_period_id' => 'MARKING_PERIOD_ID' ]; $link['add']['link'] = 'Modules.php?modname=' . $_REQUEST['modname'] . '&mp_term=PRO&marking_period_id=new&year_id=' . $_REQUEST['year_id'] . '&semester_id=' . $_REQUEST['semester_id'] . '&quarter_id=' . $_REQUEST['quarter_id']; ListOutput( $pro_RET, $columns, 'Progress Period', 'Progress Periods', $link, [], $LO_options ); echo '</div>'; } } } }
💾 保存文件
← 返回文件管理器