<?php
/*************************************************************************/
/* DOCEBO CMS - Content Management System                                */
/* ============================================                          */
/*                                                                       */
/* Copyright (c) 2006 by Giovanni Derks <virtualdarkness[AT]gmail-com>   */
/* http://www.docebocms.org                                              */
/*                                                                       */
/* This program is free software. You can redistribute it and/or modify  */
/* it under the terms of the GNU General Public License as published by  */
/* the Free Software Foundation; either version 2 of the License.        */
/*************************************************************************/

// ---------------------------------------------------------------------------
if (!defined("IN_DOCEBO")) die ("You can't access this file directly...");
// ---------------------------------------------------------------------------

require_once($GLOBALS["where_framework"]."/lib/lib.wiki.php");
require_once($GLOBALS["where_framework"]."/lib/lib.urlmanager.php");

// -- Url Manager Setup --
$mr_pattern="[P]/[P]/[P]/[P]/[O]/[P]";
$mr_items=array("mn", "pi", "op", "lang", "page");
$std_title="index";
$lang=0; // this will be loaded later by the CoreWikiPublic object
cmsUrlManagerSetup($mr_pattern, $mr_items, $std_title, "mn=wiki&pi=".getPI()."&op=show&lang=".$lang);
// -----------------------


addCss("style_wiki", "fw");


function &cwpSetup($wiki_id) {
	$res =new CoreWikiPublic($wiki_id);
	$can_edit =$res->checkWikiPerm($wiki_id, "edit", TRUE);
	$res->setInternalPerm("edit", $can_edit);
	return $res;
}


function cwpGlobalSetup($wiki_id) {

	if (!isset($GLOBALS["core_wiki_public"]))
		$GLOBALS["core_wiki_public"]=& cwpSetup($wiki_id);

}


function wikiMain($wiki_id) {
	if ((int)$wiki_id < 1)
		return FALSE;

	$res="";
	cwpGlobalSetup($wiki_id);
	$cwp=& $GLOBALS["core_wiki_public"];
	$can_view =$cwp->checkWikiPerm($wiki_id, "view", TRUE);
	$out=& $GLOBALS["page"];
	$out->setWorkingZone("content");

	$title=$cwp->lang->def("_WIKI");
	$res.=$cwp->titleArea($title);
	$res.=$cwp->getHead(TRUE, TRUE, TRUE, $can_view);


	if ($can_view) {
		$res.=$cwp->getPageContent();
	}
	else {
		$res.=$cwp->lang->def("_CANT_VIEW_WIKI");
	}


	$res.=$cwp->getFooter(TRUE);
	$out->add($res);
}


function editWikiPage($wiki_id) {
	if ((int)$wiki_id < 1)
		return FALSE;

	$res="";
	cwpGlobalSetup($wiki_id);
	$cwp=& $GLOBALS["core_wiki_public"];
	$cwp->checkWikiPerm($wiki_id, "edit");

	$page_code=$cwp->editWikiPage();

	if (!empty($page_code)) {
		$out=& $GLOBALS["page"];
		$out->setWorkingZone("content");

		$title=$cwp->lang->def("_WIKI");
		$res.=$cwp->titleArea($title);
		$res.=$cwp->getHead(TRUE, FALSE);

		//$res.=$cwp->getWikiToolbar();

		$res.=$page_code;

		$res.=$cwp->getFooter();
		$out->add($res);
	}
}


function wikiMap($wiki_id) {
	if ((int)$wiki_id < 1)
		return FALSE;

	$res="";
	cwpGlobalSetup($wiki_id);
	$cwp=& $GLOBALS["core_wiki_public"];
	$cwp->checkWikiPerm($wiki_id, "view");

	$title=$cwp->lang->def("_WIKI");
	$res.=$cwp->titleArea($title);
	$res.=$cwp->getHead();

	//$res.=$cwp->getWikiToolbar();

	$res.=$cwp->wikiMap();

	$res.=$cwp->getFooter();

	$out=& $GLOBALS["page"];
	$out->setWorkingZone("content");
	$out->add($res);
}


function wikiPageHistory($wiki_id) {
	if ((int)$wiki_id < 1)
		return FALSE;

	$res="";
	cwpGlobalSetup($wiki_id);
	$cwp=& $GLOBALS["core_wiki_public"];
	$cwp->checkWikiPerm($wiki_id, "edit");

	$title=$cwp->lang->def("_WIKI");
	$res.=$cwp->titleArea($title);
	$res.=$cwp->getHead();

	//$res.=$cwp->getWikiToolbar();

	$res.=$cwp->wikiPageHistory();

	$res.=$cwp->getFooter();

	$out=& $GLOBALS["page"];
	$out->setWorkingZone("content");
	$out->add($res);
}


function wikiSearch($wiki_id) {
	if ((int)$wiki_id < 1)
		return FALSE;

	$res="";
	$cwp=& cwpSetup($wiki_id);
	$cwp->checkWikiPerm($wiki_id, "view");
	$out=& $GLOBALS["page"];
	$out->setWorkingZone("content");

	$title=$cwp->lang->def("_WIKI");
	$res.=$cwp->titleArea($title);
	$res.=$cwp->getHead(TRUE, FALSE, FALSE, TRUE);


	$res.=$cwp->getFoundPages();


	$res.=$cwp->getFooter(FALSE);
	$out->add($res);
}


function addeditFaq($wiki_id, $todo) {
	$res="";

	$um=& UrlManager::getInstance();

	if (isset($_GET["mr_str"]))
		$um->loadOtherModRewriteParamFromVar($_GET["mr_str"]);


	if ((isset($_GET["faqid"])) && ($_GET["faqid"] > 0))
		$faq_id=(int)$_GET["faqid"];
	else if ($todo == "add")
		$faq_id=0;
	else
		return FALSE;


	cwpGlobalSetup($wiki_id);
	$cwp=& $GLOBALS["core_wiki_public"];

	if ($todo == "edit") {
		$info=$cwp->faqManager->getFaqInfo($faq_id);
		$title_label=$cwp->lang->def("_EDIT_FAQ").": ".$info["title"];
	}
	else if ($todo == "add") {
		$title_label=$cwp->lang->def("_ADD_FAQ");
	}

	$out=& $GLOBALS["page"];
	$out->setWorkingZone("content");

	$back_url=$um->getUrl();
	$info=$cwp->faqManager->getCalendarInfo($wiki_id);
	$title[$back_url]=$info["title"];
	$title[]=$title_label;
	$res.=$cwp->titleArea($title);
	$res.=$cwp->getHead();
	$res.=$cwp->backUi($back_url);

	$res.=$cwp->addeditFaq($wiki_id, $faq_id, $todo);

	$res.=$cwp->backUi($back_url);
	$res.=$cwp->getFooter();
	$out->add($res);
}


function saveFaq($wiki_id) {

	cwpGlobalSetup($wiki_id);
	$cwp=& $GLOBALS["core_wiki_public"];
	$cwp->saveFaq($wiki_id);

}


?>
