����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
DrawHeader( ProgramTitle() );
if ( $_REQUEST['modfunc'] === 'update' )
{
if ( ! empty( $_REQUEST['values'] )
&& ! empty( $_POST['values'] )
&& AllowEdit() )
{
foreach ( (array) $_REQUEST['values'] as $id => $columns )
{
// FJ fix SQL bug invalid numeric data.
if ( ( empty( $columns['SORT_ORDER'] )
|| is_numeric($columns['SORT_ORDER'] ) )
&& ( empty( $columns['LENGTH'] )
|| (string) (int) $columns['LENGTH'] == $columns['LENGTH'] ) )
{
// Deprecated: was used for START_TIME & END_TIME.
/*if ( $columns['START_TIME_HOUR'] != ''
&& $columns['START_TIME_MINUTE']
&& $columns['START_TIME_M'] )
{
$columns['START_TIME'] = $columns['START_TIME_HOUR'] . ':' .
$columns['START_TIME_MINUTE'] . ' ' . $columns['START_TIME_M'];
}
unset( $columns['START_TIME_HOUR'] );
unset( $columns['START_TIME_MINUTE'] );
unset( $columns['START_TIME_M'] );
if ( $columns['END_TIME_HOUR'] != ''
&& $columns['END_TIME_MINUTE']
&& $columns['END_TIME_M'] )
{
$columns['END_TIME'] = $columns['END_TIME_HOUR'] . ':' .
$columns['END_TIME_MINUTE'] . ' ' . $columns['END_TIME_M'];
}
unset( $columns['END_TIME_HOUR'] );
unset( $columns['END_TIME_MINUTE'] );
unset( $columns['END_TIME_M'] );*/
if ( $id !== 'new' )
{
DBUpdate(
'school_periods',
$columns,
[ 'PERIOD_ID' => (int) $id ]
);
}
// New: check for Title.
elseif ( $columns['TITLE'] )
{
$insert_columns = [ 'SCHOOL_ID' => UserSchool(), 'SYEAR' => UserSyear() ];
DBInsert(
'school_periods',
$insert_columns + $columns
);
}
}
else
$error[] = _( 'Please enter valid Numeric data.' );
}
}
// Unset modfunc & redirect.
RedirectURL( 'modfunc' );
}
if ( $_REQUEST['modfunc'] === 'remove'
&& AllowEdit() )
{
if ( DeletePrompt( _( 'Period' ) ) )
{
DBQuery( "DELETE FROM school_periods
WHERE PERIOD_ID='" . (int) $_REQUEST['id'] . "'" );
// Unset modfunc & ID & redirect.
RedirectURL( [ 'modfunc', 'id' ] );
}
}
echo ErrorMessage( $error );
if ( ! $_REQUEST['modfunc'] )
{
// Remove Used for Attendance column, unused.
$periods_RET = DBGet( "SELECT PERIOD_ID,TITLE,SHORT_NAME,SORT_ORDER,LENGTH,
START_TIME,END_TIME,BLOCK,
(SELECT 1
FROM course_period_school_periods cpsp,course_periods cp
WHERE cpsp.PERIOD_ID=sp.PERIOD_ID
AND cp.COURSE_PERIOD_ID=cpsp.COURSE_PERIOD_ID
AND cp.SYEAR='" . UserSyear() . "'
AND cp.SCHOOL_ID='" . UserSchool() . "'
LIMIT 1) AS REMOVE,
(SELECT COUNT(1)
FROM course_period_school_periods cpsp,course_periods cp
WHERE cpsp.PERIOD_ID=sp.PERIOD_ID
AND cp.COURSE_PERIOD_ID=cpsp.COURSE_PERIOD_ID
AND cp.SYEAR='" . UserSyear() . "'
AND cp.SCHOOL_ID='" . UserSchool() . "'
LIMIT 1) AS COURSE_PERIODS
FROM school_periods sp
WHERE SYEAR='" . UserSyear() . "'
AND SCHOOL_ID='" . UserSchool() . "'
ORDER BY SORT_ORDER IS NULL,SORT_ORDER,TITLE",
[
'REMOVE' => '_makeRemoveButton',
'TITLE' => '_makeTextInput',
'SHORT_NAME' => '_makeTextInput',
'SORT_ORDER' => '_makeTextInput',
'BLOCK' => '_makeTextInput',
'LENGTH' => '_makeTextInput',
'COURSE_PERIODS' => '_makeCoursePeriods',
] ); // 'ATTENDANCE' => '_makeCheckboxInput','START_TIME' => '_makeTimeInput','END_TIME' => '_makeTimeInput'
$columns = [];
if ( empty( $_REQUEST['LO_save'] ) )
{
// Do not Export Delete column.
$columns['REMOVE'] = '<span class="a11y-hidden">' . _( 'Delete' ) . '</span>';
}
$columns += [
'TITLE' => _( 'Title' ),
'SHORT_NAME' => _( 'Short Name' ),
'SORT_ORDER' => _( 'Sort Order' ),
'LENGTH' => _( 'Length (minutes)' ),
'BLOCK' => _( 'Block' ),
'COURSE_PERIODS' => _( 'Course Periods' ),
]; // 'ATTENDANCE' => _('Used for Attendance'),'START_TIME' => _('Start Time'),'END_TIME' => _('End Time'));
$link['add']['html'] = [
'REMOVE' => _makeRemoveButton( '', 'REMOVE' ),
'TITLE' => _makeTextInput( '', 'TITLE' ),
'SHORT_NAME' => _makeTextInput( '', 'SHORT_NAME' ),
'LENGTH' => _makeTextInput( '', 'LENGTH' ),
'SORT_ORDER' => _makeTextInput( '', 'SORT_ORDER' ),
'BLOCK' => _makeTextInput( '', 'BLOCK' ),
]; // 'ATTENDANCE'=>_makeCheckboxInput('','ATTENDANCE'),'START_TIME'=>_makeTimeInput('','START_TIME'),'END_TIME'=>_makeTimeInput('','END_TIME')
echo '<form action="' . URLEscape( 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=update' ) . '" method="POST">';
DrawHeader( '', SubmitButton() );
ListOutput( $periods_RET, $columns, 'Period', 'Periods', $link, [], [ 'valign-middle' => true ] );
echo '<div class="center">' . SubmitButton() . '</div>';
echo '</form>';
}
function _makeTextInput( $value, $name )
{
global $THIS_RET;
if ( ! empty( $THIS_RET['PERIOD_ID'] ) )
{
$id = $THIS_RET['PERIOD_ID'];
}
else
{
$id = 'new';
}
$extra = 'maxlength=100';
if ( $name === 'LENGTH' )
{
// Allow Negative length (minutes), why not?
$extra = ' type="number" max="99999" min="-99999"';
}
elseif ( $name === 'SORT_ORDER' )
{
$extra = ' type="number" min="-9999" max="9999"';
}
elseif ( $name !== 'TITLE' )
{
$extra = 'size=5 maxlength=10';
}
elseif ( $id !== 'new' )
{
$extra .= ' required';
}
return TextInput( $value, 'values[' . $id . '][' . $name . ']', '', $extra );
}
// Deprecated: Remove Used for Attendance column, unused.
function _makeCheckboxInput( $value, $name )
{
global $THIS_RET;
if ( ! empty( $THIS_RET['PERIOD_ID'] ) )
{
$id = $THIS_RET['PERIOD_ID'];
}
else
{
$id = 'new';
}
return CheckboxInput(
$value,
'values[' . $id . '][' . $name . ']',
'',
'',
( $id === 'new' ),
button( 'check' ),
button( 'x' )
);
}
// Deprecated: was used for START_TIME & END_TIME.
function _makeTimeInput( $value, $name )
{
global $THIS_RET;
if ( ! empty( $THIS_RET['PERIOD_ID'] ) )
{
$id = $THIS_RET['PERIOD_ID'];
}
else
{
$id = 'new';
}
$hour = mb_substr( $value, 0, mb_strpos( $value, ':' ) );
$minute = mb_substr( $value, mb_strpos( $value, ':' ), mb_strpos( $value, ' ' ) );
$m = mb_substr( $value, mb_strpos( $value, ' ' ) );
for ( $i = 1; $i <= 11; $i++ )
{
$hour_options[ $i ] = '' . $i;
}
$hour_options['0'] = '12';
for ( $i = 0; $i <= 9; $i++ )
{
$minute_options[ '0' . $i ] = '0'.$i;
}
for ( $i = 10; $i <= 59; $i++ )
{
$minute_options[ $i ] = '' . $i;
}
$m_options = [ 'AM' => 'AM', 'PM' => 'PM' ];
$time_html = '<table><tr><td>' . SelectInput(
$hour,
'values[' . $id . '][' . $name . '_HOUR]',
'',
$hour_options,
'N/A',
'',
false
) . ':</td><td>' . SelectInput(
$minute,
'values[' . $id . '][' . $name . '_MINUTE]',
'',
$minute_options,
'N/A',
'',
false
) . '</td><td>' . SelectInput(
$m,
'values[' . $id . '][' . $name . '_M]',
'',
$m_options,
'N/A',
'',
false
) . '</td></tr></table>';
if ( $id !== 'new'
&& $value )
{
return InputDivOnclick(
$name . $id,
$time_html,
$value,
''
);
}
else
return $time_html;
}
/**
* Make Remove button
*
* Local function
* DBGet() callback
*
* @since 4.7
*
* @param string $value Value.
* @param string $column Column name, 'REMOVE'.
*
* @return string Remove button or add button or none if existing Course Periods use this School Period.
*/
function _makeRemoveButton( $value, $column )
{
global $THIS_RET;
if ( empty( $THIS_RET['PERIOD_ID'] ) )
{
return button( 'add' );
}
if ( $value )
{
// Do NOT remove School Period as existing Course Periods use it.
return '';
}
$button_link = 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=remove&id=' .
$THIS_RET['PERIOD_ID'];
return button( 'remove', '', URLEscape( $button_link ) );
}
/**
* Make Course Periods number link
* Link to Scheduling > Courses program & search for Period's "TITLE"
*
* Local function
* DBGet() callback
*
* @since 11.1
*
* @param string $value Value.
* @param string $column Column name, 'COURSE_PERIODS'.
*
* @return string Empty if no Course Periods, else Course Periods link.
*/
function _makeCoursePeriods( $value, $column )
{
global $THIS_RET;
if ( ! $value )
{
return '';
}
if ( ! AllowUse( 'Scheduling/Courses.php' )
|| ! $THIS_RET['TITLE'] )
{
return $value;
}
$link = 'Modules.php?modname=Scheduling/Courses.php&course_modfunc=search&last_year=&search_term=' .
urlencode( $THIS_RET['TITLE'] );
return '<a href="' . URLEscape( $link ) . '">' . $value . '</a>';
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| includes | Folder | 0755 |
|
|
| AccessLog.php | File | 5.65 KB | 0644 |
|
| Calendar.php | File | 31.26 KB | 0644 |
|
| Configuration.php | File | 24.2 KB | 0644 |
|
| CopySchool.php | File | 7.95 KB | 0644 |
|
| DatabaseBackup.php | File | 2.99 KB | 0644 |
|
| GradeLevels.php | File | 4.66 KB | 0644 |
|
| MarkingPeriods.php | File | 21.84 KB | 0644 |
|
| Menu.php | File | 1.99 KB | 0644 |
|
| Periods.php | File | 8.26 KB | 0644 |
|
| PortalNotes.php | File | 7.57 KB | 0644 |
|
| PortalPolls.php | File | 11.62 KB | 0644 |
|
| Rollover.php | File | 36.85 KB | 0644 |
|
| SchoolFields.php | File | 2.88 KB | 0644 |
|
| Schools.php | File | 10.37 KB | 0644 |
|