ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilTestCertificateAdapter.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once "./Services/Certificate/classes/class.ilCertificateAdapter.php";
5
14{
15 protected $object;
16
22 public function __construct($object)
23 {
24 $this->object = $object;
25 parent::__construct();
26 }
27
33 public function getCertificatePath()
34 {
35 return CLIENT_WEB_DIR . "/assessment/certificates/" . $this->object->getId() . "/";
36 }
37
45 {
46 $vars = $this->getBaseVariablesForPreview(false);
47 $vars["RESULT_PASSED"] = ilUtil::prepareFormOutput($this->lng->txt("certificate_var_result_passed"));
48 $vars["RESULT_POINTS"] = ilUtil::prepareFormOutput($this->lng->txt("certificate_var_result_points"));
49 $vars["RESULT_PERCENT"] = ilUtil::prepareFormOutput($this->lng->txt("certificate_var_result_percent"));
50 $vars["MAX_POINTS"] = ilUtil::prepareFormOutput($this->lng->txt("certificate_var_max_points"));
51 $vars["RESULT_MARK_SHORT"] = ilUtil::prepareFormOutput($this->lng->txt("certificate_var_result_mark_short"));
52 $vars["RESULT_MARK_LONG"] = ilUtil::prepareFormOutput($this->lng->txt("certificate_var_result_mark_long"));
53 $vars["TEST_TITLE"] = ilUtil::prepareFormOutput($this->object->getTitle());
54
55 $insert_tags = array();
56 foreach ($vars as $id => $caption) {
57 $insert_tags["[" . $id . "]"] = $caption;
58 }
59
60 return $insert_tags;
61 }
62
72 {
73 $active_id = $params["active_id"];
74 $pass = $params["pass"];
75 $userfilter = array_key_exists("userfilter", $params) ? $params["userfilter"] : "";
76 $passedonly = array_key_exists("passedonly", $params) ? $params["passedonly"] : false;
77 if (strlen($pass)) {
78 $result_array = &$this->object->getTestResult($active_id, $pass);
79 } else {
80 $result_array = &$this->object->getTestResult($active_id);
81 }
82 if (($passedonly) && ($result_array["test"]["passed"] == false)) {
83 return "";
84 }
85 $passed = $result_array["test"]["passed"] ? $this->lng->txt("certificate_passed") : $this->lng->txt("certificate_failed");
86 if (!$result_array["test"]["total_max_points"]) {
87 $percentage = 0;
88 } else {
89 $percentage = ($result_array["test"]["total_reached_points"] / $result_array["test"]["total_max_points"]) * 100;
90 }
91 $mark_obj = $this->object->mark_schema->getMatchingMark($percentage);
92 $user_id = $this->object->_getUserIdFromActiveId($active_id);
93 include_once './Services/User/classes/class.ilObjUser.php';
94 $user_data = ilObjUser::_lookupFields($user_id);
95
96 if (strlen($userfilter)) {
97 if (!@preg_match("/$userfilter/i", $user_data["lastname"] . ", " . $user_data["firstname"] . " " . $user_data["title"])) {
98 return "";
99 }
100 }
101
102 if (ilObjUserTracking::_enabledLearningProgress() && $user_data["usr_id"] > 0) {
103 $completion_date = $this->getUserCompletionDate($user_data["usr_id"]);
104 } else {
105 $dt = new ilDateTime($result_array['test']['result_tstamp'], IL_CAL_UNIX);
106 $completion_date = $dt->get(IL_CAL_DATETIME);
107 }
108
109 $vars = $this->getBaseVariablesForPresentation($user_data, null, $completion_date);
110 $vars["RESULT_PASSED"] = ilUtil::prepareFormOutput($passed);
111 $vars["RESULT_POINTS"] = ilUtil::prepareFormOutput($result_array["test"]["total_reached_points"]);
112 $vars["RESULT_PERCENT"] = sprintf("%2.2f", $percentage) . "%";
113 $vars["MAX_POINTS"] = ilUtil::prepareFormOutput($result_array["test"]["total_max_points"]);
114 $vars["RESULT_MARK_SHORT"] = ilUtil::prepareFormOutput($mark_obj->getShortName());
115 $vars["RESULT_MARK_LONG"] = ilUtil::prepareFormOutput($mark_obj->getOfficialName());
116 $vars["TEST_TITLE"] = ilUtil::prepareFormOutput($this->object->getTitle());
117
118 foreach ($vars as $id => $caption) {
119 $insert_tags["[" . $id . "]"] = $caption;
120 }
121
122 return $insert_tags;
123 }
124
132 {
133 $vars = $this->getBaseVariablesDescription(false);
134 $vars["RESULT_PASSED"] = $this->lng->txt("certificate_ph_passed");
135 $vars["RESULT_POINTS"] = $this->lng->txt("certificate_ph_resultpoints");
136 $vars["RESULT_PERCENT"] = $this->lng->txt("certificate_ph_resultpercent");
137 $vars["MAX_POINTS"] = $this->lng->txt("certificate_ph_maxpoints");
138 $vars["RESULT_MARK_SHORT"] = $this->lng->txt("certificate_ph_markshort");
139 $vars["RESULT_MARK_LONG"] = $this->lng->txt("certificate_ph_marklong");
140 $vars["TEST_TITLE"] = $this->lng->txt("certificate_ph_testtitle");
141
142 $template = new ilTemplate("tpl.il_as_tst_certificate_edit.html", true, true, "Modules/Test");
143 $template->setCurrentBlock("items");
144 foreach ($vars as $id => $caption) {
145 $template->setVariable("ID", $id);
146 $template->setVariable("TXT", $caption);
147 $template->parseCurrentBlock();
148 }
149
150
151 $template->setVariable("PH_INTRODUCTION", $this->lng->txt("certificate_ph_introduction"));
152
153 return $template->get();
154 }
155
165 public function addAdditionalFormElements(&$form, $form_fields)
166 {
167 $visibility = new ilRadioGroupInputGUI($this->lng->txt("certificate_visibility"), "certificate_visibility");
168 $visibility->addOption(new ilRadioOption($this->lng->txt("certificate_visibility_always"), 0));
169 $visibility->addOption(new ilRadioOption($this->lng->txt("certificate_visibility_passed"), 1));
170 $visibility->addOption(new ilRadioOption($this->lng->txt("certificate_visibility_never"), 2));
171 $visibility->setInfo($this->lng->txt("certificate_visibility_introduction"));
172 $visibility->setValue($form_fields["certificate_visibility"]);
173 if (count($_POST)) {
174 $visibility->checkInput();
175 }
176 $form->addItem($visibility);
177 }
178
187 public function addFormFieldsFromPOST(&$form_fields)
188 {
189 $form_fields["certificate_visibility"] = $_POST["certificate_visibility"];
190 }
191
200 public function addFormFieldsFromObject(&$form_fields)
201 {
202 $form_fields["certificate_visibility"] = $this->object->getCertificateVisibility();
203 }
204
212 public function saveFormFields(&$form_fields)
213 {
214 $this->object->saveCertificateVisibility($form_fields["certificate_visibility"]);
215 }
216
223 public function getAdapterType()
224 {
225 return "test";
226 }
227
234 public function getCertificateID()
235 {
236 return $this->object->getId();
237 }
238
245 public function getUserIdForParams($a_params)
246 {
247 return $this->object->_getUserIdFromActiveId($a_params["active_id"]);
248 }
249}
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_UNIX
const IL_CAL_DATETIME
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.
getUserCompletionDate($a_user_id, $a_object_id=null)
Get completion for user.
getBaseVariablesDescription($a_enable_last_access=true, $a_enable_completion_date=true)
Get variable descriptions.
@classDescription Date and time handling
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _lookupFields($a_user_id)
lookup fields (deprecated; use more specific methods instead)
This class represents a property in a property form.
This class represents an option in a radio group.
special template class to simplify handling of ITX/PEAR
getCertificatePath()
Returns the certificate path (with a trailing path separator)
__construct($object)
ilTestCertificateAdapter contructor
addFormFieldsFromObject(&$form_fields)
Allows to add additional form values to the array of form values evaluating the associated adapter cl...
getCertificateVariablesForPresentation($params=array())
Returns an array containing all variables and values which can be exchanged in the certificate The va...
addFormFieldsFromPOST(&$form_fields)
Allows to add additional form values to the array of form values evaluating a HTTP POST action.
getUserIdForParams($a_params)
Get user id for params.
getCertificateVariablesForPreview()
Returns an array containing all variables and values which can be exchanged in the certificate.
addAdditionalFormElements(&$form, $form_fields)
Allows to add additional form fields to the certificate editor form This method will be called when t...
getCertificateID()
Returns a certificate ID This value will be used to generate unique file names for the certificates.
getAdapterType()
Returns the adapter type This value will be used to generate file names for the certificates.
getCertificateVariablesDescription()
Returns a description of the available certificate parameters.
saveFormFields(&$form_fields)
Allows to save additional adapter form fields This method will be called when the certificate editor ...
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
$template
if(!array_key_exists('StateId', $_REQUEST)) $id
if(isset($_POST['submit'])) $form