Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
CRAP | |
0.00% |
0 / 380 |
Template13ProgramResultGenerator | |
0.00% |
0 / 1 |
|
0.00% |
0 / 4 |
9506.00 | |
0.00% |
0 / 380 |
__construct | n/a |
0 / 0 |
1 | n/a |
0 / 0 |
|||||
getTemplateName | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 15 |
|||
processData | |
0.00% |
0 / 1 |
3660.00 | |
0.00% |
0 / 216 |
|||
renderProgramResult | |
0.00% |
0 / 1 |
42.00 | |
0.00% |
0 / 63 |
|||
rearrangeDataForPrint | |
0.00% |
0 / 1 |
650.00 | |
0.00% |
0 / 86 |
<?php | |
namespace com\linways\ec\core\service\ProgramResultGenerator; | |
use com\linways\ec\core\service\BarcodeGenerationService; | |
use com\linways\ec\core\service\CommonExamService; | |
use com\linways\ec\core\service\ExamRegistrationService; | |
use com\linways\ec\core\service\ExamRegistrationSubjectService; | |
use com\linways\ec\core\exception\ExamControllerException; | |
use com\linways\base\util\TwigRenderer; | |
use com\linways\core\ams\professional\util\PdfUtil; | |
use com\linways\ec\core\service\ProgramResultGenerator\ProgramResultDataGenerator; | |
use com\linways\ec\core\service\ProgramResultService; | |
use com\linways\ec\core\constant\CourseTypeConstants; | |
use com\linways\ec\core\service\StudentSpecializationService; | |
use com\linways\ec\core\service\MarklistCategorizeSubjectService; | |
class Template13ProgramResultGenerator extends ProgramResultDataGenerator | |
{ | |
public function __construct(){} | |
protected function getTemplateName($request){ | |
$templateName = "programReportTemplate_13"; | |
$requestByGroupId = new \stdClass; | |
$requestByGroupId->groupId = $request->groupId; | |
$batchDetails = reset(CommonExamService::getInstance()->getBatchGroupDetailsByGroupId($requestByGroupId)); | |
// $examRegistrationDetailsArray = ExamRegistrationService::getInstance()->searchDetailedExamRegistrationDetails($request); | |
if(empty($batchDetails)){ | |
throw new ExamControllerException(ExamControllerException::NO_DETAILS_FOUND,"No Details Found"); | |
} | |
if($batchDetails->courseType == CourseTypeConstants::PG && $batchDetails->startYear >= 2016){ | |
$templateName = "programReportTemplate_13_PG_2016"; | |
} | |
else if($batchDetails->courseType == CourseTypeConstants::UG){ | |
$templateName = "programReportTemplate_13_UG"; | |
} | |
return $templateName; | |
} | |
/** | |
* Process Student data college data | |
* @param $request | |
*/ | |
protected function processData($request){ | |
$response = new \stdClass; | |
$requestByGroupId = new \stdClass; | |
$requestByGroupId->groupId = $request->groupId; | |
$response->batchDetails = reset(CommonExamService::getInstance()->getBatchGroupDetailsByGroupId($requestByGroupId)); | |
$requestForStudents = new \stdClass; | |
$requestForStudents->groupId = $request->groupId; | |
$response->students = ProgramResultService::getInstance()->getOverAllStudentMarkDetails($requestForStudents); | |
$markListSubjectCategories = MarklistCategorizeSubjectService::getInstance()->getAllSubjectCategories($requestByGroupId); | |
$openCourseMarklistCatKey = array_search('1', array_column($markListSubjectCategories, "isOpenCourse")); | |
$openCourseCatId = $openCourseMarklistCatKey === false ? null : $markListSubjectCategories[$openCourseMarklistCatKey]->subjectCategoryId; | |
$secondLangMarklistCatKey = array_search('1', array_column($markListSubjectCategories, "isSecondLanguage")); | |
$secondLangCatId = $secondLangMarklistCatKey === false ? null : $markListSubjectCategories[$secondLangMarklistCatKey]->subjectCategoryId; | |
// // remove after testing | |
// $response->batchDetails->courseType = CourseTypeConstants::MBA; | |
// $response->batchDetails->startYear = 2018; | |
$courseType = $response->batchDetails->courseType; | |
$startYear = $response->batchDetails->startYear; | |
if($request->filterRegisterNo){ | |
$response->students = array_filter($response->students, function ($student) use ($request) { | |
return (substr($student->studentDetails->registerNo, 0, 2) == $request->filterRegisterNo); | |
}); | |
} | |
foreach($response->students as $key=> $student){ | |
if ($request->considerSupplementary) { | |
if($request->publishStartDate && $request->publishEndDate){ | |
$requestForPubllishedResult = new \stdClass; | |
$requestForPubllishedResult->studentId = $student->id; | |
$requestForPubllishedResult->studentId = $student->id; | |
$requestForPubllishedResult->groupId = $request->groupId; | |
$requestForPubllishedResult->publishEndDate = $request->publishEndDate; | |
$requestForPubllishedResult->publishStartDate = $request->publishStartDate; | |
$publishDetails = ExamRegistrationService::getInstance()->getSupplyPublishDetailsByBatch($requestForPubllishedResult); | |
if(empty($publishDetails)){ | |
unset($response->students[$key]); | |
continue; | |
} | |
} | |
if($studentDetail->isFailed == 'FAILED'){ | |
unset($response->students[$key]); | |
continue; | |
} | |
} | |
$student->academicTerms = array_combine(array_column($student->academicTerms, 'id'), $student->academicTerms); | |
$student->secondLanguageName = ""; | |
$student->openCourseName = ""; | |
$student->cgpa = round($student->cgpa,2); | |
$student->cgpa = sprintf('%0.2f', $student->cgpa); | |
if($request->passStatus == 'PASSED'){ | |
if($student->isFailed != 'PASSED') unset($response->students[$key]); | |
} | |
if($request->passStatus == 'FAILED'){ | |
if($student->isFailed != 'FAILED') unset($response->students[$key]); | |
} | |
if($courseType == CourseTypeConstants::MBA){ | |
$requestForSpecialization = new \stdClass; | |
$requestForSpecialization->studentId = $student->id; | |
$requestForSpecialization->groupId = $request->groupId; | |
$studentSpecialisation = StudentSpecializationService::getInstance()-> getStudentspecialization($requestForSpecialization); | |
if($studentSpecialisation){ | |
$student->specialization = $studentSpecialisation->name; | |
} | |
} | |
foreach($student->academicTerms as $academicTerm){ | |
$academicTerm->sgpa = sprintf("%.02f", round($academicTerm->sgpa, 2)); | |
$academicTerm->subjects = array_combine(array_column($academicTerm->subjects, 'id'), $academicTerm->subjects); | |
if (empty($reportHeads[$academicTerm->id])) { | |
$semesterNames = CommonExamService::getInstance()->getDifferentSemesterName($academicTerm->name); | |
$reportHeads[$academicTerm->id]->name = "Semester ".$semesterNames->semNumber; | |
$reportHeads[$academicTerm->id]->id = $academicTerm->id; | |
$reportHeads[$academicTerm->id]->order = $academicTerm->academicTermOrderNo; | |
} | |
foreach($academicTerm->subjects as $subject){ | |
if ($subject->latestExamType == 'IMPROVEMENT') { | |
$examMonthYear = date("M-Y",strtotime("$subject->latestExamYear-$subject->latestExamMonth-1")); | |
$improveExamMonthYears[$academicTerm->id.strtotime("$subject->latestExamYear-$subject->latestExamMonth-1")] = "$examMonthYear (S$semesterNames->semNumber)"; | |
} | |
$subject->gradePoint = (float)$subject->gradePoint; | |
// for template_3 | |
if (empty($reportHeads[$academicTerm->id]->subHeads[$subject->id])) { | |
$reportHeads[$academicTerm->id]->subHeads[$subject->id]->id = $subject->id; | |
$reportHeads[$academicTerm->id]->subHeads[$subject->id]->name = $subject->name; | |
$reportHeads[$academicTerm->id]->subHeads[$subject->id]->code = $subject->code; | |
$reportHeads[$academicTerm->id]->subHeads[$subject->id]->order = $subject->order; | |
$reportHeads[$academicTerm->id]->subHeads[$subject->id]->credit = $subject->credit; | |
$reportHeads[$academicTerm->id]->subHeads[$subject->id]->totalMaxMark = $subject->totalMarks; | |
$reportHeads[$academicTerm->id]->subHeads[$subject->id]->maxGP = $subject->maxGradePoint; | |
// for displaying all subjects | |
$reportHeads[$academicTerm->id]->subjectArray[$subject->id]->id = $subject->id; | |
$reportHeads[$academicTerm->id]->subjectArray[$subject->id]->name = $subject->name; | |
$reportHeads[$academicTerm->id]->subjectArray[$subject->id]->code = $subject->code; | |
$reportHeads[$academicTerm->id]->subjectArray[$subject->id]->order = $subject->order; | |
} | |
// ------- | |
if(($subject->subCategoryId ) && ($subject->subCategoryId == $openCourseCatId)){ | |
$academicTerm->subjects["opencourse"] = $subject; | |
unset($reportHeads[$academicTerm->id]->subHeads[$subject->id]); | |
$reportHeads[$academicTerm->id]->subHeads["opencourse"]->id = "opencourse"; | |
$reportHeads[$academicTerm->id]->subHeads["opencourse"]->name = "Open Course"; | |
$reportHeads[$academicTerm->id]->subHeads["opencourse"]->code = "Open Course"; | |
$reportHeads[$academicTerm->id]->subHeads["opencourse"]->order = $subject->order; | |
$reportHeads[$academicTerm->id]->subHeads["opencourse"]->credit = $subject->credit; | |
$reportHeads[$academicTerm->id]->subHeads["opencourse"]->totalMaxMark = $subject->totalMarks; | |
$student->openCourseName = $subject->name; | |
} | |
else if(($subject->subCategoryId ) && ($subject->subCategoryId == $secondLangCatId)){ | |
$academicTerm->subjects["lang"] = $subject; | |
unset($reportHeads[$academicTerm->id]->subHeads[$subject->id]); | |
$reportHeads[$academicTerm->id]->subHeads["lang"]->id = "lang"; | |
$reportHeads[$academicTerm->id]->subHeads["lang"]->name = "Lang"; | |
$reportHeads[$academicTerm->id]->subHeads["lang"]->code = "Lang"; | |
$reportHeads[$academicTerm->id]->subHeads["lang"]->order = $subject->order; | |
$reportHeads[$academicTerm->id]->subHeads["lang"]->credit = $subject->credit; | |
$reportHeads[$academicTerm->id]->subHeads["lang"]->totalMaxMark = $subject->totalMarks; | |
$student->secondLanguageName = $subject->name; | |
} | |
$subjectCategoryWiseMarkData[$subject->subCategoryId]->creditGradePoint[$subject->id] = $subject->creditGradePoint; | |
$subjectCategoryWiseMarkData[$subject->subCategoryId]->credit[$subject->id] = $subject->credit; | |
$subjectCategoryWiseMarkData[$subject->subCategoryId]->totalMark[$subject->id] = $subject->markObtained; | |
$subjectCategoryWiseMarkData[$subject->subCategoryId]->totalMaxMark[$subject->id] = $subject->totalMarks; | |
// $subjectCategoryWiseMarkData[$subject->subCategoryId]->subjectName = $subject->name; | |
// $subjectCategoryWiseMarkData[$subject->subCategoryId]->subjectCode = $subject->code; | |
} | |
} | |
foreach ($markListSubjectCategories as $markListSubjectCategory) { | |
$creditGradePoint = array_sum($subjectCategoryWiseMarkData[$markListSubjectCategory->subjectCategoryId]->creditGradePoint); | |
$credit = array_sum($subjectCategoryWiseMarkData[$markListSubjectCategory->subjectCategoryId]->credit); | |
$totalMark = array_sum($subjectCategoryWiseMarkData[$markListSubjectCategory->subjectCategoryId]->totalMark); | |
$totalMaxMark = array_sum($subjectCategoryWiseMarkData[$markListSubjectCategory->subjectCategoryId]->totalMaxMark); | |
$subjectCategoryName = $markListSubjectCategory->subjectCategoryName; | |
if((!$markListSubjectCategory->isOpenCourse) && (!$markListSubjectCategory->isSecondLanguage )){ | |
$displayName = $markListSubjectCategory->name; | |
} | |
$displayKey = implode('', unpack("C*", str_replace(" ", "", $displayName))); | |
$subjectCategoryMarksKey = "C$markListSubjectCategory->subjectCategoryId" . "D$displayKey"; | |
if (!empty($subjectCategoryWiseMarkData[$markListSubjectCategory->subjectCategoryId])) { | |
$subjectCategoryMarks[$subjectCategoryMarksKey]->name = $displayName ? "$subjectCategoryName : $displayName" : $subjectCategoryName; | |
$subjectCategoryMarks[$subjectCategoryMarksKey]->credit = $credit; | |
$subjectCategoryMarks[$subjectCategoryMarksKey]->totalMark = $totalMark; | |
$subjectCategoryMarks[$subjectCategoryMarksKey]->creditGradePoint = $creditGradePoint; | |
$subjectCategoryMarks[$subjectCategoryMarksKey]->categoryCGPA = $categoryCGPA; | |
$subjectCategoryMarks[$subjectCategoryMarksKey]->grade = $cgpaGrade; | |
if (empty($programResultCategoryHeads[$subjectCategoryMarksKey])) { | |
$programResultCategoryHeads[$subjectCategoryMarksKey]->key = $subjectCategoryMarksKey; | |
$programResultCategoryHeads[$subjectCategoryMarksKey]->name = $displayName ? "$subjectCatName: $displayName" :$subjectCatName; | |
$programResultCategoryHeads[$subjectCategoryMarksKey]->totalMaxMark = $totalMaxMark; | |
$programResultCategoryHeads[$subjectCategoryMarksKey]->priority = $markListSubjectCategory->priority; | |
} | |
} | |
} | |
if (!empty($request->examMonthYears)) { | |
if (!in_array("$student->latestExamYear-$student->latestExamMonth", $request->examMonthYears)) { | |
unset($response->students[$key]); | |
continue; | |
} | |
} | |
} | |
usort($reportHeads, function ($a, $b){ | |
return $a->order > $b->order; | |
}); | |
usort($programResultCategoryHeads, function ($a, $b){ | |
return $a->priority > $b->priority; | |
}); | |
if(!empty($response->students)){ | |
$studentSample = reset($students); | |
$semCount = count($studentSample->academicTerms); | |
$subjectCategoryCount = count($programResultCategoryHeads); | |
$totalWidth = ($semCount + 1) * 50 +($subjectCategoryCount * 40) + 90; | |
$supplyExamMonthYears = []; | |
$semesterWiseDetails = ExamRegistrationService::getInstance()-> supplyExamMonthAndYearSemesterWiseByStudent($requestByGroupId); | |
ksort($semesterWiseDetails); | |
foreach ($semesterWiseDetails as $semesterWiseDetail) { | |
foreach ($semesterWiseDetail->exams as $key => $exam) { | |
$exam->examMonth = sprintf("%02d", $exam->examMonth); | |
$supplyChanceIndicator[$exam->academicTermId]["$exam->examYear$exam->examMonth"] = $key; | |
$examMonthYear = date("M-Y",strtotime("$exam->examYear-$exam->examMonth-1")); | |
if($courseType == CourseTypeConstants::MBA){ | |
$supplyExamMonthYears[$key][strtotime("$exam->examYear-$exam->examMonth-1")] = "$examMonthYear"; | |
} | |
else{ | |
$supplyExamMonthYears[$key][strtotime("$exam->examYear-$exam->examMonth-1")] = "$examMonthYear ($exam->academicTermName)"; | |
} | |
} | |
} | |
foreach ($supplyExamMonthYears as $key => $supplyExamMonthYear) { | |
ksort($supplyExamMonthYear); | |
$supplyExamMonthYears[$key] = implode(", ", $supplyExamMonthYear); | |
} | |
ksort($improveExamMonthYears); | |
$improveExamMonthYears = implode(", ", $improveExamMonthYears); | |
$improveExamMonthYears = $improveExamMonthYears? "(".$improveExamMonthYears.")" : ""; | |
$response->externalName = "External"; | |
$response->InternalName = "Internal"; | |
$response->sgpaName = "SGPA"; | |
$response->cgpaName = "CGPA"; | |
if(($courseType == CourseTypeConstants::PG_BLISC && $startYear >= 2019 ) || ($courseType == CourseTypeConstants::MPHIL && $startYear == 2019 ) || ($courseType == CourseTypeConstants::MBA )){ | |
$response->externalName = "ESA"; | |
$response->InternalName = "ISA"; | |
} | |
if((($courseType == CourseTypeConstants::PG) && (($startYear > 2014) && ($startYear < 2019))) || | |
($courseType == CourseTypeConstants::PG_BLISC && $startYear >= 2019 ) || | |
(($courseType == CourseTypeConstants::MSW) && (($startYear >= 2015) && ($startYear <= 2018))) || | |
($startYear < 2017) || | |
(($courseType == CourseTypeConstants::UG) && (($startYear == 2018) || ($startYear >= 2019))) || | |
($courseType == CourseTypeConstants::MPHIL && $startYear == 2018 )){ | |
$response->sgpaName = "SCPA"; | |
$response->cgpaName = "CCPA"; | |
} | |
if($courseType == CourseTypeConstants::MBA){ | |
$searchRequestForSpecialization = new \stdClass; | |
$specialisation = StudentSpecializationService::getInstance()->getAllSpecialization($searchRequestForSpecialization); | |
$response->specializationsList = $specialisation; | |
} | |
$response->semCount = $semCount; | |
$response->subjectCategoryCount = $subjectCategoryCount; | |
$response->programResultCategoryHeads = $programResultCategoryHeads; | |
$response->reportHeads = $reportHeads; | |
$response->totalWidth = $totalWidth; | |
$response->supplyExamMonthYears = $supplyExamMonthYears; | |
$response->supplyChanceIndicator = $supplyChanceIndicator; | |
$response->improveExamMonthYears = $improveExamMonthYears; | |
$response->collegeData = CommonExamService::getInstance()->getCollegeDetails(); | |
return $response; | |
} | |
else{ | |
throw new ExamControllerException(ExamControllerException::NO_DETAILS_FOUND,"No Details Found"); | |
} | |
} | |
/** | |
* Render Program Result | |
* @param $templateName | |
* @param Object $data | |
* @return Object | |
*/ | |
protected function renderProgramResult($templateName, $data){ | |
if(empty($data)){ | |
throw new ExamControllerException(ExamControllerException::NO_DETAILS_FOUND,"No Details Found"); | |
} | |
else{ | |
$responseHtml = TwigRenderer::renderTemplateFileToHtml(realpath(DOCUMENT_ROOT."../examcontroller-api/src/com/linways/web/templates/programReport/Template13/$templateName.twig"), [ 'data'=>$data ]); | |
$reArrangedPrint = true; // TODO: flag enable from settings table. | |
$printHtml = $responseHtml; | |
if ($reArrangedPrint) { | |
$printHtml = $this->rearrangeDataForPrint($responseHtml, $data->batchDetails); | |
$totalWidth = 420; | |
} | |
if ($data->batchDetails->courseType == CourseTypeConstants::MBA && $data->batchDetails->startYear >= 2019) { | |
$totalWidth = 460; | |
} | |
$prtContent = ""; | |
$prtContent .= '<html><head>'; | |
$prtContent .= "<style> | |
*{ | |
color:#000 !important; | |
background-color: #fff !important; | |
} | |
td, th{ | |
border:1px solid #000 !important; | |
} | |
table{ | |
border:1px solid #000 !important; | |
} | |
.print-border-0 td{ | |
border-left:1px solid #fff !important; | |
} | |
.print-border-b-0{ | |
border-bottom:none !important; | |
} | |
.print-border-t-0{ | |
border-top:none !important; | |
} | |
.print-border-tb-0{ | |
border-top:none !important; | |
border-bottom:none !important; | |
} | |
</style>"; | |
$prtContent .= '</head><title>Programme Result</title><body>'; | |
$prtContent .= $printHtml; | |
$prtContent .= '</body></html>'; | |
$totalWidth = $totalWidth < 297 ? 297 : $totalWidth; | |
$totalHeight = $totalWidth / 1.414; | |
$leftSpace = 15; | |
$options = array( | |
'page-width' => $totalWidth."mm", | |
'page-height' => $totalHeight."mm", | |
'dpi' => 96, | |
'margin-top' => "12mm", | |
'margin-left' => $leftSpace."mm", | |
'margin-right' => "15mm", | |
'margin-bottom' => "15mm", | |
// 'binary' => "/usr/local/bin/wkhtmltopdf", // For Mac | |
'user-style-sheet' => realpath(DOCUMENT_ROOT . "/libcommon/bootstrap/css/bootstrap.min.css") | |
); | |
$programResult = new \stdClass; | |
$programResult->dispalyHtmlData = $responseHtml; | |
$programResult->printData = PdfUtil::renderPdf($prtContent, $options); | |
return $programResult; | |
} | |
} | |
private function rearrangeDataForPrint($html, $batchDetails){ | |
// split all html content into 6 parts | |
$htmlSlices = explode("<!--content-tag-->", $html); | |
$htmlHead = $htmlSlices[0]; | |
$page = $htmlSlices[1]; | |
$htmlFoot = $htmlSlices[2]; | |
$pageSlices = explode("<!--page-hbf-split-tag-->", $page); | |
$pageHead = $pageSlices[0]; | |
$pageBody = $pageSlices[1]; | |
$pageFooter = $pageSlices[2]; | |
$pageBodySlices = explode("<!--content-hbf-split-tag-->", $pageBody); | |
$contentTableOpen = $pageBodySlices[0]; | |
$contentHead = $pageBodySlices[1]; | |
$contentHeadClose = $pageBodySlices[2]; | |
$contentBody = $pageBodySlices[3]; | |
$contentTableClose = $pageBodySlices[4]; | |
// split rows of head and student data | |
$contentHeadRaws = explode("<!--row-tag-->", $contentHead); | |
$contentBodyRaws = explode("<!--row-tag-->", $contentBody); | |
// split table headings into parts like "studentName, Regno" and group of subject column | |
$contentMainHeads = explode("<!--part-tag-->", $contentHeadRaws[1]); | |
$contentSubHeads = explode("<!--part-tag-->", $contentHeadRaws[3]); | |
$sliceCount = count($contentMainHeads); | |
$studentHead = $contentMainHeads[0]; | |
$students = []; | |
$tableSlices = []; | |
foreach ($contentBodyRaws as $key => $contentRaw) { | |
if(strpos($contentRaw, "<tr") || strpos($contentRaw, "</tr>")) continue; | |
// split table student details into parts like "student-1, REGNO-1" and group of subject mark details | |
$contentSlices = explode("<!--part-tag-->", $contentRaw); | |
$students[$key] = $contentSlices[0]; | |
for ($tableNum = 1; $tableNum < $sliceCount; $tableNum++) { | |
$tableSlices[$tableNum][$key] = $contentSlices[$tableNum]; | |
} | |
} | |
$studentCount = 0; | |
$pageNum = 0; | |
$nextPageNum = 0; | |
$contentPages = []; | |
if ($batchDetails->courseType == CourseTypeConstants::MBA && $batchDetails->startYear < 2019) { | |
$rowCount = 40 ; | |
} | |
elseif ($batchDetails->courseType == CourseTypeConstants::MBA && $batchDetails->startYear >= 2019) { | |
$rowCount = 60 ; | |
} | |
elseif (($batchDetails->courseType == "PG_BLISC" && $batchDetails->startYear >= 2014 && $batchDetails->startYear <= 2018) || ($batchDetails->courseType == "MLISC" && $batchDetails->startYear >= 2016 && $batchDetails->startYear <= 2018)) { | |
$rowCount = 28 ; | |
} | |
else{ | |
$rowCount = 30 ; | |
} | |
foreach ($students as $key => $student) { | |
$studentCount++; | |
$pageNum = $nextPageNum; | |
if (!($studentCount % $rowCount)) { | |
$nextPageNum++; | |
} | |
$last_tagFlag = false; | |
foreach ($tableSlices as $tableNum => $tableSlice) { | |
if ($last_tagFlag) { | |
$last_tagFlag = false; | |
continue; | |
} | |
if(substr_count($tableSlices[$tableNum + 1][$key], "<!--last_tag-->") > 0 || !$tableSlices[$tableNum + 1][$key]){ | |
if (!$contentPages[$pageNum]->contentTables[$tableNum]) { | |
$tr = "<tr>$studentHead $contentMainHeads[$tableNum]" . $contentMainHeads[$tableNum + 1]. "</tr>"; | |
$contentPages[$pageNum]->contentTables[$tableNum] .= $tr; | |
$contentPages[$pageNum]->contentTables[$tableNum] .= "<tr>" . $contentSubHeads[$tableNum-1] . $contentSubHeads[$tableNum] . "</tr>$contentHeadClose"; | |
} | |
$contentPages[$pageNum]->contentTables[$tableNum] .= "<tr>" . $student . $tableSlice[$key] . $tableSlices[$tableNum + 1][$key] . "</tr>"; | |
$last_tagFlag = true; | |
} | |
else { | |
if (!$contentPages[$pageNum]->contentTables[$tableNum]) { | |
$tr = "<tr>$studentHead$contentMainHeads[$tableNum]</tr>"; | |
$contentPages[$pageNum]->contentTables[$tableNum] .= $tr; | |
$contentPages[$pageNum]->contentTables[$tableNum] .= "<tr>" . $contentSubHeads[$tableNum-1] . "</tr>$contentHeadClose"; | |
} | |
$contentPages[$pageNum]->contentTables[$tableNum] .= "<tr>$student$tableSlice[$key]</tr>"; | |
} | |
} | |
} | |
foreach ($contentPages as $pageNum => $page) { | |
foreach ($page->contentTables as $tableNum => $table) { | |
// $subjectTagCount = substr_count($table, "<!--subjectHead_tag-->"); | |
// $tableWidth = ($subjectTagCount * 15) + 40; | |
// if(substr_count($table, "<!--overallmark_tag-->") > 0) { | |
// $tableWidth += 20; | |
// } | |
// $tableWidth = $tableWidth > 100 ? 100 : $tableWidth; | |
// $replaceCount = 1; | |
// $tableHeadWithNewWidth = str_replace("width:100%!important;", "width:$tableWidth%!important;", $tableHead, $replaceCount); | |
$contentHtml .= "$pageHead $contentTableOpen $table $contentTableClose $pageFooter"; | |
} | |
} | |
$contentHtml .= "$pageHead $htmlFoot $pageFooter"; | |
$responseHtml = $htmlHead . $contentHtml; | |
return $responseHtml; | |
} | |
} |