22 $this->enable_log = $a_val;
32 return $this->enable_log;
45 echo
"<br>".$a_str; flush();
56 $a_end = 1000, $a_firstname =
"John", $a_lastname_base =
"Learner", $a_pw =
"learnerpw",
57 $a_email =
"de@de.de", $a_gender =
"m", $a_lang =
"en")
62 $this->
log(
"Creating Users");
63 for ($i = $a_start; $i <= $a_end; $i++)
65 $this->
log($a_login_base.$i);
67 $user->setLogin($a_login_base.$i);
68 $user->setFirstname($a_firstname);
69 $user->setLastname($a_lastname_base.
" ".$i);
70 $user->setGender($a_gender);
71 $user->setEmail($a_email);
74 $user->setTitle($user->getFullname());
75 $user->setDescription($user->getEmail());
76 $user->setLastPasswordChangeTS( time() );
77 $user->setActive(
true);
78 $user->setTimeLimitUnlimited(
true);
80 $user->setLanguage($a_lang);
81 $user->saveAsNew(
false);
83 $rbacadmin->assignUser(4, $user->getId(),
true);
93 function generateCategories($a_start = 1, $a_end = 500, $a_sub_cats_per_cat = 10, $a_title_base =
"Category",
94 $a_node =
"", $a_init_cnt =
true, $a_depth = 1)
98 include_once(
"./Modules/Category/classes/class.ilObjCategory.php");
102 $this->item_cnt = $a_start;
103 $this->max_depth = ceil(
log($a_end - $a_start, $a_sub_cats_per_cat));
106 if ($a_depth > $this->max_depth)
113 $a_node = $tree->getRootId();
114 $this->
log(
"Creating Categories");
119 while ($sub_cat_cnt < $a_sub_cats_per_cat && $this->item_cnt <= $a_end)
121 if ($this->item_cnt <= $a_end)
123 $this->
log($a_title_base.
" ".$this->item_cnt);
125 $new_cat->setTitle($a_title_base.
" ".$this->item_cnt);
127 $new_cat->createReference();
128 $new_cat->putInTree($a_node);
129 $new_cat->setPermissions($a_node);
130 $sub_cats[] = $new_cat;
136 foreach ($sub_cats as $sub_cat)
138 $this->
generateCategories($this->item_cnt, $a_end, $a_sub_cats_per_cat, $a_title_base,
139 $sub_cat->getRefId(),
false, $a_depth + 1);
150 $a_title_base =
"Course")
154 include_once(
"./Modules/Course/classes/class.ilObjCourse.php");
156 $this->
log(
"Creating Courses");
158 $a_current = $a_start;
161 $needed_cats = ceil(($a_end - $a_start + 1) / $a_course_per_cat);
164 $nodes = $tree->getFilteredSubTree($tree->getRootId(), array(
"adm",
"crs",
"fold",
"grp"));
167 foreach ($nodes as $node)
169 if ($node[
"type"] ==
"cat" && $a_current <= $a_end)
171 for ($i = 1; $i <= $a_course_per_cat; $i++)
173 if ($a_current <= $a_end)
175 $this->
log($a_title_base.
" ".$a_current);
177 $new_crs->setTitle($a_title_base.
" ".$a_current);
179 $new_crs->createReference();
180 $new_crs->putInTree($node[
"child"]);
181 $new_crs->setPermissions($node[
"child"]);
182 $new_crs->initCourseMemberObject();
197 function generateFiles($a_test_file, $a_files_per_course = 10, $a_title_base =
"File")
201 include_once(
"./Modules/File/classes/class.ilObjFile.php");
203 $this->
log(
"Creating Files");
205 $a_current = $a_start;
209 0, $limit = 1000000);
211 foreach ($crs_ref_ids as $rid)
213 for ($i = 1; $i <= $a_files_per_course; $i++)
215 $this->
log($a_title_base.
" ".$cnt);
217 $fileObj->setTitle($a_title_base.
" ".$cnt);
218 $fileObj->setFileName(
"file_".$cnt.
".txt");
220 $fileObj->createReference();
221 $fileObj->putInTree($rid);
222 $fileObj->setPermissions($rid);
223 $fileObj->createDirectory();
224 $fileObj->getUploadFile($a_test_file,
225 "file_".$cnt.
".txt");
240 include_once(
"./Services/Calendar/classes/class.ilDateTime.php");
241 include_once(
"./Services/Calendar/classes/class.ilCalendarEntry.php");
242 include_once(
"./Services/Calendar/classes/class.ilCalendarCategoryAssignments.php");
243 include_once(
"./Services/Calendar/classes/class.ilCalendarCategories.php");
245 $this->
log(
"Creating Calendar Entries");
248 0, $limit = 1000000);
250 foreach ($crs_ref_ids as $rid)
259 for ($i = 1; $i <= $a_num_per_course; $i++)
261 $this->
log(
"Event ".$cnt);
263 $entry->setStart($start);
264 $entry->setEnd($end);
265 $entry->setFullday(
false);
266 $entry->setTitle(
"Event ".$cnt);
268 $id = $entry->getEntryId();
270 $ass->addAssignment($cat_id);
292 if ($ilDB->getDBType() ==
"mysql")
294 $fp = fopen(
$file,
'r');
297 $this->
log(
"Error reading file $file.");
300 $this->
log(
"Dropping Tables.");
301 $set = $ilDB->query(
"SHOW tables");
302 while ($rec = $ilDB->fetchAssoc($set))
306 $ilDB->query(
"DROP TABLE ".$v);
310 $this->
log(
"Read Dump.");
314 $line = trim($this->
getline($fp,
"\n"));
316 if ($line !=
"" && substr($line,0,1)!=
"#"
317 && substr($line,0,1)!=
"-")
320 if (substr($line,-1)==
";")
323 $q .=
" ".substr($line,0,-1);
324 $r = $ilDB->query($q);
325 if (mysql_errno() > 0)
327 echo
"<br />ERROR: ".mysql_error().
344 if ($ilDB->getDBType() ==
"oracle")
346 include_once(
"./setup/sql/ilDBTemplate.php");
347 setupILIASDatabase();
357 while( !feof( $fp ) )
372 function createDump($a_target_file, $a_dump_cmd, $a_db_user =
"root",
373 $a_db_pw =
"", $a_db_name =
"loadtest")
375 $this->
log(
"Writing Dump");
376 $a_pw = ($a_pwd ==
"")
379 $cmd = $a_dump_cmd.
" -u".$a_db_user.
" ".$a_pw.
" --skip-lock-tables -Q --extended-insert=FALSE --default-character-set=utf8".
380 " --add-drop-table=FALSE --add-locks=FALSE --compatible=mysql40 ".$a_db_name.
" > ".$a_target_file;
381 if (!is_file($a_target_file))
383 $this->
log(
"Something went wrong when writing the dump:<br>".
$cmd);
397 $this->
log(
"Writing User CSV");
398 $set = $ilDB->query(
"SELECT * FROM usr_data");
399 $file = fopen($a_target_file,
"w");
402 while ($rec = $ilDB->fetchAssoc($set))
404 if (substr($rec[
"login"], 0, strlen($a_user_base_name)) == $a_user_base_name)
406 fwrite(
$file, $rec[
"login"].
"\n");
413 $this->
log(
"Could not write USer CSV.");
428 $this->
log(
"Writing Course CSV");
430 0, $limit = 1000000);
431 $file = fopen($a_target_file,
"w");
434 foreach ($crs_ref_ids as $r)
436 fwrite(
$file, $r.
"\n");
442 $this->
log(
"Could not write Course CSV.");
457 $this->
log(
"Writing Category CSV");
459 0, $limit = 1000000);
460 $file = fopen($a_target_file,
"w");
463 foreach ($cat_ref_ids as $r)
465 fwrite(
$file, $r.
"\n");
471 $this->
log(
"Could not write Category CSV.");
481 $a_start = 1, $a_end = 100)
485 $this->
log(
"Assigning Course Members");
486 $set = $ilDB->query(
"SELECT usr_id, login FROM usr_data WHERE ".
487 " login LIKE ".$ilDB->quote($a_user_login_base.
"%",
"text")
490 while ($rec = $ilDB->fetchAssoc($set))
492 $rest = substr($rec[
"login"], strlen($a_user_login_base));
493 if (is_numeric(
$rest) &&
494 ((
int)
$rest >= $a_start && (
int)
$rest <= $a_end))
496 $user_ids[] = $rec[
"usr_id"];
501 0, $limit = 1000000);
502 include_once
"./Modules/Course/classes/class.ilCourseParticipants.php";
503 foreach ($crs_ref_ids as $r)
507 foreach ($user_ids as $u)
509 $this->
log(
"$cnt: add user $u as member to course ".$crs_id);
510 $mem_obj->add($u, 1);
523 $this->
log(
"Remove Desktop Items.");
524 $ilDB->manipulate(
"DELETE FROM desktop_item");
534 $this->
log(
"Deactivate calendars on personal desktop.");
535 $set = $ilDB->query(
"SELECT * FROM usr_data");
536 while ($rec = $ilDB->fetchAssoc($set))
538 $ilDB->manipulate(
"REPLACE INTO il_block_setting ".
539 "(type, user_id, block_id, setting, value) VALUES (".
540 $ilDB->quote(
"pdcal",
"text").
",".
541 $ilDB->quote($rec[
"usr_id"],
"integer").
",".
542 $ilDB->quote(0,
"integer").
",".
543 $ilDB->quote(
"detail",
"text").
",".
544 $ilDB->quote(0,
"integer").