Esempio n. 1
0
 function DEMO_Sale_AddMenuItem($menuFile, $menuItem)
 {
     if (CModule::IncludeModule('fileman')) {
         $arResult = CFileMan::GetMenuArray($_SERVER["DOCUMENT_ROOT"] . $menuFile);
         $arMenuItems = $arResult["aMenuLinks"];
         $menuTemplate = $arResult["sMenuTemplate"];
         $bFound = false;
         foreach ($arMenuItems as $item) {
             if ($item[1] == $menuItem[1]) {
                 $bFound = true;
             }
         }
         if (!$bFound) {
             $arMenuItems[] = $menuItem;
             CFileMan::SaveMenu(array($arParams["site_id"], $menuFile), $arMenuItems, $menuTemplate);
         }
     }
 }
Esempio n. 2
0
 $relativePath = rtrim($path, "/") . "/" . $fileName . ($createNewFolder ? "/" : "");
 //Save menu
 if ($addToMenu && array_key_exists($menuType, $arMenu) && CModule::IncludeModule("fileman")) {
     $menuFile = $arMenu[$menuType]["ACTUAL_FILE"];
     $arResult = CFileMan::GetMenuArray($documentRoot . $menuFile);
     $arMenuItems = $arResult["aMenuLinks"];
     $menuTemplate = $arResult["sMenuTemplate"];
     if ($menuItemPosition > count($arMenuItems)) {
         $menuItemPosition = 0;
     }
     //move to the right all items greater current item
     for ($i = count($arMenuItems) - 1; $i >= $menuItemPosition; $i--) {
         $arMenuItems[$i + 1] = $arMenuItems[$i];
     }
     $arMenuItems[$menuItemPosition] = array($menuName, $relativePath, array(), array(), "");
     CFileMan::SaveMenu(array($site, $menuFile), $arMenuItems, $menuTemplate);
     $arUndoParams['arContent']['menu'] = array('menuFile' => $menuFile, 'menuName' => $menuName, 'menuPath' => $relativePath);
     if (COption::GetOptionString($module_id, "log_page", "Y") == "Y") {
         $mt = COption::GetOptionString("fileman", "menutypes", $default_value, $site);
         $mt = unserialize(str_replace("\\", "", $mt));
         $res_log['menu_name'] = $mt[$menuType];
         $res_log['path'] = substr(dirname($arUndoParams['arContent']['path']), 1);
         CEventLog::Log("content", "MENU_EDIT", "main", "", serialize($res_log));
     }
 }
 $ID = CUndo::Add($arUndoParams);
 CUndo::ShowUndoMessage($ID);
 $pathToEdit = $relativePath . ($createNewFolder ? "index.php" : "");
 if (!$USER->CanDoFileOperation("fm_edit_existent_file", array($site, $pathToEdit))) {
     $canEditNewPage = false;
 }
Esempio n. 3
0
                 $aMenuSort[$j] = $tmpSort;
             }
         }
     }
     //теперь $aMenuLinksTmp прямо в таком готовом виде, что хоть меню рисуй :-)
 }
 if ($REQUEST_METHOD == "POST" && strlen($save) > 0 && strlen($name) <= 0 && check_bitrix_sessid()) {
     $strWarning = GetMessage("FILEMAN_MENU_EDIT_ENTER_TYPE");
 } elseif (strlen($new) > 0 && strlen($name) > 0 && $io->FileExists($abs_path) && check_bitrix_sessid()) {
     $strWarning = GetMessage("FILEMAN_MENU_EDIT_EXISTS_ERROR");
     $bEdit = false;
     $abs_path = $DOC_ROOT . $path;
 }
 if (strlen($strWarning) <= 0) {
     if ($REQUEST_METHOD == "POST" && strlen($save) > 0 && is_array($ids) && check_bitrix_sessid()) {
         CFileMan::SaveMenu(array($site, $menufilename), $aMenuLinksTmp, $sMenuTemplateTmp);
         $bEdit = true;
         $module_id = "fileman";
         if (COption::GetOptionString($module_id, "log_menu", "Y") == "Y") {
             $mt = COption::GetOptionString("fileman", "menutypes", $default_value, $site);
             $mt = unserialize(str_replace("\\", "", $mt));
             $res_log['menu_name'] = $mt[$name];
             $res_log['path'] = substr($path, 1);
             if (strlen($new) <= 0) {
                 CEventLog::Log("content", "MENU_EDIT", "fileman", "", serialize($res_log));
             } else {
                 CEventLog::Log("content", "MENU_ADD", "fileman", "", serialize($res_log));
             }
         }
         if (strlen($apply) <= 0) {
             if (strlen($back_url) > 0) {
Esempio n. 4
0
                     // number of item must be in bounds of amount of current menu
                     $aMenuLinksTmp[$menuitem][2][] = $path;
                 }
             } else {
                 $menuitem = $newppos - 1;
                 // if number of item goes out from bounds of amount of current menu
                 if ($menuitem < 0 || $menuitem >= count($aMenuLinksTmp)) {
                     $menuitem = count($aMenuLinksTmp);
                 }
                 for ($i = count($aMenuLinksTmp) - 1; $i >= $menuitem; $i--) {
                     //shift to the right all items > our
                     $aMenuLinksTmp[$i + 1] = $aMenuLinksTmp[$i];
                 }
                 $aMenuLinksTmp[$menuitem] = array($newp, $path, array(), array(), "");
             }
             CFileMan::SaveMenu(array($site, $menu_path), $aMenuLinksTmp, $sMenuTemplateTmp);
             if (COption::GetOptionString("main", "event_log_menu", "N") === "Y") {
                 $mt = COption::GetOptionString("fileman", "menutypes", $default_value, $site);
                 $mt = unserialize(str_replace("\\", "", $mt));
                 $res_log['menu_name'] = $mt[$menutype];
                 $res_log['path'] = substr(dirname($path), 1);
                 CEventLog::Log("content", "MENU_EDIT", "fileman", "", serialize($res_log));
             }
         }
     }
     if (strlen($strWarning) <= 0 && strlen($apply) <= 0 && strlen($apply2) <= 0) {
         LocalRedirect($url);
     } else {
         LocalRedirect("/bitrix/admin/fileman_html_edit.php?" . $addUrl . "&site=" . Urlencode($site) . "&path=" . UrlEncode($path) . "&back_url=" . UrlEncode($back_url) . "&fullscreen=" . ($bFullScreen ? "Y" : "N") . "&tabControl_active_tab=" . urlencode($tabControl_active_tab));
     }
 }
Esempio n. 5
0
 function UndoNewSection($Params, $type)
 {
     $io = CBXVirtualIo::GetInstance();
     if (strlen($Params['path']) > 0 && $Params['path'] != "/" && $io->DirectoryExists($Params['absPath'])) {
         CFileman::DeleteEx(array($Params['site'], $Params['path']));
     }
     $documentRoot = CSite::GetSiteDocRoot($Params['site']);
     // Find and clean file from menu
     if ($Params['menu']) {
         $arMenu = CFileman::GetMenuArray($documentRoot . $Params['menu']['menuFile']);
         if (!empty($arMenu["aMenuLinks"])) {
             $found = false;
             foreach ($arMenu["aMenuLinks"] as $menuIndex => $arItem) {
                 if ($arItem[1] == $Params['menu']['menuPath'] && $arItem[0] == $Params['menu']['menuName']) {
                     unset($arMenu["aMenuLinks"][$menuIndex]);
                     $found = true;
                     break;
                 }
             }
             if ($found) {
                 CFileMan::SaveMenu(array($Params['site'], $Params['menu']['menuFile']), $arMenu["aMenuLinks"], $arMenu["sMenuTemplate"]);
             }
         }
     }
 }
Esempio n. 6
0
 private function AddMenuItem()
 {
     //Add menu Item
     $MenuFolderPath = $this->IO->CombinePath("/", '/services/');
     $MenuFilePath = $this->IO->CombinePath($MenuFolderPath, ".left.menu.php");
     $AbsMenuFilePath = $this->IO->CombinePath($this->DOCUMENT_ROOT, $MenuFilePath);
     if ($this->IO->FileExists($AbsMenuFilePath)) {
         $MenuResource = CFileMan::GetMenuArray($AbsMenuFilePath);
         $arMenuItems = $MenuResource["aMenuLinks"];
         $bAddMenuItem = true;
         foreach ($arMenuItems as $MenuItem) {
             if (in_array($MenuItem[1], array($this->PublicDir, $this->PublicDir . "index.php"))) {
                 $bAddMenuItem = false;
                 break;
             }
         }
         if ($bAddMenuItem) {
             $arMenuItems[] = array(GetMessage("IDEA_PUBLIC_FILE_MENU_TITLE"), $this->PublicDir, array(), array(), "CBXFeatures::IsFeatureEnabled('Idea')");
             CFileMan::SaveMenu(array($this->SITE_ID, $MenuFilePath), $arMenuItems, "");
         }
     }
 }
Esempio n. 7
0
 function AddMenuItem($menuFile, $menuItem, $siteID, $pos = -1)
 {
     if (CModule::IncludeModule('fileman')) {
         $arResult = CFileMan::GetMenuArray($_SERVER["DOCUMENT_ROOT"] . $menuFile);
         $arMenuItems = $arResult["aMenuLinks"];
         $menuTemplate = $arResult["sMenuTemplate"];
         $bFound = false;
         foreach ($arMenuItems as $item) {
             if ($item[1] == $menuItem[1]) {
                 $bFound = true;
             }
         }
         if (!$bFound) {
             if ($pos < 0 || $pos >= count($arMenuItems)) {
                 $arMenuItems[] = $menuItem;
             } else {
                 for ($i = count($arMenuItems); $i > $pos; $i--) {
                     $arMenuItems[$i] = $arMenuItems[$i - 1];
                 }
                 $arMenuItems[$pos] = $menuItem;
             }
             CFileMan::SaveMenu(array($siteID, $menuFile), $arMenuItems, $menuTemplate);
         }
     }
 }
Esempio n. 8
0
function BXDeleteFromMenuFile($menuFile, $documentRoot, $site, $path)
{
	$aMenuLinks = Array();

	$arMenu = CFileman::GetMenuArray($documentRoot.$menuFile);
	if (empty($arMenu["aMenuLinks"]))
		return false;

	$arFound = false;
	foreach ($arMenu["aMenuLinks"] as $menuIndex => $arItem)
	{
		if (!isset($arItem[1]))
			continue;

		$menuLink = $arItem[1];
		$position = strpos($menuLink, "?");
		if ($position !== false)
			$menuLink = substr($menuLink, 0, $position);

		if ($menuLink != "/")
			$menuLink = rtrim($menuLink, "/");

		$filename = basename($path);
		$dirName = str_replace("\\", "/", dirname($path));

		if ($menuLink == $path || ($filename == "index.php" && $menuLink == $dirName))
		{
			$arFound = array(
				'menuFile' => $menuFile,
				'menuIndex' => $menuIndex,
				'menuItem' => $arItem
			);
			unset($arMenu["aMenuLinks"][$menuIndex]);
		}
	}

	if ($arFound)
	{
		CFileMan::SaveMenu(Array($site, $menuFile), $arMenu["aMenuLinks"], $arMenu["sMenuTemplate"]);

		if(COption::GetOptionString("fileman", "log_page", "Y")=="Y")
		{
			$res_log = array();
			$mt = COption::GetOptionString("fileman", "menutypes", $default_value, $site);
			$mt = unserialize(str_replace("\\", "", $mt));
			$res_log['menu_name'] = $mt[$menuType];
			$res_log['path'] = substr($dirName, 1);
			CEventLog::Log(
				"content",
				"MENU_EDIT",
				"main",
				"",
				serialize($res_log)
			);
		}
	}
	return $arFound;
}