%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/controller/admin/ |
Current File : /home/bitrix/www/bitrix/modules/controller/admin/controller_upload_file.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); /** @global CMain $APPLICATION */ /** @global CDatabase $DB */ /** @global CUser $USER */ /** @global CUserTypeManager $USER_FIELD_MANAGER */ if (!$USER->CanDoOperation("controller_upload_file") || !CModule::IncludeModule("controller")) { $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); } require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/controller/prolog.php"); IncludeModuleLangFile(__FILE__); $maxSafeCount = (isset($_REQUEST["force"]) && $_REQUEST["force"] == "Y"? false: COption::GetOptionString("controller", "safe_count")); $cnt = 0; $sTableID = "tbl_controller_upload"; $lAdmin = new CAdminList($sTableID); $filename = Rel2Abs("/", trim($_REQUEST['filename'])); //Trailing slash indicates that we have a directory here //never remove it due to security reasons $path_to = Rel2Abs("/", trim($_REQUEST['path_to'])."/"); if( strlen($filename) > 0 && strlen($path_to) > 0 && check_bitrix_sessid() ) { $lAdmin->BeginPrologContent(); $arFilter = Array( "CONTROLLER_GROUP_ID" => $_REQUEST['controller_group_id'], "DISCONNECTED" => "N", ); $arFilter["ID"] = $_REQUEST['controller_member_id']; if(!is_array($arFilter["ID"])) { $IDs = explode(" ", $arFilter["ID"]); $arFilter["ID"] = Array(); foreach($IDs as $id) { $id = intval(trim($id)); if($id>0) $arFilter["ID"][] = $id; } } if(is_array($arFilter["ID"]) && count($arFilter["ID"])<=0) unset($arFilter["ID"]); $sendfile = false; if(file_exists($_SERVER['DOCUMENT_ROOT'].$filename)) { $sendfile = CControllerTools::PackFileArchive($_SERVER['DOCUMENT_ROOT'].$filename); if($sendfile !== false) { $arParams = array( 'FILE' => $sendfile, 'PATH_TO' => $path_to, ); $runQueue = array(); $dbr_members = CControllerMember::GetList(Array("ID"=>"ASC"), $arFilter); while ($ar_member = $dbr_members->Fetch()) { $runQueue[$ar_member["ID"]] = $ar_member["NAME"]; $cnt++; if ($maxSafeCount !== false && $cnt > $maxSafeCount) { $runQueue = array(); break; } } foreach ($runQueue as $memberId => $memberName) { $cnt++; echo BeginNote(); echo "<b>".htmlspecialcharsEx($memberName).":</b><br>"; $result = CControllerMember::RunCommandWithLog($memberId, " ", $arParams, false, 'sendfile'); if ($result === false) { $e = $APPLICATION->GetException(); echo "Error: ".$e->GetString(); } elseif ($result === "") { echo "OK"; } else { echo nl2br($result); } echo EndNote(); } if ($maxSafeCount !== false && $cnt > $maxSafeCount) { echo BeginNote(); echo GetMessage("CTRLR_UPLOAD_ERR_TOO_MANY_SELECTED"); echo EndNote(); ?><script>top.document.getElementById('tr_force').style.display='';</script><? } else { if ($cnt <= 0) { echo BeginNote(); echo GetMessage("CTRLR_UPLOAD_ERR_NSELECTED"); echo EndNote(); } } } else { ShowError(GetMessage("CTRLR_UPLOAD_ERR_PACK")); } } else { ShowError(GetMessage("CTRLR_UPLOAD_ERR_FILE")); } $lAdmin->EndPrologContent(); } $lAdmin->BeginEpilogContent(); ?> <input type="hidden" name="controller_member_id" id="controller_member_id" value="<?=htmlspecialcharsbx($controller_member_id)?>"> <input type="hidden" name="controller_group_id" id="controller_group_id" value="<?=htmlspecialcharsbx($controller_group_id)?>"> <input type="hidden" name="filename" id="filename" value="<?=htmlspecialcharsbx($filename);?>"> <input type="hidden" name="path_to" id="path_to" value="<?=htmlspecialcharsbx($path_to);?>"> <input type="hidden" name="force" id="force" value="N"> <? $lAdmin->EndEpilogContent(); $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("CTRLR_UPLOAD_TITLE")); require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php"); ?> <script> function __FPHPSubmit() { if(confirm('<?echo GetMessage("CTRLR_UPLOAD_CONFIRM")?>')) { document.getElementById('controller_member_id').value = document.getElementById('fcontroller_member_id').value; document.getElementById('controller_group_id').value = document.getElementById('fcontroller_group_id').value; var filename = document.getElementById('ffilename').value; var path_to = document.getElementById('fpath_to').value; if(filename.length > 0 && path_to.length <= 0) { alert('<?=CUtil::addslashes(GetMessage('CTRLR_UPLOAD_ERROR_NO_PATH_TO'))?>'); document.getElementById('fpath_to').focus(); return; } document.getElementById('filename').value = filename; document.getElementById('path_to').value = path_to; document.getElementById('force').value = (document.getElementById('fforce').checked?'Y':'N'); <?=$lAdmin->ActionPost($APPLICATION->GetCurPageParam("mode=frame", Array("mode", "PAGEN_1")))?> } } </script> <? $aTabs = array( array( "DIV" => "tab1", "TAB" => GetMessage("CTRLR_UPLOAD_FILE_TAB"), "TITLE" => GetMessage("CTRLR_UPLOAD_FILE_TAB_TITLE"), ), ); $editTab = new CAdminTabControl("editTab", $aTabs, true, true); ?> <form name="form1" action="<?echo $APPLICATION->GetCurPage()?>" method="POST"> <input type="hidden" name="lang" value="<?=LANG?>"> <? $arGroups = Array(); $dbr_groups = CControllerGroup::GetList(Array("SORT"=>"ASC","NAME"=>"ASC","ID"=>"ASC")); while($ar_groups = $dbr_groups->GetNext()) $arGroups[$ar_groups["ID"]] = $ar_groups["NAME"]; $filter = new CAdminFilter( $sTableID."_filter_id", Array(GetMessage("CTRLR_UPLOAD_FILTER_GROUP")) ); $filter->Begin(); ?> <tr> <td nowrap><label for="fcontroller_member_id"><?=GetMessage("CTRLR_UPLOAD_FILTER_SITE")?></label>:</td> <td nowrap> <? $dbr_members = CControllerMember::GetList(array( "SORT" => "ASC", "NAME" => "ASC", "ID" => "ASC", ), array( "DISCONNECTED" => "N", ), array( "ID", "NAME", ), array( ), array( "nTopCount" => $maxSafeCount+1, )); $arMembers = array(); $c = 0; while ($ar_member = $dbr_members->Fetch()) { $arMembers[$ar_member["ID"]] = $ar_member["NAME"]; $c++; if ($maxSafeCount !== false && $c > $maxSafeCount) { $arMembers = array(); break; } } if ($arMembers):?> <select name="fcontroller_member_id" id="fcontroller_member_id"> <option value=""><?echo GetMessage("CTRLR_UPLOAD_FILTER_SITE_ALL")?></option> <?foreach ($arMembers as $ID => $NAME):?> <option value="<?echo htmlspecialcharsbx($ID)?>" <?if($controller_member_id==$ID)echo ' selected';?> ><?echo htmlspecialcharsEx($NAME." [".$ID."]")?></option> <?endforeach?> </select> <?else:?> <input type="text" name="fcontroller_member_id" id="fcontroller_member_id" value="<?echo htmlspecialcharsbx($controller_member_id)?>" size="47" /> <?endif?> </td> </tr> <tr> <td nowrap><label for="fcontroller_group_id"><?echo htmlspecialcharsEx(GetMessage("CTRLR_UPLOAD_FILTER_GROUP"))?></label>:</td> <td nowrap><?echo htmlspecialcharsEx($controller_group_id)?> <select name="fcontroller_group_id" id="fcontroller_group_id"> <option value=""><?echo GetMessage("CTRLR_UPLOAD_FILTER_GROUP_ANY")?></option> <?foreach($arGroups as $group_id=>$group_name):?> <option value="<?=$group_id?>" <?if($group_id==$controller_group_id)echo "selected"?>><?=$group_name?></option> <?endforeach;?> </select> </td> </tr> <? $filter->Buttons(); ?> <? $filter->End(); ?> <?=bitrix_sessid_post()?> <? $editTab->Begin(); $editTab->BeginNextTab(); ?> <tr> <td width="40%"> <label for="ffilename"><?=GetMessage('CTRLR_UPLOAD_SEND_FILE_FROM')?></label> </td> <td width="60%"> <input type="text" id="ffilename" name="ffilename" value=""> <script> function setFile(filename, path, site) { if(filename == path) { document.getElementById('ffilename').value = filename; } else { if(path != '/') path += '/'; document.getElementById('ffilename').value = path + filename; } } </script><? CAdminFileDialog::ShowScript( Array ( "event" => "OpenFileBrowserWindFile", "arResultDest" => Array("FUNCTION_NAME" => 'setFile'), //"arPath" => Array("SITE" => "ru", 'PATH' => "/"), "select" => 'DF',// F - file only, D - folder only, DF - files & dirs "operation" => 'O',// O - open, S - save "showUploadTab" => true, "showAddToMenuTab" => true, //"fileFilter" => '', "allowAllFiles" => true, "SaveConfig" => true ) ); ?><input type="button" onclick="OpenFileBrowserWindFile();" value="<?echo GetMessage("CTRLR_UPLOAD_OPEN_FILE_BUTTON")?>"> </td> </tr> <tr> <td> <label for="fpath_to"><?=GetMessage('CTRLR_UPLOAD_SEND_FILE_TO')?></label> </td> <td> <input type="text" id="fpath_to" name="fpath_to"> </td> </tr> <tr style="display:none" id="tr_force"> <td> <input type="checkbox" id="fforce" name="fforce" value="Y"> <label for="fforce"><?echo GetMessage("CTRLR_UPLOAD_FORCE_RUN")?></label> </td> </tr> <?$editTab->Buttons();?> <input type="button" accesskey="x" name="execute" value="<?echo GetMessage("CTRLR_UPLOAD_BUTT_RUN")?>" onclick="return __FPHPSubmit();" class="adm-btn-save" <?if (!$USER->CanDoOperation("controller_upload_file")) echo 'disabled="disabled"'?> > <input type="reset" value="<?echo GetMessage("CTRLR_UPLOAD_BUTT_CLEAR")?>"> <? $editTab->End(); ?> </form> <? $lAdmin->DisplayList(); require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php");