Skip to content
Snippets Groups Projects
Commit 278e62d3 authored by Brett Bieber's avatar Brett Bieber
Browse files

First attempt at using the undergrad bulletin repo for course listings

parent 265d7bd2
No related branches found
No related tags found
No related merge requests found
......@@ -55,6 +55,12 @@ define('UNL_CATALOG_MW_URI', UNL_CATALOG_URI.'mediawiki/index.php/');
define('UNL_CATALOG_MW_WGSCRIPTPATH', '/workspace/UNL_GraduateBulletin/www/mediawiki');
define('UNL_CATALOG_MW_WGARTICLEPATH', "/graduate/$1");
define('UNL_TEMPLATES_DEPENDENTSPATH', $_SERVER['DOCUMENT_ROOT']);
define('UNL_UNDERGRADUATEBULLETIN_DIR', dirname(__DIR__) . '/UNL_UndergraduateBulletin');
set_include_path(get_include_path()
. PATH_SEPARATOR . UNL_UNDERGRADUATEBULLETIN_DIR . '/includes/php'
. PATH_SEPARATOR . UNL_UNDERGRADUATEBULLETIN_DIR . '/src'
);
ini_set('display_errors', true);
error_reporting(E_ALL);
......@@ -34,6 +34,16 @@ class UNL_Catalog
*/
public $uri_format = 'querystring';
/**
* This is the path to the undergraduate bulletin directory
*
* Currently course data is pulled from the latest version of the undergrad bulletin
*
* @var string
*/
public $undergraduate_bulletin_dir = '';
/**
* @var bool
*/
......@@ -50,6 +60,9 @@ class UNL_Catalog
if (defined('UNL_CATALOG_URI_FORMAT')) {
$this->uri_format = UNL_CATALOG_URI_FORMAT;
}
if (defined('UNL_UNDERGRADUATEBULLETIN_DIR')) {
$this->undergraduate_bulletin_dir = UNL_UNDERGRADUATEBULLETIN_DIR;
}
$this->initializeTemplate();
$this->determineView();
}
......@@ -368,19 +381,29 @@ class UNL_Catalog
if (!isset($id) && isset($_GET['id'])) {
$id = $_GET['id'];
}
$subject = $this->factory('subjects');
if (isset($id) && $subject->get($id)) {
$this->p->doctitle = '<title>UNL | Graduate Studies Bulletin | Courses for '.$subject->name.'</title>';
$listings = $this->factory('course_listings');
$listings->subject_id = $id;
$listings->whereAdd('number >= 500');
$listings->groupBy('course_id');
$listings->orderBy('number ASC');
if ($listings->find()) {
$this->p->maincontentarea .= '<a name="'.$subject->id.'"></a><div style="width:700px" class="subject" id="div_'.$subject->id.'">'.PHP_EOL
. '<h2 class="sec_header" id="'.$subject->id.'">Courses for '.$subject->name.' ('.$subject->id.') <a class="hideButton" href="#" onclick="toggleCourseView(\'none\', \'div_'.$subject->id.'\'); return false;"><span>+/-</span></a></h2>'.PHP_EOL;
while ($listings->fetch()) {
$this->showCourse($listings, $display_subject);
// Do not cache course search results
//UNL_UndergraduateBulletin_Editions::$editions = array(2012,2011,2010);
//UNL_UndergraduateBulletin_Editions::$latest = 2012;
UNL_Services_CourseApproval::setCachingService(new UNL_Services_CourseApproval_CachingService_Null());
UNL_Services_CourseApproval::setXCRIService(new UNL_UndergraduateBulletin_CourseDataDriver());
$course_data = new UNL_Services_CourseApproval_Search();
if ($listings = $course_data->byAny($id. ' 8')) {
$subject = new UNL_Services_CourseApproval_SubjectArea($id);
$this->p->doctitle = '<title>UNL | Graduate Studies Bulletin | Courses for '.$subject->subject.'</title>';
if (count($listings)) {
$savvy = new Savvy();
$savvy->setEscape('htmlentities');
$savvy->setClassToTemplateMapper(new UNL_UndergraduateBulletin_ClassToTemplateMapper());
$savvy->setTemplatePath($this->undergraduate_bulletin_dir . '/www/templates/html/');
$this->p->maincontentarea .= '<a name="'.$subject->subject.'"></a><div class="subject" id="div_'.$subject->subject.'">'.PHP_EOL
. '<h2 class="sec_header" id="'.$subject->subject.'">Courses for '.$subject->subject.' ('.$subject->subject.') </h2>'.PHP_EOL;
foreach ($listings as $course) {
try {
$this->p->maincontentarea .= $savvy->render($course);
} catch(Savvy_TemplateException $e) {
throw new Exception('Error, could not find course template files. Is the undergraduate bulletin path configured?', 500, $e);
}
}
$this->p->maincontentarea .= '</div>'.PHP_EOL;
}
......@@ -401,18 +424,16 @@ class UNL_Catalog
* @param UNL_Catalog_Course_listings $listing
* @param boolean $display_subject
*/
public function showCourse(UNL_Catalog_Course_listings $listing, $display_subject = false)
public function showCourse($listing, $display_subject = false)
{
if (isset($_GET['format']) && $_GET['format']=='xml') {
$format = 'toXml';
} else {
$format = 'toHtml';
}
if ($html = $listing->$format($display_subject, $this->isLoggedIn())) {
$this->p->maincontentarea .= $html;
} else {
$this->send404('Could not find course.');
}
$savvy = new Savvy();
$savvy->setTemplatePath($this->undergraduate_bulletin_dir . '/www/templates/html/');
$this->p->maincontentarea .= $savvy->render($listing, 'Listing.tpl.php');
}
/**
......@@ -474,7 +495,7 @@ class UNL_Catalog
UNL_Templates::$options['version'] = 3.1;
$this->p = UNL_Templates::factory('Fixed');
$this->p->head .= '<link rel="stylesheet" type="text/css" href="'.$this->uri.'templates/catalog.css" />';
$this->p->head .= '<link rel="stylesheet" type="text/css" href="http://bulletin.unl.edu/undergraduate/templates/html/css/all.css" />';
$this->p->head .= '<script type="text/javascript" src="'.$this->uri.'templates/catalog.js"></script>';
$this->p->head .= '<link rel="search" href="'.$this->uri.'?cx=015236299699564929946%3Aipiaeommikw&amp;cof=FORID%3A11&amp;view=search" />';
$this->p->head .= '<link rel="home" href="'.$this->uri.'" />';
......
@CHARSET "UTF-8";
.printfooter { display: none; }
.course {border-bottom:1px dashed #EEE;padding-bottom:0.4em;margin-bottom:0.4em;}
.course .title {text-transform:none;font-style:normal;}
.course .credit {font-size:70%;color:#AF0909;}
.course .notes {font-style:italic;}
.course .prereqs, .course .description {margin-bottom:0.2em;}
/**
* BULLETIN Navigation
*/
......@@ -61,23 +55,6 @@
.searchtab {clear:both;}
div.subject a span {
display: none;
}
div.subject a {
margin-left: 10px;
padding-right: 80px;
padding-bottom: 0;
font-size: 17px ;
background : url(images/bulletin-hideshow.gif) no-repeat;
background-position: 0 -21px;
}
div.subject a.showButton {
background-position: 0 0;
}
pre {
overflow-x:auto;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment