require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
$sTableID = "tbl_form_list";
$oSort = new CAdminSorting($sTableID, "ID", "asc");
$lAdmin = new CAdminList($sTableID, $oSort);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/prolog.php");
ClearVars();
$FORM_RIGHT = $APPLICATION->GetGroupRight("form");
if($FORM_RIGHT<="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
CModule::IncludeModule("form");
$bSimple = (COption::GetOptionString("form", "SIMPLE", "Y") == "Y") ? true : false;
IncludeModuleLangFile(__FILE__);
$err_mess = "File: ".__FILE__."
Line: ";
$arFilterFields = Array(
"find_id",
"find_id_exact_match",
"find_name",
"find_name_exact_match",
"find_sid",
"find_sid_exact_match",
"find_description",
"find_description_exact_match",
"find_site"
);
$lAdmin->InitFilter($arFilterFields);
$old_module_version = CForm::IsOldVersion();
$reset_id = intval($reset_id);
if ($FORM_RIGHT=="W" && $reset_id>0 && check_bitrix_sessid()) CForm::Reset($reset_id);
$copy_id = intval($makecopy_id);
if ($FORM_RIGHT=="W" && $copy_id>0 && check_bitrix_sessid())
{
CForm::Copy($copy_id);
LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
}
InitBVar($find_id_exact_match);
InitBVar($find_name_exact_match);
InitBVar($find_sid_exact_match);
InitBVar($find_description_exact_match);
$arFilter = Array(
"ID" => $find_id,
"ID_EXACT_MATCH" => $find_id_exact_match,
"NAME" => $find_name,
"NAME_EXACT_MATCH" => $find_name_exact_match,
"SID" => $find_sid,
"SID_EXACT_MATCH" => $find_sid_exact_match,
"DESCRIPTION" => $find_description,
"DESCRIPTION_EXACT_MATCH" => $find_description_exact_match,
"SITE" => $find_site
);
// "Save" button was pressed
if ($lAdmin->EditAction() && $FORM_RIGHT>="W" && check_bitrix_sessid())
{
foreach($FIELDS as $ID=>$arFields)
{
if(!$lAdmin->IsUpdated($ID))
continue;
$DB->StartTransaction();
$ID = intval($ID);
$F_RIGHT = CForm::GetPermission($ID);
if ($F_RIGHT>=30)
{
$arFieldsStore = Array(
"TIMESTAMP_X" => $DB->GetNowFunction(),
"C_SORT" => "'".intval($arFields[C_SORT])."'"
);
if (!$DB->Update("b_form",$arFieldsStore,"WHERE ID='".$ID."'",$err_mess.__LINE__))
{
$lAdmin->AddUpdateError(GetMessage("SAVE_ERROR").$ID.": ".GetMessage("FORM_SAVE_ERROR"), $ID);
$DB->Rollback();
}
}
$DB->Commit();
}
}
// simgle and group actions processing
if(($arID = $lAdmin->GroupAction()) && $FORM_RIGHT=="W" && check_bitrix_sessid())
{
if($_REQUEST['action_target']=='selected')
{
$arID = Array();
$rsData = CForm::GetList('', '', $arFilter);
while($arRes = $rsData->Fetch())
$arID[] = $arRes['ID'];
}
foreach($arID as $ID)
{
if($ID == '')
continue;
$ID = intval($ID);
switch($_REQUEST['action'])
{
case "delete":
@set_time_limit(0);
$DB->StartTransaction();
if(!CForm::Delete($ID))
{
$DB->Rollback();
$lAdmin->AddGroupError(GetMessage("DELETE_ERROR"), $ID);
}
$DB->Commit();
break;
}
}
}
//////////////////////////////////////////////////////////////////////
// list initialization - get data
global $by, $order;
$rsData = CForm::GetList($by, $order, $arFilter);
$arData = array();
while ($arForm = $rsData->Fetch())
{
$F_RIGHT = CForm::GetPermission($arForm["ID"]);
if ($F_RIGHT >= 20)
{
$arForm["F_RIGHT"] = $F_RIGHT;
$arData[] = $arForm;
}
}
$rsData->InitFromArray($arData);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
// set navigation bar
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("FORM_PAGES")));
$headers = array(
array("id"=>"ID", "content"=>"ID", "sort"=>"s_id", "default"=>true),
array("id"=>"SITE", "content"=>GetMessage("FORM_SITE"), "default"=>true),
array("id"=>"C_SORT", "content"=>GetMessage("FORM_C_SORT"), "sort"=>"s_c_sort", "default"=>true)
);
if (!$bSimple)
$headers[] = array("id"=>"SID", "content"=>GetMessage("FORM_SID"), "sort"=>"s_sid", "default"=>true);
$headers[] = array("id"=>"NAME", "content"=>GetMessage("FORM_NAME"), "sort"=>"s_name", "default"=>true);
$headers[] = array("id"=>"QUESTIONS", "content"=>GetMessage("FORM_QUESTIONS"), "default"=>true);
if (COption::GetOptionString("form", "SIMPLE")!="Y")
{
$headers[]=array("id"=>"C_FIELDS", "content"=>GetMessage("FORM_FIELDS"), "default"=>true);
$headers[]=array("id"=>"STATUSES", "content"=>GetMessage("FORM_STATUSES"), "default"=>true);
}
$headers[]=array("id"=>"RESULTS", "content"=>GetMessage("FORM_RESULTS"), "default"=>true);
$lAdmin->AddHeaders($headers);
while($arRes = $rsData->NavNext(true, "f_"))
{
$row =& $lAdmin->AddRow($f_ID, $arRes);
//$F_RIGHT = CForm::GetPermission($f_ID);
$F_RIGHT = $f_F_RIGHT;
unset($txt);
$arrSITE = CForm::GetSiteArray($f_ID);
reset($arrSITE);
if (is_array($arrSITE))
{
foreach($arrSITE as $sid)
$txt.= "".htmlspecialcharsbx($sid).",";
}
else
$txt=" ";
$txt=trim($txt,",");
$row->AddViewField("SITE",$txt);
if ($bSimple)
{
$f_QUESTIONS+=$f_C_FIELDS;
$txt="$f_QUESTIONS [+]";
}
else
$txt="$f_QUESTIONS [+]";
$row->AddViewField("QUESTIONS",$txt);
$txt="$f_C_FIELDS [+]";
$row->AddViewField("C_FIELDS",$txt);
$txt="$f_STATUSES [+]";
$row->AddViewField("STATUSES",$txt);
$txt="".(CFormResult::GetCount($f_ID))." [+]";
$row->AddViewField("RESULTS",$txt);
if ($FORM_RIGHT=="W") $row->AddInputField("C_SORT");
$arActions = Array();
if ($F_RIGHT>=25)
$arActions[] = array("DEFAULT"=>"Y", "ICON"=>"edit", "TITLE"=>GetMessage("FORM_EDIT_ALT"), "ACTION"=>$lAdmin->ActionRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=$f_ID"), "TEXT"=>GetMessage("FORM_EDIT"));
if (CForm::IsAdmin())
$arActions[] = array("ICON"=>"copy", "TITLE"=>GetMessage("FORM_COPY_ALT"),"ACTION"=>$lAdmin->ActionRedirect("form_list.php?lang=".LANGUAGE_ID."&makecopy_id=$f_ID&".bitrix_sessid_get()),"TEXT"=>GetMessage("FORM_COPY"));
if ($F_RIGHT>=30)
{
$arActions[] = array("SEPARATOR"=>true);
$arActions[] = array("TITLE"=>GetMessage("FORM_DELETE_RESULTS_ALT"),"ACTION"=>"javascript:if(confirm('".CUtil::JSEscape(GetMessage("FORM_CONFIRM_DELETE_RESULTS"))."')) window.location='?lang=".LANGUAGE_ID."&reset_id=".$f_ID."&".bitrix_sessid_get()."'", "TEXT"=>GetMessage("FORM_DELETE_RESULTS"));
}
if (CForm::IsAdmin())
$arActions[] = array("ICON"=>"delete", "TITLE"=>GetMessage("FORM_DELETE_ALT"),"ACTION"=>"javascript:if(confirm('".CUtil::JSEscape(GetMessage("FORM_CONFIRM_DELETE"))."')) window.location='?lang=".LANGUAGE_ID."&action=delete&ID=$f_ID&".bitrix_sessid_get()."'","TEXT"=>GetMessage("FORM_DELETE"));
$row->AddActions($arActions);
}
// list footer
$lAdmin->AddFooter(
array(
array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()),
array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"),
)
);
if ($FORM_RIGHT=="W")
// add list buttons
$lAdmin->AddGroupActionTable(Array(
"delete"=>GetMessage("FORM_DELETE_L"),
));
// context menu
if ($FORM_RIGHT=="W")
{
$aMenu = array();
$aMenu[] = array(
"TEXT" => GetMessage("FORM_CREATE"),
"TITLE"=>GetMessage("FORM_CREATE_TITLE"),
"LINK"=>"form_edit.php?lang=".LANG,
"ICON" => "btn_new"
);
$aContext = $aMenu;
$lAdmin->AddAdminContextMenu($aContext);
}
// check list output mode
$lAdmin->CheckListMode();
$APPLICATION->SetTitle(GetMessage("FORM_PAGE_TITLE"));
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
?>