7Loc::loadMessages(__FILE__);
70 static::clearErrors();
72 if (
$iblockId <= 0 || $propertyCode ===
'')
87 $propertyDescription = static::getPropertyDescription($propertyCode, $propertyParams);
88 if ($propertyDescription ===
false)
93 $propertyDescription[
'IBLOCK_ID'] =
$iblockId;
94 if (!static::validatePropertyDescription($propertyDescription))
104 '=CODE' => $propertyCode,
108 static::modifyGetListParams(
$getListParams, $propertyCode, $propertyDescription);
110 if (!empty($property))
112 if (static::validateExistProperty($propertyCode, $property))
114 $propertyId = (int)$property[
'ID'];
118 if (!empty(self::$errors))
127 $propertyObject = new \CIBlockProperty();
128 $propertyId = (int)$propertyObject->Add($propertyDescription);
135 self::$errors[] = $propertyObject->LAST_ERROR;
155 case self::CODE_MORE_PHOTO:
156 $name = Loc::getMessage(
'IBPT_PROP_TITLE_MORE_PHOTO');
157 if (isset(
$fields[
'IBLOCK_ID']))
165 $catalog[
'CATALOG_TYPE'] === CCatalogSku::TYPE_OFFERS
166 ? Loc::getMessage(
'IBPT_PROP_TITLE_PRODUCT_VARIATION_MORE_PHOTO')
167 : Loc::getMessage(
'IBPT_PROP_TITLE_PRODUCT_MORE_PHOTO')
175 'CODE' => self::CODE_MORE_PHOTO,
176 'XML_ID' => self::XML_MORE_PHOTO,
179 'FILE_TYPE' =>
'jpg, gif, bmp, png, jpeg, webp',
180 'WITH_DESCRIPTION' =>
'Y',
183 case self::CODE_SKU_LINK:
187 'NAME' => Loc::getMessage(
'IBPT_PROP_TITLE_SKU_LINK'),
188 'CODE' => self::CODE_SKU_LINK,
189 'XML_ID' => self::XML_SKU_LINK,
193 case self::CODE_BLOG_POST:
196 'NAME' => Loc::getMessage(
'IBPT_PROP_TITLE_BLOG_POST'),
197 'CODE' => self::CODE_BLOG_POST,
198 'XML_ID' => self::XML_BLOG_POST,
201 case self::CODE_BLOG_COMMENTS_COUNT:
204 'NAME' => Loc::getMessage(
'IBPT_PROP_TITLE_BLOG_COMMENTS_COUNT'),
205 'CODE' => self::CODE_BLOG_COMMENTS_COUNT,
206 'XML_ID' => self::XML_BLOG_COMMENTS_COUNT,
209 case self::CODE_ARTNUMBER:
212 'NAME' => Loc::getMessage(
'IBPT_PROP_TITLE_ARTNUMBER'),
213 'CODE' => self::CODE_ARTNUMBER,
214 'XML_ID' => self::XML_ARTNUMBER,
217 case self::CODE_BACKGROUND_IMAGE:
220 'NAME' => Loc::getMessage(
'IBPT_PROP_TITLE_BACKGROUND_IMAGE'),
221 'CODE' => self::CODE_BACKGROUND_IMAGE,
222 'XML_ID' => self::XML_BACKGROUND_IMAGE,
225 case self::CODE_BRAND_FOR_FACEBOOK:
228 'NAME' => Loc::getMessage(
'IBPT_PROP_TITLE_BRAND_FOR_FACEBOOK'),
229 'CODE' => self::CODE_BRAND_FOR_FACEBOOK,
230 'XML_ID' => self::XML_BRAND_FOR_FACEBOOK,
232 'USER_TYPE' =>
'directory',
233 'USER_TYPE_SETTINGS' => [
234 'TABLE_NAME' =>
'b_catalog_facebook_brand_reference',
242 if ($property !==
null)
253 $property =
$fields + $property;
268 if (empty($propertyDescription) || !isset($propertyDescription[
'CODE']))
274 switch ($propertyDescription[
'CODE'])
276 case self::CODE_SKU_LINK:
278 !isset($propertyDescription[
'LINK_IBLOCK_ID'])
279 || $propertyDescription[
'LINK_IBLOCK_ID'] <= 0
280 || $propertyDescription[
'LINK_IBLOCK_ID'] == $propertyDescription[
'IBLOCK_ID']
283 $checkResult =
false;
289 'filter' => [
'=ID' => $propertyDescription[
'LINK_IBLOCK_ID']]
291 if (!(
$iblock = $iblockIterator->fetch()))
293 $checkResult =
false;
297 case self::CODE_MORE_PHOTO:
298 case self::CODE_BLOG_POST:
299 case self::CODE_BLOG_COMMENTS_COUNT:
300 case self::CODE_BRAND_FOR_FACEBOOK:
304 $checkResult =
false;
323 if (empty($propertyCodes) || !is_array($propertyCodes))
326 self::CODE_BLOG_POST,
327 self::CODE_BLOG_COMMENTS_COUNT,
328 self::CODE_FORUM_TOPIC,
329 self::CODE_FORUM_MESSAGES_COUNT,
330 self::CODE_VOTE_COUNT,
331 self::CODE_VOTE_COUNT_OLD,
332 self::CODE_VOTE_SUMM,
333 self::CODE_VOTE_SUMM_OLD,
334 self::CODE_VOTE_RATING,
335 self::CODE_VOTE_RATING_OLD,
343 '@CODE' => $propertyCodes
346 while ($property = $propertyIterator->fetch())
348 $result[] = (int)$property[
'ID'];
368 $propertyCodes = static::clearPropertyList($propertyCodes);
369 if (empty($propertyCodes))
382 '@CODE' => $propertyCodes
387 while ($property = $propertyIterator->fetch())
389 $property[
'ID'] = (int)$property[
'ID'];
390 if (!isset(
$result[$property[
'CODE']]))
392 $result[$property[
'CODE']] = $property[
'ID'];
396 if (!is_array(
$result[$property[
'CODE']]))
402 $result[$property[
'CODE']][] = $property[
'ID'];
405 unset($property, $propertyIterator);
409 while ($property = $propertyIterator->fetch())
411 $property[
'ID'] = (int)$property[
'ID'];
412 $result[$property[
'ID']] = $property[
'CODE'];
414 unset($property, $propertyIterator);
428 self::CODE_MORE_PHOTO,
430 self::CODE_BLOG_POST,
431 self::CODE_BLOG_COMMENTS_COUNT,
432 self::CODE_FORUM_TOPIC,
433 self::CODE_FORUM_MESSAGES_COUNT,
434 self::CODE_VOTE_COUNT,
435 self::CODE_VOTE_COUNT_OLD,
436 self::CODE_VOTE_SUMM,
437 self::CODE_VOTE_SUMM_OLD,
438 self::CODE_VOTE_RATING,
439 self::CODE_VOTE_RATING_OLD
443 ? array_fill_keys(
$result,
true)
457 if (!is_array($propertyCodes))
459 $propertyCodes = [(string)$propertyCodes];
461 if (empty($propertyCodes))
466 $currentList = static::getPropertyCodes(
true);
467 foreach ($propertyCodes as
$code)
470 if (isset($currentList[
$code]))
490 string $propertyCode,
491 array$propertyDescription
494 switch ($propertyCode)
496 case self::CODE_SKU_LINK:
500 $getListParams[
'filter'][
'=LINK_IBLOCK_ID'] = $propertyDescription[
'LINK_IBLOCK_ID'];
518 switch ($propertyCode)
520 case self::CODE_SKU_LINK:
526 if ($property[
'XML_ID'] != self::XML_SKU_LINK)
528 $fields[
'XML_ID'] = self::XML_SKU_LINK;
533 if (!$propertyResult->isSuccess())
535 self::$errors = $propertyResult->getErrorMessages();
538 unset($propertyResult);
static includeModule($moduleName)
static getList(array $parameters=array())
static update($primary, array $data)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(! $catalogEdit->isSuccess()) $iblock
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code