roles[0];
if( $current_user_role=='administrator' || $current_user_role=='teacher' ) {
wpsp_topbar();
wpsp_sidebar();
wpsp_body_start();
$settings_data = [];
$class_id = $subject_id = $exam_id=0;
$proversion = wpsp_check_pro_version();
$proclass = !$proversion['status'] && isset( $proversion['class'] )? $proversion['class'] : '';
$protitle = !$proversion['status'] && isset( $proversion['message'] )? $proversion['message'] : '';
$prodisable = !$proversion['status'] ? 'disabled="disabled"' : '';
if( isset( $_POST['MarkAction'] ) ){
$class_id = (isset($_POST['ClassID'])) ? intval($_POST['ClassID']) : '';
$subject_id = (isset($_POST['SubjectID'])? intval($_POST['SubjectID']) : '');
$exam_id = (isset($_POST['ExamID'])? intval($_POST['ExamID']) : '');
}
$ctname = $wpdb->prefix.'wpsp_class';
$sbname = $wpdb->prefix.'wpsp_subject';
$classQuery = "select `cid`,`c_name` from `$ctname`";
$clt = $wpdb->get_results( $classQuery );
$msg = 'Please Add Class Before Adding Marks';
if( $current_user_role=='teacher' ) {
$cuserId = intval($current_user->ID);
$classQuery = $wpdb->prepare("SELECT DISTINCT c.cid,c.c_name FROM $ctname c INNER JOIN $sbname s ON s.class_id= c.cid WHERE s.sub_teach_id = %d",$cuserId);
$clt = $wpdb->get_results( $classQuery );
$msg = 'Please ask Principal to assign class and subject';
}
$wpsp_settings_table = $wpdb->prefix."wpsp_settings";
$wpsp_settings_edit = $wpdb->get_results("SELECT * FROM $wpsp_settings_table" );
foreach( $wpsp_settings_edit as $sdat ) {
$settings_data[$sdat->option_name] = $sdat->option_value;
}
?>
'.esc_html($msg).'
';
} else { ?>
prefix."wpsp_mark_fields";
$extra_fields = $wpdb->get_results($wpdb->prepare("SELECT * FROM $extra_tbl WHERE subject_id = %d",$subject_id));
if( wpsp_IsMarkEntered( $class_id,$subject_id,$exam_id ) ) {
$wpsp_marks = wpsp_GetMarks($class_id,$subject_id,$exam_id);
$mark_entered = 1;
$wpsp_exmarks = wpsp_GetExMarks($subject_id,$exam_id);
foreach($wpsp_exmarks as $exmark){
$extra_marks[$exmark->student_id][$exmark->field_id]=$exmark->mark;
}
}
?>
ID );
$student_table = $wpdb->prefix . "wpsp_student";
$class_table = $wpdb->prefix . "wpsp_class";
$exam_table_name = $wpdb->prefix . 'wpsp_exam';
/*
* Read URL params: sid = student wp_usr_id (base64), cid = class id (base64)
* These are set by the sidebar links for each child+course.
*/
/*
* The sidebar passes sid = student plugin row `sid` (base64),
* and cid = class id (base64).
*/
$url_sid = isset( $_GET['sid'] ) ? intval( base64_decode( sanitize_text_field( $_GET['sid'] ) ) ) : 0;
$url_class_id = isset( $_GET['cid'] ) ? intval( base64_decode( sanitize_text_field( $_GET['cid'] ) ) ) : 0;
/*
* SINGLE VIEW: a specific student + class was clicked in the sidebar.
*/
if ( $url_sid > 0 && $url_class_id > 0 ) :
/*
* Match on `sid` (plugin student row ID) and verify parent ownership.
* Also fetch wp_usr_id — that is what the marks table stores.
*/
$student_row = $wpdb->get_row( $wpdb->prepare(
"SELECT sid, wp_usr_id, CONCAT_WS(' ', s_fname, s_mname, s_lname) AS full_name
FROM $student_table
WHERE sid = %d AND parent_wp_usr_id = %d",
$url_sid,
$parent_id
) );
/* wp_usr_id is what the AJAX marks handler expects */
$url_student_id = $student_row ? intval( $student_row->wp_usr_id ) : 0;
$class_row = $wpdb->get_row( $wpdb->prepare(
"SELECT c_name FROM $class_table WHERE cid = %d",
$url_class_id
) );
$exams = $wpdb->get_results( $wpdb->prepare(
"SELECT eid, e_name FROM $exam_table_name WHERE classid = %d",
$url_class_id
) );
$result_div_id = 'marks-result-' . $url_student_id . '-' . $url_class_id;
?>
get_results( $wpdb->prepare(
"SELECT st.wp_usr_id, st.class_id, st.sid,
CONCAT_WS(' ', st.s_fname, st.s_mname, st.s_lname) AS full_name,
cl.c_name
FROM $student_table st
LEFT JOIN $class_table cl ON cl.cid = st.class_id
WHERE st.parent_wp_usr_id = %d",
$parent_id
) );
?>
ID );
$ciid = sanitize_text_field( stripslashes( $_GET['cid'] ) );
$class_id = intval( base64_decode( $ciid ) );
?>