Skip to content

Instantly share code, notes, and snippets.

@dayAlone
Last active August 29, 2015 14:00
Show Gist options
  • Save dayAlone/11288937 to your computer and use it in GitHub Desktop.
Save dayAlone/11288937 to your computer and use it in GitHub Desktop.

Часто используемые алгоритмы в 1С-Битрикс

Подключение модуля

<?
	CModule::IncludeModule("iblock");
?>

Сортировка по описанию

Сортировка множественного поля по описанию

<?php
	if(!function_exists('images_sort')) {
		function images_sort($a, $b)
		{
			if($a['sort']=='' && $b['sort']>0) 
				return 1;
			
			if($b['sort']=='' && $a['sort']>0) 
				return -1;
			
			if($a['sort']=='' && $b['sort']=='')
				return ($a['value'] < $b['value']) ? -1 : 1;
			
			if ($a['sort'] == $b['sort'])
				return 0;
			
			return ($a['sort'] < $b['sort']) ? -1 : 1;
		}
	}
	$gallery     = array();
	$prop_name   = "GALLERY";
	$description = $item['PROPERTIES'][$prop_name]['DESCRIPTION'];
	
	foreach ($item['PROPERTIES'][$prop_name]['VALUE'] as $key => $value)
	      $gallery[] = array('sort'=>$description[$key], 'value'=> $value);
	
	usort($gallery, "images_sort");
?>

Вывод колонок Bootstrap

<?php
	$i   = 0;
	$col = 6;
	foreach ($arResult as $item) {
      		if($i % $col == 0) {
			if ($i != 0) echo "</div>";
			echo "<div class=\"row\">";
		}
		?>
			<div class="col-md-<?=12/$col?>">
			
			</div>
		<?
	}
	echo "</div>";
?>

###Удаление всех строк из Highload инфоблока у которых пустой XML_ID

<?php
	CModule::IncludeModule("highloadblock");
	use Bitrix\Highloadblock as HL;
	use Bitrix\Main\Entity;
	
	$hlblock_requests=HL\HighloadBlockTable::getById(3)->fetch();
	$entity_requests=HL\HighloadBlockTable::compileEntity($hlblock_requests);
	$entity_requests_data_class = $entity_requests->getDataClass();
	
	$main_query_requests = new Entity\Query($entity_requests_data_class);
	$main_query_requests->setSelect(array('ID','UF_XML_ID','UF_NAME'));
	$main_query_requests->setFilter(array(
		'UF_XML_ID' => false,
	));
	
	$result_requests = $main_query_requests->exec();
	$result_requests = new CDBResult($result_requests);
	while ($row_requests=$result_requests->Fetch()){
		var_dump($row_requests);
		$entity_requests_data_class::delete($row_requests['ID']);
	}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment