/** * function __construct * <pre> * Initialize the object. * </pre> * @param $pathModuleRoot [STRING] The path to the module's root dir. * @param $viewer [OBJECT] The viewer object. * @return [void] */ function __construct($pathModuleRoot, $viewer, $staff_id, $campus_id = "", $semester_id = "") { parent::__construct(); // initialzie the object values $this->pathModuleRoot = $pathModuleRoot; $this->viewer = $viewer; $this->permManager = new PermissionManager($this->viewer->getViewerID()); // for looking up the person_id of this staff member $this->staff_id = $staff_id; $staffManager = new RowManager_StaffManager($this->staff_id); // echo 'the staff_id['.$this->staff_id.']<br/>'; // figure out what campuses to display $multiTableManager = new MultiTableManager(); $campusManager = new RowManager_CampusManager(); $campusManager->setSortOrder('campus_desc'); $isRT = $this->permManager->isRegional(); if ($isRT) { // get all the campuses across the country $multiTableManager->addRowManager($campusManager); } else { // get only the campuses the staff is assigned to $assignmentManager = new RowManager_AssignmentsManager(); $this->person_id = $staffManager->getPersonID(); $assignmentManager->setPersonID($this->person_id); $assignmentManager->setAssignmentStatusID(CA_STAFF); $multiTableManager->addRowManager($assignmentManager); $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $assignmentManager->getJoinOnCampusID())); } $this->campusListIterator = $multiTableManager->getListIterator(); if ($campus_id != '') { // echo 'campus_id is SET ['.$campus_id.']<br/>'; $this->campus_id = $campus_id; } else { // set a default campus id // echo 'Choosing a default campus<br/>'; $this->campusListIterator->setFirst(); if ($this->campusListIterator->moveNext()) { $campusObject = $this->campusListIterator->getCurrent(new RowManager_CampusManager()); $this->campus_id = $campusObject->getID(); } else { die('ERROR - unable to set campus_id - page_StaffWeeklyReport'); } } // echo 'the campus_id['.$this->campus_id.']<br/>'; if ($semester_id != '') { $this->semester_id = $semester_id; } else { // set a default semester id $this->semester_id = 4; // TODO set this properly } // echo 'the semester_id['.$this->semester_id.']<br/>'; // now initialize the labels for this page // start by loading the default field labels for this Module $languageID = $viewer->getLanguageID(); $seriesKey = modulecim_stats::MULTILINGUAL_SERIES_KEY; $pageKey = page_CampusWeeklyStatsReport::MULTILINGUAL_PAGE_KEY; $this->labels = new MultilingualManager($languageID, $seriesKey, $pageKey); }
/** * function __construct * <pre> * Initialize the object. * </pre> * @param $pathModuleRoot [STRING] The path to this module's root directory * @param $viewer [OBJECT] The viewer object. * @param $formAction [STRING] The action on a form submit * @param $weeklyReport_id [INTEGER] Value used to initialize the dataManager * @return [void] */ function __construct($pathModuleRoot, $viewer, $formAction, $weeklyReport_id, $staff_id, $week_id = '', $campus_id = '') { // NOTE: be sure to call the parent constructor before trying to // use the ->formXXX arrays... $fieldList = FormProcessor_StaffAdditionalWeeklyStats::FORM_FIELDS; $fieldDisplayTypes = FormProcessor_StaffAdditionalWeeklyStats::FORM_FIELD_TYPES; parent::__construct($formAction, $fieldList, $fieldDisplayTypes); $this->pathModuleRoot = $pathModuleRoot; $this->viewer = $viewer; $this->weeklyReport_id = $weeklyReport_id; $this->campus_id = $campus_id; $this->staff_id = $staff_id; if ($week_id != '') { // echo 'week_id is SET ['.$week_id.']<br/>'; $this->week_id = $week_id; } else { // give a default value to the week id $weekManager = new RowManager_WeekManager(); if ($weekManager->loadByDate(date('Y-m-d', time()))) { $this->week_id = $weekManager->getID(); } else { die("ERROR - couldn't see week_id - page_StaffAdditionalWeeklyReport.php"); } } // for looking up the person_id of this staff member $staffManager = new RowManager_StaffManager($this->staff_id); // setup the $assignmentManager = new RowManager_AssignmentsManager(); $assignmentManager->setPersonID($staffManager->getPersonID()); $assignmentManager->setAssignmentStatusID(CA_STAFF); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($assignmentManager); $campusManager = new RowManager_CampusManager(); $campusManager->setSortOrder('campus_desc'); $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $assignmentManager->getJoinOnCampusID())); $this->campusListIterator = $multiTableManager->getListIterator(); if ($campus_id != '') { // echo 'campus_id is SET ['.$campus_id.']<br/>'; $this->campus_id = $campus_id; } else { // set a default campus id // echo 'Choosing a default campus<br/>'; $this->campusListIterator->setFirst(); if ($this->campusListIterator->moveNext()) { $campusObject = $this->campusListIterator->getCurrent(new RowManager_CampusManager()); $this->campus_id = $campusObject->getID(); } else { die('ERROR - unable to set campus_id - page_StaffWeeklyReport'); } } // figure out the important fields for the dataManager $fieldsOfInterest = implode(',', $this->formFields); $this->dataManager = new RowManager_WeeklyReportManager($this->week_id, $this->staff_id, $this->campus_id); $this->dataManager->setFieldsOfInterest($fieldsOfInterest); $this->formValues = $this->dataManager->getArrayOfValues(); // now initialize the labels for this page // start by loading the default field labels for this Module $languageID = $viewer->getLanguageID(); $seriesKey = modulecim_stats::MULTILINGUAL_SERIES_KEY; $pageKey = modulecim_stats::MULTILINGUAL_PAGE_FIELDS; $this->labels = new MultilingualManager($languageID, $seriesKey, $pageKey); // then load the page specific labels for this page $pageKey = FormProcessor_StaffAdditionalWeeklyStats::MULTILINGUAL_PAGE_KEY; $this->labels->loadPageLabels($pageKey); // load the site default form link labels $this->labels->setSeriesKey(SITE_LABEL_SERIES_SITE); $this->labels->loadPageLabels(SITE_LABEL_PAGE_FORM_LINKS); $this->labels->loadPageLabels(SITE_LABEL_PAGE_FORMERRORS); }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: $path = $this->pathModuleRoot . 'templates/'; // Otherwise use the standard Templates for the site: //$path = SITE_PATH_TEMPLATES; // The weeks $weekManager = new RowManager_WeekManager(); $weekManager->setSemesterID($this->semester_id); $weekManager->setSortByDate(); $staffArray = array(); // figure out all the people we want to report on $isCD = $this->permManager->isCD(); if ($isCD) { // get all the people from this campus who have reported stats $wklyReportManager = new RowManager_WeeklyReportManager(); $wklyReportManager->setCampusID($this->campus_id); $anotherWeekManager = new RowManager_WeekManager(); $anotherWeekManager->setSemesterID($this->semester_id); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($wklyReportManager); $multiTableManager->addRowManager($anotherWeekManager, new JoinPair($wklyReportManager->getJoinOnWeekID(), $anotherWeekManager->getJoinOnWeekID())); $this->listIterator = $multiTableManager->getListIterator(); $this->listIterator->setFirst(); while ($this->listIterator->moveNext()) { $reportRow = $this->listIterator->getCurrent(new RowManager_WeeklyReportManager()); $staffArray[] = $reportRow->getStaffID(); } $staffArray = array_unique($staffArray); // echo '<pre>'.print_r($staffArray, true).'</pre>'; } else { // just get the stats for the staff viewing the page $staffArray[] = $this->staff_id; } $infoArray = array(); foreach ($staffArray as $indx => $staffID) { //IndSemesterInfo $indInfo = new IndSemesterInfo(); $staffManager = new RowManager_StaffManager($staffID); $personID = $staffManager->getPersonID(); $personManager = new RowManager_PersonManager($personID); $personManager->setLabelTemplateLastNameFirstName(); $indInfo->staffName = $personManager->getLabel(); $indInfo->staffID = $staffID; // calendar $indInfo->calendar = array(); $currentMonth = 0; // actual data // dataArray[weekID] = arrayOfData $indInfo->dataArray = array(); $weekList = new ListIterator($weekManager); $weekList->setFirst(); while ($weekList->moveNext()) { $week = $weekList->getCurrent(new RowManager_WeekManager()); $weekID = $week->getID(); // setup stuff for the calendar in the report $endDate = $week->getEndDate(); list($year, $month, $day) = explode('-', $endDate); $month = ltrim($month, "0"); // $day = ltrim($day, "0"); if ($currentMonth != $month) { // echo 'start new array<br/>'; $currentMonth = $month; } $indInfo->calendar[$currentMonth][$day] = $weekID; // end calendar stuff // check if an entry exists in the table for $weeklyReport = new RowManager_WeeklyReportManager($weekID, $staffID, $this->campus_id); if ($weeklyReport->isLoaded()) { // echo $week->getEndDate() . ' loaded <br/>'; $indInfo->dataArray[$weekID] = $weeklyReport->getArrayOfValues(); // echo '<pre>'.print_r( $weeklyReport->getArrayOfValues() ).'</pre>'; } else { $indInfo->dataArray[$weekID] = null; // echo $week->getEndDate() . ' NOT loaded <br/>'; } } // echo '<pre>'.print_r($calendar,true).'</pre>'; $infoArray[] = $indInfo; } /* * Update any label tags ... */ // example: // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); $campusJumpLinkSelectedValue = $this->linkValues['campusJumpLink'] . $this->campus_id; $semesterJumpLinkSelectedValue = $this->linkValues['semesterJumpLink'] . $this->semester_id; // NOTE: this parent method prepares the $this->template with the // common Display data. $this->prepareTemplate($path); // $this->template->set( 'calendar', $calendar ); // $this->template->set( 'dataArray', $dataArray ); $this->template->set('infoArray', $infoArray); $this->template->set('campusJumpLinkSelectedValue', $campusJumpLinkSelectedValue); $this->template->set('semesterJumpLinkSelectedValue', $semesterJumpLinkSelectedValue); // campus list $jumpLink = $this->linkValues['campusJumpLink']; $campusArray = array(); $this->campusListIterator->setFirst(); while ($this->campusListIterator->moveNext()) { $campusObject = $this->campusListIterator->getCurrent(new RowManager_CampusManager()); $region_id = $campusObject->getRegionID(); if ($region_id == 1 || $region_id == 2 || $region_id == 3) { $campusArray[$jumpLink . $campusObject->getID()] = $campusObject->getLabel(); } } // echo '<pre>'.print_r($campusArray, true ).'</pre>'; $this->template->set('list_campus_id', $campusArray); // semester list $jumpLink = $this->linkValues['semesterJumpLink']; $semesterArray = array(); $semesterManager = new RowManager_SemesterManager(); $this->semesterListIterator = $semesterManager->getListIterator(); $this->semesterListIterator->setFirst(); while ($this->semesterListIterator->moveNext()) { $semesterObject = $this->semesterListIterator->getCurrent(new RowManager_SemesterManager()); $semesterArray[$jumpLink . $semesterObject->getID()] = $semesterObject->getLabel(); } // echo '<pre>'.print_r($campusArray, true ).'</pre>'; $this->template->set('list_semester_id', $semesterArray); // uncomment this line if you are creating a template for this page $templateName = 'page_StaffSemesterReport.php'; // otherwise use the generic site template //$templateName = ''; return $this->template->fetch($templateName); }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: //$path = $this->pathModuleRoot.'templates/'; // Otherwise use the standard Templates for the site: $path = SITE_PATH_TEMPLATES; /* * store the link values */ // example: // $this->linkValues[ 'view' ] = 'add/new/href/data/here'; // store the link labels $this->linkLabels['edit'] = $this->labels->getLabel('[Edit]'); $this->linkLabels['del'] = $this->labels->getLabel('[Delete]'); $this->linkLabels['cont'] = $this->labels->getLabel('[Continue]'); // $this->linkLabels[ 'view' ] = 'new link label here'; /* * store any additional link Columns */ // example: //$title = $this->labels->getLabel( '[title_groups]'); //$columnLabel = $this->labels->getLabel( '[groups]'); //$link = $this->linkValues[ 'groups' ]; //$fieldName = 'accessgroup_id'; //$this->addLinkColumn( $title, $columnLabel, $link, $fieldName); /* * Update any label tags ... */ // example: // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); // temporarily reset the form values so the defaults show up properly in the jumplists $this->formValues['week_id'] = $this->linkValues['weekJumpLink'] . $this->week_id; $this->formValues['campus_id'] = $this->linkValues['campusJumpLink'] . $this->campus_id; // NOTE: this parent method prepares the $this->template with the // common AdminBox data. $this->prepareTemplate($path); // store the statevar id to edit $this->template->set('editEntryID', $this->morestats_id); // store all the fields to the template $this->setFormFieldsToTemplate(); /* * Form related Template variables: */ /* * Insert the date start/end values for the following date fields: */ // example: //$this->template->set( 'startYear_[fieldName]', 2000); //$this->template->set( 'endYear_[fieldName]', 2010); /* * List related Template variables : */ // Store the XML Node name for the Data Access Field List $xmlNodeName = RowManager_MoreStatsManager::XML_NODE_NAME; $this->template->set('rowManagerXMLNodeName', $xmlNodeName); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'morestats_id'); // store data list to the template // NOTE: we initialize it here to make sure we capture any new data // from a recent processData() call. $dataAccessManager = new RowManager_MoreStatsManager(); // echo 'This campus ID['.$this->campus_id.']<br/>'; $dataAccessManager->setCampusID($this->campus_id); $dataAccessManager->setWeekID($this->week_id); $dataAccessManager->setSortOrder($this->sortBy); // $this->dataList = new MoreStatsList( $this->sortBy ); $this->dataList = $dataAccessManager->getListIterator(); $this->template->setXML('dataList', $this->dataList->getXML()); /* * Add any additional data required by the template here */ // week list $jumpLink = $this->linkValues['weekJumpLink']; $weekManager = new RowManager_WeekManager(); $weekManager->setSortOrder('week_endDate'); $weekList = new ListIterator($weekManager); $jumpList = $weekList->getDropListArray(null, $jumpLink); $this->template->set('list_week_id', $jumpList); // for looking up the person_id of this staff member $staffManager = new RowManager_StaffManager($this->staff_id); // campus list $assignmentManager = new RowManager_AssignmentsManager(); $assignmentManager->setPersonID($staffManager->getPersonID()); $assignmentManager->setAssignmentStatusID(CA_STAFF); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($assignmentManager); $campusManager = new RowManager_CampusManager(); $campusManager->setSortOrder('campus_desc'); $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $assignmentManager->getJoinOnCampusID())); $jumpLink = $this->linkValues['campusJumpLink']; $campusList = $multiTableManager->getListIterator(); $campusArray = array(); $campusList->setFirst(); while ($campusList->moveNext()) { $campusObject = $campusList->getCurrent(new RowManager_CampusManager()); $campusArray[$jumpLink . $campusObject->getID()] = $campusObject->getLabel(); } // echo '<pre>'.print_r($campusArray, true ).'</pre>'; $this->template->set('list_campus_id', $campusArray); // method list $typeManager = new RowManager_ExposureTypeManager(); $typeManager->setSortOrder('exposuretype_desc'); $typeList = $typeManager->getListIterator(); $typeArray = $typeList->getDropListArray(); $this->template->set('list_exposuretype_id', $typeArray); $templateName = 'siteFormDataList.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_MoreStats.php'; return $this->template->fetch($templateName); }
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: //$path = $this->pathModuleRoot.'templates/'; // Otherwise use the standard Templates for the site: $path = SITE_PATH_TEMPLATES; // store the page labels in XML format... // NOTE: use this location to update any label tags ... // $name = $user->getName(); // $this->labels->setLabelTag( '[Title]', '[userName]', $name); // NOTE: this parent method prepares the $this->template with the // common Form data. $this->prepareTemplate($path); /* * Form related Template variables: */ // store the button label $this->template->set('buttonText', $this->labels->getLabel('[Continue]')); // Insert the date start/end values for the following date fields: // example: //$this->template->set( 'startYear_[fieldName]', 2000); //$this->template->set( 'endYear_[fieldName]', 2010); /* * Add any additional data required by the template here */ // semester list $semesterManager = new RowManager_SemesterManager(); $semesterList = $semesterManager->getListIterator(); $semesterArray = $semesterList->getDropListArray(); $this->template->set('list_semester_id', $semesterArray); // for looking up the person_id of this staff member $staffManager = new RowManager_StaffManager($this->staff_id); // campus list $assignmentManager = new RowManager_AssignmentsManager(); $assignmentManager->setPersonID($staffManager->getPersonID()); $assignmentManager->setAssignmentStatusID(CA_STAFF); $multiTableManager = new MultiTableManager(); $multiTableManager->addRowManager($assignmentManager); $campusManager = new RowManager_CampusManager(); $campusManager->setSortOrder('campus_desc'); $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $assignmentManager->getJoinOnCampusID())); $campusList = $multiTableManager->getListIterator(); $campusArray = array(); $campusList->setFirst(); while ($campusList->moveNext()) { $campusObject = $campusList->getCurrent(new RowManager_CampusManager()); $campusArray[$campusObject->getID()] = $campusObject->getLabel(); } $this->template->set('list_campus_id', $campusArray); // uncomment this line if you are creating a template for this page //$templateName = 'page_SelectPrcSemesterCampus.php'; // otherwise use the generic admin box template $templateName = 'siteFormSingle.php'; return $this->template->fetch($templateName); }