Esempio n. 1
0
}
if ($this->StartResultCache(false, array($USER->GetGroups(), $arNavigation, $arCache), false)) {
    $arParams['ELEMENT_NAME'] = urldecode($arParams['ELEMENT_NAME']);
    $arFilter = array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N', 'ACTIVE' => 'Y');
    if (empty($arParams['ELEMENT_NAME'])) {
        $arParams['ELEMENT_NAME'] = CWiki::GetDefaultPage($arParams['IBLOCK_ID']);
    }
    $arResult['ELEMENT'] = array();
    if (!empty($arParams['ELEMENT_NAME']) && ($arResult['ELEMENT'] = CWiki::GetElementByName($arParams['ELEMENT_NAME'], $arFilter)) != false) {
        $arParams['ELEMENT_ID'] = $arResult['ELEMENT']['ID'];
    }
    $CACHE_MANAGER->StartTagCache($this->GetCachePath());
    $CACHE_MANAGER->RegisterTag('wiki_' . $arParams['ELEMENT_ID']);
    $CACHE_MANAGER->EndTagCache();
    $SERVICE_NAME = '';
    if (CWikiUtils::IsCategoryPage($arParams['ELEMENT_NAME'], $SERVICE_NAME)) {
        $arParams['ELEMENT_NAME'] = strtolower(CWikiUtils::UnlocalizeCategoryName($arParams['ELEMENT_NAME']));
        $arResult['CUR_CAT']['NAME'] = $SERVICE_NAME;
        $arPagesFilter = array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N', 'ACTIVE' => 'Y');
        $arSort = array('XML_ID' => 'ASC');
        if ($arParams['ELEMENT_NAME'] == strtolower("category:" . GetMessage('WIKI_CATEGORY_ALL'))) {
            $arPagesFilter['INCLUDE_SUBSECTIONS'] = 'Y';
            if (CWikiSocnet::IsSocNet()) {
                $arPagesFilter['SECTION_ID'] = CWikiSocnet::$iCatId;
            }
            $rsPagesElement = CIBlockElement::GetList($arSort, $arPagesFilter, false, false, array());
        } elseif ($arParams['ELEMENT_NAME'] == strtolower("category:" . GetMessage('WIKI_CATEGORY_NOCAT'))) {
            $arPagesFilter['INCLUDE_SUBSECTIONS'] = 'N';
            if (CWikiSocnet::IsSocNet()) {
                $arPagesFilter['SECTION_ID'] = CWikiSocnet::$iCatId;
            } else {
Esempio n. 2
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']);
Esempio n. 3
0
    $arResult["PAGE_CACHE_CLEAR"] = true;
    CWiki::UnMarkPageAsUpdated($arParams['IBLOCK_ID'], $iCatId, $arParams['ELEMENT_NAME']);
}
if ($arResult["PAGE_CACHE_CLEAR"]) {
    $this->ClearResultCache(array($USER->GetGroups(), $arCache));
}
if ($this->StartResultCache(false, array($USER->GetGroups(), $arCache))) {
    $arParams['ELEMENT_NAME'] = urldecode($arParams['ELEMENT_NAME']);
    $arFilter = array('IBLOCK_ID' => $arParams['IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N', 'ACTIVE' => 'Y');
    $bNotPage = false;
    if (empty($arParams['ELEMENT_NAME'])) {
        $bNotPage = true;
        $arParams['ELEMENT_NAME'] = CWiki::GetDefaultPage($arParams['IBLOCK_ID']);
    }
    $sCatName = '';
    if (CWikiUtils::IsCategoryPage($arParams['ELEMENT_NAME'], $sCatName)) {
        $arResult['IS_CATEGORY'] = true;
        $arParams['ELEMENT_NAME'] = CWikiUtils::UnlocalizeCategoryName($arParams['ELEMENT_NAME']);
    } else {
        $arResult['IS_CATEGORY'] = false;
    }
    $arResult['ELEMENT'] = array();
    $arResult['ELEMENT'] = CWiki::GetElementByName($arParams['ELEMENT_NAME'], $arFilter, $arParams);
    if (!empty($arParams['ELEMENT_NAME']) && $arResult['ELEMENT'] != false) {
        //#REDIRECT [[target inner link]] - redirect from one page to another
        $matches = array();
        if (!$arResult['REDIRECTED_FROM'] && $arResult['REDIRECTED_FROM'] != 'no' && preg_match("/^\\#(REDIRECT|" . GetMessage('WIKI_REDIRECT') . ")\\s*\\[\\[(.+)\\]\\]/iU" . BX_UTF_PCRE_MODIFIER, $arResult['ELEMENT']['DETAIL_TEXT'], $matches)) {
            if ($matches[2]) {
                LocalRedirect(CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_POST'], array('wiki_name' => urlencode($matches[2]), 'group_id' => CWikiSocnet::$iSocNetId)), array('redirect' => urlencode($arParams['ELEMENT_NAME']))));
            }
        }
Esempio n. 4
0
 static function isCategoryVirtual($name)
 {
     $result = false;
     $sCatName = '';
     if (CWikiUtils::IsCategoryPage($name, $sCatName)) {
         $result = self::isVirtualCategoryExist($sCatName);
     }
     return $result;
 }
Esempio n. 5
0
 function _processInternalLinkPrepareCallback($matches)
 {
     $sLink = trim($matches[1]);
     $sName = $sTitle = $sLink;
     $sCatName = '';
     $matches[3] = isset($matches[3]) ? trim($matches[3]) : '';
     if (!empty($matches[3])) {
         $sName = $sTitle = $matches[3];
     } else {
         if (CWikiUtils::IsCategoryPage($sName, $sCatName)) {
             return '##Category##';
         }
     }
     $sTitle = strip_tags($sTitle);
     $i = count($this->arLink);
     $this->arLink[] = CWikiUtils::htmlspecialcharsback($matches[1], true);
     $sReturn = '<a ##LINK' . $i . '## title="' . $sTitle . '">' . $sName . '</a>';
     return $sReturn;
 }
Esempio n. 6
0
 /**
  * <p>Метод возвращает массив категорий Wiki-страницы. Динамичный метод.</p>
  *
  *
  * @param string $NAME  Наименование Wiki-страницы. До версии 9.5.3 назывался <b>ID</b>.
  *
  * @param int $IBLOCK_ID  Идентификатор Инфоблока. До версии 10.0.0 назывался <b>BLOCK_ID</b>.
  *
  * @return array <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>TITLE</td>
  * <td>наименование категории для подсказки</td> </tr> <tr> <td>LINK</td> <td>ссылка
  * на категорию</td> </tr> <tr> <td>IS_RED</td> <td>является ли ссылка красной (т.е.
  * страница категории не создана)</td> </tr> </tbody></table> <a name="examples"></a>
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?<br>
  * // Получим категории для страницы "Тестовая страница" инфо.блока с идентификатором 2
  * $NAME = 'Тестовая страница';
  * $IBLOCK_ID = 2;
  * 
  * $arCategory = CWiki::GetCategory($NAME, $IBLOCK_ID);<br>?&gt;
  * </pre>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/wiki/classes/cwiki/GetCategory.php
  * @author Bitrix
  */
 public static function GetCategory($NAME, $IBLOCK_ID)
 {
     global $arParams;
     $arResult = array();
     $arResult[] = array('TITLE' => GetMessage('Service:Categories_TITLE'), 'NAME' => GetMessage('Service:Categories'), 'LINK' => CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CATEGORIES'], array('wiki_name' => 'Service:Categories', 'group_id' => CWikiSocnet::$iSocNetId)), array()), 'IS_RED' => 'N', 'IS_SERVICE' => 'Y');
     $arFilter['=XML_ID'] = $NAME;
     $arFilter['IBLOCK_ID'] = $IBLOCK_ID;
     $arFilter['CHECK_PERMISSIONS'] = 'N';
     if (CWikiSocnet::IsSocNet()) {
         $arFilter['SUBSECTION'] = CWikiSocnet::$iCatId;
     }
     $rsElement = CIBlockElement::GetList(array(), $arFilter, false, false, array());
     $arElement = $rsElement->GetNext();
     $sCatName = '';
     if (CWikiUtils::IsCategoryPage($NAME, $sCatName)) {
         return $arResult;
     }
     $arLink = array();
     $arLinkExists = array();
     $arCat = array();
     $rsSect = CIBlockElement::GetElementGroups($arElement['ID'], false);
     while ($arSect = $rsSect->GetNext()) {
         $arCat[$arSect['ID']] = $arSect;
         $arLink[] = 'category:' . CWikiUtils::htmlspecialcharsback($arSect['NAME']);
     }
     if (empty($arLink)) {
         return array();
     }
     if (CWikiSocnet::IsSocNet() && isset($arCat[CWikiSocnet::$iCatId])) {
         unset($arCat[CWikiSocnet::$iCatId]);
     }
     $arFilter = array();
     $arFilter['=NAME'] = $arLink;
     $arFilter['IBLOCK_ID'] = $IBLOCK_ID;
     $arFilter['ACTIVE'] = 'Y';
     $arFilter['CHECK_PERMISSIONS'] = 'N';
     if (CWikiSocnet::IsSocNet()) {
         $arFilter['SUBSECTION'] = CWikiSocnet::$iCatId;
     }
     $rsElement = CIBlockElement::GetList(array(), $arFilter, false, false, array());
     while ($obElement = $rsElement->GetNextElement()) {
         $arFields = $obElement->GetFields();
         $arLinkExists[] = preg_replace('/^(category|' . GetMessage('CATEGORY_NAME') . '):/i' . BX_UTF_PCRE_MODIFIER, '', $arFields['NAME']);
     }
     if (!empty($arCat)) {
         foreach ($arCat as $_arCat) {
             $_arCat['NAME'] = CWikiUtils::htmlspecialcharsback($_arCat['NAME'], false);
             $_arResult = array();
             $_arResult['ID'] = $_arCat['ID'];
             $_arResult['IS_RED'] = 'N';
             $_arResult['LINK'] = CHTTP::urlAddParams(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CATEGORY'], array('wiki_name' => 'Category:' . $_arCat['NAME'], 'group_id' => CWikiSocnet::$iSocNetId)), array());
             $_arResult['TITLE'] = $_arCat['NAME'];
             $_arResult['NAME'] = $_arCat['NAME'];
             $_arResult['IS_SERVICE'] = 'N';
             if (!in_array($_arCat['NAME'], $arLinkExists)) {
                 $_arResult['IS_RED'] = 'Y';
             }
             $arResult[] = $_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 
Esempio n. 8
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);
        }
    }
Esempio n. 9
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;
 }