Exemple #1
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;
}
Exemple #2
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();
 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;
 }
Exemple #4
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;
Exemple #5
0
<?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"];
Exemple #6
0
    $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();