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/personality-test/print_page.php
<?php

/**
 *
 * Title : Test Report
 * Developer : Rohit Kashyap
 * Date : 18 Mar,2020
 * Description : User test report and their sten score in print format with highchart.
 */
include_once('../wp-config.php');

if (is_user_logged_in()) {
    $user_id = $current_user->ID;


    global $wpdb;
    $PSY_EXAMS = $wpdb->prefix . PSY_EXAMS;
    $PSY_ABILITY = $wpdb->prefix . PSY_ABILITY;
    $PSY_ABILITY_CLASS = $wpdb->prefix . PSY_ABILITY_CLASS;
    $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_ABILITY_STEN_DESC = $wpdb->prefix . PSY_ABILITY_STEN_DESC;
    $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'];

    $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 ud.first_name,ud.last_name,ud.date_of_birth,cl.class_name,ud.email_address,ud.mobile_number,ud.gender_id FROM $PSY_USERS_DETAILS as ud left join $PSY_ABILITY_CLASS as cl on cl.class_id=ud.current_education_level where user_id='$user_id'");

            $studentName = $userData->first_name . ' ' . $userData->last_name;
            $dob = date('d F, Y', strtotime($userData->date_of_birth));
            $class = $userData->class_name;
            $email = $userData->email_address;
            $mobile = $userData->mobile_number;
            $gender = $userData->gender_id;




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

            $exam_id = $getTestDetails->exam_category_id;
            $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'));

            $parent_subject = $wpdb->get_var("SELECT exam_category_id FROM $PSY_EXAMS where parent_id='$exam_id'");

            $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='$parent_subject' and e.exam_category_id NOT IN('48308','48352') order by e.exam_category_id");


?>

            <link rel="stylesheet" href="/aptitude-test/css/bootstrap.min.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%;
                    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;
                }

                .print-view-box ul {
                    margin: 8px auto;
                }

                .print-view-box ul li {
                    font-size: 15px;
                    padding: 4px 0;
                    color: #000;
                    font-weight: 700;
                }

                .print-view-box h2 {
                    padding: 0 0 10px;
                    font-size: 18px;
                    color: #333;
                }

                .print-view-box p {
                    margin-bottom: 10px;
                }

                .disc-print {
                    font-style: italic;
                    font-size: 14px !important;
                    color: #000;
                    font-weight: 700;
                }

                #btnPrint {
                    float: right;
                    margin-bottom: 12px;
                    background: #154479;
                    border: none;
                    color: #fff;
                    padding: 4px 10px;
                    font-weight: 600;
                    border-radius: 4px;
                }
                .loading_image {
                    display: block;
                    position: fixed;
                    z-index: 1000;
                    top: 0;
                    left: 0;
                    height: 100%;
                    width: 100%;
                    background: rgba(255, 255, 255, .8) url('/wp-content/themes/psychometrics/images/loading_image.gif') 50% 50% no-repeat;
                }
            </style>
            <!-- TOP TABLE SECTION -->
            <section style="background: #f1f1f1;padding: 2em 0;" id="main">
            <div id="loading"></div>
                <div class="container">
                    <!----User details--->
                    <div class="row">
                        <div class="chart-header-box" style="margin-bottom: 2em;">
                            <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;"><?php echo $class ?></span></h4>
                                <h4>Date : <span style="font-weight: bold;"><?php echo $dateAttempt; ?></span></h4>
                            </div>
                            <div class="col-md-4">
                                <img class="header-logo" src="http://staging.shinemetrics.com/wp-content/themes/psychometrics/images/shine-logo.png" alt="">
                            </div>
                        </div>
                    </div>
                    <!----First Page Content--->
                    <div class="row">
                        <div class="intro-box print-view-box">
                            <form action="/personality-test/pdf.php" method="post">
                                <input type="hidden" name="test" value="<?php echo $testID; ?>">
                                <button id="btnPrint" type="submit">Save as PDF</button>
                            </form>
                            <div class="col-md-12">
                                <p>Psychometric tests are designed to assess the cognitive abilities and personality traits of an individual. Knowing one’s own abilities, helps in knowing our own strengths and weaknesses which in turn help us in choosing the career/course most suited for us.</p>
                                <p>Psychometric tests are of two types:<ul>
                                        <li>Test for abilities or aptitude</li>
                                        <li>Test for personality</li>
                                    </ul>
                                </p>
                                <p>The result of psychometric tests tells us a lot about our own selves. It is important specifically when we are at a stage where we have to choose a career, a course or a stream. These results help us to be 100% sure that the course or stream that we are choosing is something that we can do well.</p>
                                <p>Abilities or aptitude are some innate qualities that we are born with. For example, some people sing very well even without any particular training in music. We would say that their ‘ability’ to sing is high. Now that person can become a professional singer much more easily than a person who does not have that ability. Similarly, all of us have different levels of ability for numbers, for language, for reasoning and logic, for mechanics etc. These different abilities have a scope in different fields of career.</p>
                                <p>Personality is the combination of characteristics or qualities that form an individual's distinctive character. It also plays a major role in the shaping of our career. For example, a person who is an extrovert, who loves to interact with people will not do well in a job where he has to sit alone all day in a cabin and work. He would do well if he was a part of a team.</p>
                                <p>Interest also plays a major role in our career. As we all know, we are willing to work hard at a job that we find interesting. We do not want to do anything that we feel is boring.</p>
                                <p>These tests measure and quantify an individual’s abilities, interest and personality traits to figure out the best options in terms of field of study and career.</p>
                            </div>
                        </div>
                    </div>
                    <!-----Circles---->
                    <div class="row">
                        <div class="intro-box print-view-box">

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


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


                                $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" => $abltName, "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 print-view-box">

                            <div class="col-md-1"></div>
                            <div class="col-md-10">
                                <div class="chart-box">
                                    <figure class="highcharts-figure">
                                        <div id="container_bar_p" style="height: 500px;"></div>
                                    </figure>
                                </div>
                            </div>
                            <div class="col-md-1"></div>

                            <div class="col-md-12"></div>

                            <div class="col-md-1"></div>
                            <div class="col-md-10">
                                <div class="chart-box">
                                    <figure class="highcharts-figure">
                                        <div id="container_p" style="height: 370px;"></div>
                                    </figure>
                                </div>
                            </div>
                            <div class="col-md-1"></div>

                        </div>
                    </div>
                    <!--All ability score desc---->
                    <div class="row">
                        <div class="intro-box print-view-box">
                            <?php
                            foreach ($getsubject as $sub) {
                                $subject = $sub->exam_category_id;


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

                                $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;

                                $stenDesc = $wpdb->get_row("SELECT description from $PSY_ABILITY_STEN_DESC where ability_id='$ability_id' and FIND_IN_SET($stenScore,sten_scores)");

                            ?>
                                <div class="sten-score">
                                    <h3 class="display-3">Your STEN Score in <span style="color: #f15c80;"> <?php echo $sub->category_name; ?> </span> : <span style="color: #8085e9;font-weight: bold;"> <?php echo $stenScore; ?> </span></h3>
                                    <p><?php echo $stenDesc->description; ?></p>
                                </div>
                            <?php
                            }
                            ?>
                        </div>
                    </div>
                    <!--All ability score---->
                    <div class="row">
                        <div class="intro-box print-view-box">
                            <?php
                            foreach ($getsubject as $sub) {
                                $subject = $sub->exam_category_id;

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

                            ?>
                                <div>
                                    <h2 class="display-3"><?php echo $sub->category_name; ?></h2>
                                    <p style="margin-bottom: 25px;"><?php echo $ability_desc; ?></p>
                                </div>
                            <?php
                            }
                            ?>
                        </div>
                    </div>

                    <!-----Disclaimer-------->
                    <div class="row">
                        <div class="intro-box print-view-box">
                            <div class="col-md-12">
                                <p class="disc-print">Disclaimer: It is to be noted that these test scores do not provide any kind of diagnosis. The cognitive functioning is a result of “Nature and Nurture”. This means how an individual thinks is a result of his innate nature as well as his environment. The scores should be taken in the right perspective. These scores indicate an individual’s ability to perform a particular task right now (at the moment of taking the test). Adding extra skill or training in that area may improve the scores.</p>
                            </div>
                        </div>
                    </div>
                </div>
            </section>

            <!-- END TOP TABLE SECTION -->


            <script>
                // Load the fonts
                Highcharts.createElement('link', {
                    href: 'https://fonts.googleapis.com/css?family=Ubuntu:400,700',
                    rel: 'stylesheet',
                    type: 'text/css'
                }, null, document.getElementsByTagName('head')[0]);
                // Add the background image to the container
                Highcharts.addEvent(Highcharts.Chart, 'afterGetContainer', function() {
                    // eslint-disable-next-line no-invalid-this
                    this.container.style.background =
                        'url(https://www.highcharts.com/samples/graphics/sand.png)';
                });
                Highcharts.theme = {

                    chart: {
                        backgroundColor: null,
                        style: {
                            fontFamily: 'Ubuntu, sans-serif'
                        }
                    },
                    title: {
                        style: {
                            color: 'black',
                            fontSize: '16px',
                            fontWeight: 'bold'
                        }
                    },
                    subtitle: {
                        style: {
                            color: 'black'
                        }
                    },
                    tooltip: {
                        borderWidth: 0
                    },
                    labels: {
                        style: {
                            color: '#6e6e70'
                        }
                    },
                    legend: {
                        backgroundColor: '#E0E0E8',
                        itemStyle: {
                            fontWeight: 'bold',
                            fontSize: '13px'
                        }
                    },
                    xAxis: {
                        labels: {
                            style: {
                                color: '#6e6e70'
                            }
                        }
                    },
                    yAxis: {
                        labels: {
                            style: {
                                color: '#6e6e70'
                            }
                        }
                    },
                    plotOptions: {
                        series: {
                            shadow: true
                        },
                        candlestick: {
                            lineColor: '#404048'
                        },
                        map: {
                            shadow: false
                        }
                    },
                    // Highstock specific
                    navigator: {
                        xAxis: {
                            gridLineColor: '#D0D0D8'
                        }
                    },
                    rangeSelector: {
                        buttonTheme: {
                            fill: 'white',
                            stroke: '#C0C0C8',
                            'stroke-width': 1,
                            states: {
                                select: {
                                    fill: '#D0D0D8'
                                }
                            }
                        }
                    },
                    scrollbar: {
                        trackBorderColor: '#C0C0C8'
                    }
                };
                // Apply the theme
                Highcharts.setOptions(Highcharts.theme);
                //pie chart
                Highcharts.chart('container_p', {
                    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: [{
                        name: 'Score',
                        colorByPoint: true,
                        data: <?php echo json_encode($data); ?>
                    }]
                });

                //bar chart
                Highcharts.chart('container_bar_p', {
                    chart: {
                        type: 'column'
                    },
                    title: {
                        text: 'Multiple Dimensions of Personality',
                        align: 'center',
                        y: 20
                    },
                    xAxis: {
                        type: 'category'
                    },
                    yAxis: {
                        title: {
                            text: ''
                        },
                        max: 10,
                        min: 0,
                        tickInterval: 1

                    },
                    tooltip: {
                        pointFormat: '{series.name}: <b>{point.y}</b>'
                    },
                    accessibility: {
                        point: {
                            valueSuffix: '%'
                        }
                    },
                    plotOptions: {
                        series: {
                            cursor: 'pointer',
                            colorByPoint: true,
                        }
                    },
                    series: [{
                        name: 'Score',
                        data: <?php echo json_encode($data); ?>

                    }]
                });
                jQuery(document).on('click', '#btnPrint', function() {
                    jQuery("#loading").addClass("loading_image");
                });
            </script>
            <div style="display: none;">
                <?php
                $path = '/var/www/selfanalyse/personality-test/pdf-html/pdf-' . $testID . '.html';
                // if (file_exists($path)) {
                    echo "";
                // } else {
                    ob_start();
                    include_once('pdf_content.php');
                    $html = ob_get_contents();
                    file_put_contents('/var/www/selfanalyse/personality-test/pdf-html/pdf-' . $testID . '.html', $html);
                    ob_flush();
                // }

                ?>
            </div>
<?php
        } else {
            echo "Error : No test id found.";
        }
    } else {
        echo "Error : Invalid Test Id.";
    }
} else {
    echo "Error : Please login to view report.";
}
?>