function getCatalogFields($array, $clear = false) { global $arParams; $arCheckbox = array("ACTIVE"); $arText = array('NAME', 'CODE'); $arHidden = array('ID', 'CATALOG_ID', 'TIMESTAMP_X', 'SID'); $arSelect = array('CATALOG_SECTION_ID', 'PREVIEW_TEXT_TYPE', 'DETAIL_TEXT_TYPE'); $arTextarea = array('PREVIEW_TEXT', 'DETAIL_TEXT'); $arFile = array('PREVIEW_PICTURE', 'DETAIL_PICTURE'); $arExclude = array("ID"); if ($clear) { foreach ($array as $k) { $arField = array(); if (in_array($k, $arHidden)) { $arField['TYPE'] = 'hidden'; } elseif (in_array($k, $arSelect)) { $arField['TYPE'] = 'select'; } elseif (in_array($k, $arCheckbox)) { $arField['TYPE'] = 'checkbox'; } elseif (in_array($k, $arTextarea)) { $arField['TYPE'] = 'textarea'; } elseif (in_array($k, $arFile)) { $arField['TYPE'] = 'file'; } else { $arField['TYPE'] = 'text'; } if ($k == 'CATALOG_ID') { $arField['VALUE'] = intVal($arParams['CATALOG_ID']); } elseif ($k == 'SORT') { $arField['VALUE'] = empty($arField['VALUE']) ? '500' : intVal($arField['VALUE']); } elseif ($k == 'ACTIVE') { $arField['VALUE'] = empty($arField['VALUE']) ? 'Y' : sXss($arField['VALUE']); } elseif ($k == 'PREVIEW_TEXT_TYPE') { $arField['VALUES'] = array('text', 'html'); } elseif ($k == 'DETAIL_TEXT_TYPE') { $arField['VALUES'] = array('text', 'html'); } elseif ($k == "CATALOG_SECTION_ID") { $rs = CatalogSection::GetList(array(), array("CATALOG_ID" => intVal($arParams["CATALOG_ID"]))); $arSections = array(); $arSections[] = ''; while ($abSect = $rs->GetNext()) { $arSections[$abSect["ID"]] = $abSect["NAME"]; } $arField['VALUES'] = $arSections; } else { $arField['VALUE'] = ''; } if (!in_array($k, $arExclude)) { $result[$k] = $arField; } } } else { foreach ($array as $k => $v) { $arField = array(); if (in_array($k, $arHidden)) { $arField['TYPE'] = 'hidden'; } elseif (in_array($k, $arSelect)) { $arField['TYPE'] = 'select'; } elseif (in_array($k, $arCheckbox)) { $arField['TYPE'] = 'checkbox'; } elseif (in_array($k, $arTextarea)) { $arField['TYPE'] = 'textarea'; } elseif (in_array($k, $arFile)) { $arField['TYPE'] = 'file'; } else { $arField['TYPE'] = 'text'; } if ($k == 'CATALOG_ID') { $arField['VALUE'] = intVal($v); } elseif ($k == 'ACTIVE') { $arField['VALUE'] = empty($v) ? 'Y' : sXss($v); } elseif ($k == 'SORT') { $arField['VALUE'] = empty($v) ? '500' : intVal($v); } elseif ($k == 'PREVIEW_TEXT_TYPE') { $arField['VALUES'] = array('text' => 'text', 'html' => 'html'); } elseif ($k == 'DETAIL_TEXT_TYPE') { $arField['VALUES'] = array('text' => 'text', 'html' => 'html'); } elseif ($k == "CATALOG_SECTION_ID") { $rs = CatalogSection::GetList(array(), array("CATALOG_ID" => intVal($arParams["CATALOG_ID"]))); $arSections = array(); $arSections[] = ''; while ($arSect = $rs->GetNext()) { $arSections[$arSect["ID"]] = $arSect["NAME"]; } $arField['VALUES'] = $arSections; } else { $arField['VALUE'] = $v; } if (!in_array($k, $arExclude)) { $result[$k] = $arField; } } } return $result; }
<?php namespace ScriptAcid; if (!defined("KERNEL_INCLUDED") || KERNEL_INCLUDED !== true) { die; } if (!Modules::includeModule('catalog')) { ShowError("Модуль каталогов не установлен."); return; } $arParams["SECTION_ID"] = intVal($arParams["SECTION_ID"]); $arParams["CATALOG_ID"] = intVal($arParams["CATALOG_ID"]); $arParams["CATALOG_TYPE"] = sXss($arParams["CATALOG_TYPE"]); if (empty($arParams["SHOW_FIELDS"])) { $arParams["SHOW_FIELDS"] = array("ID", "NAME", "SORT", "ACTIVE", "SID", "CODE"); } $arFilter = array(); if (!empty($arParams["SECTION_ID"])) { $arFilter['CATALOG_SECTION_ID'] = $arParams["SECTION_ID"]; } $arFilter["CATALOG_ID"] = $arParams["CATALOG_ID"]; $rs = CatalogSection::GetList(array(), $arFilter); while ($ob = $rs->GetNextElement()) { $arResult["ITEMS"][] = $ob->GetFields(); } $this->connectComponentTemplate();
public static function GetFilter($arFilter) { if (!empty($arFilter['SECTION_CODE'])) { $arFilter['SECTION_ID'] = CatalogSection::GetByCODE($arFilter['SECTION_CODE']); unset($arFilter['SECTION_CODE']); } if (is_array($arFilter['CATALOG_ID']) and !empty($arFilter['CATALOG_ID'])) { $arCatalogIDs = $arFilter['CATALOG_ID']; unset($arFilter['CATALOG_ID']); } $arElemFields = array("ID" => "ELEMENT.ID", "SORT" => "ELEMENT.SORT", "CATALOG_ID" => "ELEMENT.CATALOG_ID", "SECTION_ID" => "ELEMENT.CATALOG_SECTION_ID", "CODE" => "ELEMENT.CODE"); foreach ($arFilter as $key => $value) { if (array_key_exists($key, $arElemFields)) { $arFilter[$arElemFields[$key]] = $value; unset($arFilter[$key]); } } if (isset($arFilter["ELEMENT.CATALOG_ID"])) { $arFilter["CATALOG.ID"] = "ELEMENT.CATALOG_ID"; } $arFilter['CATALOG_ID'] = $arCatalogIDs; return $arFilter; }
$arParams['USE_CAPTCHA'] = $arParams['USE_CAPTCHA'] == "Y" ? "Y" : "N"; $arParams['MSG_ADD'] = strLen($arParams['MSG_ADD']) > 0 ? $arParams['MSG_ADD'] : LANG('MSG_ADD'); $arParams['MSG_EDIT'] = strLen($arParams['MSG_EDIT']) > 0 ? $arParams['MSG_EDIT'] : LANG('MSG_EDIT'); $arParams['PREVIEW_TEXT_LENGTH'] = intVal($arParams['PREVIEW_TEXT_LENGTH']) > 0 ? intVal($arParams['PREVIEW_TEXT_LENGTH']) : 80; $arParams["ID"] = intVal($arParams["ID"]) > 0 ? intVal($arParams["ID"]) : 0; $arCatalog['PROPERTIES'] = Catalog::GetCatalogProperties($arParams['CATALOG_ID']); $arFields = CatalogUtils::GetMainFieldsArray(); if (!empty($arCatalog['PROPERTIES'])) { foreach ($arCatalog['PROPERTIES'] as $arProp) { $arFields[$arProp['ID']] = array("NAME" => $arProp['NAME'], "CODE" => $arProp['CODE'], "TYPE" => $arProp['PROPERTY_TYPE'], "MULTIPLE" => $arProp['MULTIPLE'], "DEFAULT" => $arProp['DEFAULT_VALUE']); } } $arResult['FIELDS'] = $arFields; // SECTION TREE $arSectionTree = array('' => array('NAME' => 'Корневой каталог')); $rsec = CatalogSection::GetList(array("NAME" => "ASC"), array("CATALOG_ID" => $arParams['CATALOG_ID'])); while ($obSec = $rsec->GetNextElement()) { $arSec = $obSec->GetFields(); if ($arSec['CATALOG_SECTION_ID'] > 0) { $arSectionTree[$arSec['CATALOG_SECTION_ID']]['SUB'][$arSec['ID']] = $arSec['NAME']; } else { $arSectionTree[$arSec['ID']]['NAME'] = $arSec['NAME']; } //d($arSec); } $arResult['SECTIONS_TREE'] = array(); foreach ($arSectionTree as $seid => $arSect) { $arResult['SECTIONS_TREE'][$seid] = $arSect['NAME']; if (is_array($arSect['SUB']) and !empty($arSect['SUB'])) { foreach ($arSect['SUB'] as $subID => $subName) { $arResult['SECTIONS_TREE'][$subID] = ' | ' . $subName;
<?php namespace ScriptAcid; if (!defined("KERNEL_INCLUDED") || KERNEL_INCLUDED !== true) { die; } if (!empty($arResult["ITEMS"]) and !empty($arParams["SHOW_FIELDS"])) { foreach ($arResult["ITEMS"] as $arItem) { if (!empty($arItem["CATALOG_SECTION_ID"])) { $parentSecID = $arItem["CATALOG_SECTION_ID"]; } } $rs = CatalogSection::GetByID($parentSecID); if ($arParent = $rs->GetNext()) { $parentID = $arParent["CATALOG_SECTION_ID"] === NULL ? 0 : $parentSecID; } $bShowUpBtn = true; $arDecorate = array("NAME" => '<a href="' . SYS_ROOT . '/admin/catalog/elements.php?TYPE=#CATALOG_TYPE#&CATALOG_ID=#CATALOG_ID#&SECTION_ID=#ID#">#NAME#</a>'); } elseif (!empty($arParams["SECTION_ID"]) and $arParams["SECTION_ID"] != '0') { $bShowUpBtn = true; $parentID = 0; } if ($bShowUpBtn) { ?> <span style="margin-left: 50px; border: 1px solid; border-color:#D8EBF5 #D8EBF5 #B9DBEE; padding: 3px 25px 3px 25px"> <a href="/scriptacid/admin/catalog/elements.php?TYPE=<?php echo $arParams["CATALOG_TYPE"]; ?> &CATALOG_ID=<?php echo $arParams["CATALOG_ID"];
$arLimit = array('PAGE' => $arParams['CURRENT_PAGE'], 'COUNT' => $arParams['PAGE_COUNT']); } if (!empty($arParams['SORT_FIELD']) and !empty($arParams['SORT_ORDER'])) { $arOrder[$arParams['SORT_FIELD']] = $arParams['SORT_ORDER']; } else { $arOrder = array("ID" => "DESC"); } $arParams["CACHE_OFF"] = $arParams["CACHE_OFF"] == "Y" ? true : false; $cache = new Cache(array($arParams), 3600, !$arParams["CACHE_OFF"]); if ($cache->StartCache()) { $rs = CatalogElement::GetList($arOrder, $arFilter, array(), $arLimit); $arResult['PAGINATION'] = $rs->GetPagination(); while ($ob = $rs->GetNextElement()) { $arElement = $ob->GetFields(); $arElement['PROPERTIES'] = $ob->GetProperties(); if (intVal($arElement['CATALOG_SECTION_ID']) > 0) { $rsec = CatalogSection::GetByID($arElement['CATALOG_SECTION_ID']); $arSection = $rsec->GetNext(); } else { $arSection['CODE'] = ''; } $arPrepare = array('ID' => $arElement['ID'], 'SECTION_ID' => $arElement['CATALOG_SECTION_ID'], 'SECTION_CODE' => $arSection['CODE']); $arElement["DETAIL_PAGE_URL"] = CatalogElement::PrepareURL($arPrepare, $arElement["DETAIL_PAGE_URL"]); $arElement["SECTION_PAGE_URL"] = CatalogElement::PrepareURL($arPrepare, $arElement["SECTION_PAGE_URL"]); $arResult["ITEMS"][] = $arElement; } $cache->SaveCache($arResult); } else { $arResult = $cache->GetCache(); } $this->connectComponentTemplate();