19 declare(strict_types=1);
27 protected \ilDBInterface
$db;
36 $this->db = (
$db) ?: $DIC->database();
37 $this->factory_service = (
$factory_service) ?: $DIC->skills()->internal()->factory();
43 public function getAll(
int $profile_id): array
48 "SELECT * FROM skl_profile_level " .
49 " WHERE profile_id = " .
$ilDB->quote($profile_id,
"integer")
53 while ($rec =
$ilDB->fetchAssoc($set)) {
65 "SELECT * FROM skl_profile_level " .
66 " WHERE profile_id = " .
$ilDB->quote($profile_id,
"integer") .
67 " AND base_skill_id = " .
$ilDB->quote($base_skill_id,
"integer") .
68 " AND tref_id = " .
$ilDB->quote($tref_id,
"integer")
72 if ($rec =
$ilDB->fetchAssoc($set)) {
81 $rec[
"profile_id"] = (
int) $rec[
"profile_id"];
82 $rec[
"base_skill_id"] = (
int) $rec[
"base_skill_id"];
83 $rec[
"tref_id"] = (
int) $rec[
"tref_id"];
84 $rec[
"level_id"] = (
int) $rec[
"level_id"];
85 $rec[
"order_nr"] = (
int) $rec[
"order_nr"];
87 return $this->factory_service->profile()->profileLevel(
89 $rec[
"base_skill_id"],
102 array(
"profile_id" => array(
"integer", $skill_level_obj->
getProfileId()),
103 "tref_id" => array(
"integer", $skill_level_obj->
getTrefId()),
104 "base_skill_id" => array(
"integer", $skill_level_obj->
getBaseSkillId())
106 array(
"order_nr" => array(
"integer", $skill_level_obj->
getOrderNr()),
107 "level_id" => array(
"integer", $skill_level_obj->
getLevelId())
117 "DELETE FROM skl_profile_level WHERE " .
118 " base_skill_id = " .
$ilDB->quote($skill_level_obj->getBaseSkillId(),
"integer") .
119 " AND tref_id = " .
$ilDB->quote($skill_level_obj->getTrefId(),
"integer") .
120 " AND level_id = " .
$ilDB->quote($skill_level_obj->getLevelId(),
"integer") .
121 " AND order_nr = " .
$ilDB->quote($skill_level_obj->getOrderNr(),
"integer")
130 "DELETE FROM skl_profile_level WHERE " .
131 " profile_id = " .
$ilDB->quote($profile_id,
"integer")
139 if (!$is_reference) {
141 "DELETE FROM skl_profile_level WHERE " .
142 " base_skill_id = " .
$ilDB->quote($skill_node_id,
"integer")
146 "DELETE FROM skl_profile_level WHERE " .
147 " tref_id = " .
$ilDB->quote($skill_node_id,
"integer")
157 foreach ($order as
$id => $o) {
158 $id_arr = explode(
"_",
$id);
160 "UPDATE skl_profile_level SET " .
161 " order_nr = " .
$ilDB->quote(($cnt * 10),
"integer") .
162 " WHERE base_skill_id = " .
$ilDB->quote($id_arr[0],
"integer") .
163 " AND tref_id = " .
$ilDB->quote($id_arr[1],
"integer") .
164 " AND profile_id = " .
$ilDB->quote($profile_id,
"integer")
175 "SELECT profile_id, base_skill_id, tref_id, order_nr FROM skl_profile_level WHERE " .
176 " profile_id = " .
$ilDB->quote($profile_id,
"integer") .
177 " ORDER BY order_nr ASC" 180 while ($rec =
$ilDB->fetchAssoc($set)) {
182 "UPDATE skl_profile_level SET " .
183 " order_nr = " .
$ilDB->quote(($cnt * 10),
"integer") .
184 " WHERE profile_id = " .
$ilDB->quote($rec[
"profile_id"],
"integer") .
185 " AND base_skill_id = " .
$ilDB->quote($rec[
"base_skill_id"],
"integer") .
186 " AND tref_id = " .
$ilDB->quote($rec[
"tref_id"],
"integer")
197 "SELECT MAX(order_nr) mnr FROM skl_profile_level WHERE " .
198 " profile_id = " .
$ilDB->quote($profile_id,
"integer")
200 $rec =
$ilDB->fetchAssoc($set);
201 return (
int) $rec[
"mnr"];
fixSkillOrderNumbering(int $profile_id)
__construct(?\ilDBInterface $db=null, ?Service\SkillInternalFactoryService $factory_service=null)
deleteAllForProfile(int $profile_id)
createOrUpdate(SkillProfileLevel $skill_level_obj)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
Service SkillInternalFactoryService $factory_service
getFromRecord(array $rec)
Skill internal factory service.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
getMaxOrderNr(int $profile_id)
deleteAllForSkill(int $skill_node_id, bool $is_reference)
updateSkillOrder(int $profile_id, array $order)