Skip to content

Instantly share code, notes, and snippets.

@SeRGei93
Last active February 8, 2023 13:06
Show Gist options
  • Save SeRGei93/c21ad2df41fc6c85c656c031c9fdbc4a to your computer and use it in GitHub Desktop.
Save SeRGei93/c21ad2df41fc6c85c656c031c9fdbc4a to your computer and use it in GitHub Desktop.
Битрикс полезные функции
https://estrin.pw/bitrix-d7-snippets/s/current-user-is-authorized/
if(\Bitrix\Main\Engine\CurrentUser::get()->getId())
{}
\Bitrix\Main\Engine\CurrentUser::get()->isAdmin()
\Bitrix\Main\Engine\CurrentUser::get()->getLogin()
//лого без ссылки на главной
<? $isIndex = ($APPLICATION->GetCurPage(false) == SITE_DIR)?>
<?if (!$isIndex):?>
<a href="/">
<?endif?>
<img src="/logo.png" alt=""/>
<?if (!$isIndex):?>
</a>
<?endif?>
//Вывод свойства типа HTML5/текст
<? if ($arItem["DISPLAY_PROPERTIES"]['свойство']){?>
<?=htmlspecialcharsBack($arItem["PROPERTIES"]["свойство"]["VALUE"]["TEXT"])?>
<?}?>
//Вывод свойства типа строка
<? if ($arItem["DISPLAY_PROPERTIES"]['свойство']){?>
<?print_r($arItem["DISPLAY_PROPERTIES"]["свойство"]["VALUE"]);?>
<?}?>
//Вывод свойства типа файл
<?echo $arItem["DISPLAY_PROPERTIES"]["ZNAK"]["FILE_VALUE"]["SRC"]?>
//множественное свойство типа строка
<?foreach($arResult["PROPERTIES"]["ZVANIYA"]["VALUE"] as $val):?>
<?print_r($val);?> <br>
<?endforeach;?>
//ресайз
<?$img = CFile::ResizeImageGet($arItem["PREVIEW_PICTURE"], Array("width" => 280, "height" => 190), BX_RESIZE_IMAGE_EXACT, false); ?>
<img src="<?echo $img["src"]?>" alt="<?echo $arItem["NAME"];?>">
//Дополнительные фото в новости детально:
Шаг 1: В result_modifier.php проверяем на существование свойства MORE_PHOTO и добавляем его в массив $arResult["MORE_PHOTO"]
<?
$arResult["MORE_PHOTO"] = array();
if(isset($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"]) && is_array($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"])){
foreach($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] as $FILE) {
$FILE = CFile::GetFileArray($FILE);
if(is_array($FILE))
$arResult["MORE_PHOTO"][] = $FILE;
}
}
?>
Шаг 2: Выводим $arResult["MORE_PHOTO"] в template.php
<?foreach($arResult["MORE_PHOTO"] as $PHOTO):?>
<? $file = CFile::ResizeImageGet($PHOTO, array('width'=>1280, 'height'=>720), BX_RESIZE_IMAGE_PROPORTIONAL, true); ?>
<div class="post_img">
<a data-fancybox="gallery" href="<?=$PHOTO["SRC"]?>">
<img src="<?=$file["src"]?>" data-src="<?=$file["src"]?>" class="img-100 owl-lazy">
</a>
</div>
<?endforeach?>
//Дополнительные фото в новости детально
<? if ($APPLICATION->GetCurPage(true) == SITE_DIR.'index.php'): ?>
//только на главной
<?endif;?>
<? if (CSite::InDir('/index.php')){?>
только на странице
<?}?>
//инклюд
<?$APPLICATION->IncludeFile(SITE_DIR."include/services.php", Array(), Array("MODE" => "html", "NAME" => "заголовок"));?>
<?$APPLICATION->ShowTitle()?> - собственно вывод тайтла в основном шаблоне сайта
<?$APPLICATION->ShowHead()?> - подключение для вывода в шаблоне сайта основных полей тега : мета-теги Content-Type, robots, keywords, description; стили CSS; скрипты
<?$APPLICATION->ShowPanel();?> - выводит панель управления администратора
<?=SITE_TEMPLATE_PATH?> - подставляет путь к шаблону
<?$APPLICATION->ShowTitle(false);?> - заголовок (в h1 например использовать)
<?=$arResult["PICTURE"]["SRC"]?> - фото раздела в каталоге
<?=$arResult["NAME"];?> - имя раздела в каталоге
<?=$arItem["NAME"]?> - название
<?=$arItem["DETAIL_PAGE_URL"]?> - ссылка на детальную новость (статью)
<?=$arItem["PREVIEW_TEXT"];?> - текст анонса
<?=$arResult["DETAIL_TEXT"];?> - детальный текст
<?=$arItem["PREVIEW_PICTURE"]["SRC"]?> - изображение анонса
<?=$arItem["DETAIL_PICTURE"]["SRC"]?> - изображение детальное
<?=$arResult['DISPLAY_ACTIVE_FROM']?> - дата начала активности
<?=$arItem['DATE_CREATE']?> - Дата создания элемента инфолока
Кол-во просмотров с проверкой
<?if(isset($arResult["SHOW_COUNTER"])):?>
<?if($arResult["SHOW_COUNTER"] == '') $arResult["SHOW_COUNTER"] = 0;?>
<?=$arResult["SHOW_COUNTER"]?>
<?endif;?>
Если картинки нет- то вывести "нет картинки"
<?if (strlen($arItem["DETAIL_PICTURE"]["SRC"])>0):?>
<img src="<?=$arItem["DETAIL_PICTURE"]["SRC"]?>"/>
<?else:?>
нет картинки
<?endif?>
подключение скриптов из папки шаблона
<? $this->addExternalJS($this->__folder."/form_script.js");?>
<? $this->addExternalCss($this->__folder."/form_script.css");?>
//если превью текста нет, то детальный
<?if (strlen($arItem["PREVIEW_TEXT"])>0):?>
<?echo $arItem["PREVIEW_TEXT"];?>
<?else:?>
<?=TruncateText($arItem["DETAIL_TEXT"], 250);?> //обрезка текста
<?endif?>
Простейший GetList
<?
\Bitrix\Main\Loader::includeModule('iblock');
$arFilter = Array(
"IBLOCK_ID"=> $arParams['IBLOCK_ID'],
//'PROPERTY_IMPORTANT' => Y
);
$arSelect = Array(
'ID',
'NAME',
'PROPERTY_396',
'PREVIEW_TEXT',
'PREVIEW_PICTURE',
'DETAIL_PAGE_URL'
);
$res = CIBlockElement::GetList(false, $arFilter, false, false, /*Array( 'nTopCount' => 1)*/, $arSelect);
if($arFields = $res->GetNext()){
$arResult['ITEMS'][$arFields['ID']] = $arFields;
}
?>
Выводим свойство ТЕГИ с запятыми
<? if (count($arResult['PROPERTIES']['TAGS_NAME1']['VALUE'])>1){?>
<div class="tags">
<span>Теги:</span>
<?
$i=0;
$count = count($arResult['PROPERTIES']['TAGS_NAME1']['VALUE']);
foreach($arResult["PROPERTIES"]["TAGS_NAME1"]["VALUE"] as $arTags):
$i++;
?>
<a class="tag" href="/search/?q=<?=$arTags?>"><?=$arTags?><?if($i != $count) echo ',';?></a>
<?endforeach;?>
</div>
<?}?>
Буферизация ShowViewContent
<?$this->SetViewTarget('to_aside');?>
Содержимое
<?$this->EndViewTarget();?> - записываем содержимое в "to_aside"
<?$APPLICATION->ShowViewContent('to_aside');?> -вывод содержимого "to_aside"
Фильтр для вывода элементов у которых значение свойства равно определенному значению
<?
global $arFilter;
$arFilter = array(
"IBLOCK_ID" => 9,
"ACTIVE" => "Y",
"PROPERTY_NTV_VALUE" => "Да",
);
// в компоненте "FILTER_NAME" => "arFilter",
?>
git
#сбросить все измененния и откатится
git reset --hard HEAD
git clean -fd
#сбросить содержимое последнего коммита
git reset --soft HEAD^
#сбросить содержимое 3-ч последних коммитов
git reset --soft HEAD~3
#склейка 4-х последних коммитов
git rebase -i HEAD~4
коммит к которому будем клеить проставляем опцию: p (pick - оставить без изменений)
которые хотим склеить: s (squash - присоеденить к предыдущему коммиту)
которые не клеим: p
далее редактируем комментарии
#удалить файл из git
git rm -r --cached <path>
#отменить последний merge
git reset --merge ORIG_HEAD
#сменить ssh ключ
git config --add core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519.pub -F /dev/null"
database backup without table
mysqldump -u USER -p DATABASE --ignore-table=DATABASE.b_user_session > maunfeldru.sql
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment