ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
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 
4 include_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 }
$params
Definition: disable.php:11
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
This class represents an option in a radio group.
getUserCompletionDate($a_user_id, $a_object_id=null)
Get completion for user.
const IL_CAL_DATETIME
$template
if(!array_key_exists('StateId', $_REQUEST)) $id
saveFormFields(&$form_fields)
Allows to save additional adapter form fields This method will be called when the certificate editor ...
const IL_CAL_UNIX
addFormFieldsFromPOST(&$form_fields)
Allows to add additional form values to the array of form values evaluating a HTTP POST action...
__construct($object)
ilTestCertificateAdapter contructor
static _enabledLearningProgress()
check wether learing progress is enabled or not
getCertificateVariablesForPresentation($params=array())
Returns an array containing all variables and values which can be exchanged in the certificate The va...
This class represents a property in a property form.
addOption($a_option)
Add Option.
if(isset($_POST['submit'])) $form
special template class to simplify handling of ITX/PEAR
getBaseVariablesDescription($a_enable_last_access=true, $a_enable_completion_date=true)
Get variable descriptions.
Date and time handling
getCertificateID()
Returns a certificate ID This value will be used to generate unique file names for the certificates...
addAdditionalFormElements(&$form, $form_fields)
Allows to add additional form fields to the certificate editor form This method will be called when t...
Create styles array
The data for the language used.
addFormFieldsFromObject(&$form_fields)
Allows to add additional form values to the array of form values evaluating the associated adapter cl...
getCertificateVariablesForPreview()
Returns an array containing all variables and values which can be exchanged in the certificate...
Create new PHPExcel object
obj_idprivate
Adapter class to provide certificate data for the certificate generator.
getAdapterType()
Returns the adapter type This value will be used to generate file names for the certificates.
static _lookupFields($a_user_id)
lookup fields (deprecated; use more specific methods instead)
getBaseVariablesForPreview($a_enable_last_access=true, $a_enable_completion_date=true)
Get variable dummys.
getBaseVariablesForPresentation($a_user_data, $a_last_access=null, $a_completion_date=false)
Get variable values.
getCertificatePath()
Returns the certificate path (with a trailing path separator)
$_POST["username"]
getUserIdForParams($a_params)
Get user id for params.
getCertificateVariablesDescription()
Returns a description of the available certificate parameters.