Сниппеты Geany для 1C-Bitrix
Share Button

Сегодня с утра наткнулись на статью 44 Live Templates для Битрикса компании «ИНТЕРВОЛГА»

Статья посвящена поддержке клавиатурных сокращений, используемых в 1С-Битрикс, для IDE PhpStorm. Суть этой вещи в задании короткой комбинации символов для вставки большого частовстречающегося кода.
В нашей компании мы не пользуемся PhpStorm для проектов на Битриксе, а вместо него применяем еще более редкое сочетание —
1С-Битрикс и IDE Geany (homepage)

IDE Geany

Эта среда разработки также поддерживает клавиатурные сокращения, называемые «Snippets» и позволяет устанавливать для них горячие клавиши.

Набором своих сниппетов мы бы и хотели поделиться. Так же в набор добавлены некоторые шаблоны из оригинальной статьи.

Получение элемента инфоблока через id getby=$res = CIBlockElement::GetByID($%cursor%);\nif($ar_res = $res->GetNext()){\n \n}

Получение раздела инфоблока по id getsby=$res = CIBlockSection::GetByID($%cursor%);\nif($ar_res = $res->GetNext()){\n \n}

Получение списка элементов getlist=$arOrder = array(«SORT» => «ASC»);\n$arFilter = array(%cursor%);\n$arSelectFields = array(«ID»,»ACTIVE», «NAME»);\n$rsElements = CIBlockElement::GetList($arOrder, $arFilter, FALSE, FALSE, $arSelectFields);\nwhile($arElement = $rsElements->GetNext())\n{\n}\n

Получение списка секций  getslist=$arSort = array(«SORT» => «ASC»);\n$arFilter = array(«IBLOCK_ID» => $arParams["IBLOCK_ID"], «ID» => %cursor%);\n$rsSections = CIBlockSection::GetList($arSort, $arFilter);\nwhile ($arSection = $rsSections->GetNext())\n{\n

}\n

фильтр filter=»ACTIVE» => «Y», «SECTION_GLOBAL_ACTIVE» => «Y», «ACTIVE_DATE» => «Y»%cursor%

добавление включаемой области  include=<?$APPLICATION->IncludeFile(\n SITE_DIR.»include/%cursor%.php»,\n Array(),\n Array(«MODE»=>»html»)\n );\n?>

вставка компонента news.list с минимальными параметрами list=<?\n$APPLICATION->IncludeComponent(«bitrix:news.list», «», array(\n»IBLOCK_ID» => «%cursor%»,\n»NEWS_COUNT» => «10»,\n»SORT_BY1″ => «ID»,\n»SORT_ORDER1″ => «DESC»,\n»FIELD_CODE» => array(0 => «DATE_CREATE», 1 => «», 2 => »),\n»PROPERTY_CODE» => array(0 => «», 1 => «», 2=> «»),\n»SET_TITLE» => «N»,\n»SET_STATUS_404″ => «N»,\n»INCLUDE_IBLOCK_INTO_CHAIN» => «N»,\n»ADD_SECTIONS_CHAIN» => «N»,\n»PARENT_SECTION» => «»,\n»PARENT_SECTION_CODE» => «»,\n»DISPLAY_TOP_PAGER» => «N»,\n»DISPLAY_BOTTOM_PAGER» => «N»,\n»PAGER_SHOW_ALWAYS» => «N»,\n»PAGER_TEMPLATE» => «main»,\n),\nfalse\n);\n?>

вставка компонента «menu» menu=<?$APPLICATION->IncludeComponent(«bitrix:menu», «simple», Array(«ROOT_MENU_TYPE» => «%cursor%»), false);?>

вставка компонента breadcrumb breadcrumb=<?$APPLICATION->IncludeComponent(«bitrix:breadcrumb», «simple», Array(), false);?>

ресайз изображений в шаблонах img=<? $img = CFile::ResizeImageGet($item["pVIEW_PICTURE"], array(‘width’=>%cursor%, ‘height’=>%cursor%), BX_RESIZE_IMAGE_PROPORTIONAL_ALT, true); ?>

форматирование даты в шаблнах date=<? $d = FormatDate(‘d F Y’, MakeTimeStamp($item["DATE_CREATE"], «DD.MM.YYYY HH:MI:SS»)); ?>

сниппет вывода элеметров с поддержкой эрмитажа от Интерволги items=<?if ($arResult["ITEMS"]): ?>\n <?if($arParams["DISPLAY_TOP_PAGER"]):?>\n <?=$arResult["NAV_STRING"]?>\n <?endif?>\n <?foreach ($arResult["ITEMS"] as $i => $arItem): ?>\n <?\n $this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], «ELEMENT_EDIT»));\n \n$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], «ELEMENT_DELETE»), array(«CONFIRM» => GetMessage(‘CT_BNL_ELEMENT_DELETE_CONFIRM’)));\n $id = $this->GetEditAreaId($arItem['ID']);\n ?>\n <div id=»<?=$id?>»>\n %cursor%\n </div>\n <? endforeach?>\n <?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>\n <?=$arResult["NAV_STRING"]?>\n <?endif?>\n<? endif ?>\n

вывод области элемента
getid=<?\n $this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], «ELEMENT_EDIT»));\n $this->AddDeleteAction($arItem['ID'],$arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], «ELEMENT_DELETE»), array(«CONFIRM» =>GetMessage(‘CT_BNL_ELEMENT_DELETE_CONFIRM’)));\n $id = $this->GetEditAreaId($arItem['ID']);\n?>\n

наш вариант isindex
isindex=if (CSite::InDir(«%cursor%»))

остальные сниппеты 

addcss=$APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . «%cursor%»);
addjs=$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH . «%cursor%»);
ibl=CModule::IncludeModule(«%cursor%»)
log=AddMessage2Log(%cursor%);

Эти настройки записываются в файл snippets.conf, лежащий в папке с настройками программы (Инструменты -> Файлы настроек -> snippets.conf)

Так же на сниппеты можно навешивать горячие клавиши, добавив комбинацию клавиш в специальный раздел snippets.conf

[Keybindings] include=<Ctrl><Shift>i

Обратите внимание, что после изменения настроек необходимо либо перезапустить Geany, либо воспользоваться пунктом «Перечитать настройки»
Готовый файл можно скачать у нас на сайте.

Share Button
Монолитное строительство коттеджей и домов