/** * Gets the summary data. * * @since 0.1 * * @param EPTerm $term * * @return array */ protected function getSummaryData(EPDBObject $term) { $stats = array(); $org = EPOrg::selectFieldsRow('name', array('id' => $term->getField('org_id'))); $stats['org'] = Linker::linkKnown(SpecialPage::getTitleFor('Institution', $org), htmlspecialchars($org)); $course = EPCourse::selectFieldsRow('name', array('id' => $term->getField('course_id'))); $stats['course'] = Linker::linkKnown(SpecialPage::getTitleFor('Course', $course), htmlspecialchars($course)); $stats['year'] = htmlspecialchars($this->getLanguage()->formatNum($term->getField('year'), true)); $stats['start'] = htmlspecialchars($this->getLanguage()->timeanddate($term->getField('start'), true)); $stats['end'] = htmlspecialchars($this->getLanguage()->timeanddate($term->getField('end'), true)); if ($this->getUser()->isAllowed('ep-token')) { $stats['token'] = Linker::linkKnown(SpecialPage::getTitleFor('Enroll', $term->getId() . '/' . $term->getField('token')), htmlspecialchars($term->getField('token'))); } return $stats; }
/** * (non-PHPdoc) * @see EPDBObject::updateInDB() */ protected function updateInDB() { if ($this->updateSummaries) { $oldOrgId = $this->hasField('org_id') ? self::selectFieldsRow('org_id', array('id' => $this->getId())) : false; $oldCourseId = $this->hasField('course_id') ? self::selectFieldsRow('course_id', array('id' => $this->getId())) : false; } if ($this->hasField('course_id')) { $oldCourseId = self::selectFieldsRow('course_id', array('id' => $this->getId())); if ($this->getField('course_id') !== $oldCourseId) { $this->setField('org_id', EPCourse::selectFieldsRow('org_id', array('id' => $this->getField('course_id')))); } } $success = parent::updateInDB(); if ($this->updateSummaries && $success) { if ($oldOrgId !== false && $oldOrgId !== $this->getField('org_id')) { $conds = array('id' => array($oldOrgId, $this->getField('org_id'))); EPOrg::updateSummaryFields(array('terms', 'students', 'active'), $conds); } if ($oldCourseId !== false && $oldCourseId !== $this->getField('org_id')) { $conds = array('id' => array($oldCourseId, $this->getField('course_id'))); EPCourse::updateSummaryFields(array('active', 'students'), $conds); } } return $success; }