PostgreSQL обновление AutoIncrement
Для обновления индекса в postgre используем следующую команду
1 |
ALTER SEQUENCE request_queue_id_seq RESTART WITH 4422; |
Для обновления индекса в postgre используем следующую команду
1 |
ALTER SEQUENCE request_queue_id_seq RESTART WITH 4422; |
Для вызова печати контента средствами JS реализуем такую функцию:
1 2 3 4 5 6 7 8 9 |
function printElement(selector) { const WinPrint = window.open('','','left=50,top=50,width=800,height=640,toolbar=0,scrollbars=1,status=1'); WinPrint.document.write(''); WinPrint.document.write(prtContent.innerHTML); WinPrint.document.write(''); WinPrint.document.close(); WinPrint.focus(); WinPrint.print(); } |
И вызовем ее:
1 |
printElement(document.querySelector('.qr-code-view-page .area-qr-code')); |
1 |
:cal cursor(30, 5) |
Перейдет к 30 строке 5 столбцу Или
1 |
:norm 30G5| |
Дано: Фильтр по услугам: клейка обоев, выравнивание полов, покраска стен. Список работников, работник может делать что-то одно или несколько услуг. Фильтр (множество чекбоксов) Результаты (множество) Нужно вывести работников которые соответствуют хотя бы одному из фильтров по услугам. Представим что в фильтре выбраны некие услуги [1,2,3,5,6] Трансформации массива map
1 2 3 4 5 6 |
// вернет [true, undefined, undefined, undefined, undefined] [1,2,3,5,6].map(function (element) { if ([1,10].indexOf(element) !== -1) { return true; } }); |
1 2 3 4 5 6 |
// вернет [undefined, undefined, undefined, undefined, undefined] [1,2,3,5,6].map(function (element) { if ([21,10].indexOf(element) !== -1) { return true; } }); |
findIndex Вернет индекс из… Read More »
Бывает такое, что есть нормальная верстка, дизайн и тд, и нужно из этого сделать pdf… И возникает вопрос: Как сделать pdf средствами php? И сразу приходит на ум, mpdf, fpdf, и прочие, но никто не умеет толком работать с absolute(css) и с прочими плюшками css. Что же делать тогда? Есть лайфхак) На Ваш сервер нужно… Read More »
Для устранения ошибки: HTTP request length 10493952 (so far) exceeds MaxRequestLen (10485760) , нужно: в VirtualHost добавить запись такого вида:
1 2 3 4 5 |
<IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi FcgidConnectTimeout 20 MaxRequestLen 104857600 </IfModule> |
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost 127.0.0.1:443> ServerName site.ru DocumentRoot /pathroot ServerAdmin webmaster@site.ru AddDefaultCharset off <IfModule mod_fcgid.c> AddHandler fcgid-script .fcgi FcgidConnectTimeout 20 MaxRequestLen 104857600 </IfModule> ServerAlias www.site.ru DirectoryIndex index.php index.html </VirtualHost> |
Это решает такие проблема как: MaxRequestLen mod_fcgid: read data timeout in 40 seconds End of script output before headers: index.php mod_fcgid: ap_pass_brigade failed in handle_request_ipc function
Установка пакетов
1 |
composer install --prefer-dist --no-dev |
Имитация установки пакетов(безопасное тестирование пакетов без физического обновления/установки)
1 |
composer update --dry-run --profile --verbose |
и
1 |
composer install --dry-run --profile --verbose |
Рекомендую к прочтению https://habr.com/ru/post/258891/
Для того, чтобы, вместо windows терминала (cmd.exe) использовать оболочку контейнера docker, нужно сконфигурировать terminal в PhpStorm следующим образом: Для этого перейдем в File -> Settings -> Tools -> Terminal -> Shell path
1 |
"cmd.exe" /k "docker exec -it CONTAINER_NAME_OR_ID sh" |
Пример:
1 |
"cmd.exe" /k "docker exec -it php sh" |
При вызове новой вкладки в PhpStorm откроется терминал контейнера. Рекомендую к прочтению статью по настройке PhpStorm с xDebug +… Read More »
нужно
1 |
and ('field' = 'value' or 'field' is null) |
Реализация
1 2 3 |
->andWhere(['or', ['field' => $value], ['is', 'field', new Expression('null')]]) ->andWhere(['or', ['field' => $value], ['is', 'field', null]]); ->andWhere(['or', ['field' => $value], ['field' => null]]); |
Js ООП Class Slick slider
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
class SlickSlider { constructor(id, countShow, countScroll, idArrows, idDots) { this.elem = id; this.slidesToShow = countShow; this.slidesToScroll = countScroll; this.appendArrows = $(idArrows); this.appendDots = $(idDots); this.responsives = []; } get initSlider() { return this.init(); } init() { let options = this.slider(); if (this.responsives) { options.responsive = this.responsives; } $(this.elem).slick(options); } slider() { return { slidesToShow: this.slidesToShow, slidesToScroll: this.slidesToScroll, dots: true, appendArrows: this.appendArrows, appendDots: this.appendDots, touchThreshold: 10 } } addResponsive(weight, mobileShow, mobileScroll) { let obj = { breakpoint: weight, settings: { slidesToShow: mobileShow, slidesToScroll: mobileScroll } }; this.responsives.push(obj); } } let slider = new SlickSlider('.slider-item-four', 4, 1, '.slider-control-four', '.slider-control-four .slider-dots'); slider.addResponsive(1680,3,1); slider.addResponsive(1580, 2, 1); slider.initSlider; |