4 include_once(
"./Services/COPage/classes/class.ilPageObject.php");
5 include_once(
"./Modules/Wiki/classes/class.ilWikiUtil.php");
86 $this->parent_ref_id = $a_wiki_ref_id;
96 return $this->parent_ref_id;
106 $this->blocked = $a_val;
126 $this->rating = (bool)$a_val;
136 return $this->rating;
151 $set = $ilDB->query(
"SELECT id FROM il_wiki_page ".
152 " WHERE id = ".$ilDB->quote($this->getId(),
"integer")
154 if ($rec = $ilDB->fetchAssoc($set))
159 parent::createFromXML();
165 function create($a_prevent_page_creation =
false)
169 $id = $ilDB->nextId(
"il_wiki_page");
171 $query =
"INSERT INTO il_wiki_page (".
178 $ilDB->quote($this->
getId(),
"integer")
179 .
",".$ilDB->quote($this->
getTitle(),
"text")
180 .
",".$ilDB->quote((
int) $this->
getWikiId(),
"integer")
181 .
",".$ilDB->quote((
int) $this->
getBlocked(),
"integer")
182 .
",".$ilDB->quote((
int) $this->
getRating(),
"integer")
184 $ilDB->manipulate(
$query);
187 if (!$a_prevent_page_creation)
192 include_once
"./Services/Notification/classes/class.ilNotification.php";
205 function update($a_validate =
true, $a_no_history =
false)
210 $query =
"UPDATE il_wiki_page SET ".
211 " title = ".$ilDB->quote($this->
getTitle(),
"text").
212 ",wiki_id = ".$ilDB->quote((
int) $this->
getWikiId(),
"integer").
213 ",blocked = ".$ilDB->quote((
int) $this->
getBlocked(),
"integer").
214 ",rating = ".$ilDB->quote((
int) $this->
getRating(),
"integer").
215 " WHERE id = ".$ilDB->quote($this->
getId(),
"integer");
216 $ilDB->manipulate(
$query);
217 $updated = parent::update($a_validate, $a_no_history);
219 if ($updated ===
true)
221 include_once
"./Services/Notification/classes/class.ilNotification.php";
236 function read($a_omit_page_read =
false)
240 $query =
"SELECT * FROM il_wiki_page WHERE id = ".
241 $ilDB->quote($this->
getId(),
"integer");
242 $set = $ilDB->query(
$query);
243 $rec = $ilDB->fetchAssoc($set);
251 if (!$a_omit_page_read)
272 include_once(
"./Services/COPage/classes/class.ilInternalLink.php");
275 include_once
"./Services/Notification/classes/class.ilNotification.php";
279 include_once
"./Services/Notification/classes/class.ilNotification.php";
283 $query =
"DELETE FROM il_wiki_page".
284 " WHERE id = ".$ilDB->quote($this->
getId(),
"integer");
285 $ilDB->manipulate(
$query);
291 foreach($linking_pages as $lp)
293 $ilDB->manipulateF(
"DELETE FROM il_wiki_missing_page ".
294 " WHERE wiki_id = %s AND source_id = %s AND target_name = %s ",
295 array(
"integer",
"integer",
"text"),
297 $ilDB->manipulateF(
"INSERT INTO il_wiki_missing_page ".
298 "(wiki_id, source_id, target_name) VALUES ".
300 array(
"integer",
"integer",
"text"),
317 $query =
"SELECT * FROM il_wiki_page".
318 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer");
319 $set = $ilDB->query(
$query);
321 while($rec = $ilDB->fetchAssoc($set))
324 $wiki_page->delete();
333 static function exists($a_wiki_id, $a_title)
339 $query =
"SELECT id FROM il_wiki_page".
340 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
341 " AND title = ".$ilDB->quote($a_title,
"text");
342 $set = $ilDB->query(
$query);
343 if($rec = $ilDB->fetchAssoc($set))
360 $query =
"SELECT id FROM il_wiki_page".
361 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
362 " AND title = ".$ilDB->quote($a_title,
"text");
363 $set = $ilDB->query(
$query);
364 if($rec = $ilDB->fetchAssoc($set))
381 $query =
"SELECT * FROM il_wiki_page".
382 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
383 " AND title = ".$ilDB->quote($a_title,
"text");
384 $set = $ilDB->query(
$query);
385 if($rec = $ilDB->fetchAssoc($set))
400 $query =
"SELECT * FROM il_wiki_page".
401 " WHERE id = ".$ilDB->quote($a_page_id,
"integer");
402 $set = $ilDB->query(
$query);
403 if($rec = $ilDB->fetchAssoc($set))
405 return $rec[
"title"];
418 $query =
"SELECT wiki_id FROM il_wiki_page".
419 " WHERE id = ".$ilDB->quote($a_page_id,
"integer");
420 $set = $ilDB->query(
$query);
421 if ($rec = $ilDB->fetchAssoc($set))
423 return $rec[
"wiki_id"];
438 $pages = parent::getAllPages(
"wpg", $a_wiki_id);
440 $query =
"SELECT * FROM il_wiki_page".
441 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
443 $set = $ilDB->query(
$query);
446 while($rec = $ilDB->fetchAssoc($set))
448 if (isset($pages[$rec[
"id"]]))
450 $pg[$rec[
"id"]] = $pages[$rec[
"id"]];
451 $pg[$rec[
"id"]][
"title"] = $rec[
"title"];
465 include_once(
"./Services/COPage/classes/class.ilInternalLink.php");
469 foreach ($sources as $source)
471 if ($source[
"type"] ==
"wpg:pg")
473 $ids[] = $source[
"id"];
477 $query =
"SELECT * FROM il_wiki_page wp, page_object p".
478 " WHERE ".$ilDB->in(
"wp.id", $ids,
false,
"integer").
479 " AND wp.id = p.page_id AND p.parent_type = ".$ilDB->quote(
"wpg",
"text").
480 " AND wp.wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
482 $set = $ilDB->query(
$query);
485 while ($rec = $ilDB->fetchAssoc($set))
487 $pages[] = array_merge($rec, array(
"user" => $rec[
"last_change_user"],
488 "date" => $rec[
"last_change"]));
505 include_once(
"./Services/COPage/classes/class.ilInternalLink.php");
508 foreach ($pages as $k => $page)
513 foreach ($sources as $source)
515 if ($source[
"type"] ==
"wpg:pg")
517 $ids[] = $source[
"id"];
520 $query =
"SELECT count(*) cnt FROM il_wiki_page".
521 " WHERE ".$ilDB->in(
"id", $ids,
false,
"integer").
522 " AND wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
524 $set = $ilDB->query(
$query);
525 $rec = $ilDB->fetchAssoc($set);
526 if ($rec[
"cnt"] == 0 &&
547 $query =
"SELECT id FROM il_wiki_page".
548 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
549 " AND title = ".$ilDB->quote($a_title,
"text");
550 $set = $ilDB->query(
$query);
553 if ($rec = $ilDB->fetchAssoc($set))
570 $contributors = parent::getParentObjectContributors(
"wpg", $a_wiki_id);
572 return $contributors;
584 $contributors = parent::getPageContributors(
"wpg", $a_page_id);
586 return $contributors;
602 parent::saveInternalLinks($a_domdoc);
609 $set = $ilDB->queryF(
"SELECT * FROM il_wiki_missing_page WHERE ".
610 " wiki_id = %s AND target_name = %s",
611 array(
"integer",
"text"),
613 while ($anmiss = $ilDB->fetchAssoc($set))
621 $ilDB->manipulateF(
"DELETE FROM il_wiki_missing_page WHERE ".
622 " wiki_id = %s AND target_name = %s",
623 array(
"integer",
"text"),
630 $ilDB->manipulateF(
"DELETE FROM il_wiki_missing_page WHERE ".
631 " wiki_id = %s AND source_id = %s",
632 array(
"integer",
"integer"),
636 include_once(
"./Modules/Wiki/classes/class.ilWikiUtil.php");
637 $xml = $a_domdoc->saveXML();
639 foreach($int_wiki_links as $wlink)
650 $ilDB->manipulateF(
"DELETE FROM il_wiki_missing_page WHERE".
651 " wiki_id = %s AND source_id = %s AND target_name = %s",
652 array(
"integer",
"integer",
"text"),
654 $ilDB->manipulateF(
"INSERT INTO il_wiki_missing_page (wiki_id, source_id, target_name)".
655 " VALUES (%s,%s,%s)",
656 array(
"integer",
"integer",
"text"),
669 $query =
"SELECT id FROM il_wiki_page".
670 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
671 " AND title = ".$ilDB->quote($a_title,
"text");
672 $set = $ilDB->query(
$query);
673 if($rec = $ilDB->fetchAssoc($set))
690 $query =
"SELECT wp.*, po.view_cnt as cnt FROM il_wiki_page wp, page_object po".
691 " WHERE wp.wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
692 " AND wp.id = po.page_id ".
693 " AND po.parent_type = ".$ilDB->quote(
"wpg",
"text").
" ".
694 " ORDER BY po.view_cnt";
695 $set = $ilDB->query(
$query);
698 while($rec = $ilDB->fetchAssoc($set))
716 $query =
"SELECT count(*) as cnt FROM il_wiki_page".
717 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer");
718 $s = $ilDB->query(
$query);
719 $r = $ilDB->fetchAssoc($s);
740 $rand = rand(1, $cnt);
743 $ilDB->setLimit(1, $rand);
744 $query =
"SELECT title FROM il_wiki_page".
745 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer");
746 $s = $ilDB->query(
$query);
747 $r = $ilDB->fetchAssoc($s);
761 $pages = parent::getNewPages(
"wpg", $a_wiki_id);
763 foreach($pages as $k => $page)
782 $query =
"SELECT wiki_id FROM il_wiki_page".
783 " WHERE id = ".$ilDB->quote($a_page_id,
"integer");
784 $set = $ilDB->query(
$query);
785 if($rec = $ilDB->fetchAssoc($set))
787 return $rec[
"wiki_id"];
801 $a_new_name = str_replace(array(
"<",
">"),
'', $a_new_name);
804 $a_new_name = trim(preg_replace(
'!\s+!',
' ', $a_new_name));
809 $xml_new_name = str_replace(
"&",
"&", $a_new_name);
811 if ($pg_id == 0 || $pg_id == $this->
getId())
813 include_once(
"./Services/COPage/classes/class.ilInternalLink.php");
816 foreach ($sources as $s)
824 $new_content = $wpage->getXmlContent();
841 $t1 = preg_replace(
'/\xC2\xA0/',
' ', $t1);
842 $t2 = preg_replace(
'/\xC2\xA0/',
' ', $t2);
844 $set = $ilDB->query($q =
"SELECT ".$ilDB->quote($t1,
"text").
" = ".$ilDB->quote($t2,
"text").
" isequal");
845 $rec = $ilDB->fetchAssoc($set);
850 str_replace(
"[[".$c[
"nt"]->mTextform.
"]]",
851 "[[".$xml_new_name.
"]]", $new_content);
852 if ($c[
"text"] !=
"")
855 str_replace(
"[[".$c[
"text"].
"]]",
856 "[[".$xml_new_name.
"]]", $new_content);
858 $add = ($c[
"text"] !=
"")
862 str_replace(
"[[".$c[
"nt"]->mTextform.$add.
"]]",
863 "[[".$xml_new_name.$add.
"]]", $new_content);
866 $wpage->setXmlContent($new_content);
872 include_once(
"./Modules/Wiki/classes/class.ilObjWiki.php");
895 $default_visibility = ($news_set->get(
"default_visibility") !=
"")
896 ? $news_set->get(
"default_visibility")
899 include_once(
"./Services/News/classes/class.ilNewsItem.php");
903 $news_item->setContext(
905 $this->
getId(),
"wpg");
907 $news_item->setTitle($this->
getTitle());
908 $news_item->setContentTextIsLangVar(
true);
909 $news_item->setContent(
"wiki_news_page_created");
910 $news_item->setUserId($ilUser->getId());
911 $news_item->setVisibility($default_visibility);
912 $news_item->create();
919 $this->
getId(),
"wpg",
true);
924 $news_item->setContent(
"wiki_news_page_changed");
925 $news_item->setUserId($ilUser->getId());
926 $news_item->setTitle($this->
getTitle());
927 $news_item->setContentTextIsLangVar(
true);
928 $news_item->update(
true);
933 $news_item->setContext(
935 $this->
getId(),
"wpg");
937 $news_item->setTitle($this->
getTitle());
938 $news_item->setContentTextIsLangVar(
true);
939 $news_item->setContent(
"wiki_news_page_changed");
940 $news_item->setUserId($ilUser->getId());
941 $news_item->setVisibility($default_visibility);
942 $news_item->create();
952 return "12.1.1: Test User, Max";
965 $href =
"./goto.php?target=wiki_wpage_".$a_target;
969 $href = ILIAS_HTTP_PATH.
"/goto.php?target=wiki_wpage_".$a_target;
static lookupTitle($a_page_id)
Checks whether a page with given title exists.
setTitle($a_title)
Set Title.
static removeForObject($type, $id)
Remove all notifications for given object.
updateNews($a_update=false)
Create.
static getParentObjectContributors($a_wiki_id)
Get all contributors of wiki.
getWikiId()
Get Wiki Object Id.
getWikiRefId()
Get Wiki Ref Id.
getNewsContent()
Get content for a wiki news item.
_saveLink($a_source_type, $a_source_id, $a_target_type, $a_target_id, $a_target_inst=0, $a_source_lang="-")
save internal link information
static _lookupStartPage($a_wiki_id)
Lookup start page.
static getPopularPages($a_wiki_id)
Get popular pages of wiki.
getParentType()
Get parent type.
getDomDoc()
Get dom doc (php5 dom document)
static collectInternalLinks($s, $a_wiki_id, $a_collect_non_ex=false)
Collect internal wiki links of a string.
_getSourcesOfTarget($a_target_type, $a_target_id, $a_target_inst)
get all sources of a link target
static getPageIdForTitle($a_wiki_id, $a_title)
Get wiki page object for id and title.
static getRandomPage($a_wiki_id)
Get a random page.
static getLastNewsIdForContext($a_context_obj_id, $a_context_obj_type, $a_context_sub_obj_id="", $a_context_sub_obj_type="", $a_only_today=false)
Get last news id of news set related to a certain context.
setBlocked($a_val)
Set blocked.
static lookupWikiId($a_page_id)
Lookup wiki id.
createFromXML()
Create page from xml.
static sendNotification($a_action, $a_type, $a_wiki_ref_id, $a_page_id, $a_comment=null)
static _getPageIdForWikiTitle($a_wiki_id, $a_title)
Checks whether a page with given title exists.
rename($a_new_name)
Rename page.
static _exists($a_parent_type, $a_id, $a_lang="")
Checks whether page exists.
static processInternalLinks($s, $a_wiki_id, $a_mode=IL_WIKI_MODE_REPLACE, $a_collect_non_ex=false, $a_offline=false)
Process internal links.
static getPageContributors($a_page_id)
Get all contributors of wiki.
static makeDbTitle($a_par)
Handle page GET parameter.
static countPages($a_wiki_id)
Count pages of wiki.
read($a_omit_page_read=false)
Read wiki data.
_deleteAllLinksToTarget($a_target_type, $a_target_id, $a_target_inst=0)
Delete all links to a given target.
static getOrphanedPages($a_wiki_id)
Get orphaned pages of wiki.
static _wikiPageExists($a_wiki_id, $a_title)
Check whether page exists for wiki or not.
static exists($a_wiki_id, $a_title)
Checks whether a page with given title exists.
getPageConfig()
Get page config object.
const IL_WIKI_MODE_EXT_COLLECT
saveInternalLinks($a_domdoc)
save internal links of page
create($a_prevent_page_creation=false)
Create new wiki page.
static deleteAllPagesOfWiki($a_wiki_id)
delete wiki page and al related data
static getLinksToPage($a_wiki_id, $a_page_id)
Get links to a page.
update($a_validate=true, $a_no_history=false)
update object data
setWikiId($a_wikiid)
Set Wiki Object Id.
setWikiRefId($a_wiki_ref_id)
Set Wiki Ref Id.
static getAllPages($a_wiki_id)
Get all pages of wiki.
static getNewPages($a_wiki_id)
Get all pages of wiki.
static getIdForPageTitle($a_wiki_id, $a_title)
Checks whether a page with given title exists.
static getGotoForWikiPageTarget($a_target, $a_offline=false)
Get goto href for internal wiki page link target.
static writeStartPage($a_id, $a_name)
Write start page.
setRating($a_val)
Set rating.
static lookupObjIdByPage($a_page_id)
returns the wiki/object id to a given page id
afterConstructor()
After constructor.