Select Git revision
ViewController.php
ViewController.php 6.94 KiB
<?php
require_once APPLICATION_PATH . '/modules/requests/controllers/ViewController.php';
class Bulletin_ViewController extends Requests_ViewController
{
public function indexAction()
{
$this->_commonIndexAction();
$request = $this->view->request;
$repo = Bulletin_RepositoryModel::getInstance();
$in = $this->getAllParams();
if ($in['type'] == 'session' && isset($in['id']) && $in['id']) {
$session = new Zend_Session_Namespace('Edit Request ' . $in['id']);
$section = $session->section;
if ($request->getId()) {
$this->view->initialRequest = false;
} else {
$this->view->initialRequest = true;
}
$this->view->preview = true;
$this->view->proposedFileContents = $session->fileContents;
} else {
$section = Bulletin_SectionModel::findWithRequest($request);
$this->view->initialRequest = false;
$this->view->preview = false;
$this->view->proposedFileContents = $repo->getFileNotes(
'/data/' . $repo->getFilePathForSection($section), 'request-' . $request->getId()
);
}
$this->view->originalFileContents = $repo->getFileContents('/data/' . $repo->getFilePathForSection($section));
$this->view->originalFileContents = Bulletin_SectionModel::getBodyHtml($this->view->originalFileContents);
$this->view->proposedFileContents = Bulletin_SectionModel::getBodyHtml($this->view->proposedFileContents);
require_once 'UNL/Autoload.php';
spl_autoload_register('Unl_Autoload');
$this->view->request = $request;
$this->view->id = $in['id'];
$this->view->section = $section;
//$this->view->originalFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($this->view->originalFileContents);
//$this->view->proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($this->view->proposedFileContents);
$this->view->originalFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::convertHeadings($this->view->originalFileContents);
$this->view->proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::convertHeadings($this->view->proposedFileContents);
$this->view->isRequestValid = $request->isValid();
}
/**
* Preview the bulletin changes as they will appear in the bulletin.
*/
public function previewAction()
{
$this->_helper->layout->setLayout('40_template/layout_unl40');
$this->_commonIndexAction();
$request = $this->view->request;
$repo = Bulletin_RepositoryModel::getInstance();
$in = $this->getAllParams();
$section = Bulletin_SectionModel::findWithRequest($request);
$this->view->request = $request;
$this->view->id = $in['id'];
$this->view->section = $section;
$this->view->initialRequest = false;
$this->view->preview = false;
$this->view->proposedFileContents = $repo->getFileContents(
'/data/' . $repo->getFilePathForSection($section), 'request-' . $request->getId()
);
$this->view->proposedFileContents = Bulletin_SectionModel::getBodyHtml($this->view->proposedFileContents);
$dom = new DOMDocument();
$dom -> loadHTML($this->view->proposedFileContents);
$xml = simplexml_import_dom($dom);
$this->view->quickPoints = Bulletin_UtilityModel::parseQuickPoints($xml);
$this->view->proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($this->view->proposedFileContents);
$this->view->proposedFileContents = preg_replace('/href=".+?"/', 'href="#"', $this->view->proposedFileContents);
}
public function listAction()
{
$colleges = array();
$collegeMajors = Bulletin_UtilityModel::getMajors();
foreach ($collegeMajors as $college => $majors) {
$colleges[$college] = $college;
asort($collegeMajors[$college]);
$collegeMajors[$college] = array('_college' => 'College Information') + $collegeMajors[$college];
}
$this->view->colleges = $colleges;
$this->view->collegeMajors = $collegeMajors;
}
public function listPostAction()
{
$in = $this->getAllParams();
if ($in['college'] == '_null') {
$in['college'] = NULL;
}
if ($in['major'] == '_college') {
$in['major'] = NULL;
}
if (!$in['college']) {
$this->_helper->getHelper('FlashMessenger')->addMessage('You must select a bulletin section to edit.');
$this->redirect('/bulletin/view/list');
}
$collegeId = array_search($in['college'], Bulletin_UtilityModel::getColleges());
$path = "/bulletin/view/public/college/$collegeId";
if ($in['major']) {
$majorId = $in['major'];
$path .= "/major/$majorId";
}
$this->redirect($path);
}
public function publicAction()
{
$collegeId = $this->getParam('college');
$majorId = $this->getParam('major');
$repo = Bulletin_RepositoryModel::getInstance();
$colleges = Bulletin_UtilityModel::getColleges();
$requests = Bulletin_SectionModel::findAllRequestsByCollegeAndMajorId($colleges[$collegeId], $majorId);
$requestSections = Bulletin_SectionModel::findWithRequest($requests);
foreach ($requests as $request) {
$section = $requestSections[$request->getId()];
$parentCommit = $repo->getParentCommitForSection($section);
$contents = $repo->getFileNotes(
'/data/' . $repo->getFilePathForSection($section), $parentCommit
);
$originalFileContents = $repo->getFileContents('/data/' . $repo->getFilePathForSection($section), $parentCommit);
$originalFileContents = Bulletin_SectionModel::getBodyHtml($originalFileContents);
//$originalFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($originalFileContents);
$originalFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::convertHeadings($originalFileContents);
$requestOriginalFileContents[$request->getId()] = $originalFileContents;
$proposedFileContents = $repo->getFileNotes(
'/data/' . $repo->getFilePathForSection($section), 'request-' . $request->getId()
);
$proposedFileContents = Bulletin_SectionModel::getBodyHtml($proposedFileContents);
//$proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::format($proposedFileContents);
$proposedFileContents = UNL_UndergraduateBulletin_EPUB_Utilities::convertHeadings($proposedFileContents);
$requestProposedFileContents[$request->getId()] = $proposedFileContents;
}
$this->view->requests = $requests;
$this->view->requestSections = $requestSections;
$this->view->requestOriginalFileContents = $requestOriginalFileContents;
$this->view->requestProposedFileContents = $requestProposedFileContents;
}
}