function CheckPermission()
 {
     if (!CModule::IncludeModule('wiki') || !CWikiUtils::IsReadable()) {
         return false;
     }
     return true;
 }
 function CanUserOperateDocument($operation, $userId, $documentId, $arParameters = array())
 {
     if (CWikiSocnet::IsSocNet()) {
         return CWikiUtils::CheckAccess('write');
     } else {
         return parent::CanUserOperateDocument($operation, $userId, $documentId, $arParameters);
     }
 }
 $arHistory['USER_LOGIN'] = CWikiUtils::GetUserLogin($arHistory, $arParams["NAME_TEMPLATE"]);
 $arHistory['DISCUSSION_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DISCUSSION'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N' ? array($arParams['OPER_VAR'] => 'discussion') : array());
 $arHistory['SHOW_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), array('oldid' => $arHistory['ID']));
 $arHp = array('oldid' => $arHistory['ID'], 'sessid' => bitrix_sessid());
 if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') {
     $arHp[$arParams['OPER_VAR']] = 'history';
 }
 $arHistory['CANCEL_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp);
 if ($arHistoryFirst['ID'] != $arHistory['ID']) {
     $arHp = array('diffid' => $arHistoryFirst['ID'], 'oldid' => $arHistory['ID']);
     if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') {
         $arHp[$arParams['OPER_VAR']] = 'history_diff';
     }
     $arHistory['CUR_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY_DIFF'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp);
 }
 if (CWikiUtils::IsDeleteable()) {
     $arHp = array('oldid' => $arHistory['ID'], 'sessid' => bitrix_sessid(), 'delete' => 1);
     if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') {
         $arHp[$arParams['OPER_VAR']] = 'history';
     }
     $arHistory['DELETE_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp);
 }
 $arHistory['MODIFIED'] = FormatDateFromDB($arHistory['MODIFIED']);
 $arResult['HISTORY'][] = $arHistory;
 $iPrev = count($arResult['HISTORY']) - 2;
 if (isset($arResult['HISTORY'][$iPrev])) {
     $arHp = array('diffid' => $arResult['HISTORY'][$iPrev]['ID'], 'oldid' => $arHistory['ID']);
     if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') {
         $arHp[$arParams['OPER_VAR']] = 'history_diff';
     }
     $arResult['HISTORY'][$iPrev]['PREV_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY_DIFF'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp);
Exemple #4
0
 static function isCategoryVirtual($name)
 {
     $result = false;
     $sCatName = '';
     if (CWikiUtils::IsCategoryPage($name, $sCatName)) {
         $result = self::isVirtualCategoryExist($sCatName);
     }
     return $result;
 }
            $arResult['VERSION']['CANCEL_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_HISTORY'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp);
        }
    }
    $CACHE_MANAGER->StartTagCache($this->GetCachePath());
    $CACHE_MANAGER->RegisterTag('wiki_' . $arParams['ELEMENT_ID']);
    $CACHE_MANAGER->EndTagCache();
    /*$arPages = array('article');
    	if (isset($arResult['WIKI_oper']) && $arResult['WIKI_oper'] == 'add')
    		$arPages[] = 'add';
    	$arResult['TOPLINKS'] = CWikiUtils::getRightsLinks($arPages, $arParams);*/
    $arCat = array();
    $CWikiParser = new CWikiParser();
    if ($arResult['REDIRECTED_FROM'] && CWikiUtils::IsWriteable()) {
        $redirUrl = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST_EDIT'], array('wiki_name' => urlencode($arResult['REDIRECTED_FROM']), 'group_id' => CWikiSocnet::$iSocNetId)), $arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N' ? array($arParams['OPER_VAR'] => $arResult['WIKI_oper']) : array());
        $redirUrl = (CMain::IsHTTPS() ? "https://" : "http://") . $_SERVER["HTTP_HOST"] . $redirUrl;
        $arResult['ELEMENT']['~DETAIL_TEXT'] = GetMessage("WIKI_REDIRECT_FROM") . "[" . $redirUrl . " " . $arResult['REDIRECTED_FROM'] . "]<br><br>" . $arResult['ELEMENT']['~DETAIL_TEXT'];
    }
    $arResult['ELEMENT']['DETAIL_TEXT'] = $CWikiParser->parseBeforeSave($arResult['ELEMENT']['~DETAIL_TEXT'], $arCat, $arParams["NAME_TEMPLATE"]);
    $arResult['ELEMENT']['DETAIL_TEXT'] = $CWikiParser->Parse($arResult['ELEMENT']['DETAIL_TEXT'], $arResult['ELEMENT']['DETAIL_TEXT_TYPE'], $arResult['ELEMENT']['IMAGES']);
    $arResult['ELEMENT']['DETAIL_TEXT'] = $CWikiParser->Clear($arResult['ELEMENT']['DETAIL_TEXT']);
    $SERVICE_PAGE_NAME = '';
    $arResult['SERVICE_PAGE'] = CWikiUtils::CheckServicePage($arParams['ELEMENT_NAME'], $SERVICE_PAGE_NAME);
    if ($arResult['SERVICE_PAGE'] == 'category') {
        $this->AbortResultCache();
    }
    $this->IncludeComponentTemplate();
}
$arParams = $_arParams;
include_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/bitrix/wiki/include/nav.php';
unset($GLOBALS['arParams']);
return $arResult['ELEMENT']['ID'];
Exemple #6
0
    $arResult['CATEGORIES'][strtolower($arCat["NAME"])] = $arCat;
}
$arResult['DB_LIST'] =& $dbCatList;
$arCatName = $categories->getItemsNames();
$arCatNameExists = array();
if (!empty($arCatName)) {
    // checking the category on the "red link"
    $arFilter = array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N', 'ACTIVE' => 'Y', 'NAME' => $arCatName);
    if (CWikiSocnet::IsSocNet()) {
        $arFilter['SUBSECTION'] = CWikiSocnet::$iCatId;
    }
    $rsElement = CIBlockElement::GetList(array(), $arFilter, false, false, array());
    while ($arElement = $rsElement->GetNext()) {
        $arCatNameExists[] = substr($arElement['NAME'], strpos($arElement['NAME'], ':') + 1);
    }
    if (!empty($arCatNameExists)) {
        foreach ($arCatNameExists as $sCatName) {
            $sCatNameLow = strtolower($sCatName);
            if (isset($arResult['CATEGORIES'][$sCatNameLow])) {
                $arResult['CATEGORIES'][$sCatNameLow]['IS_RED'] = 'N';
                // exclude the very category page
                if (!CWikiUtils::isVirtualCategoryExist($sCatName)) {
                    $arResult['CATEGORIES'][$sCatNameLow]['CNT']--;
                }
            }
        }
    }
}
include_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/bitrix/wiki/include/nav.php';
$this->IncludeComponentTemplate();
unset($GLOBALS['arParams']);
    if (!CModule::IncludeModule('socialnetwork')) {
        ShowError(GetMessage('SOCNET_MODULE_NOT_INSTALLED'));
        return;
    }
}
if (CWikiSocnet::isEnabledSocnet() && !empty($arParams['SOCNET_GROUP_ID'])) {
    $iblock_id_tmp = CWikiSocnet::RecalcIBlockID($arParams["SOCNET_GROUP_ID"]);
    if ($iblock_id_tmp) {
        $arParams['IBLOCK_ID'] = $iblock_id_tmp;
    }
    if (!CWikiSocnet::Init($arParams['SOCNET_GROUP_ID'], $arParams['IBLOCK_ID'])) {
        ShowError(GetMessage('WIKI_SOCNET_INITIALIZING_FAILED'));
        return;
    }
}
if (!CWikiUtils::IsReadable()) {
    ShowError(GetMessage('WIKI_ACCESS_DENIED'));
    return;
}
//$arResult['TOPLINKS'] = CWikiUtils::getRightsLinks('service', $arParams);
// looking for a page without categories
/*$arFilter = array();
$arFilter = array(
	"IBLOCK_LID" => SITE_ID,
	"IBLOCK_ID" => $arParams['IBLOCK_ID'],
	"CHECK_PERMISSIONS" => 'N',
	"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
	"ACTIVE" => 'Y',
	"!NAME" => 'Category%',
	"SECTION_ID" => false
);
Exemple #8
0
 }
 $arResult['VERSION_DIFF'] = array();
 $arResult['VERSION_DIFF']['USER_ID'] = $arDiffResult['USER_ID'];
 $arResult['VERSION_DIFF']['USER_LOGIN'] = CWikiUtils::GetUserLogin($arUser, $arParams["NAME_TEMPLATE"]);
 $arResult['VERSION_DIFF']['MODIFIED'] = FormatDateFromDB($arDiffResult['MODIFIED']);
 $arResult['VERSION_DIFF']['ID'] = $arDiffResult['ID'];
 $arResult['VERSION_DIFF']['SHOW_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_POST"], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), array('oldid' => $arDiffResult['ID']));
 $arResult['VERSION_DIFF']['USER_LINK'] = '';
 if (!empty($arParams["PATH_TO_USER"])) {
     $arResult['VERSION_DIFF']['USER_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_USER"], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId, 'user_id' => $arDiffResult['USER_ID'])), array());
 }
 $rsUser = CUser::GetByID($arHistoryResult['USER_ID']);
 $arUser = $rsUser->Fetch();
 $arResult['VERSION_OLD'] = array();
 $arResult['VERSION_OLD']['USER_ID'] = $arHistoryResult['USER_ID'];
 $arResult['VERSION_OLD']['USER_LOGIN'] = CWikiUtils::GetUserLogin($arUser, $arParams["NAME_TEMPLATE"]);
 $arResult['VERSION_OLD']['MODIFIED'] = FormatDateFromDB($arHistoryResult['MODIFIED']);
 $arResult['VERSION_OLD']['ID'] = $arHistoryResult['ID'];
 $arResult['VERSION_OLD']['SHOW_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), array('oldid' => $arHistoryResult['ID']));
 $arResult['VERSION_OLD']['USER_LINK'] = '';
 if (!empty($arParams['PATH_TO_USER'])) {
     $arResult['VERSION_OLD']['USER_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId, 'user_id' => $arHistoryResult['USER_ID'])), array());
 }
 $arHp = array('oldid' => $arHistoryResult['ID'], 'sessid' => bitrix_sessid());
 if ($arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N') {
     $arHp[$arParams["OPER_VAR"]] = 'history';
 }
 $arResult['CANCEL_LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_HISTORY"], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arHp);
 /* erase
 	if ($arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT_TYPE'] == 'text')
 		$arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT'] = nl2br($arHistoryResult['DOCUMENT']['FIELDS']['DETAIL_TEXT']);
Exemple #9
0
 function parseBeforeSave($text, &$arCat = array(), $nameTemplate = "")
 {
     $userLogin = CWikiUtils::GetUserLogin(array(), $nameTemplate);
     //$text = preg_replace_callback('/(<nowiki>(.*)<\/nowiki>)/isU'.BX_UTF_PCRE_MODIFIER, array(&$this, '_noWikiCallback'), $text);
     // Subscribe
     $text = preg_replace('/--~~~~*/' . BX_UTF_PCRE_MODIFIER, '\\1--' . $userLogin . ' ' . ConvertTimeStamp(false, 'FULL'), $text);
     // Category
     $matches = array();
     if (preg_match_all('/\\[\\[(Category|' . GetMessage('CATEGORY_NAME') . '):(.+)\\]\\]/iU' . BX_UTF_PCRE_MODIFIER, $text, $matches)) {
         $arCat = array_unique($matches[2]);
     }
     //$text = preg_replace_callback('/(##NOWIKI(\d+)##)/isU'.BX_UTF_PCRE_MODIFIER, array(&$this, '_noWikiReturn2Callback'), $text);
     return $text;
 }
Exemple #10
0
 /**
  * <p>Возвращает Wiki-страницу по фильтру arFilter. Статичный метод.</p>
  *
  *
  * @param string $NAME  Название Wiki-страницы
  *
  * @param array $arFilter  <a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/getlist.php">GetList</a>
  *
  * @param arComponentParam $s = array() Необязательный.
  *
  * @return result_type <p>Возвращается массив, содержащий поля со значениями: </p> <table
  * width="100%" class="tnormal"><tbody> <tr> <th width="15%">Параметр</th> <th>Описание</th> </tr> <tr>
  * <td>NAME</td> <td>наименование страницы</td> </tr> <tr> <td>DETAIL_TEXT_TYPE</td> <td>тип
  * содержимого страницы</td> </tr> <tr> <td>DETAIL_TEXT</td> <td>текст содержимого
  * страницыы</td> </tr> <tr> <td>IMAGES</td> <td>массив изображений страницы</td> </tr>
  * <tr> <td>SECTIONS</td> <td>массив категорий страницы</td> </tr> <tr> <td>TAGS</td>
  * <td>массив тэгов страницы</td> </tr> </tbody></table>
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?<br>
  * // Получим Wiki-страницу с названием "Тестовая страница" инфо.блока с идентификатором 2
  * 
  * $NAME = 'Тестовая страница';
  * $arFilter = array(
  * 	'ACTIVE' =&gt; 'Y',
  * 	'CHECK_PERMISSIONS' =&gt; 'N',
  * 	'IBLOCK_ID' =&gt; 2
  * );
  * $arElement = CWiki::GetElementByName($NAME, $arFilter);
  * if ($arElement == false)
  * 	echo 'Страница не найдена.';
  * <br>?&gt;
  * </pre>
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/wiki/classes/cwiki/GetElementById.php">CWiki::GetElementById</a>
  * </li> <li> <a href="http://dev.1c-bitrix.ru/api_help/wiki/classes/cwiki/GetCategory.php">CWiki::GetCategory</a> </li>
  * <li> <a href="http://dev.1c-bitrix.ru/api_help/wiki/classes/cwikiparser/parse.php">CWikiParser::Parse</a> </li> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/wiki/classes/cwikisecurity/clear.php">CWikiSecurity::clear</a> </li> </ul><a
  * name="examples"></a>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/wiki/classes/cwiki/GetElementByName.php
  * @author Bitrix
  */
 public static function GetElementByName($NAME, $arFilter, $arComponentParams = array())
 {
     global $CACHE_MANAGER;
     $iCatId = "";
     if (CWikiSocnet::IsSocNet()) {
         $arFilter['SUBSECTION'] = CWikiSocnet::$iCatId;
         $iCatId = $arFilter['SUBSECTION'];
     }
     $cacheByNameID = self::GetIdForCacheByName($arFilter['IBLOCK_ID'], $iCatId, $NAME);
     $cacheTime = isset($arComponentParams['CACHE_TIME']) ? intval($arComponentParams['CACHE_TIME']) : CWiki::CWIKI_CACHE_TTL;
     if ($CACHE_MANAGER->Read($cacheTime, $cacheByNameID)) {
         $cachedElement = $CACHE_MANAGER->Get($cacheByNameID);
         if ($cachedElement) {
             //if cached element satisfied to filter's conditions
             $sameFilter = true;
             foreach ($arFilter as $key => $value) {
                 if (isset($cachedElement[$key]) && $value != "" && $cachedElement[$key] != $value) {
                     $sameFilter = false;
                     break;
                 }
             }
             if ($sameFilter) {
                 return $cachedElement;
             }
         }
     }
     $NAME = CWikiUtils::UnlocalizeCategoryName($NAME);
     $NAME = CWikiUtils::htmlspecialcharsback($NAME);
     $arFilter['=XML_ID'] = $NAME;
     $rsElement = CIBlockElement::GetList(array(), $arFilter);
     $obElement = $rsElement->GetNextElement();
     $arResult = false;
     if ($obElement !== false) {
         $arResult = $obElement->GetFields();
         if (isset($arResult['NAME'])) {
             $arResult['NAME'] = htmlspecialcharsbx($arResult['NAME']);
         }
         $rsProperties = $obElement->GetProperties(array(), array('CODE' => 'IMAGES'));
         foreach ($rsProperties as $arProperty) {
             $arResult[$arProperty['CODE']] = $arProperty['VALUE'];
         }
         $rsProperties = $obElement->GetProperties(array(), array('CODE' => 'FORUM_TOPIC_ID'));
         foreach ($rsProperties as $arProperty) {
             $arResult[$arProperty['CODE']] = $arProperty['VALUE'];
         }
         $arResult['SECTIONS'] = self::GetCategory($arResult['XML_ID'], $arFilter['IBLOCK_ID']);
         if (!empty($arResult['TAGS'])) {
             $_arTAGS = explode(',', $arResult['TAGS']);
             $arResult['_TAGS'] = array();
             foreach ($_arTAGS as $sTag) {
                 $sTag = trim($sTag);
                 $arTag = array('NAME' => $sTag);
                 if (!empty($arComponentParams) && isset($arComponentParams['PATH_TO_SEARCH'])) {
                     $arP = $arComponentParams['IN_COMPLEX'] == 'Y' && $arComponentParams['SEF_MODE'] == 'N' ? array($arComponentParams['OPER_VAR'] => 'search') : array();
                     $arP['tags'] = urlencode($sTag);
                     $arTag['LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arComponentParams['PATH_TO_SEARCH'], array('wiki_name' => $arComponentParams['ELEMENT_NAME'], 'group_id' => CWikiSocnet::$iSocNetId)), $arP);
                 }
                 $arResult['_TAGS'][] = $arTag;
             }
         }
     }
     if (!empty($arComponentParams)) {
         //Let's store only full page data with tag links
         $CACHE_MANAGER->Set($cacheByNameID, $arResult);
     }
     return $arResult;
 }
			BX.WindowManager.Get().ClearButtons();
			BX.WindowManager.Get().SetButtons(_BTN);
		</script>
		<?php 
    }
    ?>
</td></tr></table><?php 
    die;
} elseif ($arResult['WIKI_oper'] == 'rename') {
    ?>
<table width="100%" height="100%"><tr><td align="center" valign="middle"><?php 
    if (strlen($arResult['ERROR_MESSAGE']) <= 0) {
        $sCatName = '';
        if (CWikiUtils::IsCategoryPage($arResult['ELEMENT']['NAME'], $sCatName)) {
            $catLocalName = CWikiUtils::UnlocalizeCategoryName($sPageName);
        }
        ?>
		<form action="<?php 
        echo $arResult['PATH_TO_POST_EDIT'];
        ?>
" name="rename_form" method="POST">
		<?php 
        echo bitrix_sessid_post();
        ?>
		<input type="hidden" name="<?php 
        echo $arResult['PAGE_VAR'];
        ?>
" value="$arResult['ELEMENT']['NAME_LOCALIZE']?>"/>
		<input type="hidden" name="<?php 
        echo $arResult['OPER_VAR'];
Exemple #12
0
            ?>
			</div>
		<?php 
        }
        ?>
			<div style="clear:both"></div>
		</div>
	<?php 
    }
    ?>
	<?php 
    if (!empty($arResult['ELEMENT']['_TAGS'])) {
        ?>
<div id="wiki_category">
		<?php 
        echo GetMessage('WIKI_TAGS');
        ?>
:
		<?php 
        echo CWikiUtils::GetTagsAsLinks($arResult['ELEMENT']['_TAGS']);
        ?>
		</div>
		<?php 
    }
    ?>
	</div>
<?php 
}
?>
</div>
 /**
  * Sets right search path for comments, likes etc.
  * http://jabber.bx/view.php?id=25340
  * @param int $forumID - forum's ID were comments saving (for example $arParams['FORUM_ID'])
  * @param str $rightPath - wich path must leads to the comment ( for example: "/comment/#MESSAGE_ID#/" )
  * @param str $urlRewriterPath - wich path leads to curent module (complex component) ( for example: "/services/wiki.php" )
  * @return bool true|false
  */
 static function SetCommentPath($forumID, $rightPath, $urlRewriterPath)
 {
     if (!$forumID || !CModule::IncludeModule('forum') || !$rightPath || !$urlRewriterPath) {
         return false;
     }
     $arRewriter = CUrlRewriter::GetList(array("PATH" => $urlRewriterPath));
     //http://jabber.bx/view.php?id=25340
     if (!is_array($arRewriter) || empty($arRewriter)) {
         return false;
     }
     $rewriteCondition = str_replace(array("#", "^"), "", $arRewriter[0]["CONDITION"]);
     $rightCommentsPath = $rewriteCondition . $rightPath;
     $arActualCommentsPath = CWikiUtils::GetCommentPath($forumID);
     if (!is_array($arActualCommentsPath)) {
         return false;
     }
     $arUpdateForum = array();
     foreach ($arActualCommentsPath as $site => $path) {
         if ($path != $rightCommentsPath) {
             $arUpdateForum["SITES"][$site] = $rightCommentsPath;
         }
     }
     if (!empty($arUpdateForum)) {
         CForumNew::Update($forumID, $arUpdateForum);
     }
     return true;
 }
Exemple #14
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
$sPageName = $arResult['ELEMENT']['NAME'] = CWikiUtils::htmlspecialcharsback($arResult['ELEMENT']['NAME'], false);
$sCatName = '';
if (CWikiUtils::IsCategoryPage($sPageName, $sCatName)) {
    $sPageName = preg_replace('/^category:/i' . BX_UTF_PCRE_MODIFIER, GetMessage('CATEGORY_NAME') . ':', $sPageName);
}
if (CWikiSocnet::IsSocNet()) {
    if (intval($arParams["SOCNET_GROUP_ID"]) > 0 && (empty($arParams['SET_TITLE']) || $arParams['SET_TITLE'] != 'N' || $this->GetParent()->arResult['SET_NAV_CHAIN'] == 'Y')) {
        $arGroup = CSocNetGroup::GetByID($arParams["SOCNET_GROUP_ID"]);
        $arActiveFeatures = CSocNetFeatures::GetActiveFeaturesNames(SONET_ENTITY_GROUP, $arParams["SOCNET_GROUP_ID"]);
        $sFeatureName = array_key_exists("wiki", $arActiveFeatures) && strlen($arActiveFeatures["wiki"]) > 0 ? $arActiveFeatures["wiki"] : GetMessage("WIKI_SOCNET_TAB");
    }
    if (empty($arParams['SET_TITLE']) || $arParams['SET_TITLE'] != 'N') {
        $APPLICATION->SetTitle($arGroup["NAME"] . ": " . $sFeatureName . (!empty($sPageName) ? ": " . $sPageName : ''));
    }
    if ($this->GetParent()->arResult['SET_NAV_CHAIN'] == 'Y') {
        $APPLICATION->AddChainItem($arGroup["NAME"], CComponentEngine::MakePathFromTemplate($this->GetParent()->arResult['PATH_TO_GROUP'], array('group_id' => CWikiSocnet::$iSocNetId)));
        $APPLICATION->AddChainItem($sFeatureName, CComponentEngine::MakePathFromTemplate($this->GetParent()->arResult['PATH_TO_GROUP_WIKI_INDEX'], array('group_id' => CWikiSocnet::$iSocNetId, 'wiki_name' => urlencode($arResult['ELEMENT']['NAME']))));
    }
} else {
    if ($arParams['IN_COMPLEX'] == 'Y') {
        $sNavItem = $this->GetParent()->arParams['NAV_ITEM'];
        $sSefFolder = $this->GetParent()->arParams['SEF_FOLDER'];
        if (!empty($sNavItem)) {
            $APPLICATION->AddChainItem($sNavItem, $sSefFolder);
        }
    }
Exemple #15
0
        }
        //Anyone can build own pages list
        $rsHandlers = GetModuleEvents("wiki", "OnCategoryPagesListCreate");
        while ($arHandler = $rsHandlers->Fetch()) {
            if ($handlRes = ExecuteModuleEventEx($arHandler, array($arParams['ELEMENT_NAME'], $arParams['IBLOCK_ID']))) {
                $rsPagesElement = $handlRes;
                break;
            }
        }
        if (isset($rsPagesElement) && $rsPagesElement) {
            $arResult['PAGES'] = array();
            $arPageNameExists = array();
            $rsPagesElement->NavStart($arParams['PAGES_COUNT'], false);
            $arResult['DB_LIST'] =& $rsPagesElement;
            while ($arPage = $rsPagesElement->GetNext()) {
                $sname = $arPage['NAME'];
                if (CWikiUtils::CheckServicePage($arPage['NAME'], $sname)) {
                    continue;
                }
                $arResult['PAGES'][$arPage['NAME']] = array('TITLE' => $arPage['NAME'], 'NAME' => $sname, 'IS_RED' => $arPage['ACTIVE'] == 'Y' ? 'N' : 'Y', 'LINK' => CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($arPage['NAME']), 'group_id' => CWikiSocnet::$iSocNetId)));
            }
            $arResult['COLUMNS_COUNT'] = empty($arParams['COLUMNS_COUNT']) ? 1 : $arParams['COLUMNS_COUNT'];
            $arResult['PAGES_COUNT'] = empty($arParams['PAGES_COUNT']) ? 1 : $arParams['PAGES_COUNT'];
        } else {
            $arResult['COLUMNS_COUNT'] = 1;
            $arResult['PAGES_COUNT'] = 1;
        }
    }
    $this->IncludeComponentTemplate();
}
unset($GLOBALS['arParams']);
Exemple #16
0
if (!empty($arParams['ELEMENT_NAME']) && ($arResult['ELEMENT'] = CWiki::GetElementByName($arParams['ELEMENT_NAME'], $arFilter)) != false) {
    if ($arResult['ELEMENT']['ACTIVE'] == 'N') {
        $bNotEl = true;
        $arPages[] = 'add';
    }
    $arParams['ELEMENT_ID'] = $arResult['ELEMENT']['ID'];
} else {
    $bNotEl = true;
    if ($bNotPage || empty($arParams['ELEMENT_NAME'])) {
        $arResult['ELEMENT']['NAME'] = CWiki::GetDefaultPage($arParams['IBLOCK_ID']);
        //http://jabber.bx/view.php?id=28710
        if (empty($arResult['ELEMENT']['NAME'])) {
            $arResult['ELEMENT']['NAME'] = GetMessage('WIKI_DEFAULT_PAGE_NAME');
        }
        //todo: insert into CWiki::GetDefaultPage()
        $arParams['ELEMENT_NAME'] = $arResult['ELEMENT']['NAME'];
    } else {
        $arResult['ELEMENT']['NAME'] = $arParams["ELEMENT_NAME"];
    }
    $arParams['ELEMENT_ID'] = 0;
    $arResult['ELEMENT']['ID'] = 0;
    $sServiceName = '';
    $arPages[] = 'add';
}
$arResult['TOPLINKS'] = CWikiUtils::getRightsLinks($arPages);
if ($bNotEl && !empty($arResult['TOPLINKS'])) {
    $arResult['TOPLINKS']['add']['LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST_EDIT'], array('wiki_name' => urlencode($arResult['ELEMENT']['NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), array($arParams['OPER_VAR'] => 'add'));
}
$arResult['TYPE'] = $arParams['MENU_TYPE'];
$this->IncludeComponentTemplate();
unset($GLOBALS['arParams']);
Exemple #17
0
                }
            }
        }
        // obtain a list of pictures page
        $arResult['IMAGES'] = array();
        if (!empty($arResult['ELEMENT']['IMAGES'])) {
            foreach ($arResult['ELEMENT']['IMAGES'] as $_imgID) {
                $rsFile = CFile::GetByID($_imgID);
                $arFile = $rsFile->Fetch();
                $aImg = array();
                $aImg['ID'] = $_imgID;
                $aImg['ORIGINAL_NAME'] = $arFile['ORIGINAL_NAME'];
                $aImg['FILE_SHOW'] = CFile::ShowImage($_imgID, 100, 100, "id=\"{$_imgID}\" border=\"0\" style=\"cursor:pointer;\" onclick=\"doInsert('[File:" . CUtil::JSEscape(htmlspecialcharsbx($arFile['ORIGINAL_NAME'])) . "]','',false, '{$_imgID}')\" title='" . GetMessage('WIKI_IMAGE_INSERT') . "'");
                $arResult['IMAGES'][] = $aImg;
            }
        }
        include_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/bitrix/wiki/include/nav.php';
        $arResult['PATH_TO_POST_EDIT'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST_EDIT'], array('wiki_name' => urlencode($arParams['ELEMENT_NAME']), 'group_id' => CWikiSocnet::$iSocNetId)), $arParams['IN_COMPLEX'] == 'Y' && $arParams['SEF_MODE'] == 'N' ? array($arParams['OPER_VAR'] => $arResult['WIKI_oper']) : array());
        $arResult['~PATH_TO_POST_EDIT'] = urldecode($arResult['PATH_TO_POST_EDIT']);
        //because it can change the page name, and hence the path for the parameter "Action" in tag "Form"
        if (strpos(POST_FORM_ACTION_URI, 'SEF_APPLICATION_CUR_PAGE_URL=') !== false) {
            $arResult['PATH_TO_POST_EDIT_SUBMIT'] = CHTTP::urlAddParams(CHTTP::urlDeleteParams(POST_FORM_ACTION_URI, array('SEF_APPLICATION_CUR_PAGE_URL')), array('SEF_APPLICATION_CUR_PAGE_URL' => urlencode($arResult['~PATH_TO_POST_EDIT'])));
        } else {
            $arResult['PATH_TO_POST_EDIT_SUBMIT'] = $arResult['PATH_TO_POST_EDIT'];
        }
        $sCatName = '';
        $arResult["IS_CATEGORY_PAGE"] = CWikiUtils::IsCategoryPage($arResult['ELEMENT']['NAME_LOCALIZE'], $sCatName);
    }
}
$this->IncludeComponentTemplate();
unset($GLOBALS['arParams']);
Exemple #18
0
 static function isCategoryVirtual($name)
 {
     $result = false;
     $sCatName = '';
     if (CWikiUtils::IsCategoryPage($name, $sCatName)) {
         if ($sCatName == GetMessage("WIKI_CATEGORY_NOCAT") || $sCatName == GetMessage("WIKI_CATEGORY_ALL")) {
             $result = true;
         }
         if (!$result) {
             $categories = new CWikiCategories();
             $rsHandlers = GetModuleEvents("wiki", "OnCategoryListCreate");
             while ($arHandler = $rsHandlers->Fetch()) {
                 ExecuteModuleEventEx($arHandler, array(&$categories, ''));
             }
             $arCats = $categories->GetItems();
             foreach ($arCats as $category) {
                 if ($category["NAME"] == $sCatName) {
                     $result = true;
                     break;
                 }
             }
         }
     }
     return $result;
 }