Skip to content
Snippets Groups Projects
PublicViewController.php 1.89 KiB
Newer Older
<?php

/**
 * PublicViewController
 * 
 * @author
 * @version 
 */


class Courses_PublicViewController extends App_Controller_Action {
	/**
	 * The default action - show the home page
	 */
	public function allCoursesAction()
    {
		$layout = Zend_Layout::getMvcInstance();
		$layout->disableLayout();
        $this->getFrontController()->setParam('noViewRenderer', true);
	}
	
	/**
	 * This action syncronizes the qreqCourses.currentGeneration field with data from creqCourseGenerations
	 *
	 */
	public function testAction()
	{
        $layout = Zend_Layout::getMvcInstance();
        $layout->disableLayout();
        $this->getFrontController()->setParam('noViewRenderer', true);
        header('Content-type: text/plain');

        
		$db = Zend_Registry::get('db');
		
		$sql = 'SELECT * FROM creqCourseGenerations';
		$data = $db->query($sql)->fetchAll();
		
		$courses = array();
		foreach ($data as $row) {
			$courseId = $row['course'];
			$generationId = $row['courseGenerationId'];
			$courses[$courseId][$generationId] = $row;
		}
		
		$courseLatest = array();
		foreach ($courses as $courseId => $course) {
			$parent = null;
			$parentIds = array();
			foreach ($course as $generation) {
				if ($generation['parent']) {
				    $parentIds[] = $generation['parent'];
				}
			}
			foreach ($course as $generation) {
				if (!in_array($generation['courseGenerationIds'], $parentIds)) {
					$latest = $generation;
				}
			}
			while ($latest['parent'] && $latest['type'] != 'official') {
				$latest = $course[$latest['parent']];
			}
			if ($latest['type'] != 'official') {
				$latestId = null;
			} else {
				$latestId = $latest['courseGenerationId'];
			}
			$courseLatest[$courseId] = $latestId;
		}
		
		foreach ($courseLatest as $courseId => $latestId) {
			$data = array('currentGeneration' => $latestId);
			$where = 'courseId = ' . $courseId;
			$db->update('creqCourses', $data, $where);
		}
		
		
	}
}