Пример #1
0
 /**
  * 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;
     /*
      * Update any label tags ...
      */
     // example:
     // $name = $user->getName();
     // $this->labels->setLabelTag( '[Title]', '[userName]', $name);
     // do the join
     // campuses
     $campusManager = new RowManager_CampusManager();
     $campusManager->setSortOrder('campus_desc');
     $multiTableManager = new MultiTableManager();
     $multiTableManager->addRowManager($campusManager);
     // prcs
     $prcManager = new RowManager_PRCManager();
     $multiTableManager->addRowManager($prcManager, new JoinPair($campusManager->getJoinOnCampusID(), $prcManager->getJoinOnCampusID()));
     // semester
     $semesterManager = new RowManager_SemesterManager();
     // TODO update the semester
     $semesterManager->setSemesterID(1);
     $multiTableManager->addRowManager($semesterManager, new JoinPair($prcManager->getJoinOnSemesterID(), $prcManager->getJoinOnSemesterID()));
     // prc method
     $prcMethodManager = new RowManager_PrcMethodManager();
     $multiTableManager->addRowManager($prcMethodManager, new JoinPair($prcManager->getJoinOnPrcMethodID(), $prcMethodManager->getJoinOnPrcMethodID()));
     // get ready to make the xml
     $xmlObject = new XMLObject();
     // HEADER
     //$reportInfoXMLObject = new XMLObject('PRC_REPORT');
     //$xmlObject->addXMLObject( $reportInfoXMLObject );
     // END HEADER
     // BODY
     $bodyXMLObject = new XMLObject('PRC_FOR_SEMESTER');
     // construct the iterator
     $list = new ListIterator($multiTableManager);
     $list->setFirst();
     while ($list->moveNext()) {
         $itemXMLObject = $list->getCurrentRowXMLObject(false, 'IndividualPRC');
         // Finally add this row into the bigger picture
         $bodyXMLObject->addXMLObject($itemXMLObject);
     }
     // multiTableManager->moveNext()
     $xmlObject->addXMLObject($bodyXMLObject);
     $xmlDoc = new DOMDocument();
     $xmlDoc->loadXML($xmlObject->getXML(false, 'PRCReport'));
     $numBytesWritten = $xmlDoc->save($this->pathModuleRoot . 'prcReport.xml');
     // echo 'Written '.$numBytesWritten.' bytes';
     // save the xml data onto the server
     // return $xmlDoc->saveXML();
     // ------- PART 2 --------
     // WEEKLY STATS
     $multiTableManager = new MultiTableManager();
     $weeklyManager = new RowManager_WeeklyReportManager();
     $multiTableManager->addRowManager($weeklyManager);
     $campusManager = new RowManager_CampusManager();
     $campusManager->setSortOrder('campus_desc');
     $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $weeklyManager->getJoinOnCampusID()));
     $weekManager = new RowManager_WeekManager();
     $multiTableManager->addRowManager($weekManager, new JoinPair($weekManager->getJoinOnWeekID(), $weeklyManager->getJoinOnWeekID()));
     $staffManager = new RowManager_StaffManager();
     $multiTableManager->addRowManager($staffManager, new JoinPair($weeklyManager->getJoinOnStaffID(), $staffManager->getJoinOnStaffID()));
     $personManager = new RowManager_PersonManager();
     $multiTableManager->addRowManager($personManager, new JoinPair($personManager->getJoinOnPersonID(), $staffManager->getJoinOnPersonID()));
     // get ready to make the xml
     $xmlObject = new XMLObject();
     // HEADER
     //$reportInfoXMLObject = new XMLObject('PRC_REPORT');
     //$xmlObject->addXMLObject( $reportInfoXMLObject );
     // END HEADER
     // BODY
     $bodyXMLObject = new XMLObject('WEEKLY_FOR_SEMESTER');
     // construct the iterator
     $list = new ListIterator($multiTableManager);
     $list->setFirst();
     while ($list->moveNext()) {
         $itemXMLObject = $list->getCurrentRowXMLObject(false, 'IndividualWeek');
         // Finally add this row into the bigger picture
         $bodyXMLObject->addXMLObject($itemXMLObject);
     }
     // multiTableManager->moveNext()
     $xmlObject->addXMLObject($bodyXMLObject);
     $xmlDoc = new DOMDocument();
     $xmlDoc->loadXML($xmlObject->getXML(false, 'Report'));
     $numBytesWritten = $xmlDoc->save($this->pathModuleRoot . 'weeklyReport.xml');
     // echo 'Written '.$numBytesWritten.' bytes';
     // save the xml data onto the server
     // return $xmlDoc->saveXML();
     // ------- PART 3 --------
     $multiTableManager = new MultiTableManager();
     $campusStatsManager = new RowManager_MoreStatsManager();
     $multiTableManager->addRowManager($campusStatsManager);
     $campusManager = new RowManager_CampusManager();
     $campusManager->setSortOrder('campus_desc');
     $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $campusStatsManager->getJoinOnCampusID()));
     $weekManager = new RowManager_WeekManager();
     $multiTableManager->addRowManager($weekManager, new JoinPair($campusStatsManager->getJoinOnWeekID(), $weekManager->getJoinOnWeekID()));
     $expTypeManager = new RowManager_ExposureTypeManager();
     $multiTableManager->addRowManager($expTypeManager, new JoinPair($campusStatsManager->getJoinOnExpTypeID(), $expTypeManager->getJoinOnExpTypeID()));
     $count = 0;
     // get ready to make the xml
     $xmlObject = new XMLObject();
     // HEADER
     //$reportInfoXMLObject = new XMLObject('PRC_REPORT');
     //$xmlObject->addXMLObject( $reportInfoXMLObject );
     // END HEADER
     // BODY
     $bodyXMLObject = new XMLObject('CAMPUS_REPORT');
     // construct the iterator
     $list = new ListIterator($multiTableManager);
     $list->setFirst();
     while ($list->moveNext()) {
         $itemXMLObject = $list->getCurrentRowXMLObject(false, 'Activity');
         $count++;
         // Finally add this row into the bigger picture
         $bodyXMLObject->addXMLObject($itemXMLObject);
     }
     // multiTableManager->moveNext()
     echo 'the count is [' . $count . ']<br/>';
     $xmlObject->addXMLObject($bodyXMLObject);
     $xmlDoc = new DOMDocument();
     $xmlDoc->loadXML($xmlObject->getXML(false, 'Report'));
     $numBytesWritten = $xmlDoc->save($this->pathModuleRoot . 'campusReport.xml');
     // echo 'Written '.$numBytesWritten.' bytes';
     // save the xml data onto the server
     // return $xmlDoc->saveXML();
     // ---------------
     // OK DONE!
     // NOTE:  this parent method prepares the $this->template with the
     // common Display data.
     $this->prepareTemplate($path);
     // uncomment this line if you are creating a template for this page
     $templateName = 'page_Reports.php';
     // otherwise use the generic site template
     //$templateName = '';
     return $this->template->fetch($templateName);
 }