ILIAS  Release_4_4_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilWikiPageGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once("./Services/COPage/classes/class.ilPageObjectGUI.php");
5 include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
6 
20 {
24  function __construct($a_id = 0, $a_old_nr = 0, $a_wiki_ref_id = 0)
25  {
26  global $tpl;
27 
28  // needed for notifications
29  $this->setWikiRefId($a_wiki_ref_id);
30 
31  parent::__construct("wpg", $a_id, $a_old_nr);
32  $this->getPageObject()->setWikiRefId($this->getWikiRefId());
33 
34  // content style
35  include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
36 
37  $tpl->setCurrentBlock("SyntaxStyle");
38  $tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
40  $tpl->parseCurrentBlock();
41  }
42 
50  {
51  global $ilHelp;
52 
53  $ilHelp->setScreenIdComponent("copgwpg");
54  }
55 
56  function setWikiRefId($a_ref_id)
57  {
58  $this->wiki_ref_id = $a_ref_id;
59  }
60 
61  function getWikiRefId()
62  {
63  return $this->wiki_ref_id;
64  }
65 
69  function &executeCommand()
70  {
71  global $ilCtrl, $ilTabs, $ilUser;
72 
73  $next_class = $this->ctrl->getNextClass($this);
74  $cmd = $this->ctrl->getCmd();
75 
76  switch($next_class)
77  {
78  case "ilnotegui":
79  $this->getTabs();
80  $ilTabs->setTabActive("pg");
81  return $this->preview();
82  break;
83 
84  case "ilratinggui":
85  // for rating side block
86  include_once("./Services/Rating/classes/class.ilRatingGUI.php");
87  $rating_gui = new ilRatingGUI();
88  $rating_gui->setObject($this->getPageObject()->getParentId(), "wiki",
89  $this->getPageObject()->getId(), "wpg");
90  $this->ctrl->forwardCommand($rating_gui);
91  $ilCtrl->redirect($this, "preview");
92  break;
93 
94  case "ilpageobjectgui":
95  die("Deprecated. Wikipage gui forwarding to ilpageobject");
96  return;
97 
98  case "ilcommonactiondispatchergui":
99  include_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
101  $gui->enableCommentsSettings(false);
102  $gui->setRatingCallback($this, "preview");
103  $this->ctrl->forwardCommand($gui);
104  break;
105 
106  default:
107 
108  if($_GET["ntf"])
109  {
110  include_once "./Services/Notification/classes/class.ilNotification.php";
111  switch($_GET["ntf"])
112  {
113  case 1:
114  ilNotification::setNotification(ilNotification::TYPE_WIKI, $ilUser->getId(), $this->getPageObject()->getParentId(), false);
115  break;
116 
117  case 2:
118  // remove all page notifications here?
119  ilNotification::setNotification(ilNotification::TYPE_WIKI, $ilUser->getId(), $this->getPageObject()->getParentId(), true);
120  break;
121 
122  case 3:
123  ilNotification::setNotification(ilNotification::TYPE_WIKI_PAGE, $ilUser->getId(), $this->getPageObject()->getId(), false);
124  break;
125 
126  case 4:
127  ilNotification::setNotification(ilNotification::TYPE_WIKI_PAGE, $ilUser->getId(), $this->getPageObject()->getId(), true);
128  break;
129  }
130  $ilCtrl->redirect($this, "preview");
131  }
132 
133  $this->setPresentationTitle($this->getWikiPage()->getTitle());
134  return parent::executeCommand();
135  }
136  }
137 
143  function setWikiPage($a_wikipage)
144  {
145  $this->setPageObject($a_wikipage);
146  }
147 
153  function getWikiPage()
154  {
155  return $this->getPageObject();
156  }
157 
161  static function getGUIForTitle($a_wiki_id, $a_title, $a_old_nr = 0, $a_wiki_ref_id = 0)
162  {
163  global $ilDB;
164 
165  include_once("./Modules/Wiki/classes/class.ilWikiPage.php");
166  $id = ilWikiPage::getPageIdForTitle($a_wiki_id, $a_title);
167  $page_gui = new ilWikiPageGUI($id, $a_old_nr, $a_wiki_ref_id);
168 
169  return $page_gui;
170  }
171 
172  function setSideBlock()
173  {
175  $this->wiki_ref_id, $this->getWikiPage());
176  }
177 
178  function addHeaderAction($a_redraw = false)
179  {
180  global $ilUser, $ilAccess;
181 
182  $wiki_id = $this->getPageObject()->getParentId();
183  $page_id = $this->getPageObject()->getId();
184 
185  include_once "Services/Object/classes/class.ilCommonActionDispatcherGUI.php";
187  $ilAccess, "wiki", $_GET["ref_id"], $wiki_id);
188  $dispatcher->setSubObject("wpg", $page_id);
189 
190  include_once "Services/Object/classes/class.ilObjectListGUI.php";
191  ilObjectListGUI::prepareJSLinks($this->ctrl->getLinkTarget($this, "redrawHeaderAction", "", true),
192  $this->ctrl->getLinkTargetByClass(array("ilcommonactiondispatchergui", "ilnotegui"), "", "", true, false),
193  $this->ctrl->getLinkTargetByClass(array("ilcommonactiondispatchergui", "iltagginggui"), "", "", true, false));
194 
195  $lg = $dispatcher->initHeaderAction();
196  $lg->enableNotes(true);
197  $lg->enableComments(ilObjWiki::_lookupPublicNotes($wiki_id), false);
198 
199  // rating
200  if (ilObjWiki::_lookupRatingOverall($wiki_id))
201  {
202  $lg->enableRating(true, $this->lng->txt("wiki_rate_overall"),
203  false,
204  // so ilCtrl does not use the shortcut via ilWikiGUI
205  array("ilcommonactiondispatchergui", "ilratinggui"));
206  }
207 
208  // notification
209  if ($ilUser->getId() != ANONYMOUS_USER_ID)
210  {
211  include_once "./Services/Notification/classes/class.ilNotification.php";
212  if(ilNotification::hasNotification(ilNotification::TYPE_WIKI, $ilUser->getId(), $wiki_id))
213  {
214  $this->ctrl->setParameter($this, "ntf", 1);
215  $lg->addCustomCommand($this->ctrl->getLinkTarget($this), "wiki_notification_deactivate_wiki");
216 
217  $lg->addHeaderIcon("not_icon",
218  ilUtil::getImagePath("notification_on.png"),
219  $this->lng->txt("wiki_notification_activated"));
220  }
221  else
222  {
223  $this->ctrl->setParameter($this, "ntf", 2);
224  $lg->addCustomCommand($this->ctrl->getLinkTarget($this), "wiki_notification_activate_wiki");
225 
226  if(ilNotification::hasNotification(ilNotification::TYPE_WIKI_PAGE, $ilUser->getId(), $page_id))
227  {
228  $this->ctrl->setParameter($this, "ntf", 3);
229  $lg->addCustomCommand($this->ctrl->getLinkTarget($this), "wiki_notification_deactivate_page");
230 
231  $lg->addHeaderIcon("not_icon",
232  ilUtil::getImagePath("notification_on.png"),
233  $this->lng->txt("wiki_page_notification_activated"));
234  }
235  else
236  {
237  $this->ctrl->setParameter($this, "ntf", 4);
238  $lg->addCustomCommand($this->ctrl->getLinkTarget($this), "wiki_notification_activate_page");
239 
240  $lg->addHeaderIcon("not_icon",
241  ilUtil::getImagePath("notification_off.png"),
242  $this->lng->txt("wiki_notification_deactivated"));
243  }
244  }
245  $this->ctrl->setParameter($this, "ntf", "");
246  }
247 
248  if(!$a_redraw)
249  {
250  $this->tpl->setHeaderActionMenu($lg->getHeaderAction());
251  }
252  else
253  {
254  // we need to add onload code manually (rating, comments, etc.)
255  return $lg->getHeaderAction().
256  $this->tpl->getOnLoadCodeForAsynch();
257  }
258  }
259 
261  {
262  echo $this->addHeaderAction(true);
263  exit;
264  }
265 
269  function preview()
270  {
271  global $ilCtrl, $ilAccess, $lng, $tpl, $ilUser, $ilSetting, $ilToolbar;
272 
273  // block/unblock
274  if ($this->getPageObject()->getBlocked())
275  {
276  ilUtil::sendInfo($lng->txt("wiki_page_status_blocked"));
277  }
278 
279  $this->increaseViewCount();
280 
281  $this->addHeaderAction();
282 
283  // content
284  $this->setSideBlock();
285 
286  $wtpl = new ilTemplate("tpl.wiki_page_view_main_column.html",
287  true, true, "Modules/Wiki");
288 
289  $callback = array($this, "observeNoteAction");
290 
291  // notes
292  if (!$ilSetting->get("disable_comments") &&
293  ilObjWiki::_lookupPublicNotes($this->getPageObject()->getParentId()))
294  {
295  $wtpl->setVariable("NOTES", $this->getNotesHTML($this->getPageObject(),
296  true, ilObjWiki::_lookupPublicNotes($this->getPageObject()->getParentId()),
297  $ilAccess->checkAccess("write", "", $_GET["ref_id"]), $callback));
298  }
299 
300  // permanent link
301  $append = ($_GET["page"] != "")
302  ? "_".ilWikiUtil::makeUrlTitle($_GET["page"])
303  : "";
304  include_once("./Services/PermanentLink/classes/class.ilPermanentLinkGUI.php");
305  $perma_link = new ilPermanentLinkGUI("wiki", $_GET["ref_id"], $append);
306  $wtpl->setVariable("PERMA_LINK", $perma_link->getHTML());
307 
308  // page content
310  $this->setRenderPageContainer(true);
311  $wtpl->setVariable("PAGE", $this->showPage());
312 
313  $tpl->setLoginTargetPar("wiki_".$_GET["ref_id"].$append);
314 
315  // last edited info
316  include_once("./Services/User/classes/class.ilUserUtil.php");
317  $wtpl->setVariable("LAST_EDITED_INFO",
318  $lng->txt("wiki_last_edited").": ".
320  new ilDateTime($this->getPageObject()->getLastChange(),IL_CAL_DATETIME)).", ".
321  ilUserUtil::getNamePresentation($this->getPageObject()->getLastChangeUser(),
322  false, true, $ilCtrl->getLinkTarget($this, "preview")));
323 
324  $tpl->setLoginTargetPar("wiki_".$_GET["ref_id"].$append);
325 
326  //highlighting
327  if ($_GET["srcstring"] != "")
328  {
329  include_once './Services/Search/classes/class.ilUserSearchCache.php';
330  $cache = ilUserSearchCache::_getInstance($ilUser->getId());
331  $cache->switchSearchType(ilUserSearchCache::LAST_QUERY);
332  $search_string = $cache->getQuery();
333 
334  include_once("./Services/UIComponent/TextHighlighter/classes/class.ilTextHighlighterGUI.php");
335  include_once("./Services/Search/classes/class.ilQueryParser.php");
336  $p = new ilQueryParser($search_string);
337  $p->parse();
338 
339  $words = $p->getQuotedWords();
340  if (is_array($words))
341  {
342  foreach ($words as $w)
343  {
344  ilTextHighlighterGUI::highlight("ilCOPageContent", $w, $tpl);
345  }
346  }
347  $this->fill_on_load_code = true;
348  }
349 
350  return $wtpl->get();
351  }
352 
353  function showPage()
354  {
355  global $tpl, $ilCtrl;
356 
357  // content style
358 /* include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
359  $tpl->setCurrentBlock("ContentStyle");
360  $tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
361  ilObjStyleSheet::getContentStylePath(0));
362  $tpl->parseCurrentBlock();
363 */
364  $this->setTemplateOutput(false);
365  $this->setPresentationTitle($this->getWikiPage()->getTitle());
366  $this->increaseViewCount();
367  $output = parent::showPage();
368 
369  return $output;
370  }
371 
372  protected function increaseViewCount()
373  {
374  global $ilUser;
375 
376  $this->getWikiPage()->increaseViewCnt();
377 
378  // enable object statistics
379  require_once('Services/Tracking/classes/class.ilChangeEvent.php');
381  $this->getWikiPage()->getWikiId(), $ilUser->getId());
382  }
383 
387  function postOutputProcessing($a_output)
388  {
389 //echo htmlentities($a_output);
390  include_once("./Modules/Wiki/classes/class.ilWikiUtil.php");
391  $output = ilWikiUtil::replaceInternalLinks($a_output,
392  $this->getWikiPage()->getWikiId(),
393  ($this->getOutputMode() == "offline"));
394  return $output;
395  }
396 
400  function whatLinksHere()
401  {
402  global $tpl;
403 
404  include_once("./Modules/Wiki/classes/class.ilWikiPagesTableGUI.php");
405 
406  $this->setSideBlock($_GET["wpg_id"]);
407  $table_gui = new ilWikiPagesTableGUI($this, "whatLinksHere",
408  $this->getWikiPage()->getWikiId(), IL_WIKI_WHAT_LINKS_HERE, $_GET["wpg_id"]);
409 
410  $tpl->setContent($table_gui->getHTML());
411  }
412 
413  function getTabs($a_activate = "")
414  {
415  global $ilTabs, $ilCtrl;
416 
417  parent::getTabs($a_activate);
418 
419  $ilCtrl->setParameterByClass("ilobjwikigui", "wpg_id",
420  ilWikiPage::getPageIdForTitle($this->getPageObject()->getParentId(),
421  ilWikiUtil::makeDbTitle($_GET["page"])));
422  $ilCtrl->setParameterByClass("ilobjwikigui", "page", ilWikiUtil::makeUrlTitle($_GET["page"]));
423 
424  $ilTabs->addTarget("wiki_what_links_here",
425  $this->ctrl->getLinkTargetByClass("ilwikipagegui",
426  "whatLinksHere"), "whatLinksHere");
427  //$ilTabs->addTarget("wiki_print_view",
428  // $this->ctrl->getLinkTargetByClass("ilobjwikigui",
429  // "printViewSelection"), "printViewSelection");
430  $ilTabs->addTarget("wiki_print_view",
431  $this->ctrl->getLinkTargetByClass("ilwikipagegui",
432  "printViewSelection"), "printViewSelection");
433 
434  }
435 
440  {
441  global $ilAccess, $tpl, $ilCtrl, $lng;
442 
443  if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
444  {
445  include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
446  $confirmation_gui = new ilConfirmationGUI();
447  $confirmation_gui->setFormAction($ilCtrl->getFormAction($this));
448  $confirmation_gui->setHeaderText($lng->txt("wiki_page_deletion_confirmation"));
449  $confirmation_gui->setCancel($lng->txt("cancel"), "cancelWikiPageDeletion");
450  $confirmation_gui->setConfirm($lng->txt("delete"), "confirmWikiPageDeletion");
451 
452  $dtpl = new ilTemplate("tpl.wiki_page_deletion_confirmation.html", true,
453  true, "Modules/Wiki");
454 
455  $dtpl->setVariable("PAGE_TITLE", $this->getWikiPage()->getTitle());
456 
457  // other pages that link to this page
458  $dtpl->setVariable("TXT_OTHER_PAGES", $lng->txt("wiki_other_pages_linking"));
459  $pages = ilWikiPage::getLinksToPage($this->getWikiPage()->getWikiId(),
460  $this->getWikiPage()->getId());
461  if (count($pages) > 0)
462  {
463  foreach($pages as $page)
464  {
465  $dtpl->setCurrentBlock("lpage");
466  $dtpl->setVariable("TXT_LINKING_PAGE", $page["title"]);
467  $dtpl->parseCurrentBlock();
468  }
469  }
470  else
471  {
472  $dtpl->setCurrentBlock("lpage");
473  $dtpl->setVariable("TXT_LINKING_PAGE", "-");
474  $dtpl->parseCurrentBlock();
475  }
476 
477  // contributors
478  $dtpl->setVariable("TXT_CONTRIBUTORS", $lng->txt("wiki_contributors"));
479  $contributors = ilWikiPage::getPageContributors($this->getWikiPage()->getId());
480  foreach($contributors as $contributor)
481  {
482  $dtpl->setCurrentBlock("contributor");
483  $dtpl->setVariable("TXT_CONTRIBUTOR",
484  $contributor["lastname"].", ".$contributor["firstname"]);
485  $dtpl->parseCurrentBlock();
486  }
487 
488  // notes/comments
489  include_once("./Services/Notes/classes/class.ilNote.php");
490  $cnt_note_users = ilNote::getUserCount($this->getPageObject()->getParentId(),
491  $this->getPageObject()->getId(), "wpg");
492  $dtpl->setVariable("TXT_NUMBER_USERS_NOTES_OR_COMMENTS",
493  $lng->txt("wiki_number_users_notes_or_comments"));
494  $dtpl->setVariable("TXT_NR_NOTES_COMMENTS", $cnt_note_users);
495 
496  $confirmation_gui->addItem("", "", $dtpl->get());
497 
498  $tpl->setContent($confirmation_gui->getHTML());
499  }
500  }
501 
506  {
507  global $lng, $ilCtrl;
508 
509  $ilCtrl->redirect($this, "preview");
510 
511  }
512 
517  {
518  global $ilAccess, $tpl, $ilCtrl, $lng;
519 
520  if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
521  {
522  $this->getPageObject()->delete();
523 
524  ilUtil::sendSuccess($lng->txt("wiki_page_deleted"), true);
525  }
526 
527  $ilCtrl->redirectByClass("ilobjwikigui", "allPages");
528  }
529 
533 
541  {
542  global $ilUser, $lng, $ilToolbar, $ilCtrl, $tpl;
543 
544  /*$ilToolbar->setFormAction($ilCtrl->getFormActionByClass("ilobjwikigui", "printView"),
545  false, "print_view");
546  $ilToolbar->addFormButton($lng->txt("cont_show_print_view"), "printView");
547  $ilToolbar->setCloseFormTag(false);*/
548 
550 
551  $tpl->setContent($this->form->getHTML());
552  }
553 
557  public function initPrintViewSelectionForm()
558  {
559  global $lng, $ilCtrl;
560 
562 
563  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
564  $this->form = new ilPropertyFormGUI();
565 //var_dump($pages);
566  // selection type
567  $radg = new ilRadioGroupInputGUI($lng->txt("cont_selection"), "sel_type");
568  $radg->setValue("page");
569  $op1 = new ilRadioOption($lng->txt("cont_current_page"), "page");
570  $radg->addOption($op1);
571  $op2 = new ilRadioOption($lng->txt("wiki_whole_wiki")
572  ." (".$lng->txt("wiki_pages").": ".count($pages).")", "wiki");
573  $radg->addOption($op2);
574  $op3= new ilRadioOption($lng->txt("wiki_selected_pages"), "selection");
575  $radg->addOption($op3);
576 
577  include_once("./Services/Form/classes/class.ilNestedListInputGUI.php");
578  $nl = new ilNestedListInputGUI("", "obj_id");
579  $op3->addSubItem($nl);
580 
581  foreach ($pages as $p)
582  {
583  $nl->addListNode($p["id"], $p["title"], 0, false, false,
584  ilUtil::getImagePath("icon_pg_s.png"), $lng->txt("wiki_page"));
585  }
586 
587  $this->form->addItem($radg);
588 
589  $this->form->addCommandButton("printView", $lng->txt("cont_show_print_view"));
590  //$this->form->setOpenTag(false);
591  //$this->form->setCloseTag(false);
592 
593  $this->form->setTitle($lng->txt("cont_print_selection"));
594  $this->form->setFormAction($ilCtrl->getFormActionByClass("ilobjwikigui", "printView"),
595  false, "print_view");
596  }
597 
601 
605  function blockWikiPage()
606  {
607  global $ilAccess, $tpl, $ilCtrl, $lng;
608 
609  if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
610  {
611  $this->getPageObject()->setBlocked(true);
612  $this->getPageObject()->update();
613 
614  ilUtil::sendSuccess($lng->txt("wiki_page_blocked"), true);
615  }
616 
617  $ilCtrl->redirect($this, "preview");
618  }
619 
623  function unblockWikiPage()
624  {
625  global $ilAccess, $tpl, $ilCtrl, $lng;
626 
627  if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]))
628  {
629  $this->getPageObject()->setBlocked(false);
630  $this->getPageObject()->update();
631 
632  ilUtil::sendSuccess($lng->txt("wiki_page_unblocked"), true);
633  }
634 
635  $ilCtrl->redirect($this, "preview");
636  }
637 
641 
645  function renameWikiPage()
646  {
647  global $ilAccess, $tpl, $ilCtrl, $lng;
648 
649  if ($ilAccess->checkAccess("edit_content", "", $_GET["ref_id"]))
650  {
651  $this->initRenameForm();
652  $tpl->setContent($this->form->getHTML());
653  }
654  }
655 
661  protected function initRenameForm()
662  {
663  global $lng, $ilCtrl;
664 
665  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
666  $this->form = new ilPropertyFormGUI();
667 
668  // new name
669  $ti = new ilTextInputGUI($lng->txt("wiki_new_page_name"), "new_page_name");
670  $ti->setMaxLength(200);
671  $ti->setSize(50);
672  $ti->setValue($this->getPageObject()->getTitle());
673  $ti->setRequired(true);
674  $this->form->addItem($ti);
675 
676  $this->form->addCommandButton("renamePage", $lng->txt("wiki_rename"));
677  $this->form->addCommandButton("preview", $lng->txt("cancel"));
678 
679  $this->form->setTitle($lng->txt("wiki_rename_page"));
680  $this->form->setFormAction($ilCtrl->getFormAction($this));
681  }
682 
686  public function renamePage()
687  {
688  global $tpl, $lng, $ilCtrl, $ilAccess;
689 
690  $this->initRenameForm();
691  if ($this->form->checkInput())
692  {
693  if ($ilAccess->checkAccess("edit_content", "", $_GET["ref_id"]))
694  {
695  $new_name = $this->form->getInput("new_page_name");
696 
697  $page_title = ilWikiUtil::makeDbTitle($new_name);
698  $pg_id = ilWikiPage::_getPageIdForWikiTitle($this->getPageObject()->getWikiId(), $page_title);
699 
700  // we might get the same page id back here, if the page
701  // name only differs in diacritics
702  // see bug http://www.ilias.de/mantis/view.php?id=11226
703  if ($pg_id > 0 && $pg_id != $this->getPageObject()->getId())
704  {
705  ilUtil::sendFailure($lng->txt("wiki_page_already_exists"));
706  }
707  else
708  {
709  $new_name = $this->getPageObject()->rename($new_name);
710  $ilCtrl->setParameterByClass("ilobjwikigui", "page", ilWikiUtil::makeUrlTitle($new_name));
711  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
712  $ilCtrl->redirect($this, "preview");
713  }
714  }
715  }
716 
717  $this->form->setValuesByPost();
718  $tpl->setContent($this->form->getHtml());
719  }
720 
724 
726  {
727  global $lng, $ilCtrl;
728 
729  $this->getPageObject()->setRating(true);
730  $this->getPageObject()->update();
731 
732  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
733  $ilCtrl->redirect($this, "preview");
734  }
735 
737  {
738  global $lng, $ilCtrl;
739 
740  $this->getPageObject()->setRating(false);
741  $this->getPageObject()->update();
742 
743  ilUtil::sendSuccess($lng->txt("msg_obj_modified"), true);
744  $ilCtrl->redirect($this, "preview");
745  }
746 
747 
748  function observeNoteAction($a_wiki_id, $a_page_id, $a_type, $a_action, $a_note_id)
749  {
750  // #10040 - get note text
751  include_once "Services/Notes/classes/class.ilNote.php";
752  $note = new ilNote($a_note_id);
753  $note = $note->getText();
754 
755  include_once "./Services/Notification/classes/class.ilNotification.php";
756  ilWikiUtil::sendNotification("comment", ilNotification::TYPE_WIKI_PAGE, $this->getWikiRefId(), $a_page_id, $note);
757  }
758 }
759 ?>