Пример #1
0
function BXDeleteFromSystem($absoluteFilePath, $path, $site)
{
    $io = CBXVirtualIo::GetInstance();
    $f = $io->GetFile($absoluteFilePath);
    $f->MarkWritable();
    if (COption::GetOptionInt("main", "disk_space") > 0) {
        $file_size = $f->GetFileSize();
        $quota = new CDiskQuota();
        $quota->UpdateDiskQuota("file", $file_size, "delete");
    }
    $sucess = $io->Delete($absoluteFilePath);
    if (!$sucess) {
        return false;
    }
    if (COption::GetOptionString($module_id, "log_page", "Y") == "Y") {
        $res_log['path'] = substr($path, 1);
        CEventLog::Log("content", "PAGE_DELETE", "main", "", serialize($res_log));
    }
    $GLOBALS["APPLICATION"]->RemoveFileAccessPermission(array($site, $path));
    if (CModule::IncludeModule("search")) {
        CSearch::DeleteIndex("main", $site . "|" . $path);
    }
    //Delete from rewrite rule
    CUrlRewriter::Delete(array("SITE_ID" => $site, "PATH" => $path));
    if (class_exists("\\Bitrix\\Main\\Application", false)) {
        \Bitrix\Main\Component\ParametersTable::deleteByFilter(array("SITE_ID" => $site, "REAL_PATH" => $path));
    }
    return true;
}
Пример #2
0
    function UndoNewFile($Params, $type)
    {
        global $APPLICATION;
        $documentRoot = CSite::GetSiteDocRoot($Params['site']);
        $io = CBXVirtualIo::GetInstance();
        // Delete file
        $f = $io->GetFile($Params['absPath']);
        $f->MarkWritable();
        if (COption::GetOptionInt("main", "disk_space") > 0) {
            $file_size = $f->GetFileSize();
            $quota = new CDiskQuota();
            $quota->UpdateDiskQuota("file", $file_size, "delete");
        }
        $sucess = $io->Delete($Params['absPath']);
        if (!$sucess) {
            return;
        }
        $APPLICATION->RemoveFileAccessPermission(array($Params['site'], $Params['path']));
        if (CModule::IncludeModule("search")) {
            CSearch::DeleteIndex("main", $Params['site'] . "|" . $Params['path']);
        }
        // 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"]);
                }
            }
        }
        if (isset($Params['public']) && $Params['public'] == 'Y') {
            ?>
			<script type="text/javascript">
				window.location = '<?php 
            echo CUtil::JSEscape(CHTTP::URN2URI(GetDirPath($Params['path'])));
            ?>
';
			</script>
		<?php 
        }
        $GLOBALS["CACHE_MANAGER"]->CleanDir("menu");
    }
Пример #3
0
		$arUndoParams = array(
			'module' => 'fileman',
			'undoType' => 'delete_menu',
			'undoHandler' => 'CFileman::UndoFileDelete',
			'arContent' => array(
				'site' => $site,
				'path' => $menufilename,
				'content' => $f->GetContents(),
				'perm' => CFileMan::FetchFileAccessPerm($arPath_m, true),
			)
		);

		if (COption::GetOptionInt("main", "disk_space") > 0)
		{
			$quota = new CDiskQuota();
			$quota->UpdateDiskQuota("file", $f->GetFileSize(), "delete");
		}

		$f->MarkWritable();
		$success = $io->Delete($abs_path);

		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);
			CEventLog::Log(
				"content",
				"MENU_DELETE",
				"main",