1<?php 2/* 3 +-----------------------------------------------------------------------------+ 4 | ILIAS open source | 5 +-----------------------------------------------------------------------------+ 6 | Copyright (c) 1998-2006 ILIAS open source, University of Cologne | 7 | | 8 | This program is free software; you can redistribute it and/or | 9 | modify it under the terms of the GNU General Public License | 10 | as published by the Free Software Foundation; either version 2 | 11 | of the License, or (at your option) any later version. | 12 | | 13 | This program is distributed in the hope that it will be useful, | 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 16 | GNU General Public License for more details. | 17 | | 18 | You should have received a copy of the GNU General Public License | 19 | along with this program; if not, write to the Free Software | 20 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 21 +-----------------------------------------------------------------------------+ 22*/ 23 24include_once('./Modules/Course/classes/class.ilCourseObjectiveResult.php'); 25 26/** 27* Caches results for a specific user and course 28* 29* @author Stefan Meyer <smeyer.ilias@gmx.de> 30* @version $Id$ 31* 32* @ingroup ModulesCourse 33*/ 34class ilCourseObjectiveResultCache 35{ 36 private static $suggested = null; 37 private static $status = null; 38 39 40 /** 41 * check if objective is suggested 42 * 43 * @access public 44 * @param int usr_id 45 * @param int course_id 46 * @return bool 47 * @static 48 */ 49 public static function isSuggested($a_usr_id, $a_crs_id, $a_objective_id) 50 { 51 if (!is_array(self::$suggested[$a_usr_id][$a_crs_id])) { 52 self::$suggested[$a_usr_id][$a_crs_id] = self::readSuggested($a_usr_id, $a_crs_id); 53 } 54 return in_array($a_objective_id, self::$suggested[$a_usr_id][$a_crs_id]) ? true : false; 55 } 56 57 /** 58 * get status of user 59 * 60 * @access public 61 * @param int usr_id 62 * @param int crs_id 63 * @return 64 * @static 65 */ 66 public static function getStatus($a_usr_id, $a_crs_id) 67 { 68 if (isset(self::$status[$a_usr_id][$a_crs_id])) { 69 return self::$status[$a_usr_id][$a_crs_id]; 70 } 71 $tmp_res = new ilCourseObjectiveResult($a_usr_id); 72 return self::$status[$a_usr_id][$a_crs_id] = $tmp_res->getStatus($a_crs_id); 73 } 74 75 76 /** 77 * read suggested objectives 78 * 79 * @access protected 80 * @param 81 * @return 82 */ 83 protected function readSuggested($a_usr_id, $a_crs_id) 84 { 85 return ilCourseObjectiveResult::_getSuggested($a_usr_id, $a_crs_id, self::getStatus($a_usr_id, $a_crs_id)); 86 } 87} 88