Skip to content

Instantly share code, notes, and snippets.

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

Artem Vasilev kernusr

🏠
Working from home
View GitHub Profile
@kernusr
kernusr / simplexml_ex.php
Created March 17, 2021 10:10
Вставить один simplexmlelement в другой
<?php
class SimpleXMLElementEx extends SimpleXMLElement{
public function appendXML(\SimpleXMLElement $data): void
{
$name = $data->getName();
$nameSpaces = $data->getNamespaces(false);
$qualifiedName = $name;
$value = null;
@kernusr
kernusr / BaseTagsTranslations.php
Created April 15, 2021 22:24
Человекопонятные названия атрибутов
<?php
abstract class BaseTagsTranslations implements TagsTranslationsInterface{
static function getTagTranslation(string $key): string
{
switch ($key):
case 'UnstructuredName':
case 'UN':
return 'Неструктурированное имя';
case 'C':
@kernusr
kernusr / Example.php
Created April 15, 2021 22:26
Пример чтения подписи из файла
<?php
use Sop\ASN1\Element;
use Sop\ASN1\Type\Constructed\Sequence;
use Webmasterskaya\X509\Certificate\Certificate;
require_once __DIR__ . './vendor/autoload.php';
$content = file_get_contents(__DIR__ . '/Polozhenie.pdf');
@kernusr
kernusr / boubles_search_bx.js
Created June 18, 2021 09:17
Поиск дублей товаров в заказе в админке bitrix
if (typeof prods == 'undefined' || prods === null) {
let prods = {};
} else {
prods = {};
}
document.querySelectorAll('#sale_order_basketsale_order_view_product_table tbody[id*="sale_order_basketsale-order-basket-product-"] > tr:first-of-type').forEach(tr => {
let link = tr.querySelector('td:nth-of-type(2) > a');
if (!!link.href) {
let uri = new URL(link.href),
@kernusr
kernusr / README.md
Created July 19, 2021 11:57
Запрет индексации "Установки для разработки" Bitrix

Метод ограничивает доступ поисковых роботов к сайту

Как использовать

1 - Приведённый код вставить в файл init.php 2 - Перейти в Панельуправления > Настройки > Настройки продукта > Настройки модулей > Главный модуль 3 - Перейти на вкладку "Система обновлений" 4 - Активировать настройку "Установка для разработки" и сохранить

Результат

Содержимое файла robots.txt в корне сайта будет заменено на

@kernusr
kernusr / index.js
Created August 8, 2021 19:01
Print js object, format as PHP assoc array
function formatAsPhpArray(obj, depth = 0) {
let buffer = '[\n';
depth++;
Object.entries(obj).forEach(entry => {
const [key, val] = entry;
if (typeof val == 'object') {
buffer += '\t'.repeat(depth) + '"' + key + '" => ' + formatAsPhpArray(val, depth) + ',\n';
} else {
buffer += '\t'.repeat(depth) + '"' + key + '" => "' + val + '",\n';
}
@kernusr
kernusr / ai_change.md
Created October 11, 2021 07:41
Двигаем auto_increment в mysql

Посмотреть текущее значение AUTO_INCREMENT

SELECT `AUTO_INCREMENT`
FROM  INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'db_name'
  AND   TABLE_NAME   = 'table_name';

Поменять текущее значение AUTO_INCREMENT

@kernusr
kernusr / check_ssl_connection.php
Created October 13, 2021 10:59
Проверяет, есть ли проблема с SSL и дохлым DST ROOT CA X3 в Joomla
<?php
$ch = curl_init();
$options[CURLOPT_HTTPGET] = true;
$options[CURLOPT_NOBODY] = false;
$options[CURLOPT_CAINFO] = __DIR__ . '/libraries/src/Http/Transport/cacert.pem';
$options[CURLOPT_URL] = 'https://webmasterskaya.xyz';
$options[CURLOPT_HEADER] = true;
$options[CURLOPT_RETURNTRANSFER] = true;
@kernusr
kernusr / formatBytes.php
Last active July 29, 2022 07:22
Преобразует байты в удобно читаемый формат (KB, MB, UB и т.д.)
<?php
/**
* @param int $bytes Число байт
* @param int $decimals Число знаков после запятой в ответе
*
* @return string Перобразованная в удобно читаемый формат строка
*/
function formatBytes(int $bytes, int $decimals = 2)
{
if ($bytes === 0)
@kernusr
kernusr / breadcrumbs.html
Created June 1, 2019 15:09
Breadcrumbs template for bitrix with schema org and use bootstrap 4
<nav class="breadcrumb px-0" aria-label="breadcrumb" itemprop="http://schema.org/breadcrumb" itemscope="" itemtype="http://schema.org/BreadcrumbList">
<div class="breadcrumb-item" id="breadcrumb_0" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
<a href="https://my.site/" content="https://my.site/" title="SITE NAME" itemprop="item">
<span itemprop="name">SITE NAME</span>
</a>
<meta itemprop="position" content="1">
</div>
<div class="breadcrumb-item" id="breadcrumb_1" itemprop="itemListElement" itemscope="" itemtype="http://schema.org/ListItem">
<a href="https://my.site/root-section/" content="https://my.site/catalog/" title="ROOT SECTION NAME" itemprop="item">
<span itemprop="name">ROOT SECTION NAME</span>