Esempio n. 1
0
         $result = $matches[0];
     }
     return $result;
 }
 $arResult["GRID_ID"] = "bizproc_loggrid_" . $arWorkflowState["WORKFLOW_TEMPLATE_ID"];
 $gridOptions = new CGridOptions($arResult["GRID_ID"]);
 $gridColumns = $gridOptions->GetVisibleColumns();
 $gridSort = $gridOptions->GetSorting(array("sort" => array("ID" => "desc")));
 $arResult["SORT"] = $gridSort["sort"];
 $arResult["FILTER"] = array();
 if ($arParams["INLINE_MODE"] != "Y") {
     $arResult["FILTER"] = array(array("id" => "MODIFIED", "name" => GetMessage("CBBWL_C_MODIFIED"), "type" => "date"), array("id" => "TYPE", "name" => GetMessage("CBBWL_C_TYPE"), "type" => "list", "items" => array("" => GetMessage("BPWC_WLC_NOT_SET"), 6 => GetMessage("BPABL_TYPE_7"), 5 => GetMessage("BPABL_TYPE_5"), 1 => GetMessage("BPABL_TYPE_1"), 2 => GetMessage("BPABL_TYPE_2"), 3 => GetMessage("BPABL_TYPE_3"), 4 => GetMessage("BPABL_TYPE_4"))), array("id" => "ADMIN_MODE", "name" => GetMessage("CBBWL_C_ADMIN_MODE"), "type" => "checkbox"));
 }
 $arResult["AdminMode"] = false;
 $arFilter = array("WORKFLOW_ID" => $arWorkflowState["ID"]);
 $gridFilter = $gridOptions->GetFilter($arResult["FILTER"]);
 foreach ($gridFilter as $key => $value) {
     if ($key == "ADMIN_MODE") {
         $arResult["AdminMode"] = $value == "Y" ? true : false;
         continue;
     }
     if (substr($key, -5) == "_from") {
         $op = ">=";
         $newKey = substr($key, 0, -5);
     } elseif (substr($key, -3) == "_to") {
         $op = "<=";
         $newKey = substr($key, 0, -3);
     } else {
         $op = "";
         $newKey = $key;
     }
Esempio n. 2
0
        $arResult["GLOBAL_OPTIONS"]["theme"] = $arResult["GLOBAL_OPTIONS"]["theme_template"][SITE_TEMPLATE_ID];
    }
    if ($arResult["OPTIONS"]["theme"] == '') {
        $arResult["OPTIONS"]["theme"] = $arResult["GLOBAL_OPTIONS"]["theme"];
    }
} else {
    $arResult["OPTIONS"]["theme"] = '';
}
//*********************
// Filter
//*********************
if (is_array($arParams["FILTER_PRESETS"]) && !empty($arParams["FILTER_PRESETS"])) {
    $arResult["OPTIONS"]["filters"] = array_merge($arParams["FILTER_PRESETS"], $aOptions["filters"]);
}
$grid_options = new CGridOptions($arParams["GRID_ID"]);
$arResult["FILTER"] = $grid_options->GetFilter($arParams["FILTER"]);
$aVisRows = array();
$aFilterTmp = explode(",", $aOptions["filter_rows"]);
foreach ($aFilterTmp as $field) {
    if (($f = trim($field)) != "") {
        $aVisRows[$f] = $f;
    }
}
$arResult["FILTER_ROWS"] = array();
foreach ($arParams["FILTER"] as $field) {
    if ($field["filtered"] == true) {
        $arResult["FILTER_ROWS"][$field["id"]] = true;
        continue;
    }
    if (isset($arResult["FILTER"][$field["id"] . "_from"])) {
        $flt = $arResult["FILTER"][$field["id"] . "_from"];
Esempio n. 3
0
        while ($ar_enum = $prop_enums->Fetch()) {
            $items[$ar_enum["ID"]] = $ar_enum["VALUE"];
        }
        $arResult["FILTER"][$i] = array("id" => $FIELD_ID, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "list", "items" => $items, "params" => array("size" => 5, "multiple" => "multiple"), "valign" => "top");
        $arFilterable[$FIELD_ID] = "";
    } elseif (in_array($arField["TYPE"], array("S", "S:HTML", "NAME", "DETAIL_TEXT", "PREVIEW_TEXT"))) {
        $arResult["FILTER"][$i] = array("id" => $FIELD_ID, "name" => htmlspecialcharsex($arField["NAME"]));
        $arFilterable[$FIELD_ID] = "?";
    } else {
        $arResult["FILTER"][$i] = array("id" => $FIELD_ID, "name" => htmlspecialcharsex($arField["NAME"]), "fieldsType" => $arField["TYPE"]);
        $arFilterable[$FIELD_ID] = "";
    }
    $i++;
}
$arFilter = array();
$arResult["GRID_FILTER"] = $grid_filter = $grid_options->GetFilter($arResult["FILTER"]);
foreach ($grid_filter as $key => $value) {
    if (substr($key, -5) == "_from") {
        $op = ">=";
        $new_key = substr($key, 0, -5);
    } elseif (substr($key, -3) == "_to") {
        $op = "<=";
        $new_key = substr($key, 0, -3);
        if (array_key_exists($new_key, $arDateFilter)) {
            if (!preg_match("/\\d\\d:\\d\\d:\\d\\d\$/", $value)) {
                $value .= " 23:59:59";
            }
        }
    } else {
        $op = "";
        $new_key = $key;
Esempio n. 4
0
 protected function createDataExcel()
 {
     $obList = new CList($this->arIBlock["ID"]);
     $gridOptions = new CGridOptions($this->arResult["GRID_ID"]);
     $gridColumns = $gridOptions->GetVisibleColumns();
     $gridSort = $gridOptions->GetSorting(array("sort" => array("name" => "asc")));
     $this->arResult["ELEMENTS_HEADERS"] = array();
     $arSelect = array("ID", "IBLOCK_ID");
     $arProperties = array();
     $this->arResult["FIELDS"] = $arListFields = $obList->GetFields();
     foreach ($arListFields as $fieldId => $arField) {
         if (!count($gridColumns) || in_array($fieldId, $gridColumns)) {
             if (substr($fieldId, 0, 9) == "PROPERTY_") {
                 $arProperties[] = $fieldId;
             } else {
                 $arSelect[] = $fieldId;
             }
         }
         if ($fieldId == "CREATED_BY") {
             $arSelect[] = "CREATED_USER_NAME";
         }
         if ($fieldId == "MODIFIED_BY") {
             $arSelect[] = "USER_NAME";
         }
         $this->arResult["ELEMENTS_HEADERS"][$fieldId] = array("name" => htmlspecialcharsex($arField["NAME"]), "default" => true, "sort" => $arField["MULTIPLE"] == "Y" ? "" : $fieldId);
     }
     if (!count($gridColumns) || in_array("IBLOCK_SECTION_ID", $gridColumns)) {
         $arSelect[] = "IBLOCK_SECTION_ID";
     }
     $this->arResult["ELEMENTS_HEADERS"]["IBLOCK_SECTION_ID"] = array("name" => Loc::getMessage("CC_BLL_COLUMN_SECTION"), "default" => true, "sort" => false);
     /* FILTER */
     $sections = array();
     foreach ($this->arResult["LIST_SECTIONS"] as $id => $name) {
         $sections[$id] = $name;
     }
     $this->arResult["FILTER"] = array(array("id" => "list_section_id", "type" => "list", "items" => $sections, "filtered" => $this->arResult["SECTION_ID"] !== false, "filter_value" => $this->arResult["SECTION_ID"], "value" => $this->arResult["SECTION_ID"]));
     $i = 1;
     $arFilterable = array();
     $arDateFilter = array();
     foreach ($arListFields as $fieldId => $arField) {
         if ($arField["TYPE"] == "ACTIVE_FROM" || $arField["TYPE"] == "ACTIVE_TO") {
             $this->arResult["FILTER"][$i] = array("id" => "DATE_" . $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "date");
             $arFilterable["DATE_" . $fieldId] = "";
             $arDateFilter["DATE_" . $fieldId] = true;
         } elseif ($arField["TYPE"] == "DATE_CREATE" || $arField["TYPE"] == "TIMESTAMP_X") {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "date");
             $arFilterable[$fieldId] = "";
             $arDateFilter[$fieldId] = true;
         } elseif (is_array($arField["PROPERTY_USER_TYPE"]) && array_key_exists("GetPublicFilterHTML", $arField["PROPERTY_USER_TYPE"])) {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "custom", "enable_settings" => false, "value" => call_user_func_array($arField["PROPERTY_USER_TYPE"]["GetPublicFilterHTML"], array($arField, array("VALUE" => $fieldId, "FORM_NAME" => "filter_" . $this->arResult["GRID_ID"], "GRID_ID" => $this->arResult["GRID_ID"]))));
             $arFilterable[$fieldId] = "";
         } elseif ($arField["TYPE"] == "SORT" || $arField["TYPE"] == "N") {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "number");
             $arFilterable[$fieldId] = "";
         } elseif ($arField["TYPE"] == "G") {
             $items = array();
             $prop_secs = CIBlockSection::GetList(array("left_margin" => "asc"), array("IBLOCK_ID" => $arField["LINK_IBLOCK_ID"]));
             while ($ar_sec = $prop_secs->Fetch()) {
                 $items[$ar_sec["ID"]] = str_repeat(". ", $ar_sec["DEPTH_LEVEL"] - 1) . $ar_sec["NAME"];
             }
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "list", "items" => $items, "params" => array("size" => 5, "multiple" => "multiple"), "valign" => "top");
             $arFilterable[$fieldId] = "";
         } elseif ($arField["TYPE"] == "E") {
             //Should be handled in template
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "E", "value" => $arField);
             $arFilterable[$fieldId] = "";
         } elseif ($arField["TYPE"] == "L") {
             $items = array();
             $propEnums = CIBlockProperty::GetPropertyEnum($arField["ID"]);
             while ($arEnum = $propEnums->Fetch()) {
                 $items[$arEnum["ID"]] = $arEnum["VALUE"];
             }
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "list", "items" => $items, "params" => array("size" => 5, "multiple" => "multiple"), "valign" => "top");
             $arFilterable[$fieldId] = "";
         } elseif (in_array($arField["TYPE"], array("S", "S:HTML", "NAME", "DETAIL_TEXT", "PREVIEW_TEXT"))) {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]));
             $arFilterable[$fieldId] = "?";
         } else {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]));
             $arFilterable[$fieldId] = "";
         }
         $i++;
     }
     $arFilter = array();
     $gridFilter = $gridOptions->GetFilter($this->arResult["FILTER"]);
     foreach ($gridFilter as $key => $value) {
         if (substr($key, -5) == "_from") {
             $op = ">=";
             $newKey = substr($key, 0, -5);
         } elseif (substr($key, -3) == "_to") {
             $op = "<=";
             $newKey = substr($key, 0, -3);
             if (array_key_exists($newKey, $arDateFilter)) {
                 if (!preg_match("/\\d\\d:\\d\\d:\\d\\d\$/", $value)) {
                     $value .= " 23:59:59";
                 }
             }
         } else {
             $op = "";
             $newKey = $key;
         }
         if (array_key_exists($newKey, $arFilterable)) {
             if ($op == "") {
                 $op = $arFilterable[$newKey];
             }
             $arFilter[$op . $newKey] = $value;
         }
     }
     $arFilter["IBLOCK_ID"] = $this->arIBlock["ID"];
     if (!$this->arResult["ANY_SECTION"]) {
         $arFilter["SECTION_ID"] = $this->arResult["SECTION_ID"];
     }
     $rsElements = CIBlockElement::GetList($gridSort["sort"], $arFilter, false, false, $arSelect);
     $this->arResult["EXCEL_COLUMN_NAME"] = array();
     $this->arResult["EXCEL_CELL_VALUE"] = array();
     $count = 0;
     while ($obElement = $rsElements->GetNextElement()) {
         $data = $obElement->GetFields();
         $propertyArray = $obElement->GetProperties();
         if (!empty($arProperties)) {
             foreach ($propertyArray as $arProp) {
                 $fieldId = "PROPERTY_" . $arProp["ID"];
                 if (in_array($fieldId, $arProperties)) {
                     $arField = $this->arResult["FIELDS"][$fieldId];
                     if (is_array($arField["PROPERTY_USER_TYPE"]) && is_array($arField["PROPERTY_USER_TYPE"]["GetPublicViewHTML"])) {
                         if (is_array($arProp["~VALUE"])) {
                             foreach ($arProp["~VALUE"] as $propValue) {
                                 $data[$fieldId][] = call_user_func_array($arField["PROPERTY_USER_TYPE"]["GetPublicViewHTML"], array($arField, array("VALUE" => $propValue), array()));
                             }
                         } else {
                             $data[$fieldId] = call_user_func_array($arField["PROPERTY_USER_TYPE"]["GetPublicViewHTML"], array($arField, array("VALUE" => $arProp["~VALUE"]), array()));
                         }
                     } elseif ($arField["PROPERTY_TYPE"] == "L") {
                         $data[$fieldId] = htmlspecialcharsex($arProp["VALUE_ENUM"]);
                     } elseif ($arField["PROPERTY_TYPE"] == "F") {
                         $files = is_array($arProp["VALUE"]) ? $arProp["VALUE"] : array($arProp["VALUE"]);
                         foreach ($files as $file) {
                             $value = CFile::MakeFileArray($file);
                             $data[$fieldId] .= $value["name"] . "\r\n";
                         }
                     } else {
                         $data[$fieldId] = htmlspecialcharsex($arProp["VALUE"]);
                     }
                 }
             }
             if (!empty($data["IBLOCK_SECTION_ID"])) {
                 if (array_key_exists($data["IBLOCK_SECTION_ID"], $this->arResult["SECTIONS"])) {
                     $data["IBLOCK_SECTION_ID"] = $this->arResult["SECTIONS"][$data["IBLOCK_SECTION_ID"]]["NAME"];
                 }
             }
             if (in_array("BIZPROC", $gridColumns)) {
                 $data["BIZPROC"] = $this->getArrayBizproc($data);
             }
         }
         if (isset($data["CREATED_BY"])) {
             $data["CREATED_BY"] = "[" . $data["CREATED_BY"] . "] " . $data["CREATED_USER_NAME"];
         }
         if (isset($data["MODIFIED_BY"])) {
             $data["MODIFIED_BY"] = "[" . $data["MODIFIED_BY"] . "] " . $data["USER_NAME"];
         }
         if (isset($data["ACTIVE_FROM"])) {
             $data['ACTIVE_FROM'] = FormatDateFromDB($data['ACTIVE_FROM']);
         }
         if (isset($data["ACTIVE_TO"])) {
             $data['ACTIVE_TO'] = FormatDateFromDB($data['ACTIVE_TO']);
         }
         if (isset($data["DATE_CREATE"])) {
             $data['DATE_CREATE'] = FormatDateFromDB($data['DATE_CREATE']);
         }
         if (isset($data["TIMESTAMP_X"])) {
             $data['TIMESTAMP_X'] = FormatDateFromDB($data['TIMESTAMP_X']);
         }
         foreach ($gridColumns as $position => $id) {
             $this->arResult["EXCEL_CELL_VALUE"][$count][$position] = is_array($data[$id]) ? implode('/', $data[$id]) : $data[$id];
             $this->arResult["EXCEL_COLUMN_NAME"][$position] = $this->arResult["ELEMENTS_HEADERS"][$id]["name"];
         }
         $count++;
     }
 }
Esempio n. 5
0
	array("id"=>"LAMP", "name"=>GetMessage('SUP_F_LAMP'), "type"=>"list", "params"=>array("size"=>4, "multiple"=>"multiple"), "valign"=>"top", "items"=>array(
		'red' => GetMessage('SUP_RED'), 'green' => GetMessage('SUP_GREEN'), 'grey' => GetMessage('SUP_GREY')
	)),
	array("id"=>"CLOSE", "name"=>GetMessage('SUP_F_CLOSE'), "type" => "list", "items" => array(
		"" => GetMessage('SUP_ALL'), 'Y' => GetMessage('SUP_CLOSED'),'N' => GetMessage('SUP_OPENED')
	)),
	array("id"=>"MESSAGE", "name"=>GetMessage('SUP_F_MESSAGE_TITLE'))
);

$arParams["TICKETS_PER_PAGE"] = (intval($arParams["TICKETS_PER_PAGE"]) <= 0 ? 50 : intval($arParams["TICKETS_PER_PAGE"]));

$grid_options = new CGridOptions($arResult["GRID_ID"]);
$aSort = $grid_options->GetSorting(array("sort"=>array("id"=>"desc"), "vars"=>array("by"=>"by", "order"=>"order")));
$aNav = $grid_options->GetNavParams(array("nPageSize"=>$arParams["TICKETS_PER_PAGE"]));
$aSortArg = each($aSort["sort"]);
$aFilter = $grid_options->GetFilter($arResult["FILTER"]);

$aSortVal = $aSort['sort'];
$sort_order = current($aSortVal);
$sort_by = key($aSortVal);


if (strlen($arParams["SITE_ID"]) > 0)
	$aFilter["LID"] = $arParams["SITE_ID"];

$rsTickets = CTicket::GetList(
	$sort_by,
	$sort_order,
	$aFilter,
	$is_filtered,
	$check_rights = "Y",
Esempio n. 6
0
 protected function createDataExcel()
 {
     $obList = new CList($this->arIBlock["ID"]);
     $gridOptions = new CGridOptions($this->arResult["GRID_ID"]);
     $gridColumns = $gridOptions->GetVisibleColumns();
     $gridSort = $gridOptions->GetSorting(array("sort" => array("name" => "asc")));
     $this->arResult["ELEMENTS_HEADERS"] = array();
     $arSelect = array("ID", "IBLOCK_ID");
     $arProperties = array();
     $this->arResult["FIELDS"] = $arListFields = $obList->GetFields();
     foreach ($arListFields as $fieldId => $arField) {
         if (!count($gridColumns) || in_array($fieldId, $gridColumns)) {
             if (substr($fieldId, 0, 9) == "PROPERTY_") {
                 $arProperties[] = $fieldId;
             } else {
                 $arSelect[] = $fieldId;
             }
         }
         if ($fieldId == "CREATED_BY") {
             $arSelect[] = "CREATED_USER_NAME";
         }
         if ($fieldId == "MODIFIED_BY") {
             $arSelect[] = "USER_NAME";
         }
         $this->arResult["ELEMENTS_HEADERS"][$fieldId] = $arField["NAME"];
     }
     if (!count($gridColumns) || in_array("IBLOCK_SECTION_ID", $gridColumns)) {
         $arSelect[] = "IBLOCK_SECTION_ID";
     }
     $this->arResult["ELEMENTS_HEADERS"]["IBLOCK_SECTION_ID"] = Loc::getMessage("CC_BLL_COLUMN_SECTION");
     /* FILTER */
     $sections = array();
     foreach ($this->arResult["LIST_SECTIONS"] as $id => $name) {
         $sections[$id] = $name;
     }
     $this->arResult["FILTER"] = array(array("id" => "list_section_id", "type" => "list", "items" => $sections, "filtered" => $this->arResult["SECTION_ID"] !== false, "filter_value" => $this->arResult["SECTION_ID"], "value" => $this->arResult["SECTION_ID"]));
     $i = 1;
     $arFilterable = array();
     $arCustomFilter = array();
     $arDateFilter = array();
     foreach ($arListFields as $fieldId => $arField) {
         if ($arField["TYPE"] == "ACTIVE_FROM" || $arField["TYPE"] == "ACTIVE_TO") {
             $this->arResult["FILTER"][$i] = array("id" => "DATE_" . $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "date");
             $arFilterable["DATE_" . $fieldId] = "";
             $arDateFilter["DATE_" . $fieldId] = true;
         } elseif ($arField["TYPE"] == "DATE_CREATE" || $arField["TYPE"] == "TIMESTAMP_X") {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "date");
             $arFilterable[$fieldId] = "";
             $arDateFilter[$fieldId] = true;
         } elseif (is_array($arField["PROPERTY_USER_TYPE"]) && array_key_exists("GetPublicFilterHTML", $arField["PROPERTY_USER_TYPE"])) {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "custom", "fieldsType" => $arField["TYPE"], "enable_settings" => false, "value" => call_user_func_array($arField["PROPERTY_USER_TYPE"]["GetPublicFilterHTML"], array($arField, array("VALUE" => $fieldId, "FORM_NAME" => "filter_" . $this->arResult["GRID_ID"], "GRID_ID" => $this->arResult["GRID_ID"]))));
             $arFilterable[$fieldId] = "";
             if (array_key_exists("AddFilterFields", $arField["PROPERTY_USER_TYPE"])) {
                 $arCustomFilter[$fieldId] = array("callback" => $arField["PROPERTY_USER_TYPE"]["AddFilterFields"], "filter" => &$this->arResult["FILTER"][$i]);
             }
         } elseif ($arField["TYPE"] == "SORT" || $arField["TYPE"] == "N") {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "number");
             $arFilterable[$fieldId] = "";
         } elseif ($arField["TYPE"] == "G") {
             $items = array();
             $prop_secs = CIBlockSection::GetList(array("left_margin" => "asc"), array("IBLOCK_ID" => $arField["LINK_IBLOCK_ID"]));
             while ($ar_sec = $prop_secs->Fetch()) {
                 $items[$ar_sec["ID"]] = str_repeat(". ", $ar_sec["DEPTH_LEVEL"] - 1) . $ar_sec["NAME"];
             }
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "list", "items" => $items, "params" => array("size" => 5, "multiple" => "multiple"), "valign" => "top");
             $arFilterable[$fieldId] = "";
         } elseif ($arField["TYPE"] == "E") {
             //Should be handled in template
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "E", "value" => $arField);
             $arFilterable[$fieldId] = "";
         } elseif ($arField["TYPE"] == "L") {
             $items = array();
             $propEnums = CIBlockProperty::GetPropertyEnum($arField["ID"]);
             while ($arEnum = $propEnums->Fetch()) {
                 $items[$arEnum["ID"]] = $arEnum["VALUE"];
             }
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "type" => "list", "items" => $items, "params" => array("size" => 5, "multiple" => "multiple"), "valign" => "top");
             $arFilterable[$fieldId] = "";
         } elseif (in_array($arField["TYPE"], array("S", "S:HTML", "NAME", "DETAIL_TEXT", "PREVIEW_TEXT"))) {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]));
             $arFilterable[$fieldId] = "?";
         } else {
             $this->arResult["FILTER"][$i] = array("id" => $fieldId, "name" => htmlspecialcharsex($arField["NAME"]), "fieldsType" => $arField["TYPE"]);
             $arFilterable[$fieldId] = "";
         }
         $i++;
     }
     $arFilter = array();
     $gridFilter = $gridOptions->GetFilter($this->arResult["FILTER"]);
     foreach ($gridFilter as $key => $value) {
         if (substr($key, -5) == "_from") {
             $op = ">=";
             $newKey = substr($key, 0, -5);
         } elseif (substr($key, -3) == "_to") {
             $op = "<=";
             $newKey = substr($key, 0, -3);
             if (array_key_exists($newKey, $arDateFilter)) {
                 if (!preg_match("/\\d\\d:\\d\\d:\\d\\d\$/", $value)) {
                     $value .= " 23:59:59";
                 }
             }
         } else {
             $op = "";
             $newKey = $key;
         }
         if (array_key_exists($newKey, $arFilterable)) {
             if ($op == "") {
                 $op = $arFilterable[$newKey];
             }
             $arFilter[$op . $newKey] = $value;
         }
     }
     foreach ($arCustomFilter as $fieldId => $arCallback) {
         $filtered = false;
         call_user_func_array($arCallback["callback"], array($arListFields[$fieldId], array("VALUE" => $fieldId, "GRID_ID" => $this->arResult["GRID_ID"]), &$arFilter, &$filtered));
     }
     $arFilter["IBLOCK_ID"] = $this->arIBlock["ID"];
     $arFilter["CHECK_PERMISSIONS"] = $this->listsPerm >= CListPermissions::CAN_READ ? "N" : "Y";
     if (!$this->arResult["ANY_SECTION"]) {
         $arFilter["SECTION_ID"] = $this->arResult["SECTION_ID"];
     }
     $rsElements = CIBlockElement::GetList($gridSort["sort"], $arFilter, false, false, $arSelect);
     $this->arResult["EXCEL_COLUMN_NAME"] = array();
     $this->arResult["EXCEL_CELL_VALUE"] = array();
     $count = 0;
     $comments = false;
     if (in_array("COMMENTS", $gridColumns) && CModule::includeModule("forum")) {
         $comments = true;
     }
     while ($obElement = $rsElements->GetNextElement()) {
         $data = $obElement->GetFields();
         $propertyArray = $obElement->GetProperties();
         if (!empty($arProperties)) {
             foreach ($propertyArray as $arProp) {
                 $fieldId = "PROPERTY_" . $arProp["ID"];
                 if (in_array($fieldId, $arProperties)) {
                     $arField = $this->arResult["FIELDS"][$fieldId];
                     if (is_array($arField["PROPERTY_USER_TYPE"]) && is_array($arField["PROPERTY_USER_TYPE"]["GetPublicViewHTML"])) {
                         if ($arProp["USER_TYPE"] == "map_yandex") {
                             $data[$fieldId] = !empty($arProp["VALUE"]) ? $arProp["VALUE"] : '';
                             continue;
                         } elseif ($arProp["USER_TYPE"] == "DiskFile") {
                             if (!empty($arProp["VALUE"]) && $this->arResult["DISK"]) {
                                 $listValue = current($arProp["VALUE"]);
                                 if (!is_array($listValue)) {
                                     $listValue = $arProp["VALUE"];
                                 }
                                 $number = 0;
                                 $countFiles = count($listValue);
                                 foreach ($listValue as $idAttached) {
                                     $number++;
                                     list($type, $realId) = Bitrix\Disk\Uf\FileUserType::detectType($idAttached);
                                     if ($type == Bitrix\Disk\Uf\FileUserType::TYPE_ALREADY_ATTACHED) {
                                         $attachedModel = Bitrix\Disk\AttachedObject::loadById($realId);
                                         if (!$attachedModel) {
                                             continue;
                                         }
                                         $fileModel = Bitrix\Disk\File::loadById($attachedModel->getObjectId(), array('STORAGE'));
                                         if (!$fileModel) {
                                             continue;
                                         }
                                         $data[$fieldId] .= $fileModel->getName();
                                         $data[$fieldId] .= $countFiles != $number ? ', ' : '';
                                     }
                                 }
                             }
                             continue;
                         }
                         if (is_array($arProp["~VALUE"])) {
                             foreach ($arProp["~VALUE"] as $propValue) {
                                 $data[$fieldId][] = call_user_func_array($arField["PROPERTY_USER_TYPE"]["GetPublicViewHTML"], array($arField, array("VALUE" => $propValue), array()));
                             }
                         } else {
                             $data[$fieldId] = call_user_func_array($arField["PROPERTY_USER_TYPE"]["GetPublicViewHTML"], array($arField, array("VALUE" => $arProp["~VALUE"]), array()));
                         }
                     } elseif ($arField["PROPERTY_TYPE"] == "E") {
                         if (empty($arProp['VALUE'])) {
                             continue;
                         }
                         if (!is_array($arProp['VALUE'])) {
                             $arProp['VALUE'] = array($arProp['VALUE']);
                         }
                         $elementQuery = CIBlockElement::getList(array(), array("=ID" => $arProp['VALUE']), false, false, array("NAME"));
                         while ($element = $elementQuery->fetch()) {
                             $data[$fieldId][] = $element['NAME'];
                         }
                     } elseif ($arField["PROPERTY_TYPE"] == "G") {
                         if (empty($arProp['VALUE'])) {
                             continue;
                         }
                         if (!is_array($arProp['VALUE'])) {
                             $arProp['VALUE'] = array($arProp['VALUE']);
                         }
                         $sectionQuery = CIBlockSection::getList(array(), array("=ID" => $arProp['VALUE']));
                         while ($section = $sectionQuery->fetch()) {
                             $data[$fieldId][] = $section['NAME'];
                         }
                     } elseif ($arField["PROPERTY_TYPE"] == "L") {
                         $data[$fieldId] = htmlspecialcharsex($arProp["VALUE_ENUM"]);
                     } elseif ($arField["PROPERTY_TYPE"] == "F") {
                         $files = is_array($arProp["VALUE"]) ? $arProp["VALUE"] : array($arProp["VALUE"]);
                         $number = 1;
                         $countFiles = count($files);
                         foreach ($files as $file) {
                             $value = CFile::MakeFileArray($file);
                             $data[$fieldId] .= $value["name"];
                             $data[$fieldId] .= $countFiles != $number ? ', ' : '';
                             $number++;
                         }
                     } else {
                         $data[$fieldId] = htmlspecialcharsex($arProp["VALUE"]);
                     }
                 }
             }
             if (!empty($data["IBLOCK_SECTION_ID"])) {
                 if (array_key_exists($data["IBLOCK_SECTION_ID"], $this->arResult["SECTIONS"])) {
                     $data["IBLOCK_SECTION_ID"] = $this->arResult["SECTIONS"][$data["IBLOCK_SECTION_ID"]]["NAME"];
                 }
             }
             if (in_array("BIZPROC", $gridColumns)) {
                 $data["BIZPROC"] = $this->getArrayBizproc($data);
             }
         }
         if ($comments) {
             $countComments = $this->getCommentsProcess($data["ID"]);
         }
         if (isset($data["CREATED_BY"])) {
             $data["CREATED_BY"] = "[" . $data["CREATED_BY"] . "] " . $data["CREATED_USER_NAME"];
         }
         if (isset($data["MODIFIED_BY"])) {
             $data["MODIFIED_BY"] = "[" . $data["MODIFIED_BY"] . "] " . $data["USER_NAME"];
         }
         if (isset($data["ACTIVE_FROM"])) {
             $data['ACTIVE_FROM'] = FormatDateFromDB($data['ACTIVE_FROM']);
         }
         if (isset($data["ACTIVE_TO"])) {
             $data['ACTIVE_TO'] = FormatDateFromDB($data['ACTIVE_TO']);
         }
         if (isset($data["DATE_CREATE"])) {
             $data['DATE_CREATE'] = FormatDateFromDB($data['DATE_CREATE']);
         }
         if (isset($data["TIMESTAMP_X"])) {
             $data['TIMESTAMP_X'] = FormatDateFromDB($data['TIMESTAMP_X']);
         }
         foreach ($gridColumns as $position => $id) {
             if ($id == "COMMENTS") {
                 if ($comments) {
                     $data[$id] = $countComments;
                 } else {
                     continue;
                 }
             }
             $this->arResult["EXCEL_CELL_VALUE"][$count][$position] = is_array($data[$id]) ? implode('/', $data[$id]) : $data[$id];
             $this->arResult["EXCEL_COLUMN_NAME"][$position] = $this->arResult["ELEMENTS_HEADERS"][$id];
         }
         $count++;
     }
 }
Esempio n. 7
0
             $urlParams[] = $arFilter["id"];
             $urlParams[] = $arFilter["id"] . "_name";
         } elseif ($arFilter["type"] == "number") {
             $urlParams[] = $arFilter["id"] . "_from";
             $urlParams[] = $arFilter["id"] . "_to";
         } elseif ($arFilter["type"] == "date") {
             $urlParams[] = $arFilter["id"] . "_datesel";
             $urlParams[] = $arFilter["id"] . "_days";
             $urlParams[] = $arFilter["id"] . "_from";
             $urlParams[] = $arFilter["id"] . "_to";
         } else {
             $urlParams[] = $arFilter["id"];
         }
     }
     $urlParams[] = "clear_filter";
     $grid_filter = $grid_options->GetFilter(array());
     if (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') === false) {
         LocalRedirect($arResult['URL']['~THIS']);
     } else {
         LocalRedirect($ob->_uencode($arResult['URL']['~THIS'], array("utf8" => "Y", "convert" => "full")));
     }
 }
 $grid_filter = $grid_options->GetFilter(array_merge($arResult["FILTER"], array(array('id' => 'FILE_SIZE_multiply'))));
 foreach ($grid_filter as $key => $value) {
     if (substr($key, -5) == "_from") {
         $new_key = substr($key, 0, -5) . "_1";
     } elseif (substr($key, -3) == "_to") {
         $new_key = substr($key, 0, -3) . "_2";
     } else {
         $new_key = $key;
     }
Esempio n. 8
0
}
/********************************************************************
				/ACTIONS
********************************************************************/
/********************************************************************
				FILTER
********************************************************************/
$grid_options = new CGridOptions($arParams["GRID_ID"]);
$arFilter = array();
if (isset($_REQUEST["clear_filter"]) && $_REQUEST["clear_filter"] == "Y") {
    $urlParams = array();
    foreach ($arResult["FILTER"] as $id => $arFilter) {
        $urlParams[] = $arFilter["id"];
    }
    $urlParams[] = "clear_filter";
    $grid_filter = $grid_options->GetFilter(array());
    LocalRedirect($APPLICATION->GetCurPageParam("", $urlParams));
}
$grid_filter = $grid_options->GetFilter($arResult["FILTER"]);
$arResult["FILTER_VALUE"] = $grid_filter;
/********************************************************************
				/FILTER
********************************************************************/
/********************************************************************
				Data
********************************************************************/
$tmp = $ob->PROPFIND($options = array("path" => $ob->_path, "depth" => 1, "FILTER" => $grid_filter), $files, array("COLUMNS" => $arSelectedFields, "return" => "nav_result"));
if (is_array($tmp)) {
    $arResult = array_merge($arResult, $tmp);
}
if ($arResult["NAV_RESULT"]) {