Пример #1
0
<?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();
Пример #2
0
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;
}
Пример #3
0
$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] = '&nbsp;|&nbsp;' . $subName;