/** * @todo check status of profile in auth that it is filled or not * Enter description here ... */ public function profileAction() { $this->_helper->viewRenderer->setNoRender(false); $this->_helper->layout()->enableLayout(); $request = $this->getRequest(); $params = array_diff($request->getParams(), $request->getUserParams()); $member_id = null; //Zend_Registry::get('logger')->debug('member_id may be sent in as parameter'get('logger')->debug( //Zend_Registry::get('logger')->debug('member_id may be sent in as parameter'); if (empty($params['member_id'])) { $member_id = $this->getMember_id(); } else { $member_id = $params['member_id']; } $format = $this->_getParam('format', 'html'); $this->_helper->viewRenderer->setNoRender(false); $student_model = new Acad_Model_Member_Student(); $student_model->setMember_id($member_id); $filled_qualifications = array(); $qualification_model = new Acad_Model_Qualification(); $qualifications = $qualification_model->fetchQualifications(); $qualfication_id_array = $student_model->fetchQualificationsIds(); if (is_array($qualfication_id_array)) { $qualification_ids = array_flip($qualfication_id_array); $filled_qualifications = array_intersect_key($qualifications, $qualification_ids); } $degree_data = array(); $info = array(); $class_ids = array(); $class_semester = array(); $class_dmc_info_ids = array(); $dmc_dispatch_dates = array(); $no_details_sems = array(); $student = new Acad_Model_Member_Student(); $student->setMember_id($member_id); $class_ids = $student->fetchAllClassIds(); $class = new Acad_Model_Class(); foreach ($class_ids as $class_id) { $class->setClass_id($class_id); $class->fetchInfo(); $semester_id = $class->getSemester_id(); $class_semester[$class_id] = $semester_id; } foreach ($class_semester as $class_idA => $sem) { $dmc_info_ids = array(); $dmc_info_ids = $student->fetchDmcInfoIds($class_idA); if (!$dmc_info_ids) { $dmc_info_ids = array(); $no_details_sems[] = $sem; } else { $class_dmc_info_ids[$class_idA] = $dmc_info_ids; } } $dmc_dispatch_dates = $student->fetchDmcInfoIdsByDate(true); foreach ($class_dmc_info_ids as $class_idB => $dmc_info_id_array) { $semester_idA = $class_semester[$class_idB]; foreach ($dmc_info_id_array as $dmc_info_id => $dmc_id) { $degree_data[$semester_idA][$dmc_info_id]['class_id'] = $class_idB; $degree_data[$semester_idA][$dmc_info_id]['dmc_id'] = $dmc_id; $degree_data[$semester_idA][$dmc_info_id]['dispatch_date'] = $dmc_dispatch_dates[$dmc_info_id]; } } foreach ($no_details_sems as $no_details_sem) { $degree_data[$no_details_sem][] = array(); } $exam_model = new Acad_Model_CompetitiveExam(); $exams = $exam_model->fetchExams(); $present_exam_ids_array = $student_model->fetchCompetitveExamIds(); $filled_exams = array(); if ($present_exam_ids_array) { $present_exam_ids = array_flip($present_exam_ids_array); $filled_exams = array_intersect_key($exams, $present_exam_ids); } $response = array('degree_data' => $degree_data, 'qualifications' => $qualifications, 'filled_qualifications' => $filled_qualifications, 'exams' => $exams, 'filled_exams' => $filled_exams); //Zend_Registry::get('logger')->debug('member_id may be sent in as parameter'get('logger')->debug($response); switch ($format) { case 'html': $this->view->assign('filled_qualifications', $filled_qualifications); $this->view->assign('degree_data', $degree_data); $this->view->assign('class_semester', $class_semester); $this->view->assign('qualifications', $qualifications); $this->view->assign('exams', $exams); $this->view->assign('filled_exams', $filled_exams); break; case 'jsonp': $callback = $this->getRequest()->getParam('callback'); echo $callback . '(' . $this->_helper->json($filled_qualifications, false) . ')'; break; case 'json': $this->_helper->json($filled_qualifications); break; case 'test': break; default: break; } }