<?php class CourseCodes extends Nmc_Db_Table { protected $_primary = 'courseCodeId'; protected $_rowClass = 'CourseCode'; /** * The one true instance * * @var CourseCodes */ protected static $_instance = null; /** * Returns the one true instance * * @return CourseCodes */ public static function getInstance($config = array()) { if(!self::$_instance) { self::$_instance = new CourseCodes($config); } return self::$_instance; } public function fetchAll($where = null, $order = null, $count = null, $offset = null) { if(!$order) { $order = array('subject', 'courseNumber', 'courseLetter'); } return parent::fetchAll($where, $order, $count, $offset); } public function findBySubjectNumberAndLetter($subject, $number, $letter = '') { if (!$subject || !$number) { return null; } $where = array(); $where[] = $this->_db->quoteInto('subject = ?', $subject); $where[] = $this->_db->quoteInto('courseNumber = ?', $number); $where[] = $this->_db->quoteInto('courseLetter = ?', $letter); $where = implode(' AND ', $where); $result = $this->fetchRow($where); $primaryKeyName = $this->getPrimaryKeyName(); if(! $result->$primaryKeyName) { $result = $this->fetchNew(); $result->subject = $subject; $result->courseNumber = $number; $result->courseLetter = $letter; $result->save(); } return $result; } } ?>