Current Path : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/iblock/admin/ |
Current File : /var/www/html/clients/old.e-nkama.ru/e-nkama_bitrix/bitrix/modules/iblock/admin/iblock_admin.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/iblock.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/prolog.php"); IncludeModuleLangFile(__FILE__); $arIBTYPE = CIBlockType::GetByIDLang($type, LANG); if($arIBTYPE===false) LocalRedirect("/bitrix/admin/iblock_type_admin.php?lang=".LANG); $bBizproc = CModule::IncludeModule("bizproc"); $bWorkflow = CModule::IncludeModule("workflow"); if($_REQUEST["admin"] == "Y") $sTableID = "tbl_iblock_admin_".md5($type); else $sTableID = "tbl_iblock_".md5($type); $oSort = new CAdminSorting($sTableID, "TIMESTAMP_X", "desc"); $lAdmin = new CAdminList($sTableID, $oSort); $arFilterFields = Array( "find_id", "find_name", "find_lang", "find_active", "find_code", ); $lAdmin->InitFilter($arFilterFields); $arFilter = Array( "ID" => $find_id, "ACTIVE" => $find_active, "LID" => $find_lang, "?CODE" => $find_code, "?NAME" => $find_name, "TYPE" => $type, "MIN_PERMISSION" => "W", "CNT_ALL" => "Y", ); if($bWorkflow) $arFilter["MIN_PERMISSION"] = "U"; if($lAdmin->EditAction()) { foreach($FIELDS as $ID=>$arFields) { $DB->StartTransaction(); $ID = IntVal($ID); if(!$lAdmin->IsUpdated($ID)) continue; $iblock_permission = CIBlock::GetPermission($ID); if($iblock_permission<"X") continue; $ib = new CIBlock; if(!$ib->Update($ID, $arFields)) { $lAdmin->AddUpdateError(GetMessage("IBLOCK_ADM_SAVE_ERROR", array("#ID#"=>$ID, "#ERROR_TEXT#"=>$ib->LAST_ERROR)), $ID); $DB->Rollback(); } $DB->Commit(); } } if($arID = $lAdmin->GroupAction()) { if($_REQUEST['action_target']=='selected') { $rsIBlocks = CIBlock::GetList(Array($by=>$order), $arFilter); while($arRes = $rsIBlocks->Fetch()) $arID[] = $arRes['ID']; } foreach($arID as $ID) { if(strlen($ID)<=0) continue; switch($_REQUEST['action']) { case "delete": if(!$USER->IsAdmin()) break; @set_time_limit(0); $DB->StartTransaction(); if(!CIBlock::Delete($ID)) { $DB->Rollback(); $lAdmin->AddGroupError(GetMessage("IBLOCK_ADM_DELETE_ERROR"), $ID); } $DB->Commit(); break; case "activate": case "deactivate": $ob = new CIBlock(); $arFields = Array("ACTIVE"=>($_REQUEST['action']=="activate"?"Y":"N")); if(!$ob->Update($ID, $arFields)) $lAdmin->AddGroupError(GetMessage("IBLOCK_ADM_UPD_ERROR").$ob->LAST_ERROR, $ID); break; } } } $arHeader = array( array("id"=>"NAME", "content"=>GetMessage("IBLOCK_ADM_NAME"), "sort"=>"name", "default"=>true), array("id"=>"SORT", "content"=>GetMessage("IBLOCK_ADM_SORT"), "sort"=>"sort", "default"=>true, "align"=>"right"), array("id"=>"ACTIVE", "content"=>GetMessage("IBLOCK_ADM_ACTIVE"), "sort"=>"active", "default"=>true, "align"=>"center"), ); $arHeader[] = array("id"=>"CODE", "content"=>GetMessage("IBLOCK_FIELD_CODE"), "sort"=>"code"); $arHeader[] = array("id"=>"LIST_PAGE_URL", "content"=>GetMessage("IBLOCK_ADM_HEADER_LIST_URL")); $arHeader[] = array("id"=>"DETAIL_PAGE_URL", "content"=>GetMessage("IBLOCK_ADM_HEADER_DETAIL_URL")); $arHeader[] = array("id"=>"ELEMENT_CNT", "content"=>GetMessage("IBLOCK_ADM_HEADER_EL"), "default"=>true, "align"=>"right"); if($arIBTYPE["SECTIONS"]=="Y") $arHeader[] = array("id"=>"SECTION_CNT", "content"=>GetMessage("IBLOCK_ADM_HEADER_SECT"), "default"=>true, "align"=>"right"); $arHeader[] = array("id"=>"LID", "content"=>GetMessage("IBLOCK_ADM_LANG"), "sort"=>"lid", "default"=>true, "align"=>"left"); $arHeader[] = array("id"=>"INDEX_ELEMENT", "content"=>GetMessage("IBLOCK_ADM_HEADER_TOINDEX")); if($bWorkflow) $arHeader[] = array("id"=>"WORKFLOW", "content"=>GetMessage("IBLOCK_ADM_HEADER_WORKFLOW")); $arHeader[] = array("id"=>"TIMESTAMP_X","content"=>GetMessage("IBLOCK_ADM_TIMESTAMP"), "sort"=>"timestamp_x", "default"=>true); $arHeader[] = array("id"=>"ID", "content"=>"ID", "sort"=>"id", "default"=>true, "align"=>"right"); if($bBizproc && IsModuleInstalled("bizprocdesigner")) $arHeader[] = array("id"=>"WORKFLOW_TEMPLATES", "content"=>GetMessage("IBLOCK_ADM_HEADER_BIZPROC"), "default"=>true, "align"=>"right"); $lAdmin->AddHeaders($arHeader); $rsIBlocks = CIBlock::GetList(Array($by=>$order), $arFilter, false); $rsIBlocks = new CAdminResult($rsIBlocks, $sTableID); $rsIBlocks->NavStart(); $lAdmin->NavText($rsIBlocks->GetNavPrint($arIBTYPE["NAME"])); while($dbrs = $rsIBlocks->NavNext(true, "f_")) { if((CIBlock::GetPermission($f_ID) >= "X") && ($_REQUEST["admin"] == "Y")) { $row =& $lAdmin->AddRow($f_ID, $dbrs, 'iblock_edit.php?ID='.$f_ID.'&type='.htmlspecialchars($type).'&lang='.LANG.'&admin='.($_REQUEST["admin"]=="Y"? "Y": "N"), GetMessage("IBLOCK_ADM_TO_EDIT")); } else { if($arIBTYPE["SECTIONS"]=="Y") $row =& $lAdmin->AddRow($f_ID, $dbrs, CIBlock::GetAdminSectionListLink($f_ID, array('SECTION_ID'=>0)), GetMessage("IBLOCK_ADM_TO_EL_LIST")); else $row =& $lAdmin->AddRow($f_ID, $dbrs, CIBlock::GetAdminElementListLink($f_ID, array('filter_section'=>-1)), GetMessage("IBLOCK_ADM_TO_EL_LIST")); } if(!strlen($f_SECTIONS_NAME)) $f_SECTIONS_NAME = $arIBTYPE["SECTION_NAME"]? htmlspecialchars($arIBTYPE["SECTION_NAME"]): GetMessage("IBLOCK_ADM_SECTIONS"); if(!$f_ELEMENTS_NAME) $f_ELEMENTS_NAME = $arIBTYPE["ELEMENT_NAME"]? htmlspecialchars($arIBTYPE["ELEMENT_NAME"]): GetMessage("IBLOCK_ADM_ELEMENTS"); $f_LID = ''; $db_LID = CIBlock::GetSite($f_ID); while($ar_LID = $db_LID->Fetch()) $f_LID .= ($f_LID!=""?" / ":"").htmlspecialchars($ar_LID["LID"]); $row->AddViewField("LID", $f_LID); if((CIBlock::GetPermission($f_ID) >= "X") && ($_REQUEST["admin"] == "Y")) { $row->AddViewField("ID", $f_ID); $row->AddInputField("NAME", Array("size"=>"35")); $row->AddViewField("NAME", '<div class="iblock_menu_icon_iblocks"></div><a href="iblock_edit.php?ID='.$f_ID.'&type='.htmlspecialchars($type).'&lang='.LANG.'&admin='.($_REQUEST["admin"]=="Y"? "Y": "N").'" title="'.GetMessage("IBLOCK_ADM_TO_EDIT").'">'.$f_NAME.'</a>'); $row->AddInputField("SORT", Array("size"=>"3")); $row->AddCheckField("ACTIVE"); $row->AddInputField("CODE"); $row->AddInputField("LIST_PAGE_URL"); $row->AddInputField("DETAIL_PAGE_URL"); $row->AddCheckField("INDEX_ELEMENT"); if($bWorkflow) $row->AddCheckField("WORKFLOW"); } else { if($arIBTYPE["SECTIONS"]=="Y") $row->AddViewField("NAME", '<div class="iblock_menu_icon_iblocks"></div><a href="'.htmlspecialchars(CIBlock::GetAdminSectionListLink($f_ID , array('SECTION_ID'=>0))).'" title="'.GetMessage("IBLOCK_ADM_TO_SECTLIST").'">'.$f_NAME.'</a>'); else $row->AddViewField("NAME", '<div class="iblock_menu_icon_iblocks"></div><a href="'.htmlspecialchars(CIBlock::GetAdminElementListLink($f_ID , array('filter_section'=>-1))).'" title="'.GetMessage("IBLOCK_ADM_TO_EL_LIST").'">'.$f_NAME.'</a>'); $row->AddCheckField("ACTIVE", false); $row->AddCheckField("INDEX_ELEMENT", false); } if(in_array("ELEMENT_CNT", $lAdmin->GetVisibleHeaderColumns())) { $f_ELEMENT_CNT = CIBlock::GetElementCount($f_ID); $row->AddViewField("ELEMENT_CNT", '<a href="'.htmlspecialchars(CIBlock::GetAdminElementListLink($f_ID, array('filter_section'=>-1))).'" title="'.GetMessage("IBLOCK_ADM_TO_ELLIST").'">'.$f_ELEMENT_CNT.'</a>'); } if($arIBTYPE["SECTIONS"]=="Y" && in_array("SECTION_CNT", $lAdmin->GetVisibleHeaderColumns())) $row->AddViewField("SECTION_CNT", '<a href="'.htmlspecialchars(CIBlock::GetAdminSectionListLink($f_ID, array())).'" title="'.GetMessage("IBLOCK_ADM_TO_SECTLIST").'">'.IntVal(CIBlockSection::GetCount(Array("IBLOCK_ID"=>$f_ID))).'</a>'); if($bBizproc && in_array("WORKFLOW_TEMPLATES", $lAdmin->GetVisibleHeaderColumns())) { if(IsModuleInstalled("bizprocdesigner")) { $cnt = CBPDocument::GetNumberOfWorkflowTemplatesForDocumentType( array("iblock", "CIBlockDocument", "iblock_".$f_ID) ); $row->AddViewField("WORKFLOW_TEMPLATES", '<a href="/bitrix/admin/iblock_bizproc_workflow_admin.php?document_type=iblock_'.$f_ID.'&lang='.LANGUAGE_ID.'&back_url_list='.urlencode($APPLICATION->GetCurPageParam("", array())).'">'.$cnt.'</a>'); } } $arActions = Array(); if((CIBlock::GetPermission($f_ID) >= "X") && ($_REQUEST["admin"] == "Y")) { $arActions[] = array("ICON"=>"edit", "TEXT"=>GetMessage("MAIN_ADMIN_MENU_EDIT"), "DEFAULT"=>$_REQUEST["admin"]=="Y", "ACTION"=>"window.location='iblock_edit.php?ID=".$f_ID."&type=".htmlspecialchars($type)."&lang=".LANG."&admin=".($_REQUEST["admin"]=="Y"? "Y": "N")."';"); } if(CIBlock::GetPermission($f_ID) >= "X" && IsModuleInstalled("bizproc") && IsModuleInstalled("bizprocdesigner")) { $arActions[] = array( "ICON"=>"", "TEXT"=>GetMessage("IBLOCK_ADM_MENU_BIZPROC"), "ACTION"=>"window.location='/bitrix/admin/iblock_bizproc_workflow_admin.php?document_type=iblock_".$f_ID."&lang=".LANGUAGE_ID."';" ); } if($USER->IsAdmin() && ($_REQUEST["admin"] == "Y")) { $arActions[] = array("ICON"=>"delete", "TEXT"=>GetMessage("MAIN_ADMIN_MENU_DELETE"), "ACTION"=>"if(confirm('".GetMessage("IBLOCK_ADM_CONFIRM_DEL_MESSAGE")."')) ".$lAdmin->ActionDoGroup($f_ID, "delete", "&type=".htmlspecialchars($type)."&lang=".LANG."&admin=".($_REQUEST["admin"]=="Y"? "Y": "N"))); } if(count($arActions)) $row->AddActions($arActions); } $lAdmin->AddFooter( array( array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsIBlocks->SelectedRowsCount()), array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"), ) ); if($USER->IsAdmin() && ($_REQUEST["admin"] == "Y")) { $aContext = array( array( "ICON"=>"btn_new", "TEXT"=>GetMessage("IBLOCK_ADM_TO_ADDIBLOCK"), "LINK"=>"iblock_edit.php?lang=".LANG."&admin=Y&type=".urlencode($type), "TITLE"=>GetMessage("IBLOCK_ADM_TO_ADDIBLOCK_TITLE") ), ); $lAdmin->AddAdminContextMenu($aContext); $lAdmin->AddGroupActionTable(Array( "delete"=>GetMessage("MAIN_ADMIN_LIST_DELETE"), "activate"=>GetMessage("MAIN_ADMIN_LIST_ACTIVATE"), "deactivate"=>GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"), )); } else { $lAdmin->AddAdminContextMenu(array()); } $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("IBLOCK_ADM_TITLE", array("#IBLOCK_TYPE#" => $arIBTYPE["~NAME"]))); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?> <form method="GET" action="iblock_admin.php?type=<?=urlencode($type)?>" name="find_form"> <input type="hidden" name="admin" value="<?echo ($_REQUEST["admin"]=="Y"? "Y": "N")?>"> <input type="hidden" name="lang" value="<?echo LANG?>"> <input type="hidden" name="filter" value="Y"> <input type="hidden" name="type" value="<?echo htmlspecialchars($type)?>"> <? $oFilter = new CAdminFilter( $sTableID."_filter", array( GetMessage("IBLOCK_ADM_FILT_SITE"), GetMessage("IBLOCK_ADM_FILT_ACT"), "ID", GetMessage("IBLOCK_FIELD_CODE") ) ); $oFilter->Begin(); ?> <tr> <td><b><?echo GetMessage("IBLOCK_ADM_FILT_NAME")?></b></td> <td><input type="text" name="find_name" value="<?echo htmlspecialchars($find_name)?>" size="40"> <?=ShowFilterLogicHelp()?></td> </tr> <tr> <td><?echo GetMessage("IBLOCK_ADM_FILT_SITE");?>:</td> <td> <select name="find_lang"> <option value=""><?echo GetMessage("IBLOCK_ALL")?></option> <? $l = CLang::GetList($b="sort", $o="asc", Array("VISIBLE"=>"Y")); while($ar = $l->GetNext()): ?><option value="<?echo $ar["LID"]?>"<?if($find_lang==$ar["LID"])echo " selected"?>><?echo $ar["NAME"]?></option><? endwhile; ?> </select> </td> </tr> <tr> <td><?echo GetMessage("IBLOCK_ADM_FILT_ACT")?>:</td> <td> <? $arr = array("reference"=>array(GetMessage("IBLOCK_YES"), GetMessage("IBLOCK_NO")), "reference_id"=>array("Y","N")); echo SelectBoxFromArray("find_active", $arr, htmlspecialcharsex($find_active), GetMessage('IBLOCK_ALL')); ?> </td> </tr> <tr> <td>ID:</td> <td><input type="text" name="find_id" value="<?echo htmlspecialchars($find_id)?>" size="15"></td> </tr> <tr> <td><?echo GetMessage("IBLOCK_FIELD_CODE")?>:</td> <td><input type="text" name="find_code" value="<?echo htmlspecialchars($find_code)?>" size="15"> <?=ShowFilterLogicHelp()?></td> </tr> <? $oFilter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage().'?type='.urlencode($type), "form"=>"find_form")); $oFilter->End(); ?> </form> <? $lAdmin->DisplayList(); if($_REQUEST["admin"]!="Y"): echo BeginNote(), GetMessage("IBLOCK_ADM_MANAGE_HINT"), ' <a href="iblock_admin.php?type='.htmlspecialchars($type).'&lang='.LANG.'&admin=Y">', GetMessage("IBLOCK_ADM_MANAGE_HINT_HREF"), '</a>.', EndNote(); endif; require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>