(☞ຈل͜ຈ)☞ Главная  Статьи  Загрузчик Домой

Ok!
Ok!
40
Если в Joomla выдается ошибка "Неправильно указан путь к папкам tmp и logs", то проще его указать в конфиге как 
<pre>public $log_path = __DIR__ . '/logs';
public $tmp_path = __DIR__ . '/tmp';</pre>
если эти папки лежат в корне сайта
joomla, config path, joomla tmp200Конфиг Joomla путь до папок
85
document.addEventListener("DOMContentLoaded", function(event) {
    console.log("DOM fully loaded and parsed");
  });
domcontentloaded200По окончании загрузки страницы без jQuery
190
<script>
$(document).ready(function(){

    function getRemanningDays() {
        var date = new Date();
        var time = new Date(date.getTime());
        time.setMonth(date.getMonth() + 1);
        time.setDate(0);
        var days = time.getDate() > date.getDate() ? time.getDate() - date.getDate() : 0;
        return days;
    }



    setInterval(function(){

        let dateNow = new Date();
        let lastDate = new Date(new Date().getFullYear(), new Date().getMonth() + 2, 0).getDate();
        let mon = dateNow.getMonth();

        let monthNames = [ "января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря" ];


        if($('[field="tn_text_1620984661425"]').length){
        let text = $('[field="tn_text_1620984661425"]').text();
        let part = text.substr(18);
        let now = new Date();
        let new_text = 'Акция действует до ';
        if(getRemanningDays() < 15){
            new_text = new_text + lastDate + " " + monthNames[dateNow.getMonth() + 1];
            $('[field="tn_text_1620984661425"]').text(new_text);
        }
    }
    }, 1000);

})
</script>
до конча месяца, изменить дату, js200Акция если до конца месяца менее 10 дней, то акция продляется до конца следующего месяца
225
<a href="https://api.whatsapp.com/send?phone=79269946796" target="_blank" class="header__social-link" data-menu-exit>
wa, whatsapp200Whatsapp
241
let dano = $('[name=ORDER_PROP_20]').val(); // 19.03.2023
let dateEn = new Date(dano.substr(6,4), dano.substr(4,2) - 1, dano.substr(0,2), 0, 0, 0).toLocaleDateString('en-CA'); // 2023-03-19
date, JS, convert200Конвертация импортной даты в русскую
256
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteRule ^$ public/ [L]
    RewriteRule (.*) public/$1 [L]
</IfModule>
redirect, public190htaccess редирект из корня в папку public в корне
8
onclick="$('html, body').animate({scrollTop:6500}, 'slow');
jquery, scrollTop, скролл, плавный190Плавный скролл до точки, jQuery
11
$(document).ready(function(){
    /**function for slider change*/
    var sizeSl = $('.slq-wrap li.slide-q').length;
    var indexSl = 0;
    var fSlq = function(indexSl){
        $('.slq-wrap li.slide-q').removeClass('activ');
        $('.slq-wrap li.slide-q').eq(indexSl).addClass('activ');
        if ($('.slq-wrap li.slide-q').eq(indexSl).hasClass('video_sl')) {
            $('.paly-sl-q').show();
        } else {
            $('.paly-sl-q').hide();
        }
    }
    $('.left-c-sl').click(function(){
        clearTimeout(R);
        /*pause on left click*/
        var active_index = 0;
        window.Int;
        if (typeof(video)!='object'){
            var video = $('slide-q').length;
        }

        for(var i=0; i<video.length; i++){
            if($(".video_sl").eq(i).hasClass('activ')){
                active_index = i;

            }
        }
        var jVideo = document.getElementsByTagName('video');

        if(document.getElementsByTagName('video').length!=0){
            if (!jVideo[active_index].paused) {
                $('video').eq(active_index).trigger('pause');
                var button = $('.paly-sl-q.comm');
                button.removeClass('paused');
            }
        }

        if (indexSl == 0) {
            indexSl = sizeSl - 1;
        } else {
            indexSl = indexSl - 1;
        }

        fSlq(indexSl);
    });


    $('.right-c-sl').click(function(){
        /*pause on right click*/
        clearTimeout(R);
        var active_index = 0;
        window.Int;
        if (typeof(video)!='object'){
            var video = $('slide-q').length;
        }

        for(var i=0; i<video.length; i++){
            if($(".slide-q").eq(i).hasClass('activ')){
                active_index = i;
            }
        }
        var jVideo = document.getElementsByTagName('video');

        if(document.getElementsByTagName('video').length!=0){
            if (!jVideo[active_index].paused) {
                $('video').eq(active_index).trigger('pause');
                var button = $('.paly-sl-q.comm');
                button.removeClass('paused');
            }
        }
        // console.log(indexSl)
        if (indexSl == sizeSl - 1) {
            indexSl = 0;
        } else {
            indexSl = indexSl + 1;
        }
        fSlq(indexSl);
    });
});
видео, ютьюб, youtube, видео пауза190При переключении видео в Ютьюб в списке ставит прошлое на паузу
21
<img src="http://bit.ly/2heoc2H" alt="Simon's cat" width="200" height="200">

img {
  object-fit: cover; // magic goes here
}
картинка, по ширине, по высоте, подогнать картинку, вместо background-size, object-fit190Решение с изображением, чтобы отображалось без сжатия и не бэкграунд
268
$pdf = new CSalePdf('P', 'pt', 'A4');
print_r( $pdf );
pdf, bitrix170В Битрикс сделать ПДФ pdf
7
<input type="tel" name="phone" class="form-control form-block" placeholder="+7(999)999-99-99" pattern="[+]d{1}[(]d{3}[)]d{4}[-]d{2}[-]d{2}" value="">
html, phone, pattern, regex160Regex паттерн для проверки номера телефона. Пример html валидации
2
$text = iconv(mb_detect_encoding($det, mb_detect_order(), true), "UTF-8", $det);
encoding, кодировка, перекодировать, Конвертация150Конвертация из любой кодировки в utf-8
267
AddEventHandler("sale", "onSaleDeliveryServiceCalculate", "onSaleDeliveryServiceCalculate");
function onSaleDeliveryServiceCalculate($result, $shipment, $deliveryID){
    // Проверка id службы доставки
    //17 - Почта России
    //20 - Доставка курьером
    //21 - Пункт выдачи СДЭК
    //24 - Пункт выдачи Boxberry
    //33 - EMS Почта России
    
    if($deliveryID == 20 ){
        if(isset($_SESSION['ORDER_BASKET_PRICE']) )
        {
            $basketPrice = $_SESSION['ORDER_BASKET_PRICE'];
            if($basketPrice > 1000){
                // Записываем новое значение цены на доставку
                $shipment->setBasePriceDelivery(0, true);
            }
        }
    }
    
    if($deliveryID == 31 || $deliveryID == 33){
        $shipment->setBasePriceDelivery(2500, true);
    }
}
битрикс, доставка150Бесплатная доставка, если сумма в корзине больше определенной
13
$was_id = intval($DB->LastID());
last id, последний id150Выбрать из базы последний добавленный ID при autoincrement
258
SELECT
COUNT(SUM_PAID),
CASE
WHEN SUM_PAID > 10000 THEN 'more10'
WHEN SUM_PAID BETWEEN 5000 AND 10000 THEN '5to10'
ELSE 'less5'
END AS SaleLevel
FROM b_sale_order
GROUP BY SaleLevel;
sql, case140Запрос с условием SQL CASE
91
При ошибке 502 в импорте инфоблоков Битрикс
Заменить в файле
/bitrix/modules/iblock/admin/iblock_xml_import.php

if($obXMLFile->ReadXMLToDatabase($fp, $NS, $INTERVAL))
на
if($obXMLFile->ReadXMLToDatabase($fp, $NS, 10, $INTERVAL))
502, битрикс, инфоблок, ошибка импорта140Ошибка импорта инфоблока Битрикс 502
96
function resizeAndConvertImageWebP(
    $width,
    $height,
    $density,
    $originalFilepath,
    $resizedFilepath) {
  $newWidth = $width * $density;
  $newHeight = $height * $density;

  $image = new Imagick($originalFilepath);
  $origImageDimens = $image->getImageGeometry();
  $origImgWidth = $origImageDimens['width'];
  $origImgHeight = $origImageDimens['height'];

  if($newWidth == 0) {
    $ratioOfHeight = $newHeight / $origImgHeight;
    $newWidth = $origImgWidth * $ratioOfHeight;
  }

  if($newHeight == 0) {
    $ratioOfWidth = $newWidth / $origImgWidth;
    $newHeight = $origImgHeight * $ratioOfWidth;
  }

  $widthRatios = $origImgWidth / $newWidth;
  $heightRatios = $origImgHeight / $newHeight;

  if($widthRatios <= $heightRatios) {
    $cropWidth = $origImgWidth;
    $cropHeight = $newWidth * $widthRatios;
  } else {
    $cropWidth = $newHeight * $heightRatios;
    $cropHeight = $origImgHeight;
  }

  $cropX = ($origImgWidth - $cropWidth) / 2;
  $cropY = ($origImgHeight - $cropHeight) / 2;

  $image->stripImage();
  $image->cropImage($cropWidth, $cropHeight, $cropX, $cropY);
  $image->resizeImage($newWidth, $newHeight, imagick::FILTER_LANCZOS, 0.9);
  $image->setImageFormat('webp');
  $image->setImageAlphaChannel(imagick::ALPHACHANNEL_ACTIVATE);
  $image->setBackgroundColor(new ImagickPixel('transparent'));
  $image->writeImage($resizedFilepath);
}
webp,support,imagemagic140Конвертация картинки в webp в случае, если imageMagic поддрживает
144
$iterator = CIBlockElement::GetList(
   array(),
   array('IBLOCK_ID' => 2, '=AVAILABLE' => 'Y', '=TYPE' => 1, '>=PRICE' => 100, '<=PRICE' => 200, 'CURRENCY_FOR_SCALE' => 'USD'),
   false,
   false,
   array('ID', 'NAME', 'IBLOCK_ID')
);
итератор, iterator bitrix, iterator140Выборка элементов Битрикс из каталога или другого инфоблока. Итерация.
97
<link rel="stylesheet" href="/animate.min.css" media="none" onload="if(media!='all')media='all'"><noscript><link rel="stylesheet" href="/animate.min.css"></noscript>
link, ускорение загрузки130Ускорение загрузки сайта уменьшением загрузки css
137
if ($('#phone_inp').val().length){
var ph = $('#phone_inp').val().replace(/[^0-9.]/g, "");
if(ph.length == 11) {
телефон, цифры, digits, phone number, js130Проверка телефона на число заполненных цифр
1 2 3 4 5 6 7 8 9 10 11 12 13 14