Skip to content

Instantly share code, notes, and snippets.

@theStrangeAdventurer
theStrangeAdventurer / .php
Last active December 22, 2017 10:49
print ASCII table from two-dimensional array
<?php
$input = [
'Title1' => [
'item1_col1',
'item2_colddfs1',
'item3_col1',
'item4_cddol1'
],
'LargeTitle2' => [
'item1_l2',
@theStrangeAdventurer
theStrangeAdventurer / .php
Last active July 31, 2019 07:12
БИТРИКС: класс компонента для смены пароля пользователя
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Application, Bitrix\Main\Context, Bitrix\Main\Request, Bitrix\Main\Server;
class ChangeForgotPassword extends CBitrixComponent
{
const SEND_EVENT_TYPE = "YOUR_MAIL_EVENT_TYPE";
const POST_TEMPLATE_ID = "YOUR_MAIL_EVENT_ID";
@theStrangeAdventurer
theStrangeAdventurer / .php
Created September 23, 2017 12:45
format to add datetime value in table
$expireDate = date("Y-m-d H:i:s", time() + (86400 * 30));
@theStrangeAdventurer
theStrangeAdventurer / .js
Created November 5, 2017 23:32
Decode base64 data JS
function b64DecodeUnicode(str) {
return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)
}).join(''))
}
@theStrangeAdventurer
theStrangeAdventurer / .php
Last active July 31, 2019 07:08
БИТРИКС: Получение всех пользовательских полей
<?php
$filter = [
"LOGIN" => 'login'
];
$arParameters = [
'SELECT' => ["UF_*"],
'FIELDS' => array(
'ID',
'ACTIVE',
'IS_ONLINE'
@theStrangeAdventurer
theStrangeAdventurer / .php
Last active July 31, 2019 07:06
БИТРИКС: Подключение шаблона для 404 страницы
// В админке подключаем шаблон по условию
// defined('ERROR_404') && ERROR_404 == 'Y'
// в init.php вставляем
\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnPageStart", function () {
global $APPLICATION;
if (!defined('ERROR_404') || ERROR_404 != 'Y') {
return;
}
@theStrangeAdventurer
theStrangeAdventurer / .js
Created December 7, 2017 11:48
Проверка мобильности устройств на js
var isMobile = /iPhone|iPad|iPod|Android|BlackBerry|BB10|Silk|Mobi/i.test(self._navigator && self._navigator.userAgent);
var isTouch = !!(('ontouchend' in window) || (self._navigator && self._navigator.maxTouchPoints > 0) || (self._navigator && self._navigator.msMaxTouchPoints > 0));
@theStrangeAdventurer
theStrangeAdventurer / .js
Created December 12, 2017 07:45
Настройка jquery validate/ одно из двух полей + мобильный телефон (Россия)
$(document).ready(function () {
var phoneInput = $('#cnPhone');
phoneInput.mask('+7(000)-000-0000');
phoneInput.on('focus', function () {
$(this).val('+7(');
});
jQuery.validator.addMethod('mobileRu', function () {
var phRe = /^\+7\(([0-9]{3})\)\-([0-9]{3})\-([0-9]{4})$/;
@theStrangeAdventurer
theStrangeAdventurer / .php
Last active December 19, 2017 19:06
Удаление устаревших файлов по крону, отправка отчета на почту php
#!/usr/bin/php
<?php
define('MAILTO', 'example@email.com');
define('SUBJECT', 'Отчет по удаленным файлам файлам');
$directories = [
'temp',
'upload_files'
];
@theStrangeAdventurer
theStrangeAdventurer / .php
Created January 9, 2018 21:16
check user agent to detect mobile device
<?php
$useragent=$_SERVER['HTTP_USER_AGENT'];
$reMobileUserAgents1 = '/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i';
$reMobileUserAgents2 = '/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iri