ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables 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)
 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)
 Get max levels per type. More...
 
 getAllLevelEntriesOfUser ($a_tref_id, $a_user_id=0)
 Get all level entries. More...
 
 getMaxLevelPerObject ($a_tref_id, $a_object_id, $a_user_id=0)
 Get max levels per object. More...
 
 lookupLevelAchievementDate ($a_user_id, $a_level_id)
 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)
 Write skill level status. More...
 
static getCompletionDateForTriggerRefId ($a_user_id, $a_ref_id=null)
 Get trigger completion. More...
 
static checkUserCertificateForTriggerRefId ($a_user_id, $a_ref_id)
 Get trigger completion. More...
 
static getTriggerOfAllCertificates ($a_user_id)
 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...
 

Data Fields

const ACHIEVED = 1
 
const NOT_ACHIEVED = 0
 
 $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 27 of file class.ilBasicSkill.php.

References ilSkillTreeNode\setType().

28  {
29  parent::ilSkillTreeNode($a_id);
30  $this->setType("skll");
31  }
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 951 of file class.ilBasicSkill.php.

Referenced by checkUserCertificateForTriggerRefId(), and getTriggerOfAllCertificates().

952  {
953  $certificatefile = CLIENT_WEB_DIR."/certificates/skill/".
954  ((int)$a_skill_id)."/".((int) $a_skill_level_id)."/certificate.xml";
955  if (@file_exists($certificatefile))
956  {
957  return true;
958  }
959  else
960  {
961  return false;
962  }
963  }
+ Here is the caller graph for this function:

◆ addLevel()

ilBasicSkill::addLevel (   $a_title,
  $a_description 
)

Add new level.

Parameters
stringtitle
stringdescription

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

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

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

◆ checkUserCertificateForTriggerRefId()

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

Get trigger completion.

Parameters

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

References $ref_id, and _lookupCertificate().

Referenced by ilObjSkillManagementGUI\testCert().

762  {
763  global $ilDB;
764 die("ilBasicSkill::checkUserCertificateForTriggerRefId is deprecated.");
765  if (!is_array($a_ref_id))
766  {
767  $a_ref_id = array($a_ref_id);
768  }
769  if (!is_array($a_user_id))
770  {
771  $a_user_id = array($a_user_id);
772  }
773  $set = $ilDB->query($q = "SELECT user_id, status_date, trigger_ref_id, level_id, skill_id FROM skl_user_has_level WHERE ".
774  $ilDB->in("user_id", $a_user_id, false, "integer")." AND ".
775  $ilDB->in("trigger_ref_id", $a_ref_id, false, "integer")
776  );
777 
778  $completion = array();
779 
780  $completion = array();
781  while ($rec = $ilDB->fetchAssoc($set))
782  {
783  if (!isset($completion[$rec["user_id"]][$rec["trigger_ref_id"]])
784  && ilBasicSkill::_lookupCertificate($rec["skill_id"], $rec["level_id"]))
785  {
786  $completion[$rec["user_id"]][$rec["trigger_ref_id"]] = true;
787  }
788  }
789 
790  foreach ($a_ref_id as $ref_id)
791  {
792  foreach ($a_user_id as $user_id)
793  {
794  if (!isset($completion[$user_id][$ref_id]))
795  {
796  $completion[$user_id][$ref_id] = false;
797  }
798  }
799  }
800  return $completion;
801 
802  }
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
+ 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 71 of file class.ilBasicSkill.php.

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

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

46  {
47  parent::create();
48  }

◆ delete()

ilBasicSkill::delete ( )

Delete skill.

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

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

◆ deleteLevel()

ilBasicSkill::deleteLevel (   $a_id)

Delete level.

Parameters

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

319  {
320  global $ilDB;
321 
322  $ilDB->manipulate("DELETE FROM skl_level WHERE "
323  ." id = ".$ilDB->quote($a_id, "integer")
324  );
325 
326  }

◆ fixLevelNumbering()

ilBasicSkill::fixLevelNumbering ( )

Fix level numbering.

Parameters

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

335  {
336  global $ilDB;
337 
338  $set = $ilDB->query("SELECT id, nr FROM skl_level WHERE ".
339  " skill_id = ".$ilDB->quote($this->getId(), "integer").
340  " ORDER BY nr ASC"
341  );
342  $cnt = 1;
343  while ($rec = $ilDB->fetchAssoc($set))
344  {
345  $ilDB->manipulate("UPDATE skl_level SET ".
346  " nr = ".$ilDB->quote($cnt, "integer").
347  " WHERE id = ".$ilDB->quote($rec["id"], "integer")
348  );
349  $cnt++;
350  }
351  }

◆ getAllLevelEntriesOfUser()

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

Get all level entries.

Parameters

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

References $ilUser.

598  {
599  global $ilDB, $ilUser;
600 
601  if ($a_user_id == 0)
602  {
603  $a_user_id = $ilUser->getId();
604  }
605 
606  $set = $ilDB->query($q = "SELECT * FROM skl_user_has_level ".
607  " WHERE skill_id = ".$ilDB->quote($this->getId(), "integer").
608  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
609  " AND user_id = ".$ilDB->quote($a_user_id, "integer").
610  " ORDER BY status_date DESC"
611  );
612 
613  $levels = array();
614  while ($rec = $ilDB->fetchAssoc($set))
615  {
616  $levels[] = $rec;
617  }
618  return $levels;
619  }
global $ilUser
Definition: imgupload.php:15

◆ getCompletionDateForTriggerRefId()

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

Get trigger completion.

Parameters

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

References $ref_id, and ilParticipants\_getMembershipByType().

Referenced by ilObjSkillManagementGUI\test().

666  {
667  global $ilDB;
668 die("ilBasicSkill::getCompletionDateForTriggerRefId is deprecated.");
669  if ($a_ref_id == "")
670  {
671  $a_ref_id = null;
672  }
673  else if (!is_array($a_ref_id))
674  {
675  $a_ref_id = array($a_ref_id);
676  }
677  if (!is_array($a_user_id))
678  {
679  $a_user_id = array($a_user_id);
680  }
681 
682  if ($a_ref_id != null)
683  {
684  if (!is_array($a_ref_id))
685  {
686  $a_ref_id = array($a_ref_id);
687  }
688 
689  $set = $ilDB->query($q = "SELECT user_id, status_date, trigger_ref_id FROM skl_user_has_level WHERE ".
690  $ilDB->in("user_id", $a_user_id, false, "integer")." AND ".
691  $ilDB->in("trigger_ref_id", $a_ref_id, false, "integer")
692  );
693 
694  $completion = array();
695  while ($rec = $ilDB->fetchAssoc($set))
696  {
697  if (!isset($completion[$rec["user_id"]][$rec["trigger_ref_id"]]))
698  {
699  $completion[$rec["user_id"]][$rec["trigger_ref_id"]] = $rec["status_date"];
700  }
701  else if ($rec["status_date"] < $completion[$rec["user_id"]][$rec["trigger_ref_id"]])
702  {
703  $completion[$rec["user_id"]][$rec["trigger_ref_id"]] = $rec["status_date"];
704  }
705  }
706 
707  foreach ($a_ref_id as $ref_id)
708  {
709  foreach ($a_user_id as $user_id)
710  {
711  if (!isset($completion[$user_id][$ref_id]))
712  {
713  $completion[$user_id][$ref_id] = false;
714  }
715  }
716  }
717  }
718  else
719  {
720  $completion = array();
721  foreach ($a_user_id as $user_id)
722  {
723  include_once 'Services/Membership/classes/class.ilParticipants.php';
724  $a_ref_id = ilParticipants::_getMembershipByType($user_id, 'crs', true);
725 
726  $set = $ilDB->query($q = "SELECT user_id, status_date, trigger_ref_id FROM skl_user_has_level WHERE ".
727  "user_id = ".$ilDB->quote($user_id, "integer")." AND ".
728  $ilDB->in("trigger_ref_id", $a_ref_id, false, "integer")
729  );
730 
731  while ($rec = $ilDB->fetchAssoc($set))
732  {
733  if (!isset($completion[$user_id][$rec["trigger_ref_id"]]))
734  {
735  $completion[$user_id][$rec["trigger_ref_id"]] = $rec["status_date"];
736  }
737  else if ($rec["status_date"] < $completion[$user_id][$rec["trigger_ref_id"]])
738  {
739  $completion[$user_id][$rec["trigger_ref_id"]] = $rec["status_date"];
740  }
741  }
742  foreach ($a_ref_id as $ref_id)
743  {
744  if (!isset($completion[$user_id][$ref_id]))
745  {
746  $completion[$user_id][$ref_id] = false;
747  }
748  }
749  }
750 
751  }
752  return $completion;
753  }
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
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLevelData()

ilBasicSkill::getLevelData (   $a_id = 0)

Get level data.

Returns
array level data

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

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

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

◆ getLevelTitleForCertificate()

ilBasicSkill::getLevelTitleForCertificate (   $a_level_id)

Get title for certificate.

Parameters

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

References lookupLevelTitle().

916  {
917 die("ilBasicSkill::getLevelTitleForCertificate is deprecated.");
918  return ilBasicSkill::lookupLevelTitle($a_level_id);
919  }
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 126 of file class.ilBasicSkill.php.

Referenced by addLevel().

127  {
128  global $ilDB;
129 
130  $set = $ilDB->query("SELECT MAX(nr) mnr FROM skl_level WHERE ".
131  " skill_id = ".$ilDB->quote($this->getId(), "integer")
132  );
133  $rec = $ilDB->fetchAssoc($set);
134  return (int) $rec["mnr"];
135  }
+ Here is the caller graph for this function:

◆ getMaxLevelPerObject()

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

Get max levels per object.

Parameters

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

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

628  {
629  global $ilDB, $ilUser;
630 
631  if ($a_user_id == 0)
632  {
633  $a_user_id = $ilUser->getId();
634  }
635 
636  $set = $ilDB->query($q = "SELECT level_id FROM skl_user_has_level ".
637  " WHERE trigger_obj_id = ".$ilDB->quote($a_object_id, "integer").
638  " AND skill_id = ".$ilDB->quote($this->getId(), "integer").
639  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
640  " AND user_id = ".$ilDB->quote($a_user_id, "integer")
641  );
642 
643  $has_level = array();
644  while ($rec = $ilDB->fetchAssoc($set))
645  {
646  $has_level[$rec["level_id"]] = true;
647  }
648  $max_level = 0;
649  foreach ($this->getLevelData() as $l)
650  {
651  if (isset($has_level[$l["id"]]))
652  {
653  $max_level = $l["id"];
654  }
655  }
656  return $max_level;
657  }
getLevelData($a_id=0)
Get level data.
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:

◆ getMaxLevelPerType()

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

Get max levels per type.

Parameters

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

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

560  {
561  global $ilDB, $ilUser;
562 
563  if ($a_user_id == 0)
564  {
565  $a_user_id = $ilUser->getId();
566  }
567 
568  $set = $ilDB->query($q = "SELECT level_id FROM skl_user_has_level ".
569  " WHERE trigger_obj_type = ".$ilDB->quote($a_type, "text").
570  " AND skill_id = ".$ilDB->quote($this->getId(), "integer").
571  " AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer").
572  " AND user_id = ".$ilDB->quote($a_user_id, "integer")
573  );
574 
575  $has_level = array();
576  while ($rec = $ilDB->fetchAssoc($set))
577  {
578  $has_level[$rec["level_id"]] = true;
579  }
580  $max_level = 0;
581  foreach ($this->getLevelData() as $l)
582  {
583  if (isset($has_level[$l["id"]]))
584  {
585  $max_level = $l["id"];
586  }
587  }
588  return $max_level;
589  }
getLevelData($a_id=0)
Get level data.
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:

◆ getShortTitleForCertificate()

ilBasicSkill::getShortTitleForCertificate ( )

Get short title for certificate.

Parameters

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

941  {
942  return "Skill";
943  }

◆ getSkillForLevelId()

ilBasicSkill::getSkillForLevelId (   $a_level_id)

Get skill for level id.

Parameters

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

References ilSkillTreeNode\isInTree().

381  {
382  global $ilDB;
383 
384  $set = $ilDB->query("SELECT * FROM skl_level WHERE ".
385  " id = ".$ilDB->quote($a_level_id, "integer")
386  );
387  $skill = null;
388  if ($rec = $ilDB->fetchAssoc($set))
389  {
390  if (ilSkillTreeNode::isInTree($rec["skill_id"]))
391  {
392  $skill = new ilBasicSkill($rec["skill_id"]);
393  }
394  }
395  return $skill;
396  }
static isInTree($a_id)
Is id in tree?
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 875 of file class.ilBasicSkill.php.

Referenced by ilObjSkillManagementGUI\testLevels().

876  {
877  global $ilDB;
878 die("ilBasicSkill::getSkillLevelsForTrigger is deprecated.");
879  $set = $ilDB->query($q = "SELECT id FROM skl_level".
880  " WHERE trigger_ref_id = ".$ilDB->quote($a_ref_id, "integer"));
881 
882  $skill_levels = array();
883  while ($rec = $ilDB->fetchAssoc($set))
884  {
885  $skill_levels[] = $rec["id"];
886  }
887 
888  return $skill_levels;
889 
890  }
+ Here is the caller graph for this function:

◆ getTitleForCertificate()

ilBasicSkill::getTitleForCertificate ( )

Get title for certificate.

Parameters

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

References ilSkillTreeNode\getTitle().

905  {
906  return $this->getTitle();
907  }
+ Here is the call graph for this function:

◆ getTriggerOfAllCertificates()

static ilBasicSkill::getTriggerOfAllCertificates (   $a_user_id)
static

Get trigger completion.

Parameters

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

References _lookupCertificate().

Referenced by ilObjSkillManagementGUI\testAllCert().

833  {
834  global $ilDB, $tree;
835 die("ilBasicSkill::getTriggerOfAllCertificates is deprecated.");
836  if (!is_array($a_user_id))
837  {
838  $a_user_id = array($a_user_id);
839  }
840 
841  $set = $ilDB->query($q = "SELECT user_id, status_date, trigger_ref_id, level_id, skill_id FROM skl_user_has_level WHERE ".
842  $ilDB->in("user_id", $a_user_id, false, "integer")
843  );
844 
845  $completion = array();
846 
847  while ($rec = $ilDB->fetchAssoc($set))
848  {
849  if ((!is_array($completion[$rec["user_id"]]) || !in_array($rec["trigger_ref_id"], $completion[$rec["user_id"]]))
850  && ilBasicSkill::_lookupCertificate($rec["skill_id"], $rec["level_id"]))
851  {
852  if ($tree->isInTree($rec["trigger_ref_id"]))
853  {
854  $completion[$rec["user_id"]][] = $rec["trigger_ref_id"];
855  }
856  }
857  }
858 
859  foreach ($a_user_id as $user_id)
860  {
861  if (!is_array($completion[$user_id]))
862  {
863  $completion[$user_id] = array();
864  }
865  }
866  return $completion;
867  }
static _lookupCertificate($a_skill_id, $a_skill_level_id)
Checks whether a skill level has a certificate or not.
+ 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 927 of file class.ilBasicSkill.php.

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

928  {
929 die("ilBasicSkill::getTriggerTitleForCertificate is deprecated.");
930  $tr = ilBasicSkill::lookupLevelTrigger($a_level_id);
931  return ilObject::_lookupTitle($tr["obj_id"]);
932  }
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 971 of file class.ilBasicSkill.php.

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

972  {
973  global $ilDB;
974 
975  include_once("./Services/Skill/classes/class.ilSkillUsage.php");
977  "skl_user_skill_level", "user_id");
978  }
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.
+ Here is the call graph for this function:

◆ lookupLevelAchievementDate()

ilBasicSkill::lookupLevelAchievementDate (   $a_user_id,
  $a_level_id 
)

Lookup level achievement date.

Parameters

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

Referenced by ilSkillCertificateAdapter\getCertificateVariablesForPresentation().

811  {
812  global $ilDB;
813 die("ilBasicSkill::lookupLevelAchievementDate is deprecated.");
814  $set = $ilDB->query("SELECT user_id, status_date, trigger_ref_id, level_id, skill_id FROM skl_user_has_level WHERE ".
815  " user_id = ".$ilDB->quote($a_user_id, "integer").
816  " AND user_id = ".$ilDB->quote($a_user_id, "integer")
817  );
818  if ($rec = $ilDB->fetchAssoc($set))
819  {
820  return $rec["status_date"];
821  }
822 
823  return false;
824  }
+ 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 202 of file class.ilBasicSkill.php.

References lookupLevelProperty().

203  {
204  return ilBasicSkill::lookupLevelProperty($a_id, "description");
205  }
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 174 of file class.ilBasicSkill.php.

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

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

◆ lookupLevelsForTriggerRefId()

ilBasicSkill::lookupLevelsForTriggerRefId (   $a_ref_id)

Lookup levels for trigger.

Parameters

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

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

◆ lookupLevelSkillId()

static ilBasicSkill::lookupLevelSkillId (   $a_id)
static

Lookup level skill id.

Parameters
intlevel id
Returns
string skill id

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

References lookupLevelProperty().

Referenced by writeUserSkillLevelStatus().

228  {
229  return ilBasicSkill::lookupLevelProperty($a_id, "skill_id");
230  }
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 191 of file class.ilBasicSkill.php.

References lookupLevelProperty().

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

192  {
193  return ilBasicSkill::lookupLevelProperty($a_id, "title");
194  }
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 213 of file class.ilBasicSkill.php.

References $ref_id, and lookupLevelProperty().

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

214  {
215 die("ilBasicSkill::lookupLevelTrigger is deprecated.");
216  $ref_id = ilBasicSkill::lookupLevelProperty($a_id, "trigger_ref_id");
217  $obj_id = ilBasicSkill::lookupLevelProperty($a_id, "trigger_obj_id");
218  return array("ref_id" => $ref_id, "obj_id" => $obj_id);
219  }
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 36 of file class.ilBasicSkill.php.

37  {
38  parent::read();
39  }

◆ 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 409 of file class.ilBasicSkill.php.

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

410  {
411  global $ilDB;
412 die("ilBasicSkill::updateAllUserSkillLevels is deprecated.");
413  $set = $ilDB->query("SELECT id, trigger_obj_id FROM skl_level WHERE ".
414  " trigger_obj_id > ".$ilDB->quote(0, "integer")
415  );
416  while ($rec = $ilDB->fetchAssoc($set)) // all trigger objects
417  {
418  $skill_level_id = $rec["id"];
419  $tr_obj_id = $rec["trigger_obj_id"];
420 
421  if (ilObject::_hasUntrashedReference($tr_obj_id))
422  {
423  include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
424  $completed = ilLPStatusWrapper::_lookupCompletedForObject($tr_obj_id);
425  foreach ($completed as $user_id)
426  {
428  $user_id, ilBasicSkill::ACHIEVED);
429  }
430  }
431  }
432  }
static writeUserSkillLevelStatus($a_level_id, $a_user_id, $a_trigger_ref_id, $a_tref_id=0, $a_status=ilBasicSkill::ACHIEVED, $a_force=false)
Write skill level status.
_hasUntrashedReference($a_obj_id)
checks wether an object has at least one reference that is not in trash
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 295 of file class.ilBasicSkill.php.

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

◆ 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 438 of file class.ilBasicSkill.php.

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

439  {
440  global $ilDB;
441 die("ilBasicSkill::updateSkillLevelsByTriggerRef is deprecated.");
442  $set = $ilDB->query("SELECT id, trigger_obj_id FROM skl_level WHERE ".
443  " trigger_ref_id = ".$ilDB->quote($a_ref_id, "integer")
444  );
445  while ($rec = $ilDB->fetchAssoc($set)) // all trigger objects
446  {
447  $skill_level_id = $rec["id"];
448  $tr_obj_id = $rec["trigger_obj_id"];
449 
450  if (ilObject::_hasUntrashedReference($tr_obj_id))
451  {
452  include_once("./Services/Tracking/classes/class.ilLPStatusWrapper.php");
453  $completed = ilLPStatusWrapper::_lookupCompletedForObject($tr_obj_id);
454  foreach ($completed as $user_id)
455  {
456  if ($a_user_id == $user_id)
457  {
459  $user_id, ilBasicSkill::ACHIEVED);
460  }
461  }
462  }
463  }
464  }
static writeUserSkillLevelStatus($a_level_id, $a_user_id, $a_trigger_ref_id, $a_tref_id=0, $a_status=ilBasicSkill::ACHIEVED, $a_force=false)
Write skill level status.
_hasUntrashedReference($a_obj_id)
checks wether an object has at least one reference that is not in trash
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 266 of file class.ilBasicSkill.php.

References writeLevelProperty().

267  {
268  ilBasicSkill::writeLevelProperty($a_id, "description", $a_description, "clob");
269  }
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 238 of file class.ilBasicSkill.php.

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

239  {
240  global $ilDB;
241 
242  $ilDB->update("skl_level", array(
243  $a_prop => array($a_type, $a_value),
244  ), array(
245  "id" => array("integer", $a_id),
246  ));
247  }
+ 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 255 of file class.ilBasicSkill.php.

References writeLevelProperty().

256  {
257  ilBasicSkill::writeLevelProperty($a_id, "title", $a_title, "text");
258  }
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 277 of file class.ilBasicSkill.php.

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

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

278  {
279 die("ilBasicSkill::writeLevelTrigger is deprecated.");
280  $a_trigger_obj_id = 0;
281  if ($a_trigger_ref_id > 0)
282  {
283  $a_trigger_obj_id = ilObject::_lookupObjId($a_trigger_ref_id);
284  }
285  ilBasicSkill::writeLevelProperty($a_id, "trigger_ref_id", $a_trigger_ref_id, "integer");
286  ilBasicSkill::writeLevelProperty($a_id, "trigger_obj_id", $a_trigger_obj_id, "integer");
287  }
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 
)
static

Write skill level status.

Parameters
intskill level id
intuser id
intstatus

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

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

Referenced by updateAllUserSkillLevels(), updateSkillLevelsByTriggerRef(), ilSurveySkill\writeAppraiseeSkills(), and ilSurveySkillDeterminationGUI\writeSkills().

475  {
476  global $ilDB;
477 
478  $skill_id = ilBasicSkill::lookupLevelSkillId($a_level_id);
479  $trigger_ref_id = $a_trigger_ref_id;
480  $trigger_obj_id = ilObject::_lookupObjId($trigger_ref_id);
481  $trigger_title = ilObject::_lookupTitle($trigger_obj_id);
482  $trigger_type = ilObject::_lookupType($trigger_obj_id);
483 
484  $save = false;
485 
486  if ($a_force)
487  {
488  $save = true;
489  }
490  else
491  {
492  // check whether current skill user level is identical
493  // to the one that should be set (-> no change required)
494  $ilDB->setLimit(1);
495  $set = $ilDB->query("SELECT status, valid FROM skl_user_skill_level WHERE ".
496  "level_id = ".$ilDB->quote($a_level_id, "integer")." AND ".
497  "user_id = ".$ilDB->quote($a_user_id, "integer")." AND ".
498  "tref_id = ".$ilDB->quote((int) $a_tref_id, "integer")." AND ".
499  "trigger_obj_id = ".$ilDB->quote($trigger_obj_id, "integer").
500  " ORDER BY status_date DESC"
501  );
502  $rec = $ilDB->fetchAssoc($set);
503  if (!$rec["valid"] || $rec["status"] != $a_status)
504  {
505  $save = true;
506  }
507  }
508 
509  if ($save)
510  {
511  $now = ilUtil::now();
512  $ilDB->manipulate("INSERT INTO skl_user_skill_level ".
513  "(level_id, user_id, tref_id, status_date, skill_id, status, valid, trigger_ref_id,".
514  "trigger_obj_id, trigger_obj_type, trigger_title) VALUES (".
515  $ilDB->quote($a_level_id, "integer").",".
516  $ilDB->quote($a_user_id, "integer").",".
517  $ilDB->quote((int) $a_tref_id, "integer").",".
518  $ilDB->quote($now, "timestamp").",".
519  $ilDB->quote($skill_id, "integer").",".
520  $ilDB->quote($a_status, "integer").",".
521  $ilDB->quote(1, "integer").",".
522  $ilDB->quote($trigger_ref_id, "integer").",".
523  $ilDB->quote($trigger_obj_id, "integer").",".
524  $ilDB->quote($trigger_type, "text").",".
525  $ilDB->quote($trigger_title, "text").
526  ")");
527 
528  $ilDB->manipulate("DELETE FROM skl_user_has_level WHERE "
529  ." user_id = ".$ilDB->quote($a_user_id, "integer")
530  ." AND level_id = ".$ilDB->quote($a_level_id, "integer")
531  ." AND tref_id = ".$ilDB->quote((int) $a_tref_id, "integer")
532  ." AND trigger_obj_id = ".$ilDB->quote($trigger_obj_id, "integer")
533  );
534 
535  if ($a_status == ilBasicSkill::ACHIEVED)
536  {
537  $ilDB->manipulate("INSERT INTO skl_user_has_level ".
538  "(level_id, user_id, tref_id, status_date, skill_id, trigger_ref_id, trigger_obj_id, trigger_obj_type, trigger_title) VALUES (".
539  $ilDB->quote($a_level_id, "integer").",".
540  $ilDB->quote($a_user_id, "integer").",".
541  $ilDB->quote($a_tref_id, "integer").",".
542  $ilDB->quote($now, "timestamp").",".
543  $ilDB->quote($skill_id, "integer").",".
544  $ilDB->quote($trigger_ref_id, "integer").",".
545  $ilDB->quote($trigger_obj_id, "integer").",".
546  $ilDB->quote($trigger_type, "text").",".
547  $ilDB->quote($trigger_title, "text").
548  ")");
549  }
550  }
551  }
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
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 21 of file class.ilBasicSkill.php.

◆ ACHIEVED

◆ 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: