public function __construct($iblock_id, $field_id, $label, $sort) { parent::__construct($iblock_id, $field_id, $label, $sort); $this->_type = CListFieldTypeList::GetByID($field_id); if ($this->_iblock_id > 0) { $arIBlockFields = CIBlock::GetArrayByID($this->_iblock_id, "FIELDS"); } else { $arIBlockFields = CIBlock::GetFieldsDefaults(); } $this->_iblock_field = $arIBlockFields[$field_id]; }
/** * <p>Функция возвращает описание полей элементов инфоблоков. Структура массива описана в <a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/SetFields.php">CIBlock::SetFields.</a></p> * * * * * @param int $ID Код информациооного блока<br> * * * * @return array <p>Массив.</p> * * * <h4>See Also</h4> * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/SetFields.php">CIBlock::SetFields</a> </li> * </ul><br> * * * @static * @link http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblock/GetFields.php * @author Bitrix */ public static function GetFields($ID) { /** @global CDatabase $DB */ global $DB; $ID = intval($ID); $arDefFields = CIBlock::GetFieldsDefaults(); $res = $DB->Query("\n\t\t\tSELECT\n\t\t\t\tF.*\n\t\t\tFROM\n\t\t\t\tb_iblock B\n\t\t\t\tLEFT JOIN b_iblock_fields F ON B.ID = F.IBLOCK_ID\n\t\t\tWHERE\n\t\t\t\tB.ID = " . $ID . "\n\t\t"); while ($ar = $res->Fetch()) { if (array_key_exists($ar["FIELD_ID"], $arDefFields)) { if ($arDefFields[$ar["FIELD_ID"]]["IS_REQUIRED"] === false) { $arDefFields[$ar["FIELD_ID"]]["IS_REQUIRED"] = $ar["IS_REQUIRED"] === "Y" ? "Y" : "N"; } $arDefFields[$ar["FIELD_ID"]]["DEFAULT_VALUE"] = $ar["DEFAULT_VALUE"]; } } foreach ($arDefFields as $FIELD_ID => $default) { if ($default["IS_REQUIRED"] === false) { $arDefFields[$FIELD_ID]["IS_REQUIRED"] = "N"; } if ($FIELD_ID == "DETAIL_PICTURE" || $FIELD_ID == "PREVIEW_PICTURE" || $FIELD_ID == "CODE" || $FIELD_ID == "SECTION_PICTURE" || $FIELD_ID == "SECTION_DETAIL_PICTURE" || $FIELD_ID == "SECTION_CODE") { $a =& $arDefFields[$FIELD_ID]["DEFAULT_VALUE"]; $a = strlen($a) ? unserialize($a) : array(); if (array_key_exists("TRANS_LEN", $a)) { $trans_len = intval($a["TRANS_LEN"]); if ($trans_len > 255) { $trans_len = 255; } elseif ($trans_len < 1) { $trans_len = 100; } $a["TRANS_LEN"] = $trans_len; } } } return $arDefFields; }
?> </a> <?php } ?> </td> </tr> <?php } $tabControl->BeginNextTab(); if ($bVarsFromForm) { $arFields = $_REQUEST["FIELDS"]; } else { $arFields = CIBlock::GetFields($ID); } $arDefFields = CIBlock::GetFieldsDefaults(); foreach ($arDefFields as $FIELD_ID => $arField) { if ($arField["VISIBLE"] == "N") { continue; } if (!preg_match("/^LOG_/", $FIELD_ID)) { continue; } ?> <tr> <td width="40%"><label for="FIELDS[<?php echo $FIELD_ID; ?> ][IS_REQUIRED]"><?php echo GetMessage("IB_E_" . $FIELD_ID); ?>
function createFieldset2($IBLOCK, $SKU = false, $PRICE = false) { $filedNames = CIBlock::GetFieldsDefaults(); $Properties = array("ID" => GetMessage("ACRIT_EXPORTPRO_IDENTIFIKACIONNYY_NO"), "NAME" => GetMessage("ACRIT_EXPORTPRO_NAIMENOVANIE"), "CODE" => GetMessage("ACRIT_EXPORTPRO_SIMVOLQNYY_KOD"), "ACTIVE" => GetMessage("ACRIT_EXPORTPRO_AKTIVNOSTQ"), "DETAIL_PAGE_URL" => GetMessage("ACRIT_EXPORTPRO_SSYLKA_NA_DETALQNUU"), "DATE_ACTIVE_FROM" => GetMessage("ACRIT_EXPORTPRO_DATA_NACALA_AKTIVNOS"), "DATE_ACTIVE_TO" => GetMessage("ACRIT_EXPORTPRO_DATA_OKONCANIA_AKTIV"), "PREVIEW_TEXT" => GetMessage("ACRIT_EXPORTPRO_TEKST_ANONSA"), "PREVIEW_PICTURE" => GetMessage("ACRIT_EXPORTPRO_IZOBRAJENIE_ANONSA"), "DETAIL_TEXT" => GetMessage("ACRIT_EXPORTPRO_DETALQNOE_OPISANIE"), "DETAIL_PICTURE" => GetMessage("ACRIT_EXPORTPRO_DETALQNOE_IZOBRAJENI"), "IBLOCK_ID" => GetMessage("ACRIT_EXPORTPRO_FIELD_IBLOCK_ID"), "IBLOCK_CODE" => GetMessage("ACRIT_EXPORTPRO_FIELD_IBLOCK_CODE"), "IBLOCK_SECTION_ID" => GetMessage("ACRIT_EXPORTPRO_FIELD_IBLOCK_SECTION_ID"), "IBLOCK_SECTION_NAME" => GetMessage("ACRIT_EXPORTPRO_FIELD_IBLOCK_SECTION_NAME"), "CREATED_BY" => GetMessage("ACRIT_EXPORTPRO_FIELD_CREATED_BY"), "CREATED_USER_NAME" => GetMessage("ACRIT_EXPORTPRO_FIELD_CREATED_USER_NAME"), "TIMESTAMP_X" => GetMessage("ACRIT_EXPORTPRO_FIELD_TIMESTAMP_X"), "MODIFIED_BY" => GetMessage("ACRIT_EXPORTPRO_FIELD_MODIFIED_BY"), "USER_NAME" => GetMessage("ACRIT_EXPORTPRO_FIELD_USER_NAME")); if ($PRICE) { //$arGroups = array(); //if( CModule::IncludeModule( "catalog" ) ){ // $dbRes = CCatalogGroup::GetList( array( "SORT" => "ASC" ), array( "ACTIVE" => "Y" ) ); // while( $arRes = $dbRes->GetNext() ){ // $price["CATALOG-PRICE_" . $arRes["ID"]] = "[" . $arRes["ID"] . "] " . $arRes["NAME_LANG"]; // $price["CATALOG-PRICE_" . $arRes["ID"]."_CURRENCY"] = "[" . $arRes["ID"] . "] " . $arRes["NAME_LANG"] ."(".GetMessage("ACRIT_EXPORTPRO_FIELD_CURRNECY").")"; // } //} //$arGroups = ""; //if( CModule::IncludeModule( "catalog" ) ){ // $dbRes = CCatalogGroup::GetGroupsList( array() ); // while( $arRes = $dbRes->Fetch() ){ // if( $arRes["BUY"] == "Y" ) // $arGroups[] = $arRes["CATALOG_GROUP_ID"]; // } // $dbRes = CCatalogGroup::GetList( array( "SORT" => "ASC" ), array( "ACTIVE" => "Y", "ID" => $arGroups ), 0, 0, array( "ID", "NAME", "BASE" ) ); // while( $arRes = $dbRes->GetNext() ){ // $price["CATALOG-PRICE_" . $arRes["ID"]] = "[" . $arRes["ID"] . "] " . $arRes["NAME"]; // } //} } if (!is_array($IBLOCK)) { $k = $IBLOCK; $IBLOCK = array(); $IBLOCK[] = $k; } if (!is_array($SECTIONS)) { $k = $SECTIONS; $SECTIONS = array(); $SECTIONS[] = $k; } if (is_array($IBLOCK) && sizeof($IBLOCK) > 0) { foreach ($IBLOCK as $iblock) { $arIBlock[$iblock]["FIELDS"] = $Properties; $res = CIBlock::GetByID($iblock); if ($ar_res = $res->GetNext()) { $arIBlock[$iblock]["NAME"] = $ar_res["NAME"]; } $intIBlockID = $iblock; if ($SKU == true && CModule::IncludeModule("catalog")) { $arOffers = CCatalogSKU::GetInfoByProductIBlock($intIBlockID); if (!empty($arOffers["IBLOCK_ID"])) { $intOfferIBlockID = $arOffers["IBLOCK_ID"]; $strPerm = "D"; $rsOfferIBlocks = CIBlock::GetByID($intOfferIBlockID); if ($arOfferIBlock = $rsOfferIBlocks->Fetch()) { $bBadBlock = !CIBlockRights::UserHasRightTo($intOfferIBlockID, $intOfferIBlockID, "iblock_admin_display"); if ($bBadBlock) { echo GetMessage("ERR_NO_ACCESS_IBLOCK_SKU"); } } $boolOffers = true; } else { $boolOffers = false; } } else { $boolOffers = false; } //--получем свойства инфоблока $dbRes = CIBlockProperty::GetList(array("name" => "asc"), array("IBLOCK_ID" => $intIBlockID, "ACTIVE" => "Y")); $arIBlock[$iblock]["PROPERTY"] = array(); $arIBlock[$iblock]["OFFERS_PROPERTY"] = array(); while ($arRes = $dbRes->Fetch()) { $arIBlock[$iblock]["PROPERTY"][$arRes["ID"]] = $arRes; } if ($boolOffers) { $rsProps = CIBlockProperty::GetList(array("SORT" => "ASC"), array("IBLOCK_ID" => $intOfferIBlockID, "ACTIVE" => "Y")); while ($arProp = $rsProps->Fetch()) { //if( $arOffers["SKU_PROPERTY_ID"] != $arProp["ID"] ){ if ($arProp["PROPERTY_TYPE"] == "L") { $arProp["VALUES"] = array(); $rsPropEnums = CIBlockProperty::GetPropertyEnum($arProp["ID"], array("sort" => "asc"), array("IBLOCK_ID" => $intOfferIBlockID)); while ($arPropEnum = $rsPropEnums->Fetch()) { $arProp["VALUES"][$arPropEnum["ID"]] = $arPropEnum["VALUE"]; } } $arIBlock[$iblock]["OFFERS_PROPERTY"][$arProp["ID"]] = $arProp; if (is_array($arSelectedPropTypes) && in_array($arProp["PROPERTY_TYPE"], $arSelectedPropTypes)) { $arSelectOfferProps[] = $arProp["ID"]; } //} } } } } if (@CModule::IncludeModule("catalog")) { $arIBlock["CATALOG"] = array(); $arIBlock["CATALOG"]["QUANTITY"] = GetMessage("ACRIT_EXPORTPRO_KOLICESTVO"); $arIBlock["CATALOG"]["QUANTITY_RESERVED"] = GetMessage("ACRIT_EXPORTPRO_QUANTITY_RESERVED"); $arIBlock["CATALOG"]["WEIGHT"] = GetMessage("ACRIT_EXPORTPRO_WEIGHT"); $arIBlock["CATALOG"]["WIDTH"] = GetMessage("ACRIT_EXPORTPRO_WIDTH"); $arIBlock["CATALOG"]["LENGTH"] = GetMessage("ACRIT_EXPORTPRO_LENGTH"); $arIBlock["CATALOG"]["HEIGHT"] = GetMessage("ACRIT_EXPORTPRO_HEIGHT"); $arIBlock["CATALOG"]["PURCHASING_PRICE"] = GetMessage("ACRIT_EXPORTPRO_FIELD_PURCHASING_PRICE"); $p = GetCatalogGroups($b = "SORT", $o = "ASC"); while ($p1 = $p->Fetch()) { if ($p1["CAN_ACCESS"] == "Y") { $arIBlock["CATALOG"]["PRICE_" . $p1["ID"]] = $p1["NAME_LANG"] . " (" . GetMessage("ACRIT_EXPORTPRO_FIELD_PRICE") . ")"; $arIBlock["CATALOG"]["PRICE_" . $p1["ID"] . "_WD"] = $p1["NAME_LANG"] . " (" . GetMessage("ACRIT_EXPORTPRO_FIELD_PRICE_WITH_DISCOUNT") . ")"; $arIBlock["CATALOG"]["PRICE_" . $p1["ID"] . "_D"] = $p1["NAME_LANG"] . " (" . GetMessage("ACRIT_EXPORTPRO_FIELD_PRICE_DISCOUNT") . ")"; $arIBlock["CATALOG"]["PRICE_" . $p1["ID"] . "_CURRENCY"] = $p1["NAME_LANG"] . " (" . GetMessage("ACRIT_EXPORTPRO_FIELD_CURRNECY") . ")"; } } } return $arIBlock; }