%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/fileman/admin/ |
| Current File : /home/bitrix/www/bitrix/modules/fileman/admin/fileman_newfolder.php |
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
if (!$USER->CanDoOperation('fileman_admin_folders'))
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/include.php");
IncludeModuleLangFile(__FILE__);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/prolog.php");
$io = CBXVirtualIo::GetInstance();
$addUrl = 'lang='.LANGUAGE_ID.($logical == "Y"?'&logical=Y':'');
$strWarning = "";
$strNotice = "";
$site = CFileMan::__CheckSite($site);
$DOC_ROOT = CSite::GetSiteDocRoot($site);
$path = $io->CombinePath("/", $path);
$arPath = Array($site, $path);
if (!$USER->CanDoFileOperation('fm_create_new_folder',$arPath))
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
$arParsedPath = CFileMan::ParsePath(Array($site, $path), true, false, "", $logical == "Y");
$abs_path = $DOC_ROOT.$path;
$module_id = "fileman";
$bMenuTypeExists = false;
$arMenuTypes = Array();
$armt = GetMenuTypes($site);
foreach($armt as $key => $title)
{
if(!$USER->CanDoFileOperation('fm_edit_existent_file',Array($site, $path."/.".$key.".menu.php")))
continue;
$arMenuTypes[] = array($key, $title);
if($key == $menutype)
$bMenuTypeExists = true;
}
//check folder access
if (!$USER->CanDoFileOperation('fm_create_new_folder',$arPath))
$strWarning = '<img src="/bitrix/images/fileman/deny.gif" width="28" height="28" border="0" align="left" alt="">'.GetMessage("ACCESS_DENIED");
else if(!$io->DirectoryExists($abs_path))
$strWarning = GetMessage("FILEMAN_FOLDER_NOT_FOUND");
else
{
if($REQUEST_METHOD=="POST" && strlen($save)>0 && check_bitrix_sessid())
{
if(strlen($foldername)<=0)
{
$strWarning = GetMessage("FILEMAN_NEWFOLDER_ENTER_NAME");
}
elseif (($mess = CFileMan::CheckFileName($foldername)) !== true)
{
$strWarning = $mess;
}
else
{
$pathto = $io->CombinePath("/", $path, $foldername);
if($io->FileExists($DOC_ROOT.$pathto) || $io->DirectoryExists($DOC_ROOT.$pathto))
{
$strWarning = GetMessage("FILEMAN_NEWFOLDER_EXISTS");
}
else
{
$strWarning = CFileMan::CreateDir(Array($site, $pathto));
if(strlen($strWarning)<=0)
{
if($USER->CanDoFileOperation('fm_add_to_menu',$arPath) &&
$USER->CanDoOperation('fileman_add_element_to_menu') &&
$mkmenu=="Y" && $bMenuTypeExists)
{
$arParsedPathTmp = CFileMan::ParsePath(Array($site, $pathto), true, false, "", $logical == "Y");
$menu_path = $arParsedPathTmp["PREV"]."/.".$menutype.".menu.php";
if($USER->CanDoFileOperation('fm_view_file',Array($site, $menu_path)))
{
$res = CFileMan::GetMenuArray($DOC_ROOT.$menu_path);
$aMenuLinksTmp = $res["aMenuLinks"];
$sMenuTemplateTmp = $res["sMenuTemplate"];
$aMenuLinksTmp[] = Array($menuname, $arParsedPathTmp["PREV"]."/".$arParsedPathTmp["LAST"]."/", Array(), Array(), "");
CFileMan::SaveMenu(Array($site, $menu_path), $aMenuLinksTmp, $sMenuTemplateTmp);
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[$menutype];
$res_log['path'] = substr($path, 1);
CEventLog::Log(
"content",
"MENU_EDIT",
"fileman",
"",
serialize($res_log)
);
}
}
}
if(strlen($sectionname)>0)
{
if(COption::GetOptionString($module_id, "log_page", "Y")=="Y")
{
$res_log['path'] = substr($pathto, 1);
CEventLog::Log(
"content",
"SECTION_ADD",
"fileman",
"",
serialize($res_log)
);
}
$APPLICATION->SaveFileContent($DOC_ROOT.$pathto."/.section.php", "<?\n\$sSectionName=\"".CFileMan::EscapePHPString($sectionname)."\";\n?>");
}
if ($e = $APPLICATION->GetException())
$strNotice = $e->msg;
else
{
if($USER->CanDoFileOperation('fm_create_new_file',$arPath) &&
$USER->CanDoOperation('fileman_admin_files') &&
$mkindex=="Y")
{
if($toedit=="Y")
LocalRedirect("/bitrix/admin/fileman_html_edit.php?".$addUrl."&site=".$site."&template=".Urlencode($template)."&path=".UrlEncode($pathto)."&filename=index.php&new=Y".(strlen($back_url) <=0 ?"":"&back_url=".UrlEncode($back_url)).(strlen($gotonewpage)<=0?"":"&gotonewpage=".UrlEncode($gotonewpage)).(strlen($backnewurl)<=0?"":"&backnewurl=".UrlEncode($backnewurl)));
else
$APPLICATION->SaveFileContent($DOC_ROOT.$pathto."/index.php", CFileman::GetTemplateContent($template));
}
}
if ($e = $APPLICATION->GetException())
$strNotice = $e->msg;
elseif (strlen($apply)<=0 && $strNotice == '')
{
if(strlen($back_url)>0)
LocalRedirect("/".ltrim($back_url, "/"));
else
{
$arPathtoParsed = CFileMan::ParsePath(Array($site, $pathto), false, false, "", $logical == "Y");
LocalRedirect("/bitrix/admin/fileman_admin.php?".$addUrl."&site=".$site."&path=".UrlEncode($arPathtoParsed["PREV"]));
}
}
}
}
}
}
else
{
$mkindex="Y";
$toedit="Y";
}
}
foreach ($arParsedPath["AR_PATH"] as $chainLevel)
{
$adminChain->AddItem(
array(
"TEXT" => htmlspecialcharsex($chainLevel["TITLE"]),
"LINK" => ((strlen($chainLevel["LINK"]) > 0) ? $chainLevel["LINK"] : ""),
)
);
}
$APPLICATION->SetTitle(GetMessage("FILEMAN_NEW_FOLDER_TITLE"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
if(strlen($strWarning)<=0)
$filename = $arParsedPath["LAST"];
$aMenu = array(
array(
"TEXT" => GetMessage("FILEMAN_BACK"),
"LINK" => "fileman_admin.php?".$addUrl."&site=".$site."&path=".UrlEncode($path),
"ICON" => "btn_list"
)
);
$context = new CAdminContextMenu($aMenu);
$context->Show();
?>
<?CAdminMessage::ShowMessage($strNotice);?>
<?CAdminMessage::ShowMessage($strWarning);?>
<?
if ($USER->CanDoFileOperation('fm_create_new_folder',$arPath))
{
?>
<form method="POST" action="<?echo $APPLICATION->GetCurPage()?>?" name="fnew_folder">
<input type="hidden" name="logical" value="<?=htmlspecialcharsex($logical)?>">
<?echo GetFilterHiddens("filter_");?>
<input type="hidden" name="site" value="<?= htmlspecialcharsex($site) ?>">
<input type="hidden" name="path" value="<?= htmlspecialcharsex($path) ?>">
<input type="hidden" name="save" value="Y">
<input type="hidden" name="back_url" value="<?= htmlspecialcharsex($back_url)?>">
<input type="hidden" name="lang" value="<?=LANG ?>">
<input type="hidden" name="ID" value="<?= htmlspecialcharsex($ID)?>">
<input type="hidden" id="bxfm_linked" name="bxfm_linked" value="Y" />
<?if($gotonewpage=="Y"):?><input type="hidden" name="gotonewpage" value="Y"><?endif?>
<?if($backnewurl=="Y"):?><input type="hidden" name="backnewurl" value="Y"><?endif?>
<?=bitrix_sessid_post()?>
<?
$aTabs = array(
array("DIV" => "edit1", "TAB" => GetMessage("FILEMAN_TAB1"), "ICON" => "fileman", "TITLE" => GetMessage("FILEMAN_TAB1_ALT")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$tabControl->Begin();
$tabControl->BeginNextTab();
$site_template = false;
$rsSiteTemplates = CSite::GetTemplateList($site);
while($arSiteTemplate = $rsSiteTemplates->Fetch())
{
if(strlen($arSiteTemplate["CONDITION"])<=0)
{
$site_template = $arSiteTemplate["TEMPLATE"];
break;
}
}
$arTemplates = CFileman::GetFileTemplates(LANGUAGE_ID, array($site_template));
?>
<tr>
<td><label for="bxfm_sectionname" style="font-weight: bold;"><?=GetMessage("FILEMAN_NEWFOLDER_SEACTION_NAME")?></label></td>
<td><input type="text" id="bxfm_sectionname" name="sectionname" value="<?=htmlspecialcharsex($sectionname)?>" size="30" maxlength="255"></td>
</tr>
<tr>
<td width="40%"><label for="bxfm_foldername" style="font-weight: bold;"><?=GetMessage("FILEMAN_NEWFOLDER_NAME")?></label></td>
<td width="60%"><input id="bxfm_foldername" type="text" name="foldername" value="<?=htmlspecialcharsex($foldername)?>" size="30" maxlength="255"></td>
</tr>
<?if($USER->CanDoFileOperation('fm_add_to_menu',$arPath) && $USER->CanDoOperation('fileman_add_element_to_menu') ):?>
<tr>
<td><?=GetMessage("FILEMAN_NEWFOLDER_ADDMENU")?></td>
<td><input type="checkbox" name="mkmenu" value="Y"<?if($mkmenu=="Y")echo " checked"?> onclick="document.fnew_folder.menuname.disabled=!this.checked;document.fnew_folder.menutype.disabled=!this.checked;if(this.checked && document.fnew_folder.sectionname.value.length!='' && document.fnew_folder.menuname.value=='') document.fnew_folder.menuname.value=document.fnew_folder.sectionname.value;fx1.disabled=!this.checked;fx2.disabled=!this.checked;"></td>
</tr>
<tr id="fx1"<?if($mkmenu!="Y")echo " disabled"?>>
<td><?=GetMessage("FILEMAN_NEWFOLDER_MENU")?></td>
<td>
<select name="menutype" <?if($mkmenu!="Y")echo " disabled"?>>
<?for($i = 0, $l = count($arMenuTypes); $i < $l; $i++):?>
<option value="<?echo htmlspecialcharsex($arMenuTypes[$i][0])?>" <?if($menutype==$arMenuTypes[$i][0])echo " selected"?>><?echo htmlspecialcharsex("[".$arMenuTypes[$i][0]."] ".$arMenuTypes[$i][1])?></option>
<?endfor;?>
</select>
</td>
</tr>
<tr id="fx2"<?if($mkmenu!="Y")echo " disabled"?>>
<td><?=GetMessage("FILEMAN_NEWFOLDER_MENUITEM")?></td>
<td><input type="text" name="menuname" value="<?echo htmlspecialcharsex($menuname)?>"<?if($mkmenu!="Y")echo " disabled"?>></td>
</tr>
<?endif;?>
<?if($USER->CanDoFileOperation('fm_create_new_file',$arPath) && $USER->CanDoOperation('fileman_admin_files')):?>
<tr>
<td><?=GetMessage("FILEMAN_NEWFOLDER_MAKE_INDEX")?></td>
<td><input type="checkbox" name="mkindex" value="Y"<?if($mkindex=="Y")echo " checked"?> onclick="document.fnew_folder.toedit.disabled=!this.checked;document.fnew_folder.template.disabled=!this.checked;ff1.disabled=!this.checked;ff2.disabled=!this.checked;"></td>
</tr>
<tr id="ff1">
<td><?=GetMessage("FILEMAN_NEWFOLDER_INDEX_TEMPLATE")?></td>
<td>
<select name="template" <?if($mkindex!="Y")echo " disabled"?>>
<?for($i = 0, $l = count($arTemplates); $i < $l; $i++):?>
<option value="<?echo htmlspecialcharsex($arTemplates[$i]["file"])?>"<?if($template==$arTemplates[$i]["file"])echo " selected"?>><?echo htmlspecialcharsex($arTemplates[$i]["name"])?></option>
<?endfor;?>
</select>
</td>
</tr>
<tr id="ff2">
<td><?=GetMessage("FILEMAN_NEWFOLDER_INDEX_EDIT")?></td>
<td><input type="checkbox" name="toedit" value="Y"<?if($toedit=="Y")echo " checked"?><?if($mkindex!="Y")echo " disabled"?>></td>
</tr>
<?endif;?>
<?
$tabControl->EndTab();
$tabControl->Buttons(
array(
"disabled" => false,
"back_url" => (strlen($back_url) > 0 ? $back_url : "fileman_admin.php?".$addUrl."&site=".$site."&path=".UrlEncode($path))
)
);
$tabControl->End();
if (COption::GetOptionString("fileman", "use_translit", true))
{
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/fileman/classes/general/fileman_utils.php");
CFilemanTransliterate::Init(array(
'fromInputId' => 'bxfm_sectionname',
'toInputId' => 'bxfm_foldername',
'linkedId' => 'bxfm_linked',
'linked' => $_REQUEST['bxfm_linked'] != "N",
'linkedTitle' => GetMessage('FILEMAN_TRANS_LINKED'),
'unlinkedTitle' => GetMessage('FILEMAN_TRANS_UNLINKED')
));
}
?>
</form>
<?
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
?>