ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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)
 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...
 
 lookupLevelsForTriggerRefId ($a_ref_id)
 Lookup levels for trigger. 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...
 
 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...
 
 lookupLevelAchievementDate ($a_user_id, $a_level_id, $a_self_eval=0)
 Lookup level achievement date. More...
 
 getTitleForCertificate ()
 Get title for certificate. More...
 
 getLevelTitleForCertificate ($a_level_id)
 Get title for certificate. More...
 
 getTriggerTitleForCertificate ($a_level_id)
 Get trigger title for certificate. More...
 
 getShortTitleForCertificate ()
 Get short title for certificate. More...
 
- Public Member Functions inherited from ilSkillTreeNode
 ilSkillTreeNode ($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...
 
 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...
 
 clipboardCut ($a_tree_id, $a_ids)
 Cut and copy a set of skills/skill categories into the clipboard. More...
 

Static Public Member Functions

static lookupLevelTitle ($a_id)
 Lookup level title. More...
 
static lookupLevelDescription ($a_id)
 Lookup level description. More...
 
static lookupLevelTrigger ($a_id)
 Lookup level trigger. 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 writeLevelTrigger ($a_id, $a_trigger_ref_id)
 Write trigger. More...
 
static updateAllUserSkillLevels ()
 Look for all skill level that have a trigger and update the user skill level information, if it has changed. More...
 
static updateSkillLevelsByTriggerRef ($a_user_id, $a_ref_id)
 Look for all skill level that have a trigger and update the user skill level information, if it has changed. 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=0, $a_unique_identifier="")
 Write skill level status. More...
 
static getCompletionDateForTriggerRefId ($a_user_id, $a_ref_id=null, $a_self_eval=0)
 Get trigger completion. More...
 
static checkUserCertificateForTriggerRefId ($a_user_id, $a_ref_id, $a_self_eval=0)
 Get trigger completion. More...
 
static getTriggerOfAllCertificates ($a_user_id, $a_self_eval=0)
 Get trigger completion. More...
 
static getSkillLevelsForTrigger ($a_ref_id)
 Get assigned skill levels for trigger. 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 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 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...
 

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 Protected Member Functions inherited from ilSkillTreeNode
static _lookup ($a_obj_id, $a_field)
 Lookup Title. 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 31 of file class.ilBasicSkill.php.

References ilSkillTreeNode\setType().

32  {
33  parent::ilSkillTreeNode($a_id);
34  $this->setType("skll");
35  }
setType($a_type)
Set type.
+ 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 1106 of file class.ilBasicSkill.php.

Referenced by checkUserCertificateForTriggerRefId(), and getTriggerOfAllCertificates().

1107  {
1108  $certificatefile = CLIENT_WEB_DIR."/certificates/skill/".
1109  ((int)$a_skill_id)."/".((int) $a_skill_level_id)."/certificate.xml";
1110  if (@file_exists($certificatefile))
1111  {
1112  return true;
1113  }
1114  else
1115  {
1116  return false;
1117  }
1118  }
+ Here is the caller graph for this function:

◆ addLevel()

ilBasicSkill::addLevel (   $a_title,
  $a_description 
)

Add new level.

Parameters
stringtitle
stringdescription

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

References $ilDB, ilSkillTreeNode\getId(), and getMaxLevelNr().

110  {
111  global $ilDB;
112 
113  $nr = $this->getMaxLevelNr();
114  $nid = $ilDB->nextId("skl_level");
115  $ilDB->insert("skl_level", array(
116  "id" => array("integer", $nid),
117  "skill_id" => array("integer", $this->getId()),
118  "nr" => array("integer", $nr+1),
119  "title" => array("text", $a_title),
120  "description" => array("clob", $a_description)
121  ));
122 
123  }
getMaxLevelNr()
Get maximum level nr.
global $ilDB
+ Here is the call graph for this function:

◆ checkUserCertificateForTriggerRefId()

static ilBasicSkill::checkUserCertificateForTriggerRefId (   $a_user_id,
  $a_ref_id,
  $a_self_eval = 0 
)
static

Get trigger completion.

Parameters

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

References $ilDB, $ref_id, and _lookupCertificate().

Referenced by ilObjSkillManagementGUI\testCert().

917  {
918  global $ilDB;
919 die("ilBasicSkill::checkUserCertificateForTriggerRefId is deprecated.");
920  if (!is_array($a_ref_id))
921  {
922  $a_ref_id = array($a_ref_id);
923  }
924  if (!is_array($a_user_id))
925  {
926  $a_user_id = array($a_user_id);
927  }
928  $set = $ilDB->query($q = "SELECT user_id, status_date, trigger_ref_id, level_id, skill_id FROM skl_user_has_level WHERE ".
929  $ilDB->in("user_id", $a_user_id, false, "integer")." AND ".
930  $ilDB->in("trigger_ref_id", $a_ref_id, false, "integer")
931  );
932 
933  $completion = array();
934 
935  $completion = array();
936  while ($rec = $ilDB->fetchAssoc($set))
937  {
938  if (!isset($completion[$rec["user_id"]][$rec["trigger_ref_id"]])
939  && ilBasicSkill::_lookupCertificate($rec["skill_id"], $rec["level_id"]))
940  {
941  $completion[$rec["user_id"]][$rec["trigger_ref_id"]] = true;
942  }
943  }
944 
945  foreach ($a_ref_id as $ref_id)
946  {
947  foreach ($a_user_id as $user_id)
948  {
949  if (!isset($completion[$user_id][$ref_id]))
950  {
951  $completion[$user_id][$ref_id] = false;
952  }
953  }
954  }
955  return $completion;
956 
957  }
static _lookupCertificate($a_skill_id, $a_skill_level_id)
Checks whether a skill level has a certificate or not.
$ref_id
Definition: sahs_server.php:39
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ copy()

ilBasicSkill::copy ( )

Copy basic skill.

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

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

76  {
77  $skill = new ilBasicSkill();
78  $skill->setTitle($this->getTitle());
79  $skill->setType($this->getType());
80  $skill->setSelfEvaluation($this->getSelfEvaluation());
81  $skill->setOrderNr($this->getOrderNr());
82  $skill->create();
83 
84  $levels = $this->getLevelData();
85  if (sizeof($levels))
86  {
87  foreach($levels as $item)
88  {
89  $skill->addLevel($item["title"], $item["description"]);
90  }
91  }
92  $skill->update();
93 
94  return $skill;
95  }
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 49 of file class.ilBasicSkill.php.

50  {
51  parent::create();
52  }

◆ delete()

ilBasicSkill::delete ( )

Delete skill.

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

References $ilDB.

58  {
59  global $ilDB;
60 
61  $ilDB->manipulate("DELETE FROM skl_level WHERE "
62  ." skill_id = ".$ilDB->quote($this->getId(), "integer")
63  );
64 
65  $ilDB->manipulate("DELETE FROM skl_user_has_level WHERE "
66  ." skill_id = ".$ilDB->quote($this->getId(), "integer")
67  );
68 
69  parent::delete();
70  }
global $ilDB

◆ deleteLevel()

ilBasicSkill::deleteLevel (   $a_id)

Delete level.

Parameters

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

References $ilDB.

323  {
324  global $ilDB;
325 
326  $ilDB->manipulate("DELETE FROM skl_level WHERE "
327  ." id = ".$ilDB->quote($a_id, "integer")
328  );
329 
330  }
global $ilDB

◆ fixLevelNumbering()

ilBasicSkill::fixLevelNumbering ( )

Fix level numbering.

Parameters

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

References $ilDB.

339  {
340  global $ilDB;
341 
342  $set = $ilDB->query("SELECT id, nr FROM skl_level WHERE ".
343  " skill_id = ".$ilDB->quote($this->getId(), "integer").
344  " ORDER BY nr ASC"
345  );
346  $cnt = 1;
347  while ($rec = $ilDB->fetchAssoc($set))
348  {
349  $ilDB->manipulate("UPDATE skl_level SET ".
350  " nr = ".$ilDB->quote($cnt, "integer").
351  " WHERE id = ".$ilDB->quote($rec["id"], "integer")
352  );
353  $cnt++;
354  }
355  }
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 686 of file class.ilBasicSkill.php.

References $ilDB, and $ilUser.

687  {
688  global $ilDB, $ilUser;
689 
690  if ($a_user_id == 0)
691  {
692  $a_user_id = $ilUser->getId();
693  }
694 
695  $by = ($a_eval_by != self::EVAL_BY_ALL)
696  ? " AND self_eval = ".$ilDB->quote($a_self_eval, "integer")
697  : "";
698 
699  $set = $ilDB->query($q = "SELECT * FROM skl_user_skill_level ".
700  " WHERE skill_id = ".$ilDB->quote($this->getId(), "integer").
701  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
702  " AND user_id = ".$ilDB->quote($a_user_id, "integer").
703  $by.
704  " ORDER BY status_date DESC"
705  );
706  $levels = array();
707  while ($rec = $ilDB->fetchAssoc($set))
708  {
709  $levels[] = $rec;
710  }
711  return $levels;
712  }
global $ilUser
Definition: imgupload.php:15
global $ilDB

◆ getAllLevelEntriesOfUser()

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

Get all level entries.

Parameters

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

References $ilDB, and $ilUser.

656  {
657  global $ilDB, $ilUser;
658 
659  if ($a_user_id == 0)
660  {
661  $a_user_id = $ilUser->getId();
662  }
663 
664  $set = $ilDB->query($q = "SELECT * FROM skl_user_has_level ".
665  " WHERE skill_id = ".$ilDB->quote($this->getId(), "integer").
666  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
667  " AND user_id = ".$ilDB->quote($a_user_id, "integer").
668  " AND self_eval = ".$ilDB->quote($a_self_eval, "integer").
669  " ORDER BY status_date DESC"
670  );
671 
672  $levels = array();
673  while ($rec = $ilDB->fetchAssoc($set))
674  {
675  $levels[] = $rec;
676  }
677  return $levels;
678  }
global $ilUser
Definition: imgupload.php:15
global $ilDB

◆ getCompletionDateForTriggerRefId()

static ilBasicSkill::getCompletionDateForTriggerRefId (   $a_user_id,
  $a_ref_id = null,
  $a_self_eval = 0 
)
static

Get trigger completion.

Parameters

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

References $ilDB, $ref_id, and ilParticipants\_getMembershipByType().

Referenced by ilObjSkillManagementGUI\test().

821  {
822  global $ilDB;
823 die("ilBasicSkill::getCompletionDateForTriggerRefId is deprecated.");
824  if ($a_ref_id == "")
825  {
826  $a_ref_id = null;
827  }
828  else if (!is_array($a_ref_id))
829  {
830  $a_ref_id = array($a_ref_id);
831  }
832  if (!is_array($a_user_id))
833  {
834  $a_user_id = array($a_user_id);
835  }
836 
837  if ($a_ref_id != null)
838  {
839  if (!is_array($a_ref_id))
840  {
841  $a_ref_id = array($a_ref_id);
842  }
843 
844  $set = $ilDB->query($q = "SELECT user_id, status_date, trigger_ref_id FROM skl_user_has_level WHERE ".
845  $ilDB->in("user_id", $a_user_id, false, "integer")." AND ".
846  $ilDB->in("trigger_ref_id", $a_ref_id, false, "integer")
847  );
848 
849  $completion = array();
850  while ($rec = $ilDB->fetchAssoc($set))
851  {
852  if (!isset($completion[$rec["user_id"]][$rec["trigger_ref_id"]]))
853  {
854  $completion[$rec["user_id"]][$rec["trigger_ref_id"]] = $rec["status_date"];
855  }
856  else if ($rec["status_date"] < $completion[$rec["user_id"]][$rec["trigger_ref_id"]])
857  {
858  $completion[$rec["user_id"]][$rec["trigger_ref_id"]] = $rec["status_date"];
859  }
860  }
861 
862  foreach ($a_ref_id as $ref_id)
863  {
864  foreach ($a_user_id as $user_id)
865  {
866  if (!isset($completion[$user_id][$ref_id]))
867  {
868  $completion[$user_id][$ref_id] = false;
869  }
870  }
871  }
872  }
873  else
874  {
875  $completion = array();
876  foreach ($a_user_id as $user_id)
877  {
878  include_once 'Services/Membership/classes/class.ilParticipants.php';
879  $a_ref_id = ilParticipants::_getMembershipByType($user_id, 'crs', true);
880 
881  $set = $ilDB->query($q = "SELECT user_id, status_date, trigger_ref_id FROM skl_user_has_level WHERE ".
882  "user_id = ".$ilDB->quote($user_id, "integer")." AND ".
883  $ilDB->in("trigger_ref_id", $a_ref_id, false, "integer")
884  );
885 
886  while ($rec = $ilDB->fetchAssoc($set))
887  {
888  if (!isset($completion[$user_id][$rec["trigger_ref_id"]]))
889  {
890  $completion[$user_id][$rec["trigger_ref_id"]] = $rec["status_date"];
891  }
892  else if ($rec["status_date"] < $completion[$user_id][$rec["trigger_ref_id"]])
893  {
894  $completion[$user_id][$rec["trigger_ref_id"]] = $rec["status_date"];
895  }
896  }
897  foreach ($a_ref_id as $ref_id)
898  {
899  if (!isset($completion[$user_id][$ref_id]))
900  {
901  $completion[$user_id][$ref_id] = false;
902  }
903  }
904  }
905 
906  }
907  return $completion;
908  }
static _getMembershipByType($a_usr_id, $a_type, $a_only_member_role=false)
get membership by type Get course or group membership
$ref_id
Definition: sahs_server.php:39
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 760 of file class.ilBasicSkill.php.

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

761  {
762  global $ilDB, $ilUser;
763 
764  if ($a_user_id == 0)
765  {
766  $a_user_id = $ilUser->getId();
767  }
768 
769  $ilDB->setLimit(1);
770  $set = $ilDB->query($q = "SELECT level_id FROM skl_user_has_level ".
771  " WHERE trigger_obj_id = ".$ilDB->quote($a_object_id, "integer").
772  " AND skill_id = ".$ilDB->quote($this->getId(), "integer").
773  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
774  " AND user_id = ".$ilDB->quote($a_user_id, "integer").
775  " AND self_eval = ".$ilDB->quote($a_self_eval, "integer").
776  " ORDER BY status_date DESC"
777  );
778 
779  $rec = $ilDB->fetchAssoc($set);
780 
781  return $rec["level_id"];
782  }
global $ilUser
Definition: imgupload.php:15
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 790 of file class.ilBasicSkill.php.

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

791  {
792  global $ilDB, $ilUser;
793 
794  if ($a_user_id == 0)
795  {
796  $a_user_id = $ilUser->getId();
797  }
798 
799  $ilDB->setLimit(1);
800  $set = $ilDB->query($q = "SELECT status_date FROM skl_user_has_level ".
801  " WHERE trigger_obj_id = ".$ilDB->quote($a_object_id, "integer").
802  " AND skill_id = ".$ilDB->quote($this->getId(), "integer").
803  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
804  " AND user_id = ".$ilDB->quote($a_user_id, "integer").
805  " AND self_eval = ".$ilDB->quote($a_self_eval, "integer").
806  " ORDER BY status_date DESC"
807  );
808 
809  $rec = $ilDB->fetchAssoc($set);
810 
811  return $rec["status_date"];
812  }
global $ilUser
Definition: imgupload.php:15
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 146 of file class.ilBasicSkill.php.

References $ilDB.

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

147  {
148  global $ilDB;
149 
150  if ($a_id > 0)
151  {
152  $and = " AND id = ".$ilDB->quote($a_id, "integer");
153  }
154 
155  $set = $ilDB->query("SELECT * FROM skl_level WHERE ".
156  " skill_id = ".$ilDB->quote($this->getId(), "integer").
157  $and.
158  " ORDER BY nr"
159  );
160  $levels = array();
161  while ($rec = $ilDB->fetchAssoc($set))
162  {
163  if ($a_id > 0)
164  {
165  return $rec;
166  }
167  $levels[] = $rec;
168  }
169  return $levels;
170  }
global $ilDB
+ Here is the caller graph for this function:

◆ getLevelTitleForCertificate()

ilBasicSkill::getLevelTitleForCertificate (   $a_level_id)

Get title for certificate.

Parameters

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

References lookupLevelTitle().

1071  {
1072 die("ilBasicSkill::getLevelTitleForCertificate is deprecated.");
1073  return ilBasicSkill::lookupLevelTitle($a_level_id);
1074  }
static lookupLevelTitle($a_id)
Lookup level title.
+ 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 130 of file class.ilBasicSkill.php.

References $ilDB.

Referenced by addLevel().

131  {
132  global $ilDB;
133 
134  $set = $ilDB->query("SELECT MAX(nr) mnr FROM skl_level WHERE ".
135  " skill_id = ".$ilDB->quote($this->getId(), "integer")
136  );
137  $rec = $ilDB->fetchAssoc($set);
138  return (int) $rec["mnr"];
139  }
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 721 of file class.ilBasicSkill.php.

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

722  {
723  global $ilDB, $ilUser;
724 
725  if ($a_user_id == 0)
726  {
727  $a_user_id = $ilUser->getId();
728  }
729 
730  $set = $ilDB->query($q = "SELECT level_id FROM skl_user_has_level ".
731  " WHERE trigger_obj_id = ".$ilDB->quote($a_object_id, "integer").
732  " AND skill_id = ".$ilDB->quote($this->getId(), "integer").
733  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
734  " AND user_id = ".$ilDB->quote($a_user_id, "integer").
735  " AND self_eval = ".$ilDB->quote($a_self_eval, "integer")
736  );
737 
738  $has_level = array();
739  while ($rec = $ilDB->fetchAssoc($set))
740  {
741  $has_level[$rec["level_id"]] = true;
742  }
743  $max_level = 0;
744  foreach ($this->getLevelData() as $l)
745  {
746  if (isset($has_level[$l["id"]]))
747  {
748  $max_level = $l["id"];
749  }
750  }
751  return $max_level;
752  }
getLevelData($a_id=0)
Get level data.
global $ilUser
Definition: imgupload.php:15
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 616 of file class.ilBasicSkill.php.

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

617  {
618  global $ilDB, $ilUser;
619 
620  if ($a_user_id == 0)
621  {
622  $a_user_id = $ilUser->getId();
623  }
624 
625  $set = $ilDB->query($q = "SELECT level_id FROM skl_user_has_level ".
626  " WHERE trigger_obj_type = ".$ilDB->quote($a_type, "text").
627  " AND skill_id = ".$ilDB->quote($this->getId(), "integer").
628  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
629  " AND user_id = ".$ilDB->quote($a_user_id, "integer").
630  " AND self_eval = ".$ilDB->quote($a_self_eval, "integer")
631  );
632 
633  $has_level = array();
634  while ($rec = $ilDB->fetchAssoc($set))
635  {
636  $has_level[$rec["level_id"]] = true;
637  }
638  $max_level = 0;
639  foreach ($this->getLevelData() as $l)
640  {
641  if (isset($has_level[$l["id"]]))
642  {
643  $max_level = $l["id"];
644  }
645  }
646  return $max_level;
647  }
getLevelData($a_id=0)
Get level data.
global $ilUser
Definition: imgupload.php:15
global $l
Definition: afr.php:30
global $ilDB
+ Here is the call graph for this function:

◆ getShortTitleForCertificate()

ilBasicSkill::getShortTitleForCertificate ( )

Get short title for certificate.

Parameters

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

1096  {
1097  return "Skill";
1098  }

◆ getSkillForLevelId()

ilBasicSkill::getSkillForLevelId (   $a_level_id)

Get skill for level id.

Parameters

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

References $ilDB, and ilSkillTreeNode\isInTree().

385  {
386  global $ilDB;
387 
388  $set = $ilDB->query("SELECT * FROM skl_level WHERE ".
389  " id = ".$ilDB->quote($a_level_id, "integer")
390  );
391  $skill = null;
392  if ($rec = $ilDB->fetchAssoc($set))
393  {
394  if (ilSkillTreeNode::isInTree($rec["skill_id"]))
395  {
396  $skill = new ilBasicSkill($rec["skill_id"]);
397  }
398  }
399  return $skill;
400  }
static isInTree($a_id)
Is id in tree?
global $ilDB
Basic Skill.
+ Here is the call graph for this function:

◆ getSkillLevelsForTrigger()

static ilBasicSkill::getSkillLevelsForTrigger (   $a_ref_id)
static

Get assigned skill levels for trigger.

Parameters

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

References $ilDB.

Referenced by ilObjSkillManagementGUI\testLevels().

1031  {
1032  global $ilDB;
1033 die("ilBasicSkill::getSkillLevelsForTrigger is deprecated.");
1034  $set = $ilDB->query($q = "SELECT id FROM skl_level".
1035  " WHERE trigger_ref_id = ".$ilDB->quote($a_ref_id, "integer"));
1036 
1037  $skill_levels = array();
1038  while ($rec = $ilDB->fetchAssoc($set))
1039  {
1040  $skill_levels[] = $rec["id"];
1041  }
1042 
1043  return $skill_levels;
1044 
1045  }
global $ilDB
+ Here is the caller graph for this function:

◆ getTitleForCertificate()

ilBasicSkill::getTitleForCertificate ( )

Get title for certificate.

Parameters

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

References ilSkillTreeNode\getTitle().

1060  {
1061  return $this->getTitle();
1062  }
+ Here is the call graph for this function:

◆ getTriggerOfAllCertificates()

static ilBasicSkill::getTriggerOfAllCertificates (   $a_user_id,
  $a_self_eval = 0 
)
static

Get trigger completion.

Parameters

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

References $ilDB, and _lookupCertificate().

Referenced by ilObjSkillManagementGUI\testAllCert().

988  {
989  global $ilDB, $tree;
990 die("ilBasicSkill::getTriggerOfAllCertificates is deprecated.");
991  if (!is_array($a_user_id))
992  {
993  $a_user_id = array($a_user_id);
994  }
995 
996  $set = $ilDB->query($q = "SELECT user_id, status_date, trigger_ref_id, level_id, skill_id FROM skl_user_has_level WHERE ".
997  $ilDB->in("user_id", $a_user_id, false, "integer")
998  );
999 
1000  $completion = array();
1001 
1002  while ($rec = $ilDB->fetchAssoc($set))
1003  {
1004  if ((!is_array($completion[$rec["user_id"]]) || !in_array($rec["trigger_ref_id"], $completion[$rec["user_id"]]))
1005  && ilBasicSkill::_lookupCertificate($rec["skill_id"], $rec["level_id"]))
1006  {
1007  if ($tree->isInTree($rec["trigger_ref_id"]))
1008  {
1009  $completion[$rec["user_id"]][] = $rec["trigger_ref_id"];
1010  }
1011  }
1012  }
1013 
1014  foreach ($a_user_id as $user_id)
1015  {
1016  if (!is_array($completion[$user_id]))
1017  {
1018  $completion[$user_id] = array();
1019  }
1020  }
1021  return $completion;
1022  }
static _lookupCertificate($a_skill_id, $a_skill_level_id)
Checks whether a skill level has a certificate or not.
global $ilDB
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTriggerTitleForCertificate()

ilBasicSkill::getTriggerTitleForCertificate (   $a_level_id)

Get trigger title for certificate.

Parameters

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

References ilObject\_lookupTitle(), and lookupLevelTrigger().

1083  {
1084 die("ilBasicSkill::getTriggerTitleForCertificate is deprecated.");
1085  $tr = ilBasicSkill::lookupLevelTrigger($a_level_id);
1086  return ilObject::_lookupTitle($tr["obj_id"]);
1087  }
static lookupLevelTrigger($a_id)
Lookup level trigger.
static _lookupTitle($a_id)
lookup object title
+ 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 1126 of file class.ilBasicSkill.php.

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

1127  {
1128  global $ilDB;
1129 
1130  include_once("./Services/Skill/classes/class.ilSkillUsage.php");
1132  "skl_user_skill_level", "user_id");
1133  }
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:

◆ lookupLevelAchievementDate()

ilBasicSkill::lookupLevelAchievementDate (   $a_user_id,
  $a_level_id,
  $a_self_eval = 0 
)

Lookup level achievement date.

Parameters

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

References $ilDB.

Referenced by ilSkillCertificateAdapter\getCertificateVariablesForPresentation().

966  {
967  global $ilDB;
968 die("ilBasicSkill::lookupLevelAchievementDate is deprecated.");
969  $set = $ilDB->query("SELECT user_id, status_date, trigger_ref_id, level_id, skill_id FROM skl_user_has_level WHERE ".
970  " user_id = ".$ilDB->quote($a_user_id, "integer").
971  " AND user_id = ".$ilDB->quote($a_user_id, "integer")
972  );
973  if ($rec = $ilDB->fetchAssoc($set))
974  {
975  return $rec["status_date"];
976  }
977 
978  return false;
979  }
global $ilDB
+ 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 206 of file class.ilBasicSkill.php.

References lookupLevelProperty().

207  {
208  return ilBasicSkill::lookupLevelProperty($a_id, "description");
209  }
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 178 of file class.ilBasicSkill.php.

References $ilDB.

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

179  {
180  global $ilDB;
181 
182  $set = $ilDB->query("SELECT $a_prop FROM skl_level WHERE ".
183  " id = ".$ilDB->quote($a_id, "integer")
184  );
185  $rec = $ilDB->fetchAssoc($set);
186  return $rec[$a_prop];
187  }
global $ilDB
+ Here is the caller graph for this function:

◆ lookupLevelsForTriggerRefId()

ilBasicSkill::lookupLevelsForTriggerRefId (   $a_ref_id)

Lookup levels for trigger.

Parameters

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

References $ilDB.

364  {
365  global $ilDB;
366 die("ilBasicSkill::lookupLevelsForTriggerRefId is deprecated.");
367  $set = $ilDB->query("SELECT id FROM skl_level WHERE ".
368  " trigger_ref_id = ".$ilDB->quote($a_ref_id, "integer")
369  );
370  $levels = array();
371  while ($rec = $ilDB->fetchAssoc($set))
372  {
373  $levels[] = $rec["id"];
374  }
375  return $levels;
376  }
global $ilDB

◆ lookupLevelSkillId()

static ilBasicSkill::lookupLevelSkillId (   $a_id)
static

Lookup level skill id.

Parameters
intlevel id
Returns
string skill id

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

References lookupLevelProperty().

Referenced by writeUserSkillLevelStatus().

232  {
233  return ilBasicSkill::lookupLevelProperty($a_id, "skill_id");
234  }
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 195 of file class.ilBasicSkill.php.

References lookupLevelProperty().

Referenced by ilSkillProfileGUI\confirmLevelAssignmentRemoval(), ilBasicSkillGUI\confirmLevelDeletion(), ilSkillProfileLevelsTableGUI\fillRow(), getLevelTitleForCertificate(), ilPersonalSkillsGUI\renderSuggestedResources(), ilBasicSkillTemplateGUI\setLevelHead(), and ilBasicSkillGUI\setLevelHead().

196  {
197  return ilBasicSkill::lookupLevelProperty($a_id, "title");
198  }
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:

◆ lookupLevelTrigger()

static ilBasicSkill::lookupLevelTrigger (   $a_id)
static

Lookup level trigger.

Parameters
intlevel id
Returns
array trigger ref id and obj id

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

References $ref_id, and lookupLevelProperty().

Referenced by ilBasicSkillGUI\editLevelTrigger(), and getTriggerTitleForCertificate().

218  {
219 die("ilBasicSkill::lookupLevelTrigger is deprecated.");
220  $ref_id = ilBasicSkill::lookupLevelProperty($a_id, "trigger_ref_id");
221  $obj_id = ilBasicSkill::lookupLevelProperty($a_id, "trigger_obj_id");
222  return array("ref_id" => $ref_id, "obj_id" => $obj_id);
223  }
static lookupLevelProperty($a_id, $a_prop)
Lookup level property.
$ref_id
Definition: sahs_server.php:39
+ 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 40 of file class.ilBasicSkill.php.

41  {
42  parent::read();
43  }

◆ updateAllUserSkillLevels()

static ilBasicSkill::updateAllUserSkillLevels ( )
static

Look for all skill level that have a trigger and update the user skill level information, if it has changed.

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

References $ilDB, ilObject\_hasUntrashedReference(), ilLPStatusWrapper\_lookupCompletedForObject(), ACHIEVED, and writeUserSkillLevelStatus().

414  {
415  global $ilDB;
416 die("ilBasicSkill::updateAllUserSkillLevels is deprecated.");
417  $set = $ilDB->query("SELECT id, trigger_obj_id FROM skl_level WHERE ".
418  " trigger_obj_id > ".$ilDB->quote(0, "integer")
419  );
420  while ($rec = $ilDB->fetchAssoc($set)) // all trigger objects
421  {
422  $skill_level_id = $rec["id"];
423  $tr_obj_id = $rec["trigger_obj_id"];
424 
425  if (ilObject::_hasUntrashedReference($tr_obj_id))
426  {
427  include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
428  $completed = ilLPStatusWrapper::_lookupCompletedForObject($tr_obj_id);
429  foreach ($completed as $user_id)
430  {
432  $user_id, ilBasicSkill::ACHIEVED);
433  }
434  }
435  }
436  }
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=0, $a_unique_identifier="")
Write skill level status.
_hasUntrashedReference($a_obj_id)
checks wether an object has at least one reference that is not in trash
global $ilDB
static _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
+ Here is the call graph for this function:

◆ updateLevelOrder()

ilBasicSkill::updateLevelOrder (   $order)

Update level order.

Parameters

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

References $ilDB.

300  {
301  global $ilDB;
302 
303  asort($order);
304 
305  $cnt = 1;
306  foreach ($order as $id => $o)
307  {
308  $ilDB->manipulate("UPDATE skl_level SET ".
309  " nr = ".$ilDB->quote($cnt, "integer").
310  " WHERE id = ".$ilDB->quote($id, "integer")
311  );
312  $cnt++;
313  }
314  }
global $ilDB

◆ updateSkillLevelsByTriggerRef()

static ilBasicSkill::updateSkillLevelsByTriggerRef (   $a_user_id,
  $a_ref_id 
)
static

Look for all skill level that have a trigger and update the user skill level information, if it has changed.

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

References $ilDB, ilObject\_hasUntrashedReference(), ilLPStatusWrapper\_lookupCompletedForObject(), ACHIEVED, and writeUserSkillLevelStatus().

443  {
444  global $ilDB;
445 die("ilBasicSkill::updateSkillLevelsByTriggerRef is deprecated.");
446  $set = $ilDB->query("SELECT id, trigger_obj_id FROM skl_level WHERE ".
447  " trigger_ref_id = ".$ilDB->quote($a_ref_id, "integer")
448  );
449  while ($rec = $ilDB->fetchAssoc($set)) // all trigger objects
450  {
451  $skill_level_id = $rec["id"];
452  $tr_obj_id = $rec["trigger_obj_id"];
453 
454  if (ilObject::_hasUntrashedReference($tr_obj_id))
455  {
456  include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
457  $completed = ilLPStatusWrapper::_lookupCompletedForObject($tr_obj_id);
458  foreach ($completed as $user_id)
459  {
460  if ($a_user_id == $user_id)
461  {
463  $user_id, ilBasicSkill::ACHIEVED);
464  }
465  }
466  }
467  }
468  }
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=0, $a_unique_identifier="")
Write skill level status.
_hasUntrashedReference($a_obj_id)
checks wether an object has at least one reference that is not in trash
global $ilDB
static _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
+ Here is the call graph for this function:

◆ writeLevelDescription()

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

Write level description.

Parameters
intlevel id
textlevel description

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

References writeLevelProperty().

271  {
272  ilBasicSkill::writeLevelProperty($a_id, "description", $a_description, "clob");
273  }
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 242 of file class.ilBasicSkill.php.

References $ilDB.

Referenced by writeLevelDescription(), writeLevelTitle(), and writeLevelTrigger().

243  {
244  global $ilDB;
245 
246  $ilDB->update("skl_level", array(
247  $a_prop => array($a_type, $a_value),
248  ), array(
249  "id" => array("integer", $a_id),
250  ));
251  }
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 259 of file class.ilBasicSkill.php.

References writeLevelProperty().

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

◆ writeLevelTrigger()

static ilBasicSkill::writeLevelTrigger (   $a_id,
  $a_trigger_ref_id 
)
static

Write trigger.

Parameters
intlevel id
textlevel description

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

References ilObject\_lookupObjId(), and writeLevelProperty().

Referenced by ilBasicSkillGUI\removeLevelTrigger(), and ilBasicSkillGUI\saveLevelTrigger().

282  {
283 die("ilBasicSkill::writeLevelTrigger is deprecated.");
284  $a_trigger_obj_id = 0;
285  if ($a_trigger_ref_id > 0)
286  {
287  $a_trigger_obj_id = ilObject::_lookupObjId($a_trigger_ref_id);
288  }
289  ilBasicSkill::writeLevelProperty($a_id, "trigger_ref_id", $a_trigger_ref_id, "integer");
290  ilBasicSkill::writeLevelProperty($a_id, "trigger_obj_id", $a_trigger_obj_id, "integer");
291  }
static writeLevelProperty($a_id, $a_prop, $a_value, $a_type)
Write level property.
static _lookupObjId($a_id)
+ Here is the call graph for this function:
+ Here is the caller 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 = 0,
  $a_unique_identifier = "" 
)
static

Write skill level status.

Parameters
intskill level id
intuser id
intstatus
stringany unique identifier set from the outside, if records for skill_id-tref_id-user_id-trigger_ref_id-self_eval-unique_identifier already exist the are removed from the history and the new entry is added The unique identifier is "unique per trigger object" not globally.

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

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

Referenced by ilTestSkillEvaluation\invokeSkillLevelTrigger(), ilPersonalSkill\saveSelfEvaluation(), updateAllUserSkillLevels(), updateSkillLevelsByTriggerRef(), ilSurveySkill\writeAppraiseeSkills(), and ilSurveySkillDeterminationGUI\writeSkills().

484  {
485  global $ilDB;
486 
487  $skill_id = ilBasicSkill::lookupLevelSkillId($a_level_id);
488  $trigger_ref_id = $a_trigger_ref_id;
489  $trigger_obj_id = ilObject::_lookupObjId($trigger_ref_id);
490  $trigger_title = ilObject::_lookupTitle($trigger_obj_id);
491  $trigger_type = ilObject::_lookupType($trigger_obj_id);
492 
493  $update = false;
494 
495  // check whether current skill user level is identical
496  // to the one that should be set (-> no change required)
497 /* $ilDB->setLimit(1);
498  $set = $ilDB->query("SELECT status, valid FROM skl_user_skill_level WHERE ".
499  "level_id = ".$ilDB->quote($a_level_id, "integer")." AND ".
500  "user_id = ".$ilDB->quote($a_user_id, "integer")." AND ".
501  "tref_id = ".$ilDB->quote((int) $a_tref_id, "integer")." AND ".
502  "trigger_obj_id = ".$ilDB->quote($trigger_obj_id, "integer")." AND ".
503  "self_eval = ".$ilDB->quote($a_self_eval, "integer").
504  " ORDER BY status_date DESC"
505  );
506  $rec = $ilDB->fetchAssoc($set);
507  if (!$rec["valid"] || $rec["status"] != $a_status)
508  {
509  $save = true;
510  }*/
511 
512  if ($a_self_eval)
513  {
514  $ilDB->setLimit(1);
515  $set = $ilDB->query("SELECT * FROM skl_user_skill_level WHERE ".
516  "skill_id = ".$ilDB->quote($skill_id, "integer")." AND ".
517  "user_id = ".$ilDB->quote($a_user_id, "integer")." AND ".
518  "tref_id = ".$ilDB->quote((int) $a_tref_id, "integer")." AND ".
519  "trigger_obj_id = ".$ilDB->quote($trigger_obj_id, "integer")." AND ".
520  "self_eval = ".$ilDB->quote($a_self_eval, "integer").
521  " ORDER BY status_date DESC"
522  );
523  $rec = $ilDB->fetchAssoc($set);
524  $status_day = substr($rec["status_date"], 0, 10);
525  $today = substr(ilUtil::now(), 0, 10);
526  if ($rec["valid"] && $rec["status"] == $a_status && $status_day == $today)
527  {
528  $update = true;
529  }
530  }
531 
532  if ($update)
533  {
534  $now = ilUtil::now();
535  $ilDB->manipulate("UPDATE skl_user_skill_level SET ".
536  " level_id = ".$ilDB->quote($a_level_id, "integer").",".
537  " status_date = ".$ilDB->quote($now, "timestamp").
538  " WHERE user_id = ".$ilDB->quote($a_user_id, "integer").
539  " AND status_date = ".$ilDB->quote($rec["status_date"], "timestamp").
540  " AND skill_id = ".$ilDB->quote($rec["skill_id"], "integer").
541  " AND status = ".$ilDB->quote($a_status, "integer").
542  " AND trigger_obj_id = ".$ilDB->quote($trigger_obj_id, "integer").
543  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
544  " AND self_eval = ".$ilDB->quote($a_self_eval, "integer")
545  );
546  }
547  else
548  {
549  if ($a_unique_identifier != "")
550  {
551  $ilDB->manipulate("DELETE FROM skl_user_skill_level WHERE ".
552  " user_id = ".$ilDB->quote($a_user_id, "integer").
553  " AND tref_id = ".$ilDB->quote($a_tref_id, "integer").
554  " AND skill_id = ".$ilDB->quote($skill_id, "integer").
555  " AND trigger_ref_id = ".$ilDB->quote($trigger_ref_id, "integer").
556  " AND trigger_obj_id = ".$ilDB->quote($trigger_obj_id, "integer").
557  " AND self_eval = ".$ilDB->quote($a_self_eval, "integer").
558  " AND unique_identifier = ".$ilDB->quote($a_unique_identifier, "text")
559  );
560  }
561 
562  $now = ilUtil::now();
563  $ilDB->manipulate("INSERT INTO skl_user_skill_level ".
564  "(level_id, user_id, tref_id, status_date, skill_id, status, valid, trigger_ref_id,".
565  "trigger_obj_id, trigger_obj_type, trigger_title, self_eval, unique_identifier) VALUES (".
566  $ilDB->quote($a_level_id, "integer").",".
567  $ilDB->quote($a_user_id, "integer").",".
568  $ilDB->quote((int) $a_tref_id, "integer").",".
569  $ilDB->quote($now, "timestamp").",".
570  $ilDB->quote($skill_id, "integer").",".
571  $ilDB->quote($a_status, "integer").",".
572  $ilDB->quote(1, "integer").",".
573  $ilDB->quote($trigger_ref_id, "integer").",".
574  $ilDB->quote($trigger_obj_id, "integer").",".
575  $ilDB->quote($trigger_type, "text").",".
576  $ilDB->quote($trigger_title, "text").",".
577  $ilDB->quote($a_self_eval, "integer").",".
578  $ilDB->quote($a_unique_identifier, "text").
579  ")");
580  }
581 
582  // fix (removed level_id and added skill id, since table should hold only
583  // one entry per skill)
584  $ilDB->manipulate("DELETE FROM skl_user_has_level WHERE "
585  ." user_id = ".$ilDB->quote($a_user_id, "integer")
586  ." AND skill_id = ".$ilDB->quote($skill_id, "integer")
587  ." AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer")
588  ." AND trigger_obj_id = ".$ilDB->quote($trigger_obj_id, "integer")
589  ." AND self_eval = ".$ilDB->quote($a_self_eval, "integer")
590  );
591 
592  if ($a_status == ilBasicSkill::ACHIEVED)
593  {
594  $ilDB->manipulate("INSERT INTO skl_user_has_level ".
595  "(level_id, user_id, tref_id, status_date, skill_id, trigger_ref_id, trigger_obj_id, trigger_obj_type, trigger_title, self_eval) VALUES (".
596  $ilDB->quote($a_level_id, "integer").",".
597  $ilDB->quote($a_user_id, "integer").",".
598  $ilDB->quote($a_tref_id, "integer").",".
599  $ilDB->quote($now, "timestamp").",".
600  $ilDB->quote($skill_id, "integer").",".
601  $ilDB->quote($trigger_ref_id, "integer").",".
602  $ilDB->quote($trigger_obj_id, "integer").",".
603  $ilDB->quote($trigger_type, "text").",".
604  $ilDB->quote($trigger_title, "text").",".
605  $ilDB->quote($a_self_eval, "integer").
606  ")");
607  }
608  }
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

◆ $id

ilBasicSkill::$id

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

◆ ACHIEVED

◆ EVAL_BY_ALL

const ilBasicSkill::EVAL_BY_ALL = 2

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

Referenced by ilPersonalSkillsGUI\getSkillHTML().

◆ EVAL_BY_OTHERS_

const ilBasicSkill::EVAL_BY_OTHERS_ = 0

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

◆ EVAL_BY_SELF

const ilBasicSkill::EVAL_BY_SELF = 1

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

◆ NOT_ACHIEVED

const ilBasicSkill::NOT_ACHIEVED = 0

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


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