ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
All Data Structures Namespaces Files Functions Variables Typedefs Modules Pages
ilBasicSkill Class Reference

Basic Skill. More...

+ Inheritance diagram for ilBasicSkill:
+ Collaboration diagram for ilBasicSkill:

Public Member Functions

 __construct ($a_id=0)
 Constructor public. More...
 
 read ()
 Read data from database. More...
 
 create ()
 Create skill. More...
 
 delete ()
 Delete skill. More...
 
 copy ()
 Copy basic skill. More...
 
 addLevel ($a_title, $a_description, $a_import_id="")
 Add new level. More...
 
 getMaxLevelNr ()
 Get maximum level nr. More...
 
 getLevelData ($a_id=0)
 Get level data. More...
 
 updateLevelOrder ($order)
 Update level order. More...
 
 deleteLevel ($a_id)
 Delete level. More...
 
 fixLevelNumbering ()
 Fix level numbering. More...
 
 getSkillForLevelId ($a_level_id)
 Get skill for level id. More...
 
 getMaxLevelPerType ($a_tref_id, $a_type, $a_user_id=0, $a_self_eval=0)
 Get max levels per type. More...
 
 getAllLevelEntriesOfUser ($a_tref_id, $a_user_id=0, $a_self_eval=0)
 Get all level entries. More...
 
 getAllHistoricLevelEntriesOfUser ($a_tref_id, $a_user_id=0, $a_eval_by=0)
 Get all historic level entries. More...
 
 getMaxLevelPerObject ($a_tref_id, $a_object_id, $a_user_id=0, $a_self_eval=0)
 Get max levels per object. More...
 
 getMaxLevel ($a_tref_id, $a_user_id=0, $a_self_eval=0)
 Get max levels per object. More...
 
 getLastLevelPerObject ($a_tref_id, $a_object_id, $a_user_id=0, $a_self_eval=0)
 Get last level set per object. More...
 
 getLastUpdatePerObject ($a_tref_id, $a_object_id, $a_user_id=0, $a_self_eval=0)
 Get last update per object. More...
 
 getTitleForCertificate ()
 Get title for certificate. More...
 
 getShortTitleForCertificate ()
 Get short title for certificate. More...
 
- Public Member Functions inherited from ilSkillTreeNode
 __construct ($a_id=0)
 
 setTitle ($a_title)
 Set title. More...
 
 getTitle ()
 Get title. More...
 
 setType ($a_type)
 Set type. More...
 
 getType ()
 Get type. More...
 
 setId ($a_id)
 Set Node ID. More...
 
 getId ()
 Get Node ID. More...
 
 setSelfEvaluation ($a_val)
 Set self evaluation. More...
 
 getSelfEvaluation ()
 Get self evaluation. More...
 
 setOrderNr ($a_val)
 Set order nr. More...
 
 getOrderNr ()
 Get order nr. More...
 
 setImportId ($a_val)
 Set import id. More...
 
 getImportId ()
 Get import id. More...
 
 getCreationDate ()
 Get creation date. More...
 
 read ()
 Read Data of Node. More...
 
 setDataRecord ($a_record)
 this method should only be called by class ilSCORM2004NodeFactory More...
 
 setStatus ($a_val)
 Set status. More...
 
 getStatus ()
 Get status. More...
 
 create ()
 Create Node. More...
 
 update ()
 Update Node. More...
 
 delete ()
 Delete Node. More...
 

Static Public Member Functions

static lookupLevelTitle ($a_id)
 Lookup level title. More...
 
static lookupLevelDescription ($a_id)
 Lookup level description. More...
 
static lookupLevelSkillId ($a_id)
 Lookup level skill id. More...
 
static writeLevelTitle ($a_id, $a_title)
 Write level title. More...
 
static writeLevelDescription ($a_id, $a_description)
 Write level description. More...
 
static resetUserSkillLevelStatus ($a_user_id, $a_skill_id, $a_tref_id=0, $a_trigger_ref_id=0, $a_self_eval=false)
 Reset skill level status. More...
 
static getNewAchievementsPerUser ($a_timestamp)
 Get new achievements. More...
 
static writeUserSkillLevelStatus ( $a_level_id, $a_user_id, $a_trigger_ref_id, $a_tref_id=0, $a_status=ilBasicSkill::ACHIEVED, $a_force=false, $a_self_eval=false, $a_unique_identifier="")
 Write skill level status. More...
 
static removeAllUserSkillLevelStatusOfObject ($a_user_id, $a_trigger_obj_id, $a_self_eval=false, $a_unique_identifier="")
 Remove a user skill completely. More...
 
static removeAllUserData ($a_user_id)
 Remove all data of a user. More...
 
static hasSelfEvaluated ($a_user_id, $a_skill_id, $a_tref_id)
 Has use self evaluated a skill? More...
 
static _lookupCertificate ($a_skill_id, $a_skill_level_id)
 Checks whether a skill level has a certificate or not. More...
 
static getUsageInfo ($a_cskill_ids, &$a_usages)
 Get usage info. More...
 
static getCommonSkillIdForImportId ($a_source_inst_id, $a_skill_import_id, $a_tref_import_id=0)
 Get common skill ids for import IDs (newest first) More...
 
static getLevelIdForImportId ($a_source_inst_id, $a_level_import_id)
 Get level ids for import IDs (newest first) More...
 
static getLevelIdForImportIdMatchSkill ($a_source_inst_id, $a_level_import_id, $a_skill_import_id, $a_tref_import_id=0)
 Get level ids for import Ids matching common skills. More...
 
- Static Public Member Functions inherited from ilSkillTreeNode
static getAllStatus ()
 Get all status. More...
 
static getStatusInfo ($a_status)
 Get status info. More...
 
static _lookupTitle ($a_obj_id, $a_tref_id=0)
 Lookup Title. More...
 
static _lookupSelfEvaluation ($a_obj_id)
 Lookup self evaluation. More...
 
static _lookupStatus ($a_obj_id)
 Lookup Status. More...
 
static _lookupType ($a_obj_id)
 Lookup Type. More...
 
static _writeTitle ($a_obj_id, $a_title)
 Write Title. More...
 
static _writeOrderNr ($a_obj_id, $a_nr)
 Write Order Nr. More...
 
static putInTree ($a_obj, $a_parent_id="", $a_target_node_id="")
 Put this object into the skill tree. More...
 
static getTree ($a_slm_obj_id)
 Get scorm module editing tree. More...
 
static uniqueTypesCheck ($a_items)
 Check for unique types. More...
 
static clipboardCut ($a_tree_id, $a_ids)
 Cut and copy a set of skills/skill categories into the clipboard. More...
 
static clipboardCopy ($a_tree_id, $a_ids)
 Copy a set of skills/skill categories into the clipboard. More...
 
static insertItemsFromClip ($a_type, $a_obj_id)
 Insert basic skills from clipboard. More...
 
static clearClipboard ()
 Remove all skill items from clipboard. More...
 
static pasteTree ( $a_item_id, $a_parent_id, $a_target, $a_insert_time, &$a_copied_nodes, $a_as_copy=false, $a_add_suffix=false)
 Paste item (tree) from clipboard to skill tree. More...
 
static isInTree ($a_id)
 Is id in tree? More...
 
static getAllSelfEvaluationNodes ()
 Get all self evaluation nodes. More...
 
static getTopTemplates ()
 Get top skill templates and template categories. More...
 
static getSelectableSkills ()
 Get selectable skills. More...
 
static saveChildsOrder ($a_par_id, $a_childs_order, $a_templates=false)
 Save childs order. More...
 
static getIconPath ($a_obj_id, $a_type, $a_size="", $a_status=0)
 Get icon path. More...
 
static findSkills ($a_term)
 Find skills. More...
 
static getAllCSkillIdsForNodeIds (array $a_node_ids)
 Get all possible common skill IDs for node IDs. More...
 

Data Fields

const ACHIEVED = 1
 
const NOT_ACHIEVED = 0
 
const EVAL_BY_OTHERS_ = 0
 
const EVAL_BY_SELF = 1
 
const EVAL_BY_ALL = 2
 
 $id
 
- Data Fields inherited from ilSkillTreeNode
const STATUS_PUBLISH = 0
 
const STATUS_DRAFT = 1
 
const STATUS_OUTDATED = 2
 
 $type
 
 $id
 
 $title
 

Static Protected Member Functions

static lookupLevelProperty ($a_id, $a_prop)
 Lookup level property. More...
 
static writeLevelProperty ($a_id, $a_prop, $a_value, $a_type)
 Write level property. More...
 
static hasRecentSelfEvaluation ($a_user_id, $a_skill_id, $a_tref_id=0, $a_trigger_ref_id=0)
 Has recent self evaluation. More...
 
- Static Protected Member Functions inherited from ilSkillTreeNode
static _lookup ($a_obj_id, $a_field)
 Lookup Title. More...
 

Protected Attributes

 $db
 
 $user
 
- Protected Attributes inherited from ilSkillTreeNode
 $db
 

Additional Inherited Members

- Protected Member Functions inherited from ilSkillTreeNode
 setCreationDate ($a_val)
 Set creation date. More...
 

Detailed Description

Basic Skill.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 16 of file class.ilBasicSkill.php.

Constructor & Destructor Documentation

◆ __construct()

ilBasicSkill::__construct (   $a_id = 0)

Constructor public.

Definition at line 41 of file class.ilBasicSkill.php.

References $DIC, ilSkillTreeNode\setType(), and user().

42  {
43  global $DIC;
44 
45  $this->db = $DIC->database();
46  $this->user = $DIC->user();
47  parent::__construct($a_id);
48  $this->setType("skll");
49  }
setType($a_type)
Set type.
global $DIC
Definition: saml.php:7
user()
Definition: user.php:4
+ Here is the call graph for this function:

Member Function Documentation

◆ _lookupCertificate()

static ilBasicSkill::_lookupCertificate (   $a_skill_id,
  $a_skill_level_id 
)
static

Checks whether a skill level has a certificate or not.

Parameters
intskill id
intskill level id
Returns
true/false

Definition at line 1006 of file class.ilBasicSkill.php.

1007  {
1008  $certificatefile = CLIENT_WEB_DIR . "/certificates/skill/" .
1009  ((int) $a_skill_id) . "/" . ((int) $a_skill_level_id) . "/certificate.xml";
1010  if (@file_exists($certificatefile)) {
1011  return true;
1012  } else {
1013  return false;
1014  }
1015  }

◆ addLevel()

ilBasicSkill::addLevel (   $a_title,
  $a_description,
  $a_import_id = "" 
)

Add new level.

Parameters
stringtitle
stringdescription

Definition at line 123 of file class.ilBasicSkill.php.

References $db, $ilDB, array, ilSkillTreeNode\getId(), getMaxLevelNr(), and ilUtil\now().

124  {
125  $ilDB = $this->db;
126 
127  $nr = $this->getMaxLevelNr();
128  $nid = $ilDB->nextId("skl_level");
129  $ilDB->insert("skl_level", array(
130  "id" => array("integer", $nid),
131  "skill_id" => array("integer", $this->getId()),
132  "nr" => array("integer", $nr+1),
133  "title" => array("text", $a_title),
134  "description" => array("clob", $a_description),
135  "import_id" => array("text", $a_import_id),
136  "creation_date" => array("timestamp", ilUtil::now())
137  ));
138  }
getMaxLevelNr()
Get maximum level nr.
static now()
Return current timestamp in Y-m-d H:i:s format.
Create styles array
The data for the language used.
global $ilDB
+ Here is the call graph for this function:

◆ copy()

ilBasicSkill::copy ( )

Copy basic skill.

Definition at line 91 of file class.ilBasicSkill.php.

References getLevelData(), ilSkillTreeNode\getOrderNr(), ilSkillTreeNode\getSelfEvaluation(), ilSkillTreeNode\getTitle(), and ilSkillTreeNode\getType().

92  {
93  $skill = new ilBasicSkill();
94  $skill->setTitle($this->getTitle());
95  $skill->setType($this->getType());
96  $skill->setSelfEvaluation($this->getSelfEvaluation());
97  $skill->setOrderNr($this->getOrderNr());
98  $skill->create();
99 
100  $levels = $this->getLevelData();
101  if (sizeof($levels)) {
102  foreach ($levels as $item) {
103  $skill->addLevel($item["title"], $item["description"]);
104  }
105  }
106  $skill->update();
107 
108  return $skill;
109  }
getLevelData($a_id=0)
Get level data.
getSelfEvaluation()
Get self evaluation.
getOrderNr()
Get order nr.
Basic Skill.
+ Here is the call graph for this function:

◆ create()

ilBasicSkill::create ( )

Create skill.

Definition at line 63 of file class.ilBasicSkill.php.

64  {
65  parent::create();
66  }

◆ delete()

ilBasicSkill::delete ( )

Delete skill.

Definition at line 71 of file class.ilBasicSkill.php.

References $db, and $ilDB.

72  {
73  $ilDB = $this->db;
74 
75  $ilDB->manipulate(
76  "DELETE FROM skl_level WHERE "
77  . " skill_id = " . $ilDB->quote($this->getId(), "integer")
78  );
79 
80  $ilDB->manipulate(
81  "DELETE FROM skl_user_has_level WHERE "
82  . " skill_id = " . $ilDB->quote($this->getId(), "integer")
83  );
84 
85  parent::delete();
86  }
global $ilDB

◆ deleteLevel()

ilBasicSkill::deleteLevel (   $a_id)

Delete level.

Parameters

Definition at line 309 of file class.ilBasicSkill.php.

References $db, and $ilDB.

310  {
311  $ilDB = $this->db;
312 
313  $ilDB->manipulate(
314  "DELETE FROM skl_level WHERE "
315  . " id = " . $ilDB->quote($a_id, "integer")
316  );
317  }
global $ilDB

◆ fixLevelNumbering()

ilBasicSkill::fixLevelNumbering ( )

Fix level numbering.

Parameters

Definition at line 325 of file class.ilBasicSkill.php.

References $db, and $ilDB.

326  {
327  $ilDB = $this->db;
328 
329  $set = $ilDB->query(
330  "SELECT id, nr FROM skl_level WHERE " .
331  " skill_id = " . $ilDB->quote($this->getId(), "integer") .
332  " ORDER BY nr ASC"
333  );
334  $cnt = 1;
335  while ($rec = $ilDB->fetchAssoc($set)) {
336  $ilDB->manipulate(
337  "UPDATE skl_level SET " .
338  " nr = " . $ilDB->quote($cnt, "integer") .
339  " WHERE id = " . $ilDB->quote($rec["id"], "integer")
340  );
341  $cnt++;
342  }
343  }
global $ilDB

◆ getAllHistoricLevelEntriesOfUser()

ilBasicSkill::getAllHistoricLevelEntriesOfUser (   $a_tref_id,
  $a_user_id = 0,
  $a_eval_by = 0 
)

Get all historic level entries.

Parameters

Definition at line 779 of file class.ilBasicSkill.php.

References $db, $ilDB, $ilUser, $user, and array.

780  {
781  $ilDB = $this->db;
783 
784  if ($a_user_id == 0) {
785  $a_user_id = $ilUser->getId();
786  }
787 
788  $by = ($a_eval_by != self::EVAL_BY_ALL)
789  ? " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
790  : "";
791 
792  $set = $ilDB->query(
793  $q = "SELECT * FROM skl_user_skill_level " .
794  " WHERE skill_id = " . $ilDB->quote($this->getId(), "integer") .
795  " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") .
796  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
797  $by .
798  " ORDER BY status_date DESC"
799  );
800  $levels = array();
801  while ($rec = $ilDB->fetchAssoc($set)) {
802  $levels[] = $rec;
803  }
804  return $levels;
805  }
$ilUser
Definition: imgupload.php:18
Create styles array
The data for the language used.
global $ilDB

◆ getAllLevelEntriesOfUser()

ilBasicSkill::getAllLevelEntriesOfUser (   $a_tref_id,
  $a_user_id = 0,
  $a_self_eval = 0 
)

Get all level entries.

Parameters

Definition at line 748 of file class.ilBasicSkill.php.

References $db, $ilDB, $ilUser, $user, and array.

749  {
750  $ilDB = $this->db;
752 
753  if ($a_user_id == 0) {
754  $a_user_id = $ilUser->getId();
755  }
756 
757  $set = $ilDB->query(
758  $q = "SELECT * FROM skl_user_has_level " .
759  " WHERE skill_id = " . $ilDB->quote($this->getId(), "integer") .
760  " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") .
761  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
762  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
763  " ORDER BY status_date DESC"
764  );
765 
766  $levels = array();
767  while ($rec = $ilDB->fetchAssoc($set)) {
768  $levels[] = $rec;
769  }
770  return $levels;
771  }
$ilUser
Definition: imgupload.php:18
Create styles array
The data for the language used.
global $ilDB

◆ getCommonSkillIdForImportId()

static ilBasicSkill::getCommonSkillIdForImportId (   $a_source_inst_id,
  $a_skill_import_id,
  $a_tref_import_id = 0 
)
static

Get common skill ids for import IDs (newest first)

Parameters
int$a_source_inst_idsource installation id, must be <>0
int$a_skill_import_idsource skill id (type basic skill ("skll") or basic skill template ("sktp"))
int$a_tref_import_idsource template reference id (if > 0 skill_import_id will be of type "sktp")
Returns
array array of common skill ids, keys are "skill_id", "tref_id", "creation_date"

Definition at line 1047 of file class.ilBasicSkill.php.

References $DIC, $ilDB, $results, $t, ilSkillTemplateReference\_lookupTemplateId(), and array.

Referenced by ilAssQuestionSkillAssignmentImporter\getSkillIdMapping(), ilSurveyDataSet\importRecord(), and ilSkillDataSet\importRecord().

1048  {
1049  global $DIC;
1050 
1051  $ilDB = $DIC->database();
1052 
1053  include_once("./Services/Skill/classes/class.ilSkillTree.php");
1054  include_once("./Services/Skill/classes/class.ilSkillTemplateReference.php");
1055  $tree = new ilSkillTree();
1056 
1057  if ($a_source_inst_id == 0) {
1058  return array();
1059  }
1060 
1061  $template_ids = array();
1062  if ($a_tref_import_id > 0) {
1063  $skill_node_type = "sktp";
1064 
1065  // get all matching tref nodes
1066  $set = $ilDB->query("SELECT * FROM skl_tree_node n JOIN skl_tree t ON (n.obj_id = t.child) " .
1067  " WHERE n.import_id = " . $ilDB->quote("il_" . ((int) $a_source_inst_id) . "_sktr_" . $a_tref_import_id, "text") .
1068  " ORDER BY n.creation_date DESC ");
1069  while ($rec = $ilDB->fetchAssoc($set)) {
1070  if (($t = ilSkillTemplateReference::_lookupTemplateId($rec["obj_id"])) > 0) {
1071  $template_ids[$t] = $rec["obj_id"];
1072  }
1073  }
1074  } else {
1075  $skill_node_type = "skll";
1076  }
1077  $set = $ilDB->query("SELECT * FROM skl_tree_node n JOIN skl_tree t ON (n.obj_id = t.child) " .
1078  " WHERE n.import_id = " . $ilDB->quote("il_" . ((int) $a_source_inst_id) . "_" . $skill_node_type . "_" . $a_skill_import_id, "text") .
1079  " ORDER BY n.creation_date DESC ");
1080  $results = array();
1081  while ($rec = $ilDB->fetchAssoc($set)) {
1082  $matching_trefs = array();
1083  if ($a_tref_import_id > 0) {
1084  $skill_template_id = $tree->getTopParentNodeId($rec["obj_id"]);
1085 
1086  // check of skill is in template
1087  foreach ($template_ids as $templ => $tref) {
1088  if ($skill_template_id == $templ) {
1089  $matching_trefs[] = $tref;
1090  }
1091  }
1092  } else {
1093  $matching_trefs = array(0);
1094  }
1095 
1096  foreach ($matching_trefs as $t) {
1097  $results[] = array("skill_id" => $rec["obj_id"], "tref_id" => $t, "creation_date" => $rec["creation_date"]);
1098  }
1099  }
1100  return $results;
1101  }
global $DIC
Definition: saml.php:7
Skill tree.
static _lookupTemplateId($a_obj_id)
Lookup template ID.
Create styles array
The data for the language used.
$results
Definition: svg-scanner.php:47
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLastLevelPerObject()

ilBasicSkill::getLastLevelPerObject (   $a_tref_id,
  $a_object_id,
  $a_user_id = 0,
  $a_self_eval = 0 
)

Get last level set per object.

Parameters

Definition at line 916 of file class.ilBasicSkill.php.

References $db, $ilDB, $ilUser, $user, and ilSkillTreeNode\getId().

917  {
918  $ilDB = $this->db;
920 
921  if ($a_user_id == 0) {
922  $a_user_id = $ilUser->getId();
923  }
924 
925  $ilDB->setLimit(1);
926  $set = $ilDB->query(
927  $q = "SELECT level_id FROM skl_user_has_level " .
928  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
929  " AND skill_id = " . $ilDB->quote($this->getId(), "integer") .
930  " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") .
931  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
932  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
933  " ORDER BY status_date DESC"
934  );
935 
936  $rec = $ilDB->fetchAssoc($set);
937 
938  return $rec["level_id"];
939  }
$ilUser
Definition: imgupload.php:18
global $ilDB
+ Here is the call graph for this function:

◆ getLastUpdatePerObject()

ilBasicSkill::getLastUpdatePerObject (   $a_tref_id,
  $a_object_id,
  $a_user_id = 0,
  $a_self_eval = 0 
)

Get last update per object.

Parameters

Definition at line 947 of file class.ilBasicSkill.php.

References $db, $ilDB, $ilUser, $user, and ilSkillTreeNode\getId().

948  {
949  $ilDB = $this->db;
951 
952  if ($a_user_id == 0) {
953  $a_user_id = $ilUser->getId();
954  }
955 
956  $ilDB->setLimit(1);
957  $set = $ilDB->query(
958  $q = "SELECT status_date FROM skl_user_has_level " .
959  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
960  " AND skill_id = " . $ilDB->quote($this->getId(), "integer") .
961  " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") .
962  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
963  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
964  " ORDER BY status_date DESC"
965  );
966 
967  $rec = $ilDB->fetchAssoc($set);
968 
969  return $rec["status_date"];
970  }
$ilUser
Definition: imgupload.php:18
global $ilDB
+ Here is the call graph for this function:

◆ getLevelData()

ilBasicSkill::getLevelData (   $a_id = 0)

Get level data.

Returns
array level data

Definition at line 162 of file class.ilBasicSkill.php.

References $db, $ilDB, and array.

Referenced by ilBasicSkillTemplate\copy(), copy(), getMaxLevel(), getMaxLevelPerObject(), and getMaxLevelPerType().

163  {
164  $ilDB = $this->db;
165 
166  if ($a_id > 0) {
167  $and = " AND id = " . $ilDB->quote($a_id, "integer");
168  }
169 
170  $set = $ilDB->query(
171  "SELECT * FROM skl_level WHERE " .
172  " skill_id = " . $ilDB->quote($this->getId(), "integer") .
173  $and .
174  " ORDER BY nr"
175  );
176  $levels = array();
177  while ($rec = $ilDB->fetchAssoc($set)) {
178  if ($a_id > 0) {
179  return $rec;
180  }
181  $levels[] = $rec;
182  }
183  return $levels;
184  }
Create styles array
The data for the language used.
global $ilDB
+ Here is the caller graph for this function:

◆ getLevelIdForImportId()

static ilBasicSkill::getLevelIdForImportId (   $a_source_inst_id,
  $a_level_import_id 
)
static

Get level ids for import IDs (newest first)

Parameters
int$a_source_inst_idsource installation id, must be <>0
int$a_skill_import_idsource skill id (type basic skill ("skll") or basic skill template ("sktp"))
Returns
array array of common skill ids, keys are "level_id", "creation_date"

Definition at line 1110 of file class.ilBasicSkill.php.

References $DIC, $ilDB, $results, and array.

Referenced by ilTestSkillLevelThresholdImporter\getLevelIdMapping(), and ilSkillDataSet\importRecord().

1111  {
1112  global $DIC;
1113 
1114  $ilDB = $DIC->database();
1115 
1116  $set = $ilDB->query("SELECT * FROM skl_level l JOIN skl_tree t ON (l.skill_id = t.child) " .
1117  " WHERE l.import_id = " . $ilDB->quote("il_" . ((int) $a_source_inst_id) . "_sklv_" . $a_level_import_id, "text") .
1118  " ORDER BY l.creation_date DESC ");
1119  $results = array();
1120  while ($rec = $ilDB->fetchAssoc($set)) {
1121  $results[] = array("level_id" => $rec["id"], "creation_date" => $rec["creation_date"]);
1122  }
1123  return $results;
1124  }
global $DIC
Definition: saml.php:7
Create styles array
The data for the language used.
$results
Definition: svg-scanner.php:47
global $ilDB
+ Here is the caller graph for this function:

◆ getLevelIdForImportIdMatchSkill()

static ilBasicSkill::getLevelIdForImportIdMatchSkill (   $a_source_inst_id,
  $a_level_import_id,
  $a_skill_import_id,
  $a_tref_import_id = 0 
)
static

Get level ids for import Ids matching common skills.

Parameters

Definition at line 1132 of file class.ilBasicSkill.php.

References $l, $s, array, and lookupLevelSkillId().

Referenced by ilSurveyDataSet\importRecord().

1133  {
1134  $level_id_data = self::getLevelIdForImportId($a_source_inst_id, $a_level_import_id);
1135  $skill_data = self::getCommonSkillIdForImportId($a_source_inst_id, $a_skill_import_id, $a_tref_import_id);
1136  $matches = array();
1137  foreach ($level_id_data as $l) {
1138  reset($skill_data);
1139  foreach ($skill_data as $s) {
1140  if (ilBasicSkill::lookupLevelSkillId($l["level_id"]) == $s["skill_id"]) {
1141  $matches[] = array(
1142  "level_id" => $l["level_id"],
1143  "creation_date" => $l["creation_date"],
1144  "skill_id" => $s["skill_id"],
1145  "tref_id" => $s["tref_id"]
1146  );
1147  }
1148  }
1149  }
1150  return $matches;
1151  }
$s
Definition: pwgen.php:45
Create styles array
The data for the language used.
global $l
Definition: afr.php:30
static lookupLevelSkillId($a_id)
Lookup level skill id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getMaxLevel()

ilBasicSkill::getMaxLevel (   $a_tref_id,
  $a_user_id = 0,
  $a_self_eval = 0 
)

Get max levels per object.

Parameters

Definition at line 851 of file class.ilBasicSkill.php.

References $db, $ilDB, $ilUser, $l, $user, array, and getLevelData().

852  {
853  $ilDB = $this->db;
855 
856  if ($a_user_id == 0) {
857  $a_user_id = $ilUser->getId();
858  }
859 
860  $set = $ilDB->query(
861  $q = "SELECT level_id FROM skl_user_has_level " .
862  " WHERE skill_id = " . $ilDB->quote($this->getId(), "integer") .
863  " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") .
864  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
865  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
866  );
867 
868  $has_level = array();
869  while ($rec = $ilDB->fetchAssoc($set)) {
870  $has_level[$rec["level_id"]] = true;
871  }
872  $max_level = 0;
873  foreach ($this->getLevelData() as $l) {
874  if (isset($has_level[$l["id"]])) {
875  $max_level = $l["id"];
876  }
877  }
878  return $max_level;
879  }
getLevelData($a_id=0)
Get level data.
$ilUser
Definition: imgupload.php:18
Create styles array
The data for the language used.
global $l
Definition: afr.php:30
global $ilDB
+ Here is the call graph for this function:

◆ getMaxLevelNr()

ilBasicSkill::getMaxLevelNr ( )

Get maximum level nr.

Returns
int maximum level nr of skill

Definition at line 145 of file class.ilBasicSkill.php.

References $db, and $ilDB.

Referenced by addLevel().

146  {
147  $ilDB = $this->db;
148 
149  $set = $ilDB->query(
150  "SELECT MAX(nr) mnr FROM skl_level WHERE " .
151  " skill_id = " . $ilDB->quote($this->getId(), "integer")
152  );
153  $rec = $ilDB->fetchAssoc($set);
154  return (int) $rec["mnr"];
155  }
global $ilDB
+ Here is the caller graph for this function:

◆ getMaxLevelPerObject()

ilBasicSkill::getMaxLevelPerObject (   $a_tref_id,
  $a_object_id,
  $a_user_id = 0,
  $a_self_eval = 0 
)

Get max levels per object.

Parameters

Definition at line 814 of file class.ilBasicSkill.php.

References $db, $ilDB, $ilUser, $l, $user, array, ilSkillTreeNode\getId(), and getLevelData().

815  {
816  $ilDB = $this->db;
818 
819  if ($a_user_id == 0) {
820  $a_user_id = $ilUser->getId();
821  }
822 
823  $set = $ilDB->query(
824  $q = "SELECT level_id FROM skl_user_has_level " .
825  " WHERE trigger_obj_id = " . $ilDB->quote($a_object_id, "integer") .
826  " AND skill_id = " . $ilDB->quote($this->getId(), "integer") .
827  " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") .
828  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
829  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
830  );
831 
832  $has_level = array();
833  while ($rec = $ilDB->fetchAssoc($set)) {
834  $has_level[$rec["level_id"]] = true;
835  }
836  $max_level = 0;
837  foreach ($this->getLevelData() as $l) {
838  if (isset($has_level[$l["id"]])) {
839  $max_level = $l["id"];
840  }
841  }
842  return $max_level;
843  }
getLevelData($a_id=0)
Get level data.
$ilUser
Definition: imgupload.php:18
Create styles array
The data for the language used.
global $l
Definition: afr.php:30
global $ilDB
+ Here is the call graph for this function:

◆ getMaxLevelPerType()

ilBasicSkill::getMaxLevelPerType (   $a_tref_id,
  $a_type,
  $a_user_id = 0,
  $a_self_eval = 0 
)

Get max levels per type.

Parameters

Definition at line 711 of file class.ilBasicSkill.php.

References $a_type, $db, $ilDB, $ilUser, $l, $user, array, ilSkillTreeNode\getId(), and getLevelData().

712  {
713  $ilDB = $this->db;
715 
716  if ($a_user_id == 0) {
717  $a_user_id = $ilUser->getId();
718  }
719 
720  $set = $ilDB->query(
721  $q = "SELECT level_id FROM skl_user_has_level " .
722  " WHERE trigger_obj_type = " . $ilDB->quote($a_type, "text") .
723  " AND skill_id = " . $ilDB->quote($this->getId(), "integer") .
724  " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") .
725  " AND user_id = " . $ilDB->quote($a_user_id, "integer") .
726  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
727  );
728 
729  $has_level = array();
730  while ($rec = $ilDB->fetchAssoc($set)) {
731  $has_level[$rec["level_id"]] = true;
732  }
733  $max_level = 0;
734  foreach ($this->getLevelData() as $l) {
735  if (isset($has_level[$l["id"]])) {
736  $max_level = $l["id"];
737  }
738  }
739  return $max_level;
740  }
getLevelData($a_id=0)
Get level data.
$a_type
Definition: workflow.php:92
$ilUser
Definition: imgupload.php:18
Create styles array
The data for the language used.
global $l
Definition: afr.php:30
global $ilDB
+ Here is the call graph for this function:

◆ getNewAchievementsPerUser()

static ilBasicSkill::getNewAchievementsPerUser (   $a_timestamp)
static

Get new achievements.

Parameters
string$a_timestamp
Returns
array

Definition at line 499 of file class.ilBasicSkill.php.

References $db, $DIC, ACHIEVED, and array.

Referenced by ilSkillNotifications\run().

500  {
501  global $DIC;
502 
503  $db = $DIC->database();
504 
505  $set = $db->query("SELECT * FROM skl_user_skill_level " .
506  " WHERE status_date >= " . $db->quote($a_timestamp, "timestamp") .
507  " AND valid = " . $db->quote(1, "integer") .
508  " AND status = " . $db->quote(ilBasicSkill::ACHIEVED, "integer") .
509  " AND self_eval = " . $db->quote(0, "integer") .
510  " ORDER BY user_id, status_date ASC ");
511  $achievments = array();
512  while ($rec = $db->fetchAssoc($set)) {
513  $achievments[$rec["user_id"]][] = $rec;
514  }
515 
516  return $achievments;
517  }
global $DIC
Definition: saml.php:7
Create styles array
The data for the language used.
+ Here is the caller graph for this function:

◆ getShortTitleForCertificate()

ilBasicSkill::getShortTitleForCertificate ( )

Get short title for certificate.

Parameters

Definition at line 995 of file class.ilBasicSkill.php.

996  {
997  return "Skill";
998  }

◆ getSkillForLevelId()

ilBasicSkill::getSkillForLevelId (   $a_level_id)

Get skill for level id.

Parameters

Definition at line 351 of file class.ilBasicSkill.php.

References $db, $ilDB, and ilSkillTreeNode\isInTree().

352  {
353  $ilDB = $this->db;
354 
355  $set = $ilDB->query(
356  "SELECT * FROM skl_level WHERE " .
357  " id = " . $ilDB->quote($a_level_id, "integer")
358  );
359  $skill = null;
360  if ($rec = $ilDB->fetchAssoc($set)) {
361  if (ilSkillTreeNode::isInTree($rec["skill_id"])) {
362  $skill = new ilBasicSkill($rec["skill_id"]);
363  }
364  }
365  return $skill;
366  }
static isInTree($a_id)
Is id in tree?
global $ilDB
Basic Skill.
+ Here is the call graph for this function:

◆ getTitleForCertificate()

ilBasicSkill::getTitleForCertificate ( )

Get title for certificate.

Parameters

Definition at line 984 of file class.ilBasicSkill.php.

References ilSkillTreeNode\getTitle().

985  {
986  return $this->getTitle();
987  }
+ Here is the call graph for this function:

◆ getUsageInfo()

static ilBasicSkill::getUsageInfo (   $a_cskill_ids,
$a_usages 
)
static

Get usage info.

Parameters

Implements ilSkillUsageInfo.

Definition at line 1023 of file class.ilBasicSkill.php.

References $DIC, $ilDB, ilSkillUsage\getUsageInfoGeneric(), and ilSkillUsage\USER_ASSIGNED.

1024  {
1025  global $DIC;
1026 
1027  $ilDB = $DIC->database();
1028 
1029  include_once("./Services/Skill/classes/class.ilSkillUsage.php");
1031  $a_cskill_ids,
1032  $a_usages,
1034  "skl_user_skill_level",
1035  "user_id"
1036  );
1037  }
global $DIC
Definition: saml.php:7
static getUsageInfoGeneric( $a_cskill_ids, &$a_usages, $a_usage_type, $a_table, $a_key_field, $a_skill_field="skill_id", $a_tref_field="tref_id")
Get standard usage query.
global $ilDB
+ Here is the call graph for this function:

◆ hasRecentSelfEvaluation()

static ilBasicSkill::hasRecentSelfEvaluation (   $a_user_id,
  $a_skill_id,
  $a_tref_id = 0,
  $a_trigger_ref_id = 0 
)
staticprotected

Has recent self evaluation.

Check if self evaluation for user/object has been done on the same day already

Parameters

Definition at line 461 of file class.ilBasicSkill.php.

References $db, $DIC, ilObject\_lookupObjId(), ACHIEVED, and ilUtil\now().

462  {
463  global $DIC;
464 
465  $db = $DIC->database();
466 
467  $trigger_obj_id = ($a_trigger_ref_id > 0)
468  ? ilObject::_lookupObjId($a_trigger_ref_id)
469  : 0;
470 
471  $recent = "";
472 
473  $db->setLimit(1);
474  $set = $db->query(
475  "SELECT * FROM skl_user_skill_level WHERE " .
476  "skill_id = " . $db->quote($a_skill_id, "integer") . " AND " .
477  "user_id = " . $db->quote($a_user_id, "integer") . " AND " .
478  "tref_id = " . $db->quote((int) $a_tref_id, "integer") . " AND " .
479  "trigger_obj_id = " . $db->quote($trigger_obj_id, "integer") . " AND " .
480  "self_eval = " . $db->quote(1, "integer") .
481  " ORDER BY status_date DESC"
482  );
483  $rec = $db->fetchAssoc($set);
484  $status_day = substr($rec["status_date"], 0, 10);
485  $today = substr(ilUtil::now(), 0, 10);
486  if ($rec["valid"] && $rec["status"] == ilBasicSkill::ACHIEVED && $status_day == $today) {
487  $recent = $rec["status_date"];
488  }
489 
490  return $recent;
491  }
global $DIC
Definition: saml.php:7
static now()
Return current timestamp in Y-m-d H:i:s format.
static _lookupObjId($a_id)
+ Here is the call graph for this function:

◆ hasSelfEvaluated()

static ilBasicSkill::hasSelfEvaluated (   $a_user_id,
  $a_skill_id,
  $a_tref_id 
)
static

Has use self evaluated a skill?

Parameters
int$a_user_id
int$a_skill_id
int$a_tref_id
Returns
bool

Definition at line 890 of file class.ilBasicSkill.php.

References $db, and $DIC.

Referenced by ilPersonalSkillsGUI\renderSkillHTML().

891  {
892  global $DIC;
893 
894  $db = $DIC->database();
895 
896  $set = $db->query(
897  $q = "SELECT level_id FROM skl_user_has_level " .
898  " WHERE skill_id = " . $db->quote((int) $a_skill_id, "integer") .
899  " AND tref_id = " . $db->quote((int) $a_tref_id, "integer") .
900  " AND user_id = " . $db->quote($a_user_id, "integer") .
901  " AND self_eval = " . $db->quote(1, "integer")
902  );
903 
904  if ($rec = $db->fetchAssoc($set)) {
905  return true;
906  }
907  return false;
908  }
global $DIC
Definition: saml.php:7
+ Here is the caller graph for this function:

◆ lookupLevelDescription()

static ilBasicSkill::lookupLevelDescription (   $a_id)
static

Lookup level description.

Parameters
intlevel id
Returns
string level description

Definition at line 223 of file class.ilBasicSkill.php.

References lookupLevelProperty().

224  {
225  return ilBasicSkill::lookupLevelProperty($a_id, "description");
226  }
static lookupLevelProperty($a_id, $a_prop)
Lookup level property.
+ Here is the call graph for this function:

◆ lookupLevelProperty()

static ilBasicSkill::lookupLevelProperty (   $a_id,
  $a_prop 
)
staticprotected

Lookup level property.

Parameters
idlevel id
Returns
mixed property value

Definition at line 192 of file class.ilBasicSkill.php.

References $DIC, and $ilDB.

Referenced by lookupLevelDescription(), lookupLevelSkillId(), and lookupLevelTitle().

193  {
194  global $DIC;
195 
196  $ilDB = $DIC->database();
197 
198  $set = $ilDB->query(
199  "SELECT $a_prop FROM skl_level WHERE " .
200  " id = " . $ilDB->quote($a_id, "integer")
201  );
202  $rec = $ilDB->fetchAssoc($set);
203  return $rec[$a_prop];
204  }
global $DIC
Definition: saml.php:7
global $ilDB
+ Here is the caller graph for this function:

◆ lookupLevelSkillId()

static ilBasicSkill::lookupLevelSkillId (   $a_id)
static

Lookup level skill id.

Parameters
intlevel id
Returns
string skill id

Definition at line 234 of file class.ilBasicSkill.php.

References lookupLevelProperty().

Referenced by getLevelIdForImportIdMatchSkill(), ilSkillDataSet\importRecord(), and writeUserSkillLevelStatus().

235  {
236  return ilBasicSkill::lookupLevelProperty($a_id, "skill_id");
237  }
static lookupLevelProperty($a_id, $a_prop)
Lookup level property.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lookupLevelTitle()

static ilBasicSkill::lookupLevelTitle (   $a_id)
static

Lookup level title.

Parameters
intlevel id
Returns
string level title

Definition at line 212 of file class.ilBasicSkill.php.

References lookupLevelProperty().

Referenced by ilSkillProfileGUI\confirmLevelAssignmentRemoval(), ilBasicSkillGUI\confirmLevelDeletion(), ilSkillProfileLevelsTableGUI\fillRow(), ilContSkillMemberTableGUI\fillRow(), ilPersonalSkillsGUI\getSuggestedResources(), ilSkillNotifications\sendMail(), ilBasicSkillTemplateGUI\setLevelHead(), and ilBasicSkillGUI\setLevelHead().

213  {
214  return ilBasicSkill::lookupLevelProperty($a_id, "title");
215  }
static lookupLevelProperty($a_id, $a_prop)
Lookup level property.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ read()

ilBasicSkill::read ( )

Read data from database.

Definition at line 54 of file class.ilBasicSkill.php.

55  {
56  parent::read();
57  }

◆ removeAllUserData()

static ilBasicSkill::removeAllUserData (   $a_user_id)
static

Remove all data of a user.

Parameters
int$a_user_id

Definition at line 688 of file class.ilBasicSkill.php.

References $db, and $DIC.

Referenced by ilSkillObjDeletionHandler\processDeletion().

689  {
690  global $DIC;
691 
692  $db = $DIC->database();
693 
694  $db->manipulate(
695  "DELETE FROM skl_user_skill_level WHERE "
696  . " user_id = " . $db->quote($a_user_id, "integer")
697  );
698  $db->manipulate(
699  "DELETE FROM skl_user_has_level WHERE "
700  . " user_id = " . $db->quote($a_user_id, "integer")
701  );
702  }
global $DIC
Definition: saml.php:7
+ Here is the caller graph for this function:

◆ removeAllUserSkillLevelStatusOfObject()

static ilBasicSkill::removeAllUserSkillLevelStatusOfObject (   $a_user_id,
  $a_trigger_obj_id,
  $a_self_eval = false,
  $a_unique_identifier = "" 
)
static

Remove a user skill completely.

Parameters
int$a_user_iduser id
int$a_trigger_obj_idtriggering repository object obj id
bool$a_self_evalcurrently needs to be set to true
string$a_unique_identifierunique identifier string
Returns
bool true, if entries have been deleted, otherwise false

Definition at line 648 of file class.ilBasicSkill.php.

References $changed, $db, and $DIC.

Referenced by ilContainerMemberSkills\publish(), and ilContainerMemberSkills\removeAllSkillLevels().

649  {
650  global $DIC;
651 
652  $db = $DIC->database();
653 
654  if ($a_trigger_obj_id == 0) {
655  return false;
656  }
657 
658  $changed = false;
659 
660  $aff_rows = $db->manipulate(
661  "DELETE FROM skl_user_skill_level WHERE "
662  . " user_id = " . $db->quote($a_user_id, "integer")
663  . " AND trigger_obj_id = " . $db->quote($a_trigger_obj_id, "integer")
664  . " AND self_eval = " . $db->quote($a_self_eval, "integer")
665  . " AND unique_identifier = " . $db->quote($a_unique_identifier, "text")
666  );
667  if ($aff_rows > 0) {
668  $changed = true;
669  }
670 
671  $aff_rows = $db->manipulate(
672  "DELETE FROM skl_user_has_level WHERE "
673  . " user_id = " . $db->quote($a_user_id, "integer")
674  . " AND trigger_obj_id = " . $db->quote($a_trigger_obj_id, "integer")
675  . " AND self_eval = " . $db->quote($a_self_eval, "integer")
676  );
677  if ($aff_rows > 0) {
678  $changed = true;
679  }
680  return $changed;
681  }
global $DIC
Definition: saml.php:7
+ Here is the caller graph for this function:

◆ resetUserSkillLevelStatus()

static ilBasicSkill::resetUserSkillLevelStatus (   $a_user_id,
  $a_skill_id,
  $a_tref_id = 0,
  $a_trigger_ref_id = 0,
  $a_self_eval = false 
)
static

Reset skill level status.

This is currently only used for self evaluations with a "no competence" level. It has to be discussed, how this should be provided for non-self-evaluations.

Parameters
int$a_user_iduser id
int$a_skill_idskill id
int$a_tref_idskill tref id
int$a_trigger_ref_idtriggering repository object ref id
bool$a_self_evalcurrently needs to be set to true
Exceptions
ilSkillException

Definition at line 387 of file class.ilBasicSkill.php.

References $db, $DIC, ilObject\_lookupObjId(), and ilUtil\now().

Referenced by ilPersonalSkill\saveSelfEvaluation().

388  {
389  global $DIC;
390 
391  $db = $DIC->database();
392 
393  if (!$a_self_eval) {
394  include_once("./Services/Skill/exceptions/class.ilSkillException.php");
395  throw new ilSkillException("resetUserSkillLevelStatus currently only provided for self evaluations.");
396  }
397 
398  $trigger_obj_id = ($a_trigger_ref_id > 0)
399  ? ilObject::_lookupObjId($a_trigger_ref_id)
400  : 0;
401 
402  $update = false;
403  $status_date = self::hasRecentSelfEvaluation($a_user_id, $a_skill_id, $a_tref_id, $a_trigger_ref_id);
404  if ($status_date != "") {
405  $update = true;
406  }
407 
408  if ($update) {
409  // this will only be set in self eval case, means this will always have a $rec
410  $now = ilUtil::now();
411  $db->manipulate(
412  "UPDATE skl_user_skill_level SET " .
413  " level_id = " . $db->quote(0, "integer") . "," .
414  " status_date = " . $db->quote($now, "timestamp") .
415  " WHERE user_id = " . $db->quote($a_user_id, "integer") .
416  " AND status_date = " . $db->quote($status_date, "timestamp") .
417  " AND skill_id = " . $db->quote($a_skill_id, "integer") .
418  " AND status = " . $db->quote(self::ACHIEVED, "integer") .
419  " AND trigger_obj_id = " . $db->quote($trigger_obj_id, "integer") .
420  " AND tref_id = " . $db->quote((int) $a_tref_id, "integer") .
421  " AND self_eval = " . $db->quote($a_self_eval, "integer")
422  );
423  } else {
424  $now = ilUtil::now();
425  $db->manipulate("INSERT INTO skl_user_skill_level " .
426  "(level_id, user_id, tref_id, status_date, skill_id, status, valid, trigger_ref_id," .
427  "trigger_obj_id, trigger_obj_type, trigger_title, self_eval, unique_identifier) VALUES (" .
428  $db->quote(0, "integer") . "," .
429  $db->quote($a_user_id, "integer") . "," .
430  $db->quote((int) $a_tref_id, "integer") . "," .
431  $db->quote($now, "timestamp") . "," .
432  $db->quote($a_skill_id, "integer") . "," .
433  $db->quote(self::ACHIEVED, "integer") . "," .
434  $db->quote(1, "integer") . "," .
435  $db->quote($a_trigger_ref_id, "integer") . "," .
436  $db->quote($trigger_obj_id, "integer") . "," .
437  $db->quote("", "text") . "," .
438  $db->quote("", "text") . "," .
439  $db->quote($a_self_eval, "integer") . "," .
440  $db->quote("", "text") .
441  ")");
442  }
443 
444  $db->manipulate(
445  "DELETE FROM skl_user_has_level WHERE "
446  . " user_id = " . $db->quote($a_user_id, "integer")
447  . " AND skill_id = " . $db->quote($a_skill_id, "integer")
448  . " AND tref_id = " . $db->quote((int) $a_tref_id, "integer")
449  . " AND trigger_obj_id = " . $db->quote($trigger_obj_id, "integer")
450  . " AND self_eval = " . $db->quote($a_self_eval, "integer")
451  );
452  }
global $DIC
Definition: saml.php:7
static now()
Return current timestamp in Y-m-d H:i:s format.
static _lookupObjId($a_id)
Skill exception class.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ updateLevelOrder()

ilBasicSkill::updateLevelOrder (   $order)

Update level order.

Parameters

Definition at line 286 of file class.ilBasicSkill.php.

References $db, $id, and $ilDB.

287  {
288  $ilDB = $this->db;
289 
290  asort($order);
291 
292  $cnt = 1;
293  foreach ($order as $id => $o) {
294  $ilDB->manipulate(
295  "UPDATE skl_level SET " .
296  " nr = " . $ilDB->quote($cnt, "integer") .
297  " WHERE id = " . $ilDB->quote($id, "integer")
298  );
299  $cnt++;
300  }
301  }
global $ilDB

◆ writeLevelDescription()

static ilBasicSkill::writeLevelDescription (   $a_id,
  $a_description 
)
static

Write level description.

Parameters
intlevel id
textlevel description

Definition at line 275 of file class.ilBasicSkill.php.

References writeLevelProperty().

276  {
277  ilBasicSkill::writeLevelProperty($a_id, "description", $a_description, "clob");
278  }
static writeLevelProperty($a_id, $a_prop, $a_value, $a_type)
Write level property.
+ Here is the call graph for this function:

◆ writeLevelProperty()

static ilBasicSkill::writeLevelProperty (   $a_id,
  $a_prop,
  $a_value,
  $a_type 
)
staticprotected

Write level property.

Parameters

Definition at line 245 of file class.ilBasicSkill.php.

References $a_type, $DIC, $ilDB, and array.

Referenced by writeLevelDescription(), and writeLevelTitle().

246  {
247  global $DIC;
248 
249  $ilDB = $DIC->database();
250 
251  $ilDB->update("skl_level", array(
252  $a_prop => array($a_type, $a_value),
253  ), array(
254  "id" => array("integer", $a_id),
255  ));
256  }
global $DIC
Definition: saml.php:7
$a_type
Definition: workflow.php:92
Create styles array
The data for the language used.
global $ilDB
+ Here is the caller graph for this function:

◆ writeLevelTitle()

static ilBasicSkill::writeLevelTitle (   $a_id,
  $a_title 
)
static

Write level title.

Parameters
intlevel id
textlevel title

Definition at line 264 of file class.ilBasicSkill.php.

References writeLevelProperty().

265  {
266  ilBasicSkill::writeLevelProperty($a_id, "title", $a_title, "text");
267  }
static writeLevelProperty($a_id, $a_prop, $a_value, $a_type)
Write level property.
+ Here is the call graph for this function:

◆ writeUserSkillLevelStatus()

static ilBasicSkill::writeUserSkillLevelStatus (   $a_level_id,
  $a_user_id,
  $a_trigger_ref_id,
  $a_tref_id = 0,
  $a_status = ilBasicSkill::ACHIEVED,
  $a_force = false,
  $a_self_eval = false,
  $a_unique_identifier = "" 
)
static

Write skill level status.

Parameters
int$a_level_idskill level id
int$a_user_iduser id
int$a_trigger_ref_idtrigger repository object ref id
int$a_tref_idskill tref id
int$a_statusDEPRECATED, always use ilBasicSkill::ACHIEVED
bool$a_forceDEPRECATED
bool$a_self_evalself evaluation
string$a_unique_identifiera unique identifier (should be used with trigger_ref_id > 0)

Definition at line 532 of file class.ilBasicSkill.php.

References $DIC, $ilDB, ilObject\_lookupObjId(), ilObject\_lookupTitle(), ilObject\_lookupType(), ACHIEVED, lookupLevelSkillId(), and ilUtil\now().

Referenced by ilSkillAppEventListener\handleEvent(), ilTestSkillEvaluation\invokeSkillLevelTrigger(), ilContainerMemberSkills\publish(), ilPersonalSkill\saveSelfEvaluation(), ilSurveySkill\writeAppraiseeSkills(), and ilSurveySkillDeterminationGUI\writeSkills().

541  {
542  global $DIC;
543 
544  $ilDB = $DIC->database();
545 
546  $skill_id = ilBasicSkill::lookupLevelSkillId($a_level_id);
547  $trigger_ref_id = $a_trigger_ref_id;
548  $trigger_obj_id = ilObject::_lookupObjId($trigger_ref_id);
549  $trigger_title = ilObject::_lookupTitle($trigger_obj_id);
550  $trigger_type = ilObject::_lookupType($trigger_obj_id);
551 
552  $update = false;
553 
554  // self evaluations will update, if the last self evaluation is on the same day
555  if ($a_self_eval && self::hasRecentSelfEvaluation($a_user_id, $skill_id, $a_tref_id, $trigger_ref_id)) {
556  $status_date = self::hasRecentSelfEvaluation($a_user_id, $skill_id, $a_tref_id, $trigger_ref_id);
557  if ($status_date != "") {
558  $update = true;
559  }
560  }
561 
562  if ($update) {
563  // this will only be set in self eval case, means this will always have a $rec
564  $now = ilUtil::now();
565  $ilDB->manipulate(
566  "UPDATE skl_user_skill_level SET " .
567  " level_id = " . $ilDB->quote($a_level_id, "integer") . "," .
568  " status_date = " . $ilDB->quote($now, "timestamp") .
569  " WHERE user_id = " . $ilDB->quote($a_user_id, "integer") .
570  " AND status_date = " . $ilDB->quote($status_date, "timestamp") .
571  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
572  " AND status = " . $ilDB->quote($a_status, "integer") .
573  " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") .
574  " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer") .
575  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
576  );
577  } else {
578  if ($a_unique_identifier != "") {
579  $ilDB->manipulate(
580  "DELETE FROM skl_user_skill_level WHERE " .
581  " user_id = " . $ilDB->quote($a_user_id, "integer") .
582  " AND tref_id = " . $ilDB->quote($a_tref_id, "integer") .
583  " AND skill_id = " . $ilDB->quote($skill_id, "integer") .
584  " AND trigger_ref_id = " . $ilDB->quote($trigger_ref_id, "integer") .
585  " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer") .
586  " AND self_eval = " . $ilDB->quote($a_self_eval, "integer") .
587  " AND unique_identifier = " . $ilDB->quote($a_unique_identifier, "text")
588  );
589  }
590 
591  $now = ilUtil::now();
592  $ilDB->manipulate("INSERT INTO skl_user_skill_level " .
593  "(level_id, user_id, tref_id, status_date, skill_id, status, valid, trigger_ref_id," .
594  "trigger_obj_id, trigger_obj_type, trigger_title, self_eval, unique_identifier) VALUES (" .
595  $ilDB->quote($a_level_id, "integer") . "," .
596  $ilDB->quote($a_user_id, "integer") . "," .
597  $ilDB->quote((int) $a_tref_id, "integer") . "," .
598  $ilDB->quote($now, "timestamp") . "," .
599  $ilDB->quote($skill_id, "integer") . "," .
600  $ilDB->quote($a_status, "integer") . "," .
601  $ilDB->quote(1, "integer") . "," .
602  $ilDB->quote($trigger_ref_id, "integer") . "," .
603  $ilDB->quote($trigger_obj_id, "integer") . "," .
604  $ilDB->quote($trigger_type, "text") . "," .
605  $ilDB->quote($trigger_title, "text") . "," .
606  $ilDB->quote($a_self_eval, "integer") . "," .
607  $ilDB->quote($a_unique_identifier, "text") .
608  ")");
609  }
610 
611  // fix (removed level_id and added skill id, since table should hold only
612  // one entry per skill)
613  $ilDB->manipulate(
614  "DELETE FROM skl_user_has_level WHERE "
615  . " user_id = " . $ilDB->quote($a_user_id, "integer")
616  . " AND skill_id = " . $ilDB->quote($skill_id, "integer")
617  . " AND tref_id = " . $ilDB->quote((int) $a_tref_id, "integer")
618  . " AND trigger_obj_id = " . $ilDB->quote($trigger_obj_id, "integer")
619  . " AND self_eval = " . $ilDB->quote($a_self_eval, "integer")
620  );
621 
622  if ($a_status == ilBasicSkill::ACHIEVED) {
623  $ilDB->manipulate("INSERT INTO skl_user_has_level " .
624  "(level_id, user_id, tref_id, status_date, skill_id, trigger_ref_id, trigger_obj_id, trigger_obj_type, trigger_title, self_eval) VALUES (" .
625  $ilDB->quote($a_level_id, "integer") . "," .
626  $ilDB->quote($a_user_id, "integer") . "," .
627  $ilDB->quote($a_tref_id, "integer") . "," .
628  $ilDB->quote($now, "timestamp") . "," .
629  $ilDB->quote($skill_id, "integer") . "," .
630  $ilDB->quote($trigger_ref_id, "integer") . "," .
631  $ilDB->quote($trigger_obj_id, "integer") . "," .
632  $ilDB->quote($trigger_type, "text") . "," .
633  $ilDB->quote($trigger_title, "text") . "," .
634  $ilDB->quote($a_self_eval, "integer") .
635  ")");
636  }
637  }
global $DIC
Definition: saml.php:7
static _lookupTitle($a_id)
lookup object title
static now()
Return current timestamp in Y-m-d H:i:s format.
static _lookupObjId($a_id)
static _lookupType($a_id, $a_reference=false)
lookup object type
global $ilDB
static lookupLevelSkillId($a_id)
Lookup level skill id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $db

◆ $id

ilBasicSkill::$id

Definition at line 35 of file class.ilBasicSkill.php.

Referenced by updateLevelOrder().

◆ $user

◆ ACHIEVED

◆ EVAL_BY_ALL

const ilBasicSkill::EVAL_BY_ALL = 2

Definition at line 33 of file class.ilBasicSkill.php.

Referenced by ilPersonalSkillsGUI\renderSkillHTML().

◆ EVAL_BY_OTHERS_

const ilBasicSkill::EVAL_BY_OTHERS_ = 0

Definition at line 31 of file class.ilBasicSkill.php.

◆ EVAL_BY_SELF

const ilBasicSkill::EVAL_BY_SELF = 1

Definition at line 32 of file class.ilBasicSkill.php.

◆ NOT_ACHIEVED

const ilBasicSkill::NOT_ACHIEVED = 0

Definition at line 29 of file class.ilBasicSkill.php.


The documentation for this class was generated from the following file: