Skip to content

Instantly share code, notes, and snippets.

View Isa3v's full-sized avatar
🏠
Working from home

Danil Isaev Isa3v

🏠
Working from home
View GitHub Profile
@Isa3v
Isa3v / backup.sh
Created November 1, 2023 06:23
Bitrix: Скачивание и распаковка бэкапа
#!/bin/bash
# Запрос ссылки на backup у пользователя
read -p "Введите ссылку на backup: " backup_link
# Скачивание файлов по ссылке, пока они существуют
counter=1 # Счетчик для итерации по файлам
wget -N "${backup_link}"
while :
do
@Isa3v
Isa3v / IblockCacheAgent.php
Last active April 29, 2022 12:19
Сбрасываем кеш инфоблоков, если наступило время активации элемента
<?php
namespace Thelh\Utils;
class IblockCacheAgent
{
public static function agent($lastTimesteampOnRunAgent = 0)
{
\Bitrix\Main\Loader::includeModule('iblock');
@Isa3v
Isa3v / bash.sh
Created March 17, 2022 09:10
Git откатиться к коммиту (Массовый revert)
git read-tree -m -u COMMIT_JASH
@Isa3v
Isa3v / Payments.php
Created December 11, 2021 08:06
Кастомное ограничение для платёжных систем Bitrix
<?php
use Bitrix\Sale\Services\Base;
use Bitrix\Sale\Internals\CollectableEntity;
use Bitrix\Sale\Internals\Entity;
use Bitrix\Sale\Order;
/**
* Класс для проверки на присутствии свойства (список) в одном из товаров в корзине
*/
@Isa3v
Isa3v / iblockItems.php
Last active February 24, 2023 10:19
Bitrix ORM - Быстрые наброски для получения элементов и разделов
<?
use \Bitrix\Main\Loader;
use \Bitrix\Iblock\Iblock;
Loader::includeModule("iblock");
$result = [];
$iblockId = 1;
$iblockProjects = \Bitrix\Iblock\Iblock::wakeUp($iblockId);
$iblockProjectsEntity = $iblockProjects->getEntityDataClass();
@Isa3v
Isa3v / PropStringDesc.php
Created May 26, 2021 06:39
Пользовательское поле (свойство раздела) Bitrix - строка с описанием
<?php
// $eventManager->addEventHandler("main", "OnUserTypeBuildList", ['PropStringDesc', "getUserTypeDescription"]);
class PropStringDesc extends \CUserTypeString
{
public function getUserTypeDescription()
{
return [
'USER_TYPE_ID' => 'PropStringDesc',
@Isa3v
Isa3v / store_items.php
Created March 10, 2021 15:44
Остатки на складе товаров bitrix
<?
use Bitrix\Main\Loader;
Loader::includeModule("iblock");
Loader::includeModule("sale");
function fputcsvNew($csv_arr, $delimiter = ';', $enclosure = '"') {
if (!is_array($csv_arr)) {
return(false);
}
@Isa3v
Isa3v / script.js
Created March 5, 2021 04:37
Переменная css (100vh) для всех устройств и IOS Safari через JS
const appHeight = () => {
const doc = document.documentElement
doc.style.setProperty('--max-height-app', `calc(${window.innerHeight}px)`);
}
appHeight()
@Isa3v
Isa3v / script.js
Created November 17, 2020 09:43
Умный фильтр битрикс ajax обновление без параметра "AJAX_MODE=Y"
// В script.js компонента bitrix:catalog.smart.filter
// Вместо
//if (modef.style.display === 'none')
//{
// modef.style.display = 'inline-block';
//}
// Пишем. Это ajax запрос к сформированной ссылке. А дальше вытягиваем, что нужно
$.get(
BX.util.htmlspecialcharsback(result.FILTER_AJAX_URL),
@Isa3v
Isa3v / script.js
Created July 31, 2020 12:14
Возврат к позиции на странице при нажатии “Назад” (History API)
var isDeviceIos = navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPhone/i);
var historyScrollBack = (historyTab) => {
if (history.state && historyTab.hasOwnProperty('lastScroll')) {
window.scrollTo(0, historyTab.lastScroll);
}
};
// Возрват к позиции при нажатии кнопки назад (Запись)
window.addEventListener((isDeviceIos ? "pagehide" : "beforeunload"), function (e) {