Skip to content

Latest commit

 

History

History
180 lines (148 loc) · 6.41 KB

File metadata and controls

180 lines (148 loc) · 6.41 KB

Шаблоны кода для работы с 1С-Битрикс

Автор статьи: Максим Мул

Для работы в команде используется единая среда разработки PHP Storm, которая позволяет настроить шаблоны кода.

Наиболее часто используемым модулем в "1С-Битрикс" являются "Информационные блоки", а если точнее, то его элементы и секции.

CIBlockElement - класс для работы с элементами информационных блоков.

Для получения списка элементов (CIBlockElement::GetList) используется комбинация: ibelist

$dbElement = CIBlockElement::GetList(
      array('SORT'=>'ASC', 'NAME'=>'ASC',), 
      array('IBLOCK_ID'=>$IBLOCK_ID$, 'ACTIVE'=>'Y',), 
      false, 
      false, 
      array('ID', 'NAME',)
);
while($arElement = $dbElement->GetNext()){
      $END$
}

Для получения элемента по ID (CIBlockElement::GetByID) используется комбинация: ibeid

$dbElement = CIBlockElement::GetByID($ID$);
if($dbElement = $res->GetNext()){
      $END$
}

Для добавления элемента (CIBlockElement::Add) используется комбинация: ibeadd

$el = new CIBlockElement();
$PROP = array();
$PROP['CODE'] = "VALUE";
$arFields = array(
    "MODIFIED_BY" => $USER->GetID(),
    "IBLOCK_SECTION_ID" => false,
    "IBLOCK_ID" => $END$,
    "PROPERTY_VALUES"=> $PROP,
    "NAME" => "Элемент",
    "ACTIVE" => "Y",
    "PREVIEW_TEXT" => "текст для списка элементов",
    "PREVIEW_TEXT_TYPE" => "text",
    "DETAIL_TEXT" => "текст для детального просмотра",
    "DETAIL_TEXT_TYPE" => "text",
    "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
);
if($ELEMENT_ID = $el->Add($arFields)){
    echo "New ID: ".$ELEMENT_ID;
}else{
    echo "Error: ".$el->LAST_ERROR; 
}

Для обновления элемента (CIBlockElement::Update) используется комбинация: ibeup

$el = new CIBlockElement();
$PROP = array();
$PROP["CODE"] = "VALUE";
$arFields = Array(
    "MODIFIED_BY" => $USER->GetID(),
    "IBLOCK_SECTION" => false,
    "NAME" => "Элемент",
    "ACTIVE" => "Y",
    "PREVIEW_TEXT" => "текст для списка элементов",
    "PREVIEW_TEXT_TYPE" => "text",
    "DETAIL_TEXT" => "текст для детального просмотра",
    "DETAIL_TEXT_TYPE" => "text",
    "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
);
$PRODUCT_ID = $END$;
if($el->Update($PRODUCT_ID, $arFields)){
    CIBlockElement::SetPropertyValuesEx($PRODUCT_ID, false, $PROP); 
}else{
    echo "Error: " . $el->LAST_ERROR; 
}

Для удаления элемента (CIBlockElement::Delete) используется комбинация: ibedel

CIBlockElement::Delete($END$);

CIBlockSection - класс для работы с секциями (разделами) информационных блоков.

Для получения списка секций (CIBlockSection::GetList) используется комбинация: ibslist

$dbSection = CIBlockSection::GetList(
      array('SORT'=>'ASC', 'NAME'=>'ASC'), 
      array('IBLOCK_ID'=>$IBLOCK_ID$, 'ACTIVE'=>'Y'), 
      false,
      array("ID", "NAME",),
      false
);
while($arSection = $dbSection->GetNext()){
      $END$
}

Для получения секции по ID (CIBlockSection::GetByID) используется комбинация: ibsid

$dbSection = CIBlockSection::GetByID($IBLOCK_ID$);
if($arSection = $dbSection->GetNext()){
      $END$
}

Для добавления секции (CIBlockSection::Add) используется комбинация: ibsadd

$ibs = new CIBlockSection();
$arFields = array(
    "ACTIVE" => "Y",
    "IBLOCK_SECTION_ID" => false,
    "IBLOCK_ID" => $END$,
    "NAME" => "Новая секция"
);
$SECTION_ID = $ibs->Add($arFields);
if(!$SECTION_ID) {
      echo $bs->LAST_ERROR;
}

Для обновления секции (CIBlockSection::Update) используется комбинация: ibsup

$ibs = new CIBlockSection();
$arFields = Array(
    "ACTIVE" => "Y",
    "IBLOCK_SECTION_ID" => false,
    "IBLOCK_ID" => $IBLOCK_ID$,
    "NAME" => "Новая секция"
);
$SECTION_ID = $SECTION_ID$;
if(!$ibs->Update($SECTION_ID, $arFields)){
    echo "Error: ".$ibs->LAST_ERROR; 
}

Для удаления элемента (CIBlockSection::Delete) используется комбинация: ibsdel

CIBlockSection::Delete($END$);

Другие шаблоны

Для цикла foreach по массиву $arResult['ITEMS'] используется комбинация: forei

<?foreach($arResult["ITEMS"] as $arItem):?>
$END$
<?endforeach;?>

Для распечатки переменной на странице используется комбинация: debug

echo '<pre>'; print_r($END$); echo '</pre>';

Для распечатки переменной на странице (видно только админу) используется комбинация: debuga

if($USER->IsAdmin()){
    echo '<pre>'; print_r($END$); echo '</pre>';
}