Monitorkin Asked:2020-07-31 15:02:32 +0800 CST2020-07-31 15:02:32 +0800 CST 2020-07-31 15:02:32 +0800 CST 在产品页面上输出bitrix中的一些特征 772 在 bitrix 的产品页面上,有一个从主堆中选择的具有某些特征(以红色突出显示)的块。我可以在数据库中的什么基础上直接在数据库中找到它们以及在哪个表中?谢谢! битрикс 2 个回答 Voted Nikolaj Sarry 2020-08-06T16:58:09+08:002020-08-06T16:58:09+08:00 Infoblock 元素属性值存储在表中b_iblock_element_property。该字段IBLOCK_PROPERTY_ID存储信息块的ID属性,您可以在表中找到其名称b_iblock_iproperty(好吧,反之亦然,按名称获取ID)。 该字段IBLOCK_ELEMENT_ID存储ID表中系统中的信息块元素(产品 ID)b_iblock_element。 Best Answer Monitorkin 2020-08-06T21:33:42+08:002020-08-06T21:33:42+08:00 正确的答案是这些属性在 Bitrix 表中没有以任何方式标记,而是在模板文件中以 $arParams["COUNT_PROPERTIES"] 中指定的数字首先愚蠢地显示。这是他的代码: <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); ?> <?$this->setFrameMode(true);?> <?$propertyCounter=0;?> <?if(!empty($arResult["DISPLAY_PROPERTIES"])):?> <div class="elementProperties"> <div class="headingBox"> <div class="heading"> <?=GetMessage("CATALOG_ELEMENT_CHARACTERISTICS_SHORT");?> </div> <div class="moreProperties"> <a href="#" class="morePropertiesLink"><?=GetMessage("CATALOG_ELEMENT_MORE_PROPERTIES")?></a> </div> </div> <div class="propertyList"> <?foreach ($arResult["DISPLAY_PROPERTIES"] as $ip => $arProperty):?> <?if(!empty($arProperty["DISPLAY_VALUE"]) && ++$propertyCounter <= $arParams["COUNT_PROPERTIES"]):?> <?if(gettype($arProperty["DISPLAY_VALUE"]) == "array"){ $arProperty["DISPLAY_VALUE"] = implode(" / ", $arProperty["DISPLAY_VALUE"]); }?> <div class="propertyTable"> <div class="propertyName"><?=preg_replace("/\[.*\]/", "", $arProperty["NAME"])?></div> <div class="propertyValue"> <?if($arProperty["PROPERTY_TYPE"] == "E" || $arProperty["PROPERTY_TYPE"] == "S"):?> <?=$arProperty["DISPLAY_VALUE"]?> <?else:?> <?if($arProperty["FILTRABLE"] =="Y" && !empty($arProperty["VALUE_ENUM_ID"]) && $arProperty["FROM_SKU"] != "Y" && !empty($arResult["LAST_SECTION"])):?> <a href="<?=$arResult["LAST_SECTION"]["SECTION_PAGE_URL"]?>?arrFilter_<?=$arProperty["ID"]?>_<?=abs(crc32($arProperty["VALUE_ENUM_ID"]))?>=Y&set_filter=Y" class="analog"> <?endif;?><?=$arProperty["DISPLAY_VALUE"]?> <?if($arProperty["FILTRABLE"] == "Y" && !empty($arProperty["VALUE_ENUM_ID"]) && $arProperty["FROM_SKU"] != "Y"):?> </a> <?endif;?> <?endif;?> </div> </div> <?endif;?> <?endforeach;?> </div> </div> <?endif;?>
Infoblock 元素属性值存储在表中
b_iblock_element_property
。该字段IBLOCK_PROPERTY_ID
存储信息块的ID
属性,您可以在表中找到其名称b_iblock_iproperty
(好吧,反之亦然,按名称获取ID
)。该字段
IBLOCK_ELEMENT_ID
存储ID
表中系统中的信息块元素(产品 ID)b_iblock_element
。正确的答案是这些属性在 Bitrix 表中没有以任何方式标记,而是在模板文件中以 $arParams["COUNT_PROPERTIES"] 中指定的数字首先愚蠢地显示。这是他的代码: