Skip to content

Instantly share code, notes, and snippets.

View sukhikh18's full-sized avatar
💪
Business, Development, Sales, Marketing

Nick Sergeevich sukhikh18

💪
Business, Development, Sales, Marketing
View GitHub Profile
@sukhikh18
sukhikh18 / init.php
Last active February 26, 2024 10:02
Добавить тип свойства инфоблока и пользовательское свойство раздела на примере свойства "время" #Bitrix
<?php
use Bitrix\Main\EventManager;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\UserField\Types\StringType;
use Bitrix\Main\UserFieldTable;
if (!function_exists('escapeTime')):
function escapeTime($string, $del = ':')
{
@sukhikh18
sukhikh18 / gist:df8c74f8370cce2c1f4ad4cc29855e34
Created October 29, 2023 13:32
How to stop bluetooth on sleep in macbook m1?
brew install sleepwatcher blueutil
echo "$(which blueutil) -p 0" > ~/.sleep
echo "$(which blueutil) -p 1" > ~/.wakeup
chmod 755 ~/.sleep ~/.wakeup
brew services restart sleepwatcher
@sukhikh18
sukhikh18 / declension.php
Created April 26, 2020 13:18
Склонения в битрикс #Bitrix
<?php
use Bitrix\Main\Grid\Declension;
$year = 1;
$yearDeclension = new Declension('год', 'года', 'лет');
echo "$year " . $yearDeclension->get($year);
@sukhikh18
sukhikh18 / JivoSiteLoader.js
Last active April 4, 2023 18:08
Load jivosite after custom event (for google pagespeed insights for ex.)
<!-- BEGIN JIVOSITE CODE {literal} -->
<script type='text/javascript'>
(function(){
var widget_id = '#YOUR_API_KEY#';
document.jivositeloaded = 0;
var d = document;
var w = window;
function load() {
// Insert script tag before another first script
@sukhikh18
sukhikh18 / input-debounce.js
Last active March 21, 2023 19:31
Скрипт выполняющий функцию с задержкой после ввода #JS
const keyupDebounce = function(input, callback, doneTypingInterval = 500) { // interval in ms
if (!input) return false;
let typingTimeoutTimer; // timer identifier
// Start the countdown on input/keyup
input.addEventListener('input', e => {
clearTimeout(typingTimeoutTimer)
// user is "finished typing" do something
typingTimeoutTimer = setTimeout(() => callback(), doneTypingInterval)
@sukhikh18
sukhikh18 / yandex-map.html
Last active February 11, 2023 08:40
Вызов Яндекс карты через API #Yandex #Map
<!DOCTYPE html>
<html>
<head>
<title>Пример API Яндекс карт</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--
Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
-->
@sukhikh18
sukhikh18 / _readme.md
Last active January 29, 2023 09:12
Как сделать резервную копию (backup) сайта через консоль #Bitrix

Бэкап базы данных

mysqldump -h$host -u$username --password="$password" --no-tablespaces $database > ./database-`date '+%Y%m%d'`.sql

Запись в базу данных из файла

cat ./database-[tab] | mysql -h$host -u$username --passwprd="$password" $database
git fetch -p ; git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d
@sukhikh18
sukhikh18 / BackEnd.CMS.php
Last active November 27, 2022 12:19
About me
<?php
// High perfomance.
$Skills['BackEnd']['CMS'] = [
'Bitrix',
'WordPress',
];
// Improvement works.
$Skills['BackEnd']['CMS'] = array_merge($Skills['BackEnd']['CMS'], [
@sukhikh18
sukhikh18 / _attention.md
Last active July 1, 2022 11:46
Получение списка элементов инфо-блока, их свойства и раздел (D7) #Bitrix #BitrixD7ORM

ElementTable

Заметка 1

При использовании множественных связей (1:N, M:N) параметр limit ограничивает количество связей.

Заметка 2

fetch и fetchAll получают все результаты, в то время как fetchObject может получать несколько результатов объекта (при множественныъ связях). При незнании этого conunt($rs->fetchAll()) - может возвращать неожиданный результат

Заметка 3

Метод getFieldname работает только для описанных в getMap полей. Используйте $rs-&gt;fetchObject()-&gt;get('FIELD_NAME') для runtime reference (или $entity-&gt;addField вместо runtime)