Сортировка множественного свойства инфоблока типа файл с описанием

Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Сортировка множественного свойства инфоблока типа файл с описанием

Сегодня решили задачу сортировки дополнительных фотографий товара с описание. В описание добавили квадратные скобки для хранения поля сортировки, пример описания: [1] Системный блок без корпуса.

А вот код с помощью которого можно отсортировать по такому описанию с сохранением порядка, если поле не заполнено:

   foreach($arFields['PROPERTIES']['MORE_PHOTO']['VALUE'] as $PHOTO)
   {         
      $arPHOTO[]=CFile::GetFileArray($PHOTO);      
   }
   
   // Костыль для сортировки дополнительных изображений товара. Сортируем по описанию, пример: [1] Сервер HP ProLiant ML350e Gen8 - настольное исполнение корпуса   
   foreach($arPHOTO as $key => $value)
   {
      if(preg_match("/\[(.*?)\]/", $value['DESCRIPTION'], $matches))
      {
         $arPHOTO[$key]['DESCRIPTION'] = trim(str_replace($matches[0], '', $value['DESCRIPTION']));
         $arPHOTO[$key]['SORT'] = $matches[1];   
      }
      else
         $arPHOTO[$key]['SORT'] = 1000 + $key;
         
      $sorts[$key] =  $arPHOTO[$key]['SORT'];
      
   }
 
   array_multisort($sorts, SORT_ASC, $arPHOTO);

На выходе имеем отсортированный массив $arPHOTO.

 

 

Источник: http://dev.1c-bitrix.ru/community/webdev/user/173519/blog/8661/

Назад в раздел

Подписаться на новые материалы раздела:














CAPTCHA