ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilObjWiki.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
4
8include_once "./Services/Object/classes/class.ilObject.php";
9include_once "./Modules/Wiki/classes/class.ilWikiUtil.php";
10include_once "./Services/AdvancedMetaData/interfaces/interface.ilAdvancedMetaDataSubItems.php";
11
21{
22 protected $online = false;
23 protected $public_notes = true;
24 protected $empty_page_templ = true;
25 protected $link_md_values = false;
26
33 function ilObjWiki($a_id = 0,$a_call_by_reference = true)
34 {
35 $this->type = "wiki";
36 $this->ilObject($a_id,$a_call_by_reference);
37 }
38
44 function setOnline($a_online)
45 {
46 $this->online = $a_online;
47 }
48
54 function getOnline()
55 {
56 return $this->online;
57 }
58
64 function setRatingOverall($a_rating)
65 {
66 $this->rating_overall = (bool)$a_rating;
67 }
68
75 {
76 return $this->rating_overall;
77 }
78
84 function setRating($a_rating)
85 {
86 $this->rating = (bool)$a_rating;
87 }
88
94 function getRating()
95 {
96 return $this->rating;
97 }
98
104 function setRatingAsBlock($a_rating)
105 {
106 $this->rating_block = (bool)$a_rating;
107 }
108
115 {
116 return $this->rating_block;
117 }
118
124 function setRatingForNewPages($a_rating)
125 {
126 $this->rating_new_pages = (bool)$a_rating;
127 }
128
135 {
136 return $this->rating_new_pages;
137 }
138
144 function setRatingCategories($a_rating)
145 {
146 $this->rating_categories = (bool)$a_rating;
147 }
148
155 {
156 return $this->rating_categories;
157 }
158
162 public function setPublicNotes($a_val)
163 {
164 $this->public_notes = $a_val;
165 }
166
170 public function getPublicNotes()
171 {
172 return $this->public_notes;
173 }
174
180 public function setImportantPages($a_val)
181 {
182 $this->imp_pages = $a_val;
183 }
184
190 public function getImportantPages()
191 {
192 return $this->imp_pages;
193 }
194
200 function setStartPage($a_startpage)
201 {
202 $this->startpage = ilWikiUtil::makeDbTitle($a_startpage);
203 }
204
210 function getStartPage()
211 {
212 return $this->startpage;
213 }
214
220 function setShortTitle($a_shorttitle)
221 {
222 $this->shorttitle = $a_shorttitle;
223 }
224
230 function getShortTitle()
231 {
232 return $this->shorttitle;
233 }
234
240 function setIntroduction($a_introduction)
241 {
242 $this->introduction = $a_introduction;
243 }
244
251 {
252 return $this->introduction;
253 }
254
259 {
260 return $this->style_id;
261 }
262
266 function setStyleSheetId($a_style_id)
267 {
268 $this->style_id = $a_style_id;
269 }
270
276 public function setPageToc($a_val)
277 {
278 $this->page_toc = $a_val;
279 }
280
286 public function getPageToc()
287 {
288 return $this->page_toc;
289 }
290
296 function setEmptyPageTemplate($a_val)
297 {
298 $this->empty_page_templ = $a_val;
299 }
300
307 {
309 }
310
316 function setLinkMetadataValues($a_val)
317 {
318 $this->link_md_values = $a_val;
319 }
320
327 {
329 }
330
336 static function isOnlineHelpWiki($a_ref_id)
337 {
338 if ($a_ref_id > 0 && $a_ref_id == OH_REF_ID)
339 {
340// return true;
341 }
342 return false;
343 }
344
348 function create($a_prevent_start_page_creation = false)
349 {
350 global $ilDB;
351
352 parent::create();
353
354 $ilDB->insert("il_wiki_data", array(
355 "id" => array("integer", $this->getId()),
356 "is_online" => array("integer", (int) $this->getOnline()),
357 "startpage" => array("text", $this->getStartPage()),
358 "short" => array("text", $this->getShortTitle()),
359 "rating" => array("integer", (int) $this->getRating()),
360 "public_notes" => array("integer", (int) $this->getPublicNotes()),
361 "introduction" => array("clob", $this->getIntroduction()),
362 "empty_page_templ" => array("integer", (int) $this->getEmptyPageTemplate()),
363 ));
364
365 // create start page
366 if ($this->getStartPage() != "" && !$a_prevent_start_page_creation)
367 {
368 include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
369 $start_page = new ilWikiPage();
370 $start_page->setWikiId($this->getId());
371 $start_page->setTitle($this->getStartPage());
372 $start_page->create();
373 }
374
375 if (((int) $this->getStyleSheetId()) > 0)
376 {
377 include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
379 }
380 }
381
388 function update($a_prevent_start_page_creation = false)
389 {
390 global $ilDB;
391
392 if (!parent::update())
393 {
394 return false;
395 }
396
397 $ilDB->update("il_wiki_data", array(
398 "is_online" => array("integer", $this->getOnline()),
399 "startpage" => array("text", $this->getStartPage()),
400 "short" => array("text", $this->getShortTitle()),
401 "rating_overall" => array("integer", $this->getRatingOverall()),
402 "rating" => array("integer", $this->getRating()),
403 "rating_side" => array("integer", (bool)$this->getRatingAsBlock()), // #13455
404 "rating_new" => array("integer", $this->getRatingForNewPages()),
405 "rating_ext" => array("integer", $this->getRatingCategories()),
406 "public_notes" => array("integer", $this->getPublicNotes()),
407 "introduction" => array("clob", $this->getIntroduction()),
408 "imp_pages" => array("integer", $this->getImportantPages()),
409 "page_toc" => array("integer", $this->getPageToc()),
410 "link_md_values" => array("integer", $this->getLinkMetadataValues()),
411 "empty_page_templ" => array("integer", $this->getEmptyPageTemplate())
412 ), array(
413 "id" => array("integer", $this->getId())
414 ));
415
416 // check whether start page exists
417 include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
418 if (!ilWikiPage::exists($this->getId(), $this->getStartPage())
419 && !$a_prevent_start_page_creation)
420 {
421 $start_page = new ilWikiPage();
422 $start_page->setWikiId($this->getId());
423 $start_page->setTitle($this->getStartPage());
424 $start_page->create();
425 }
426
427 include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
429
430 return true;
431 }
432
436 function read()
437 {
438 global $ilDB;
439
440 parent::read();
441
442 $query = "SELECT * FROM il_wiki_data WHERE id = ".
443 $ilDB->quote($this->getId(), "integer");
444 $set = $ilDB->query($query);
445 $rec = $ilDB->fetchAssoc($set);
446
447 $this->setOnline($rec["is_online"]);
448 $this->setStartPage($rec["startpage"]);
449 $this->setShortTitle($rec["short"]);
450 $this->setRatingOverall($rec["rating_overall"]);
451 $this->setRating($rec["rating"]);
452 $this->setRatingAsBlock($rec["rating_side"]);
453 $this->setRatingForNewPages($rec["rating_new"]);
454 $this->setRatingCategories($rec["rating_ext"]);
455 $this->setPublicNotes($rec["public_notes"]);
456 $this->setIntroduction($rec["introduction"]);
457 $this->setImportantPages($rec["imp_pages"]);
458 $this->setPageToc($rec["page_toc"]);
459 $this->setEmptyPageTemplate($rec["empty_page_templ"]);
460 $this->setLinkMetadataValues($rec["link_md_values"]);
461
462 include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
464
465 }
466
467
474 function delete()
475 {
476 global $ilDB;
477
478 // always call parent delete function first!!
479 if (!parent::delete())
480 {
481 return false;
482 }
483
484 // delete record of table il_wiki_data
485 $query = "DELETE FROM il_wiki_data".
486 " WHERE id = ".$ilDB->quote($this->getId(), "integer");
487 $ilDB->manipulate($query);
488
489 // remove all notifications
490 include_once "./Services/Notification/classes/class.ilNotification.php";
492
493 include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
495
496 return true;
497 }
498
502 static function checkShortTitleAvailability($a_short_title)
503 {
504 global $ilDB;
505
506 $res = $ilDB->queryF("SELECT id FROM il_wiki_data WHERE short = %s",
507 array("text"), array($a_short_title));
508 if ($ilDB->fetchAssoc($res))
509 {
510 return false;
511 }
512
513 return true;
514 }
515
516
530 function notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params = 0)
531 {
532 global $tree;
533
534 switch ($a_event)
535 {
536 case "link":
537
538 //var_dump("<pre>",$a_params,"</pre>");
539 //echo "Module name ".$this->getRefId()." triggered by link event. Objects linked into target object ref_id: ".$a_ref_id;
540 //exit;
541 break;
542
543 case "cut":
544
545 //echo "Module name ".$this->getRefId()." triggered by cut event. Objects are removed from target object ref_id: ".$a_ref_id;
546 //exit;
547 break;
548
549 case "copy":
550
551 //var_dump("<pre>",$a_params,"</pre>");
552 //echo "Module name ".$this->getRefId()." triggered by copy event. Objects are copied into target object ref_id: ".$a_ref_id;
553 //exit;
554 break;
555
556 case "paste":
557
558 //echo "Module name ".$this->getRefId()." triggered by paste (cut) event. Objects are pasted into target object ref_id: ".$a_ref_id;
559 //exit;
560 break;
561
562 case "new":
563
564 //echo "Module name ".$this->getRefId()." triggered by paste (new) event. Objects are applied to target object ref_id: ".$a_ref_id;
565 //exit;
566 break;
567 }
568
569 // At the beginning of the recursive process it avoids second call of the notify function with the same parameter
570 if ($a_node_id==$_GET["ref_id"])
571 {
572 $parent_obj =& $this->ilias->obj_factory->getInstanceByRefId($a_node_id);
573 $parent_type = $parent_obj->getType();
574 if($parent_type == $this->getType())
575 {
576 $a_node_id = (int) $tree->getParentId($a_node_id);
577 }
578 }
579
580 parent::notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params);
581 }
582
590 static function _lookupRatingOverall($a_wiki_id)
591 {
592 return ilObjWiki::_lookup($a_wiki_id, "rating_overall");
593 }
594
602 static function _lookupRating($a_wiki_id)
603 {
604 return ilObjWiki::_lookup($a_wiki_id, "rating");
605 }
606
614 static function _lookupRatingCategories($a_wiki_id)
615 {
616 return ilObjWiki::_lookup($a_wiki_id, "rating_ext");
617 }
618
626 static function _lookupRatingAsBlock($a_wiki_id)
627 {
628 return ilObjWiki::_lookup($a_wiki_id, "rating_side");
629 }
630
638 static function _lookupPublicNotes($a_wiki_id)
639 {
640 return ilObjWiki::_lookup($a_wiki_id, "public_notes");
641 }
642
650 static function _lookupLinkMetadataValues($a_wiki_id)
651 {
652 return ilObjWiki::_lookup($a_wiki_id, "link_md_values");
653 }
654
663 private static function _lookup($a_wiki_id, $a_field)
664 {
665 global $ilDB;
666
667 $query = "SELECT $a_field FROM il_wiki_data WHERE id = ".
668 $ilDB->quote($a_wiki_id, "integer");
669 $set = $ilDB->query($query);
670 $rec = $ilDB->fetchAssoc($set);
671 return $rec[$a_field];
672 }
673
681 static function _lookupStartPage($a_wiki_id)
682 {
683 return ilObjWiki::_lookup($a_wiki_id, "startpage");
684 }
685
689 static function writeStartPage($a_id, $a_name)
690 {
691 global $ilDB;
692
693 include_once("./Modules/Wiki/classes/class.ilWikiUtil.php");
694 $ilDB->manipulate("UPDATE il_wiki_data SET ".
695 " startpage = ".$ilDB->quote(ilWikiUtil::makeDbTitle($a_name), "text").
696 " WHERE id = ".$ilDB->quote($a_id, "integer")
697 );
698 }
699
703 static function _performSearch($a_wiki_id, $a_searchterm)
704 {
705 // query parser
706 include_once 'Services/Search/classes/class.ilQueryParser.php';
707
708 $query_parser = new ilQueryParser($a_searchterm);
709 $query_parser->setCombination("or");
710 $query_parser->parse();
711
712 include_once 'Services/Search/classes/class.ilSearchResult.php';
713 $search_result = new ilSearchResult();
714 if($query_parser->validate())
715 {
716
717 include_once 'Services/Search/classes/class.ilObjectSearchFactory.php';
718 $wiki_search =& ilObjectSearchFactory::_getWikiContentSearchInstance($query_parser);
719 $wiki_search->setFilter(array('wpg'));
720 $search_result->mergeEntries($wiki_search->performSearch());
721 }
722
723 $entries = $search_result->getEntries();
724
725 $found_pages = array();
726 foreach($entries as $entry)
727 {
728 if ($entry["obj_id"] == $a_wiki_id && is_array($entry["child"]))
729 {
730 foreach($entry["child"] as $child)
731 {
732 $found_pages[] = array("page_id" => $child);
733 }
734 }
735 }
736
737 return $found_pages;
738 }
739
740 //
741 // Important pages
742 //
743
751 static function _lookupImportantPages($a_wiki_id)
752 {
753 return ilObjWiki::_lookup($a_wiki_id, "imp_pages");
754 }
755
762 static function _lookupImportantPagesList($a_wiki_id)
763 {
764 global $ilDB;
765
766 $set = $ilDB->query("SELECT * FROM il_wiki_imp_pages WHERE ".
767 " wiki_id = ".$ilDB->quote($a_wiki_id, "integer")." ORDER BY ord ASC "
768 );
769
770 $imp_pages = array();
771
772 while ($rec = $ilDB->fetchAssoc($set))
773 {
774 $imp_pages[] = $rec;
775 }
776 return $imp_pages;
777 }
778
785 static function _lookupMaxOrdNrImportantPages($a_wiki_id)
786 {
787 global $ilDB;
788
789 $set = $ilDB->query("SELECT MAX(ord) as m FROM il_wiki_imp_pages WHERE ".
790 " wiki_id = ".$ilDB->quote($a_wiki_id, "integer")
791 );
792
793 $rec = $ilDB->fetchAssoc($set);
794 return (int) $rec["m"];
795 }
796
797
803 function addImportantPage($a_page_id, $a_nr = 0, $a_indent = 0)
804 {
805 global $ilDB;
806
807 if (!$this->isImportantPage($a_page_id))
808 {
809 if ($a_nr == 0)
810 {
811 $a_nr = ilObjWiki::_lookupMaxOrdNrImportantPages($this->getId()) + 10;
812 }
813
814 $ilDB->manipulate("INSERT INTO il_wiki_imp_pages ".
815 "(wiki_id, ord, indent, page_id) VALUES (".
816 $ilDB->quote($this->getId(), "integer").",".
817 $ilDB->quote($a_nr, "integer").",".
818 $ilDB->quote($a_indent, "integer").",".
819 $ilDB->quote($a_page_id, "integer").
820 ")");
821 }
822 }
823
830 function isImportantPage($a_page_id)
831 {
832 global $ilDB;
833
834 $set = $ilDB->query("SELECT * FROM il_wiki_imp_pages WHERE ".
835 " wiki_id = ".$ilDB->quote($this->getId(), "integer")." AND ".
836 " page_id = ".$ilDB->quote($a_page_id, "integer")
837 );
838 if ($rec = $ilDB->fetchAssoc($set))
839 {
840 return true;
841 }
842 return false;
843 }
844
850 function removeImportantPage($a_id)
851 {
852 global $ilDB;
853
854 $ilDB->manipulate("DELETE FROM il_wiki_imp_pages WHERE "
855 ." wiki_id = ".$ilDB->quote($this->getId(), "integer")
856 ." AND page_id = ".$ilDB->quote($a_id, "integer")
857 );
858
860 }
861
868 function saveOrderingAndIndentation($a_ord, $a_indent)
869 {
870 global $ilDB;
871
873
874 foreach ($ipages as $k => $v)
875 {
876 if (isset($a_ord[$v["page_id"]]))
877 {
878 $ipages[$k]["ord"] = (int) $a_ord[$v["page_id"]];
879 }
880 if (isset($a_indent[$v["page_id"]]))
881 {
882 $ipages[$k]["indent"] = (int) $a_indent[$v["page_id"]];
883 }
884 }
885 $ipages = ilUtil::sortArray($ipages, "ord", "asc", true);
886
887 // fix indentation: no 2 is allowed after a 0
888 $c_indent = 0;
889 $fixed = false;
890 foreach ($ipages as $k => $v)
891 {
892 if ($ipages[$k]["indent"] == 2 && $c_indent == 0)
893 {
894 $ipages[$k]["indent"] = 1;
895 $fixed = true;
896 }
897 $c_indent = $ipages[$k]["indent"];
898 }
899
900 $ord = 10;
901 reset($ipages);
902 foreach ($ipages as $k => $v)
903 {
904 $ilDB->manipulate($q = "UPDATE il_wiki_imp_pages SET ".
905 " ord = ".$ilDB->quote($ord, "integer").",".
906 " indent = ".$ilDB->quote($v["indent"], "integer").
907 " WHERE wiki_id = ".$ilDB->quote($v["wiki_id"], "integer").
908 " AND page_id = ".$ilDB->quote($v["page_id"], "integer")
909 );
910 $ord+=10;
911 }
912
913 return $fixed;
914 }
915
920 {
921 global $ilDB;
922
924
925 // fix indentation: no 2 is allowed after a 0
926 $c_indent = 0;
927 $fixed = false;
928 foreach ($ipages as $k => $v)
929 {
930 if ($ipages[$k]["indent"] == 2 && $c_indent == 0)
931 {
932 $ipages[$k]["indent"] = 1;
933 $fixed = true;
934 }
935 $c_indent = $ipages[$k]["indent"];
936 }
937
938 $ord = 10;
939 foreach ($ipages as $k => $v)
940 {
941 $ilDB->manipulate($q = "UPDATE il_wiki_imp_pages SET ".
942 " ord = ".$ilDB->quote($ord, "integer").
943 ", indent = ".$ilDB->quote($v["indent"], "integer").
944 " WHERE wiki_id = ".$ilDB->quote($v["wiki_id"], "integer").
945 " AND page_id = ".$ilDB->quote($v["page_id"], "integer")
946 );
947 $ord+=10;
948 }
949
950 }
951
952 //
953 // Page TOC
954 //
955
963 static function _lookupPageToc($a_wiki_id)
964 {
965 return ilObjWiki::_lookup($a_wiki_id, "page_toc");
966 }
967
974 public function cloneObject($a_target_id,$a_copy_id = 0)
975 {
976 global $ilDB, $ilUser, $ilias;
977
978 $new_obj = parent::cloneObject($a_target_id,$a_copy_id);
979
980 //copy online status if object is not the root copy object
981 $cp_options = ilCopyWizardOptions::_getInstance($a_copy_id);
982
983 if(!$cp_options->isRootNode($this->getRefId()))
984 {
985 $new_obj->setOnline($this->getOnline());
986 }
987
988 //$new_obj->setTitle($this->getTitle()); // see #20074
989 $new_obj->setStartPage($this->getStartPage());
990 $new_obj->setShortTitle($this->getShortTitle());
991 $new_obj->setRatingOverall($this->getRatingOverall());
992 $new_obj->setRating($this->getRating());
993 $new_obj->setRatingAsBlock($this->getRatingAsBlock());
994 $new_obj->setRatingForNewPages($this->getRatingForNewPages());
995 $new_obj->setRatingCategories($this->getRatingCategories());
996 $new_obj->setPublicNotes($this->getPublicNotes());
997 $new_obj->setIntroduction($this->getIntroduction());
998 $new_obj->setImportantPages($this->getImportantPages());
999 $new_obj->setPageToc($this->getPageToc());
1000 $new_obj->update();
1001
1002 // set/copy stylesheet
1003 include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
1004 $style_id = $this->getStyleSheetId();
1005 if ($style_id > 0 && !ilObjStyleSheet::_lookupStandard($style_id))
1006 {
1007 $style_obj = $ilias->obj_factory->getInstanceByObjId($style_id);
1008 $new_id = $style_obj->ilClone();
1009 $new_obj->setStyleSheetId($new_id);
1010 $new_obj->update();
1011 }
1012
1013 // copy content
1014 include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
1015 $pages = ilWikiPage::getAllPages($this->getId());
1016 if (count($pages) > 0)
1017 {
1018 // if we have any pages, delete the start page first
1019 $pg_id = ilWikiPage::getPageIdForTitle($new_obj->getId(), $new_obj->getStartPage());
1020 $start_page = new ilWikiPage($pg_id);
1021 $start_page->delete();
1022 }
1023 $map = array();
1024 foreach ($pages as $p)
1025 {
1026 $page = new ilWikiPage($p["id"]);
1027 $new_page = new ilWikiPage();
1028 $new_page->setTitle($page->getTitle());
1029 $new_page->setWikiId($new_obj->getId());
1030 $new_page->setTitle($page->getTitle());
1031 $new_page->setBlocked($page->getBlocked());
1032 $new_page->setRating($page->getRating());
1033 $new_page->hideAdvancedMetadata($page->isAdvancedMetadataHidden());
1034 $new_page->create();
1035
1036 $page->copy($new_page->getId(), "", 0, true);
1037 //$new_page->setXMLContent($page->copyXMLContent(true));
1038 //$new_page->buildDom(true);
1039 //$new_page->update();
1040 $map[$p["id"]] = $new_page->getId();
1041 }
1042
1043 // copy important pages
1044 foreach (ilObjWiki::_lookupImportantPagesList($this->getId()) as $ip)
1045 {
1046 $new_obj->addImportantPage($map[$ip["page_id"]], $ip["ord"], $ip["indent"]);
1047 }
1048
1049 // copy rating categories
1050 include_once("./Services/Rating/classes/class.ilRatingCategory.php");
1051 foreach (ilRatingCategory::getAllForObject($this->getId()) as $rc)
1052 {
1053 $new_rc = new ilRatingCategory();
1054 $new_rc->setParentId($new_obj->getId());
1055 $new_rc->setTitle($rc["title"]);
1056 $new_rc->setDescription($rc["description"]);
1057 $new_rc->save();
1058 }
1059
1060 return $new_obj;
1061 }
1062
1070 {
1071 $num = (int) $this->getEmptyPageTemplate();
1072 include_once("./Modules/Wiki/classes/class.ilWikiPageTemplate.php");
1073 $wt = new ilWikiPageTemplate($this->getId());
1074 $ts = $wt->getAllInfo(ilWikiPageTemplate::TYPE_NEW_PAGES);
1075 $num += count($ts);
1076 if ($num > 1)
1077 {
1078 return true;
1079 }
1080 return false;
1081 }
1082
1090 function createWikiPage($a_page_title, $a_template_page = 0)
1091 {
1092 // check if template has to be used
1093 if ($a_template_page == 0)
1094 {
1095 if (!$this->getEmptyPageTemplate())
1096 {
1097 include_once("./Modules/Wiki/classes/class.ilWikiPageTemplate.php");
1098 $wt = new ilWikiPageTemplate($this->getId());
1099 $ts = $wt->getAllInfo(ilWikiPageTemplate::TYPE_NEW_PAGES);
1100 if (count($ts) == 1)
1101 {
1102 $t = current($ts);
1103 $a_template_page = $t["wpage_id"];
1104 }
1105 }
1106 }
1107
1108 // create the page
1109 $page = new ilWikiPage();
1110 $page->setWikiId($this->getId());
1111 $page->setTitle(ilWikiUtil::makeDbTitle($a_page_title));
1112 if($this->getRating() && $this->getRatingForNewPages())
1113 {
1114 $page->setRating(true);
1115 }
1116
1117 // needed for notification
1118 $page->setWikiRefId($this->getRefId());
1119 $page->create();
1120
1121 // copy template into new page
1122 if ($a_template_page > 0)
1123 {
1124 $orig = new ilWikiPage($a_template_page);
1125 $orig->copy($page->getId());
1126
1127 // #15718
1128 include_once "Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php";
1130 $this->getId(),
1131 $this->getId(),
1132 "wpg",
1133 $a_template_page,
1134 $page->getId()
1135 );
1136 }
1137
1138 return $page;
1139 }
1140
1141 public static function getAdvMDSubItemTitle($a_obj_id, $a_sub_type, $a_sub_id)
1142 {
1143 global $lng;
1144
1145 if($a_sub_type == "wpg")
1146 {
1147 $lng->loadLanguageModule("wiki");
1148 include_once "./Modules/Wiki/classes/class.ilWikiPage.php";
1149 return $lng->txt("wiki_wpg").' "'.ilWikiPage::lookupTitle($a_sub_id).'"';
1150 }
1151 }
1152
1160 {
1161 global $ilDB, $ilUser;
1162
1163 include_once("./Modules/Wiki/classes/class.ilWikiUserHTMLExport.php");
1164
1165 $user_export = new ilWikiUserHTMLExport($this, $ilDB, $ilUser);
1166 $user_export->initUserHTMLExport();
1167 }
1168
1176 {
1177 global $ilDB, $ilUser;
1178
1179 include_once("./Modules/Wiki/classes/class.ilWikiUserHTMLExport.php");
1180
1181 $user_export = new ilWikiUserHTMLExport($this, $ilDB, $ilUser);
1182 $user_export->startUserHTMLExport();
1183 }
1184
1191 {
1192 global $ilDB, $ilUser;
1193
1194 include_once("./Modules/Wiki/classes/class.ilWikiUserHTMLExport.php");
1195
1196 $user_export = new ilWikiUserHTMLExport($this, $ilDB, $ilUser);
1197 return $user_export->getProgress();
1198 }
1199
1204 {
1205 global $ilDB, $ilUser;
1206
1207 include_once("./Modules/Wiki/classes/class.ilWikiUserHTMLExport.php");
1208
1209 $user_export = new ilWikiUserHTMLExport($this, $ilDB, $ilUser);
1210 return $user_export->deliverFile();
1211 }
1212
1213
1220 public function decorateAdvMDValue($a_value)
1221 {
1222 include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
1223 if (ilWikiPage::_wikiPageExists($this->getId(), $a_value))
1224 {
1225 $url = ilObjWikiGUI::getGotoLink($this->getRefId(), $a_value);
1226 return "<a href='".$url."'>".$a_value."</a>";
1227 }
1228
1229 return $a_value;
1230 }
1231
1232
1233
1234}
1235?>
$_GET["client_id"]
static _cloneValues($a_source_id, $a_target_id, $a_sub_type=null, $a_source_sub_id=null, $a_target_sub_id=null)
Clone Advanced Meta Data.
static _getInstance($a_copy_id)
Get instance of copy wizard options.
static removeForObject($type, $id)
Remove all notifications for given object.
static lookupObjectStyle($a_obj_id)
Lookup object style.
static writeStyleUsage($a_obj_id, $a_style_id)
Write style usage.
_lookupStandard($a_id)
Lookup standard flag.
static getGotoLink($a_ref_id, $a_page="")
Get goto link.
Class ilObjWiki.
getRating()
Get Enable Rating.
getRatingAsBlock()
Get Enable Rating Side Block.
static _lookupPublicNotes($a_wiki_id)
Lookup whether public notes are activated.
initUserHTMLExport()
Init user html export.
getStartPage()
Get Start Page.
createWikiPage($a_page_title, $a_template_page=0)
Create new wiki page.
deliverUserHTMLExport()
Send user html export file.
removeImportantPage($a_id)
Remove important page.
setRatingAsBlock($a_rating)
Set Enable Rating Side Block.
getEmptyPageTemplate()
Get empty page template.
static _lookupRatingOverall($a_wiki_id)
Lookup whether rating is activated for whole object.
getLinkMetadataValues()
Get link md values.
setRatingOverall($a_rating)
Set Enable Rating For Object.
static _lookupRatingCategories($a_wiki_id)
Lookup whether rating categories are activated.
static _performSearch($a_wiki_id, $a_searchterm)
Search in Wiki.
static getAdvMDSubItemTitle($a_obj_id, $a_sub_type, $a_sub_id)
addImportantPage($a_page_id, $a_nr=0, $a_indent=0)
Add important page.
cloneObject($a_target_id, $a_copy_id=0)
Clone wiki.
notify($a_event, $a_ref_id, $a_parent_non_rbac_id, $a_node_id, $a_params=0)
notifys an object about an event occured Based on the event happend, each object may decide how it re...
setPageToc($a_val)
Set page toc.
setShortTitle($a_shorttitle)
Set ShortTitle.
saveOrderingAndIndentation($a_ord, $a_indent)
Save ordering and indentation.
read()
Read wiki data.
static isOnlineHelpWiki($a_ref_id)
Is wiki an online help wiki?
getPublicNotes()
Get public notes.
setStartPage($a_startpage)
Set Start Page.
getShortTitle()
Get ShortTitle.
getOnline()
Get Online.
static _lookupPageToc($a_wiki_id)
Lookup whether important pages are activated.
isImportantPage($a_page_id)
Is page an important page?
create($a_prevent_start_page_creation=false)
Create new wiki.
ilObjWiki($a_id=0, $a_call_by_reference=true)
Constructor @access public.
getIntroduction()
Get Introduction.
setOnline($a_online)
Set Online.
static _lookupLinkMetadataValues($a_wiki_id)
Lookup whether metadata should be auto linked.
getStyleSheetId()
get ID of assigned style sheet object
static _lookupImportantPagesList($a_wiki_id)
Get important pages list.
setEmptyPageTemplate($a_val)
Set empty page template.
fixImportantPagesNumbering()
Fix important pages numbering.
getRatingOverall()
Get Enable Rating For Object.
startUserHTMLExport()
Start user html export.
decorateAdvMDValue($a_value)
Decorate adv md value.
getTemplateSelectionOnCreation()
Get template selection on creation? If more than one template (including empty page template) is acti...
setStyleSheetId($a_style_id)
set ID of assigned style sheet object
setImportantPages($a_val)
Set important pages.
static writeStartPage($a_id, $a_name)
Write start page.
setIntroduction($a_introduction)
Set Introduction.
static checkShortTitleAvailability($a_short_title)
Check availability of short title.
static _lookupRatingAsBlock($a_wiki_id)
Lookup whether rating side block is activated.
static _lookupStartPage($a_wiki_id)
Lookup start page.
getRatingForNewPages()
Get Enable Rating For New Pages.
getImportantPages()
Get important pages.
update($a_prevent_start_page_creation=false)
update object data
setRatingCategories($a_rating)
Set Enable Rating Categories.
setRatingForNewPages($a_rating)
Set Enable Rating For New Pages.
setLinkMetadataValues($a_val)
Set link md values.
setRating($a_rating)
Set Enable Rating.
getPageToc()
Get page toc.
static _lookupMaxOrdNrImportantPages($a_wiki_id)
Get important pages list.
getUserHTMLExportProgress()
Get user html export progress.
static _lookupRating($a_wiki_id)
Lookup whether rating is activated.
static _lookupImportantPages($a_wiki_id)
Lookup whether important pages are activated.
getRatingCategories()
Get Enable Rating Categories.
setPublicNotes($a_val)
Set public notes.
static _lookup($a_wiki_id, $a_field)
Lookup a data field.
static _getWikiContentSearchInstance($query_parser)
get reference of ilFulltextWikiContentSearch
Class ilObject Basic functions for all objects.
getType()
get object type @access public
ilObject($a_id=0, $a_reference=true)
Constructor @access public.
getRefId()
get reference id @access public
getId()
get object id @access public
Class ilRatingCategory.
static getAllForObject($a_parent_obj_id)
Get all categories for object.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
Class ilWikiPage.
static deleteAllPagesOfWiki($a_wiki_id)
delete wiki page and al related data
static exists($a_wiki_id, $a_title)
Checks whether a page with given title exists.
static getPageIdForTitle($a_wiki_id, $a_title)
Get wiki page object for id and title.
static _wikiPageExists($a_wiki_id, $a_title)
Check whether page exists for wiki or not
static getAllPages($a_wiki_id)
Get all pages of wiki
static lookupTitle($a_page_id)
Checks whether a page with given title exists.
Class manages user html export.
static makeDbTitle($a_par)
Handle page GET parameter.
Interface for repository objects to use adv md with subitems.
redirection script todo: (a better solution should control the processing via a xml file)
$url
Definition: shib_logout.php:72
global $ilDB
global $ilUser
Definition: imgupload.php:15