Skip to content

Instantly share code, notes, and snippets.

View littlefuntik's full-sized avatar

Hryhorii Furletov littlefuntik

View GitHub Profile
@littlefuntik
littlefuntik / Phone_Formatter_Ukraine.js
Last active July 24, 2020 07:12
Преобразование пользовательской строки номера телефона в международный формат (Украина) в Javascript
//
// Исходные данные
//
var phone = "0631112233";
//
// Логика преобразований
//
var phone_is_valid = false;
var phone_numeric = new String(phone).replace(/[^\d]+/g, "");
@littlefuntik
littlefuntik / cart_icon.js
Created October 13, 2015 15:06
Показать иконку "В корзине" в списке товаров
var $msCart = $("#msCart");
$('.catalog__item__cart.in_basket').each(function(){
var $icon = $(this);
var productID = $icon.data("id");
if(productID) {
if($msCart.find("[data-number='" + productID + "']").length > 0)
$icon.removeClass("hidden");
@littlefuntik
littlefuntik / dbg_trace.php
Created October 28, 2015 09:29
Debug info in position absolute in page by condition
<?php
if(!defined('MICROTIME_START')) { define('MICROTIME_START', microtime(true)); }
if(!function_exists('mytrace')) {function mytrace () { static $cnt=0, $h=20; $diff=round(microtime(true)-MICROTIME_START,3); if(isset($_COOKIE['EC']) && 'Y' === $_COOKIE['EC']) {
$trace = reset(debug_backtrace()); $style='text-shadow: 0px 1px 0 #b0b0b0;border-bottom:1px solid lightgray;padding:3px;font-size:12px;font-family:arial;background:rgba(255,255,255,.8);position:absolute;left:0;top:'.(140+$cnt*$h).'px;z-index:9999;height:'.$h.'px;width:100%;box-sizing:border-box;';
echo PHP_EOL.'<pre style="'.$style.'">[TRACE] ('.$diff.'s) '.$trace['file'].':'.$trace['line'].'</pre>'.PHP_EOL;
++$cnt;
}}}
if(!function_exists('mydie')) {function mydie () { if(isset($_COOKIE['EC']) && 'Y' === $_COOKIE['EC']) die; }}
// P.S. COOKIE "EC" must be set value "Y"
@littlefuntik
littlefuntik / ПодсчетСтоимостиКирпичаВКвадратномДоме.js
Created October 30, 2015 10:20
Подсчет стоимости кирпича на облицовку 4-х одинаковых стен
СтоимостьКирпича = 2.5 // (грн)
ШиринаКирпича = 0.230 // (м)
ВысотаКирпича = 0.065 // (м)
ШиринаСтены = 12 // (м)
ВысотаСтены = 3 // (м)
КоличествоСтен = 4 // (шт)
КоличествоКирпичейНаСтену = (ШиринаСтены / ШиринаКирпича) * (ВысотаСтены / ВысотаКирпича)
ЦенаЗаСтену = КоличествоКирпичейНаСтену * СтоимостьКирпича
ЦенаЗаСтены = ЦенаЗаСтену * КоличествоСтен
Результат = "Для стен (" + КоличествоСтен + " шт) нужно кирпичей (" + КоличествоКирпичейНаСтену + " шт) по сумарной цене " + ЦенаЗаСтены + " грн."
@littlefuntik
littlefuntik / ActiveController.php
Created January 4, 2016 17:04
Yii2 rest Serializer example
<?php
namespace app\rest;
use yii\filters\AccessControl;
use yii\filters\auth\CompositeAuth;
use app\components\HeaderParamAuth;
/**
* Description of ActiveController
document.title = '[WS] Connected..';
(function(){
// config
var HOST = 'example.com'
var PORT = 3311
var USER_ID = 1000;
// connect
/**
* @author Hryhorii Furletov <littlefuntik@gmail.com>
*
* @example
* (new CommandReader).runYii('config/database').then((databaseConfig) => { });
* (new CommandReader).runYii('/usr/bin/php', 'configJson.php').then((databaseConfig) => { });
*/
'use strict'
const spawn = require('child_process').spawn;
@littlefuntik
littlefuntik / splitIterator.php
Created September 8, 2016 11:02
example usage
<?php
$keywords = 'aa,bb,cc';
function splitGenerator($haystack, $separator = ',')
{
$separatorPos1 = -1;
while (true) {
$separatorPos2 = mb_strpos($haystack, $separator, $separatorPos1 + 1);
if (false === $separatorPos2) {
$chunk = mb_substr($haystack, - (mb_strlen($haystack) - $separatorPos1 - 1));
<?php
$array = new SplFixedArray(2);
$array[0] = 'A';
$array[1] = 'B';
$offset = 0;
if ($array->offsetExists($offset)) {
$sizeNew = $array->getSize() - 1;
for ($i = $offset; $i < $sizeNew; ++$i) {
$array[$offset] = $array[$offset + 1];
}
<?php
class PmlMatchType implements \JsonSerializable
{
const EXACT = 0b001;
const BROAD = 0b010;
const EXACT_COMBO = 0b100;
const EXACT_TEXT = 'Exact';
const BROAD_TEXT = 'Broad';