ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilCourseCertificateAdapter.php
Go to the documentation of this file.
1<?php
2 /*
3 +----------------------------------------------------------------------------+
4 | ILIAS open source |
5 +----------------------------------------------------------------------------+
6 | Copyright (c) 1998-2001 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 "./Services/Certificate/classes/class.ilCertificateAdapter.php";
25
34{
35 protected $object;
36 protected static $has_certificate = array();
37
44 {
45 global $lng;
46 $this->object =& $object;
47 $lng->loadLanguageModule('certificate');
48 }
49
55 public function getCertificatePath()
56 {
57 return CLIENT_WEB_DIR . "/course/certificates/" . $this->object->getId() . "/";
58 }
59
67 {
68 global $lng;
69
70 $vars = $this->getBaseVariablesForPreview(false);
71 $vars["COURSE_TITLE"] = ilUtil::prepareFormOutput($this->object->getTitle());
72
73 $insert_tags = array();
74 foreach($vars as $id => $caption)
75 {
76 $insert_tags["[".$id."]"] = $caption;
77 }
78 return $insert_tags;
79 }
80
90 {
91 global $lng;
92
93 $user_id = $params["user_id"];
94
95 include_once './Services/User/classes/class.ilObjUser.php';
96 $user_data = ilObjUser::_lookupFields($user_id);
97
98 include_once './Modules/Course/classes/class.ilCourseParticipants.php';
99 $completion_date = ilCourseParticipants::getDateTimeOfPassed($this->object->getId(), $user_id);
100
101 $vars = $this->getBaseVariablesForPresentation($user_data, null, $completion_date);
102 $vars["COURSE_TITLE"] = ilUtil::prepareFormOutput($this->object->getTitle());
103
104 $insert_tags = array();
105 foreach($vars as $id => $caption)
106 {
107 $insert_tags["[".$id."]"] = $caption;
108 }
109 return $insert_tags;
110 }
111
119 {
120 global $lng;
121
122 $vars = $this->getBaseVariablesDescription(false);
123 $vars["COURSE_TITLE"] = $lng->txt("crs_title");
124
125 $template = new ilTemplate("tpl.il_as_tst_certificate_edit.html", TRUE, TRUE, "Modules/Test");
126 $template->setCurrentBlock("items");
127 foreach($vars as $id => $caption)
128 {
129 $template->setVariable("ID", $id);
130 $template->setVariable("TXT", $caption);
131 $template->parseCurrentBlock();
132 }
133
134 $template->setVariable("PH_INTRODUCTION", $lng->txt("certificate_ph_introduction"));
135
136 return $template->get();
137 }
138
145 public function getAdapterType()
146 {
147 return "course";
148 }
149
156 public function getCertificateID()
157 {
158 return $this->object->getId();
159 }
160
169 static function _preloadListData($a_usr_ids, $a_obj_ids)
170 {
171 global $ilDB;
172
173 if (!is_array($a_usr_ids))
174 {
175 $a_usr_ids = array($a_usr_ids);
176 }
177 if (!is_array($a_obj_ids))
178 {
179 $a_obj_ids = array($a_obj_ids);
180 }
181 foreach ($a_usr_ids as $usr_id)
182 {
183 foreach ($a_obj_ids as $obj_id)
184 {
185 self::$has_certificate[$usr_id][$obj_id] = false;
186 }
187 }
188
189 include_once "Services/Certificate/classes/class.ilCertificate.php";
191 {
192 $obj_active = ilCertificate::areObjectsActive($a_obj_ids);
193
194 include_once 'Modules/Course/classes/class.ilCourseParticipants.php';
195 $data = ilCourseParticipants::getPassedUsersForObjects($a_obj_ids, $a_usr_ids);
196 foreach($data as $rec)
197 {
198 if($obj_active[$rec["obj_id"]])
199 {
200 self::$has_certificate[$rec["usr_id"]][$rec["obj_id"]] = true;
201 }
202 }
203 }
204 }
205
215 static function _hasUserCertificate($a_usr_id, $a_obj_id)
216 {
217 self::_preloadListData($a_usr_id, $a_obj_id);
218
219 if (isset(self::$has_certificate[$a_usr_id][$a_obj_id]))
220 {
221 return self::$has_certificate[$a_usr_id][$a_obj_id];
222 }
223 return false;
224 }
225}
226
227?>
Adapter class to provide certificate data for the certificate generator.
getBaseVariablesForPresentation($a_user_data, $a_last_access=null, $a_completion_date=false)
Get variable values.
getBaseVariablesForPreview($a_enable_last_access=true, $a_enable_completion_date=true)
Get variable dummys.
getBaseVariablesDescription($a_enable_last_access=true, $a_enable_completion_date=true)
Get variable descriptions.
static areObjectsActive(array $a_obj_ids)
getCertificateVariablesDescription()
Returns a description of the available certificate parameters.
getCertificateVariablesForPresentation($params=array())
Returns an array containing all variables and values which can be exchanged in the certificate The va...
__construct(&$object)
ilTestCertificateAdapter contructor
getAdapterType()
Returns the adapter type This value will be used to generate file names for the certificates.
getCertificateVariablesForPreview()
Returns an array containing all variables and values which can be exchanged in the certificate.
static _preloadListData($a_usr_ids, $a_obj_ids)
Get certificate/passed status for all given objects and users.
getCertificatePath()
Returns the certificate path (with a trailing path separator)
static _hasUserCertificate($a_usr_id, $a_obj_id)
Check if user has certificate for course.
getCertificateID()
Returns a certificate ID This value will be used to generate unique file names for the certificates.
static getDateTimeOfPassed($a_obj_id, $a_usr_id)
static getPassedUsersForObjects(array $a_obj_ids, array $a_usr_ids)
_lookupFields($a_user_id)
lookup fields (deprecated; use more specific methods instead)
special template class to simplify handling of ITX/PEAR
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
$data
$params
Definition: example_049.php:96
global $lng
Definition: privfeed.php:40
global $ilDB