HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-31-18-78 6.17.0-1017-aws #17~24.04.1-Ubuntu SMP Tue May 26 21:09:53 UTC 2026 aarch64
User: ubuntu (1000)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //var/www/selfanalyse/school/personality-test-report.php
<?php

/**
 * 
 * Title : Test Report
 * Developer : Rohit Kashyap
 * Date : 19 Mar,2020
 * Description : User personality test report and their sten score with highchart.
 */
// ini_set('dsiplay_errors', 1);
// error_reporting(E_ALL);
include_once('../wp-config.php');



global $wpdb;
$PSY_EXAMS = $wpdb->prefix . PSY_EXAMS;
$PSY_ABILITY = $wpdb->prefix . PSY_ABILITY;
$PSY_USERS_DETAILS = $wpdb->prefix . PSY_USERS_DETAILS;
$PSY_SP_OPTION_VALUE = $wpdb->prefix . PSY_SP_OPTION_VALUE;
$PSY_ABILITY_RAW_SCORE = $wpdb->prefix . PSY_ABILITY_RAW_SCORE;
$PSY_TEST_GEN_TEST_TAKEN = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN;
$PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER;

$testID = $_REQUEST['testId'];

$user_id = $wpdb->get_var("select user_id from $PSY_TEST_GEN_TEST_TAKEN where test_taken_id='$testID'");


$curDate = date('Y-m-d H:i:s');

if (is_numeric($testID) && strlen($eng_exam_id) <= 5) {

    $checkTest = $wpdb->get_var("SELECT count(test_taken_id) FROM $PSY_TEST_GEN_TEST_TAKEN where test_taken_id='$testID' and user_id='$user_id' and test_type='PER' and status='Y'");

    if ($checkTest != '0') {



        $userData = $wpdb->get_row("SELECT first_name,last_name,date_of_birth FROM $PSY_USERS_DETAILS where user_id='$user_id'");

        $studentName = $userData->first_name . ' ' . $userData->last_name;
        $dob = date('d F, Y', strtotime($userData->date_of_birth));



        $getTestDetails = $wpdb->get_row("SELECT tt.total_questions,tt.class_id,tt.time_taken_in_seconds,tt.start_date,e.category_name FROM $PSY_TEST_GEN_TEST_TAKEN as tt LEFT JOIN $PSY_EXAMS as e on e.exam_category_id=tt.exam_category_id where tt.test_taken_id='$testID' and tt.status='Y'");

        $class_id = $getTestDetails->class_id != '0' ? $getTestDetails->class_id : '13';
        $dateAttempt = date('d F, Y', strtotime($getTestDetails->start_date));
        $seconds = $getTestDetails->time_taken_in_seconds;
        $testDate = date('Y-m-d H:i:s', strtotime($getTestDetails->start_date));
        $date1 = str_replace('-', '/', $testDate);
        $tomorrow = date('Y-m-d H:i:s', strtotime($date1 . '+1 days'));

        $getsubject = $wpdb->get_results("SELECT e.category_name,e.exam_category_id from $PSY_EXAMS as e LEFT JOIN $PSY_ABILITY as ab on ab.ref_id=e.exam_category_id where e.parent_id='48306' and e.exam_category_id!='48308' order by e.exam_category_id");


?>
        <link rel="stylesheet" href="/aptitude-test/css/bootstrap.min.css">
        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css">


        <script src="/aptitude-test/js/jquery.min.js"></script>
        <script src="/aptitude-test/js/bootstrap.min.js"></script>
        <script src="/aptitude-test/js/highcharts.js"></script>



        <style>
            .bold-txt {
                font-weight: bold;
                color: #000;
            }

            .col-md-2 {
                width: 13.666667% !important;
            }

            /* MARGIN CSS */
            .mt-20 {
                margin-top: 20px
            }

            .mb-20 {
                margin-bottom: 20px
            }

            table {
                border-collapse: collapse;
                border-spacing: 0;
                width: 100%;
                border: 1px solid #ddd;
            }

            th,
            td {
                text-align: left;
                padding: 8px;
            }

            .header-logo {
                width: 40%;
                float: right;
            }

            .chart-header-box {
                float: left;
                width: 100%;

                margin-top: 2em;
                border-radius: 4px;
                background: #fff;
                padding: 10px;
                border-bottom: 1px solid #cecece;
            }

            .chart-header-box h4 {
                font-size: 16px;
            }

            .intro-box {
                margin: 0;
                padding-left: 14px;
                background: #fff;
                padding: 10px;

                float: left;
                width: 100%;
            }

            .intro-box h2 {
                margin: 0;
                color: #464646;
                font-weight: 600;
                font-size: 24px;
                padding: 0 0 20px;
            }



            .one-circle-box {
                border-radius: 50%;
                text-align: center;
                padding: 24px 0;
                width: 140px;
                margin: 0 auto;
            }

            .one-circle-box i {
                font-size: 28px;
            }

            .chart-box {
                border: 1px solid #cccccc;
                box-shadow: 0 2px 4px 2px #c7c7c7;
                margin: 2em 0;
            }

            #container {
                /* height: 550px; */
            }

            .highcharts-data-table table {
                font-family: Verdana, sans-serif;
                border-collapse: collapse;
                border: 1px solid #EBEBEB;
                margin: 10px auto;
                text-align: center;
                width: 100%;
                max-width: 500px;
            }

            .highcharts-data-table caption {
                padding: 1em 0;
                font-size: 1.2em;
                color: #555;
            }

            .highcharts-data-table th {
                font-weight: 600;
                padding: 0.5em;
            }

            .highcharts-data-table td,
            .highcharts-data-table th,
            .highcharts-data-table caption {
                padding: 0.5em;
            }

            .highcharts-data-table thead tr,
            .highcharts-data-table tr:nth-child(even) {
                background: #f8f8f8;
            }

            .highcharts-data-table tr:hover {
                background: #f1f7ff;
            }

            svg:not(:root) {
                overflow: visible !important;
            }

            .highcharts-container {
                overflow: visible !important;
            }

            .intro-box h5 {
                margin: 0;
                color: #fff;
                font-size: 18px;
                padding: 10px;
                text-align: center;
                background: #f1802b;
            }

            .ability-desc-box h2 {
                margin: 0;
                color: #464646;
                font-weight: 600;
                font-size: 20px;
                padding: 30px 0 10px;
            }


            .intro-box p {
                margin: 0;
                font-size: 16px;
            }

            .ability-desc-box {
                border-bottom: 1px solid #434348;
                padding-bottom: 20px;
            }

            .sten-score {
                border: 1px solid #b1b1b1;
                box-shadow: 0 2px 4px 2px #9a9a9a;
                padding: 10px;
                margin-top: 1em;
                /* background: #90ed7d; */
            }

            .sten-score h3 {
                font-size: 18px;
                margin: 0;
                padding-bottom: 10px;
            }

            .description-ul {
                padding: 20px;
            }

            .description-ul li {
                list-style: decimal;
                color: #000;
                margin-bottom: 20px;
                font-size: 15px;
            }

            .test-head {
                font-size: 26px !important;
                padding-bottom: 10px;
            }

            .chart-header-box h6 {
                margin: 0;
                font-size: 17px;
                padding: 10px 0 30px;
                line-height: 24px;
                font-weight: 600;
            }

            .back-home-btn {
                font-size: 14px;
                background: #0085f7;
                padding: 10px;
                display: table;
                margin: 0 auto;
                color: #fff;
                cursor: pointer;
                border-radius: 4px;
                font-weight: bold;
            }
        </style>

        <!-- TOP TABLE SECTION -->
        <section style="background: #f1f1f1;" id="main">
            <div class="container">
                <!----User details--->
                <div class="row">

                    <div class="chart-header-box">
                        <div class="col-md-8">
                            <h4 class="test-head"><?php echo $getTestDetails->category_name; ?></h4>
                            <h4>Name : <span style="font-weight: bold;"> <?php echo $studentName; ?> </span>, <span> Class :</span> <span style="font-weight: bold;">4th</span></h4>
                            <h4>Date Attempt : <span style="font-weight: bold;"><?php echo $dateAttempt; ?></span></h4>
                        </div>
                        <div class="col-md-4">
                            <img class="header-logo" src="http://sarkaripariksha.com/wp-content/themes/sp_theme_1/images/logo-wide.png" alt="">
                        </div>
                    </div>
                </div>
                <?php
                //if ($curDate >= $tomorrow) {

                ?>
                <button id="btnPrint" onClick="popOut('/personality-test/print_page.php?testId=<?php echo $testID; ?>','Aptitude Test Report', 1200, 650)">Print Preview</button>
                <!-----Circles---->
                <div class="row">
                    <div class="intro-box">

                        <?php
                        $data = array();
                        foreach ($getsubject as $sub) {
                            $subject = $sub->exam_category_id;


                            $abilityData = $wpdb->get_row("SELECT short_name,ability_id,instruction FROM $PSY_ABILITY where ref_id='$subject'");
                            $ability_id = $abilityData->ability_id;
                            $ability_desc = $abilityData->instruction;



                            $getTestSummary = $wpdb->get_row("SELECT SUM(CASE WHEN qa.answer=1 THEN so.option_1 WHEN qa.answer=2 THEN so.option_2 WHEN qa.answer=3 THEN so.option_3 END) as correctQn, count(CASE WHEN qa.answer!=0 THEN 1 end) as attepmt,count(CASE WHEN qa.answer=0 THEN 1 end) as unAttemptQn from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER as qa Inner join $PSY_SP_OPTION_VALUE as so on so.question_id = qa.test_question_id where qa.test_taken_id='$testID' and qa.module_id='$subject'");
                            $correctQn = (int) $getTestSummary->correctQn;


                            $rawScore = $wpdb->get_var("SELECT sten_score FROM $PSY_ABILITY_RAW_SCORE where $correctQn BETWEEN raw_score_start and raw_score_end and class_id='$class_id' and ability_id='$ability_id'");

                            $stenScore = (int) $rawScore;
                            $data[] = array("y" => $stenScore, "name" => $abilityData->short_name, "ability_id" => $ability_id, "topic_id" => $sub->exam_category_id);

                            //color condition for raw score
                            if ($rawScore <= 3 && $rawScore >= 0) {
                                $backColor = '#e4d354';
                            } else if ($rawScore <= 7 && $rawScore >= 4) {
                                $backColor = '#f7a35c';
                            } else if ($rawScore <= 10 && $rawScore >= 8) {

                                $backColor = '#90ed7d';
                            }
                        }
                        ?>
                    </div>
                </div>
                <!----highcharts---->
                <div class="row">
                    <div class="intro-box">
                        <div class="col-md-2"></div>
                        <div class="col-md-8">
                            <div class="chart-box">
                                <h5>Click on PIE chart topic to get more details.</h5>
                                <figure class="highcharts-figure">
                                    <div id="container" style="height: 370px;"></div>
                                </figure>
                            </div>
                        </div>
                        <div class="col-md-2"></div>
                        <div class="col-md-12"></div>
                        <div class="col-md-2"></div>
                        <div class="col-md-8">
                            <div class="chart-box">
                                <h5>Click on Bar chart topic to get more details.</h5>
                                <figure class="highcharts-figure">
                                    <div id="container_bar" style="height: 370px;"></div>
                                </figure>
                            </div>
                        </div>
                        <div class="col-md-2"></div>
                        <div class="col-md-12">
                            <div class="ability-desc-box" id="abilityDesc">

                            </div>

                        </div>
                    </div>
                </div>
                <?php
                //} else {
                ?>
                <!-- <div class="row">
                        <div class="chart-header-box" style="background: #d8e6f1;text-align: center;">
                            
                            <h6>Thank you for taking the test
                                Your reports will be ready within 24 hrs on your dashboard after our experts have created your profile. You will be intimated through email.</h6>

                            <h3 class="back-home-btn"><i class="fas fa-angle-double-left"></i> Back to Home</h3>
                            
                        </div>
                    </div> -->
                <?php
                //}
                ?>
            </div>
        </section>

        <!-- END TOP TABLE SECTION -->


        <script>
            function popOut(pageURL, pageTitle,
                popupWinWidth, popupWinHeight) {
                var left = (screen.width - popupWinWidth) / 2;
                var top = (screen.height - popupWinHeight) / 4;

                var myWindow = window.open(pageURL, pageTitle,
                    'resizable=yes, width=' + popupWinWidth +
                    ', height=' + popupWinHeight + ', top=' +
                    top + ', left=' + left);
            }
            //pie chart
            Highcharts.chart('container', {
                chart: {
                    plotBackgroundColor: null,
                    plotBorderWidth: null,
                    plotShadow: false,
                    type: 'pie'
                },
                title: {
                    text: 'Multiple Dimensions of Personality'
                },
                tooltip: {
                    pointFormat: '{series.name}: <b>{point.y}</b>'
                },
                accessibility: {
                    point: {
                        valueSuffix: '%'
                    }
                },
                plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: 'pointer',
                        dataLabels: {
                            enabled: true,
                            format: '<b>{point.name}</b>: {point.y}'
                        }
                    },
                    series: {
                        cursor: 'pointer',
                        colorByPoint: true,
                        point: {
                            events: {
                                click: function() {
                                    // alert(this.options.ability_id);
                                    $.ajax({
                                        type: "POST",
                                        url: "/aptitude-test/test_ability_description.php",
                                        dataType: 'html',
                                        data: {
                                            "ability_id": this.options.ability_id,
                                            "score": this.options.y,
                                            "topic_name": this.options.name
                                        },
                                        success: function(data) {
                                            $("#abilityDesc").html(data);
                                        }
                                    });

                                }
                            }
                        }
                    }
                },
                series: [{
                    name: 'Sten Score',
                    colorByPoint: true,
                    data: <?php echo json_encode($data); ?>
                }]
            });

            //bar chart
            Highcharts.chart('container_bar', {
                chart: {
                    type: 'column'
                },
                title: {
                    text: 'Multiple Dimensions of Personality',
                    align: 'center',
                    y: 60
                },
                xAxis: {
                    type: 'category'
                },
                yAxis: {
                    title: {
                        text: 'Sten Score'
                    },
                    max: 10,
                    min: 0

                },
                tooltip: {
                    pointFormat: '{series.name}: <b>{point.y}</b>'
                },
                accessibility: {
                    point: {
                        valueSuffix: '%'
                    }
                },
                plotOptions: {
                    series: {
                        cursor: 'pointer',
                        colorByPoint: true,
                        point: {
                            events: {
                                click: function() {
                                    // alert(this.options.ability_id);
                                    $.ajax({
                                        type: "POST",
                                        url: "/aptitude-test/test_ability_description.php",
                                        dataType: 'html',
                                        data: {
                                            "ability_id": this.options.ability_id,
                                            "score": this.options.y,
                                            "topic_name": this.options.name
                                        },
                                        success: function(data) {
                                            $("#abilityDesc").html(data);
                                        }
                                    });

                                }
                            }
                        }
                    }
                },
                series: [{
                    name: 'Score',
                    data: <?php echo json_encode($data); ?>

                }]
            });
        </script>
<?php
    } else {
        echo "Error : No test id found.";
    }
} else {
    echo "Error : Invalid Test Id.";
}