<?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();
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; }
$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;