Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
smilingcheater

smilingcheater

  • 90
    вклад
  • 0
    вопросов
  • 104
    ответа
  • 55%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Есть ли аналог метода SetTitle в новом ядре D7?

    smilingcheater
    smilingcheater @smilingcheater
    Напишите в начале метода executeComponent
    global $APPLICATION;
    Если вы посмотрите стандартные битриксовые компоненты, написанные через классы - они делают именно так.
    Ответ написан 20 янв.
    Комментировать
    Комментировать
  • Есть ли возможность конвертировать изображения в webp на стороне Nginx "на лету"?

    smilingcheater
    smilingcheater @smilingcheater
    Посмотрите в сторону https://www.modpagespeed.com/ - модуль для nginx, который умеет выполнять кучу оптимизаций с отдаваемым контентом, в том числе конвертировать изображения в webp если браузер его поддерживает. Установка, правда, не совсем тривиальная - требуется для nginx собирать из исходников. https://www.modpagespeed.com/doc/build_ngx_pagespe...
    Ответ написан 27 окт. 2022
    Комментировать
    Комментировать
  • Как отфильтровать пользователей по группе?

    smilingcheater
    smilingcheater @smilingcheater
    $adminUsers = \Bitrix\Main\UserTable::getList([
        'filter' => [
            'GROUPS.GROUP_ID' => [1]
        ]
    ])->fetchAll();

    Смотрите код класса \Bitrix\Main\UserTable, в методе getMap заданы описания полей и отношений с другими таблицами, указана связь с таблицей групп
    (new OneToMany('GROUPS', UserGroupTable::class, 'USER'))
    				->configureJoinType(Join::TYPE_INNER),
    Ответ написан 22 сент. 2022
    Комментировать
    Комментировать
  • Array_unique на пятидесяти тысячах элементов, намертво вешает систему. Я написал замену. Прошу совета у опытных программистов?

    smilingcheater
    smilingcheater @smilingcheater
    Вы пробовали загуглить "php array_unique performance"? Вы не первый, кто с этим столкнулся, и решения описаны много раз.

    Самое простое, если не вдаваться в логику вашего кода - заменить ваш код на array_keys(array_flip($items));
    Ответ написан 14 июл. 2022
    Комментировать
    Комментировать
  • Почему не происходит переадресация с https://www на https://?

    smilingcheater
    smilingcheater @smilingcheater
    Что делать - выдать сертификат на www-поддомен.
    Чтобы произошёл редирект - браузер должен получить от сервера, но он ему не доверяет и даже не смотрит что сервер прислал.
    Ответ написан 31 мая 2022
    Комментировать
    Комментировать
  • Lenovo Ideapad 5 pro 14 с 5600u или 5800u: что выбрать?

    smilingcheater
    smilingcheater @smilingcheater
    Имхо - не стоит. В перечисленной нагрузке 5600u хватит с головой, а если вы запустите что-то тяжёлое, то более мощный процессор всё равно достаточно быстро начнёт троттлить.
    Ответ написан 09 февр. 2022
    Комментировать
    Комментировать
  • Как сохранить состояние checked не сбрасывая кэш?

    smilingcheater
    smilingcheater @smilingcheater
    Потому что вы используете значения из $_SESSION, но кеш вашего компонента (этот же код в компоненте у вас написан?) не учитывает значения из сессии.
    И предупреждая ваш следующий вопрос - не надо делать зависимость кеша компонента от значений в сессии, весь смысл кеша пропадёт, он только лишнюю память/место занимать будет.
    Из простого:
    - либо отключайте кеш на компонете (быстрое, простое и плохое решение)
    - либо выставляете этот checked через JS, который вы можете добавить в страницу в некешируемой части компонента (читайте про component_epilog.php)
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Почему svg LogoMonniMobile не отображается при ширине 736 пикселей?

    smilingcheater
    smilingcheater @smilingcheater
    Потому что вы используете некорректный синтаксис медиазапросов.
    Вместо media (width > 736px) надо писать media (min-width: 737px)
    Вам это даже редактор в codesandbox'е это как ошибку подчёркивает.
    Попробуйте почитать документацию https://developer.mozilla.org/ru/docs/Web/CSS/Medi...
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как резделить вывод по сепаратору из строки sql?

    smilingcheater
    smilingcheater @smilingcheater
    explode
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как сделать поиск по сайту js?

    smilingcheater
    smilingcheater @smilingcheater
    search.value == {name}
    с какой целью вы строку name превратили в объект {name}? Подозреваю что вы не до конца понимаете деструктуризацию и вас запутала запись CATALOG.forEach(({name}).
    Если делаете простое в лоб сравнение - то и сравнивайте строки
    search.value == name
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Почему происходит дублирование элементов каталога при сортировке изображений в зависимости от ширины и высоты?

    smilingcheater
    smilingcheater @smilingcheater
    Потому что вы сначала складываете $value в $arWithPhoto
    $arWithPhoto[$key] = $value;
    Потом его же в $arHor/$arVert/$arSquare

    а ещё вы забыли открывающуюся фигурную скобку после foreach ($arResult['elements'] as $key => $value)
    Ответ написан более года назад
    3 комментария
    3 комментария
  • Error trying to parse settings: Unexpected trailing characters in Packages\User\Emmet.sublime-settings:6:1. Как это исправить?

    smilingcheater
    smilingcheater @smilingcheater
    Почему вы суёте в файл 2 отдельных JSON-объекта? Судя по документации, там должен быть 1 объект
    https://github.com/sergeche/emmet-sublime/blob/mas...
    Собственно вам и ругается, что на 6 строке начинается невалидный символ, а именно начинается новый объект.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Ошибка php jQuery.ajax POST 500?

    smilingcheater
    smilingcheater @smilingcheater
    Лог ошибок сервера вам религия не позволяет посмотреть?

    после $webhook_url = 'xxx' поставьте ;

    и в строке $queryUrl = webhook_url . $method ; забыли доллар у webhook_url. Так же эту переменную надо прокинуть в эту функцию - она объявлена вне её и внутри недоступна.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • С помощью чего сверстать эту часть тележки?

    smilingcheater
    smilingcheater @smilingcheater
    Внимательно прочитайте htmlbook.ru/css/border-radius и посмотрите на странице все примеры использования
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Вставить в input значение введенное ранее?

    smilingcheater
    smilingcheater @smilingcheater
    Объявите переменные name, surname до навешивания обработчика, т.е. напишите вот так
    var name, surname;
    
    $(document).on('change', '.shippingMethod', function () {
        if ($(this).val() == 'pickup') {
            name = $(document).find('#name').val();
            surname = $(document).find('#surname').val();
            $('#name, #surname').val('Самовывоз');
        } else {
            $('#name').val(name);
            $('#surname').val(surname);
        }
    });
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как подключиться с помощью PHP к FTP и вывести список файлов и папок FTP?

    smilingcheater
    smilingcheater @smilingcheater
    Начните с чтения доков по работе с FTP https://www.php.net/manual/ru/function.ftp-connect.php
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Как в админке битрикса подключить дополнительные JS и CSS?

    smilingcheater
    smilingcheater @smilingcheater
    В init.php
    if (defined('ADMIN_SECTION') && ADMIN_SECTION === true) {
        $asset = \Bitrix\Main\Page\Asset::getInstance();
        $asset->addCss('/local/css/admin/style.css');
        $asset->addJs('/local/js/admin/admin.js');
    }
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Как исправить ошибку после обновления Битрикса?

    smilingcheater
    smilingcheater @smilingcheater
    Какая у вас до этого была версия PHP?
    Начните с того, что замените использование всех необъявленных констант на строки
    https://www.php.net/manual/ru/migration72.deprecat...
    в частности:
    data-src="<?$arItem['DISPLAY_PROPERTIES']['MORE_PHOTO_AN']["FILE_VALUE"][$key]["SRC"];?>"
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Настройте предварительную загрузку ключевых запросов?

    smilingcheater
    smilingcheater @smilingcheater
    <link rel="preload" href="/fonts/roboto/Roboto-Regular.woff" as="font" crossorigin="anonymous">

    Добавить в head для всех используемых шрифтов.

    Вам же Lighthouse прямо в описании проверки пишет про link preload
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Почему неверно отображается инфоблок в админке битрикс?

    smilingcheater
    smilingcheater @smilingcheater
    Недонастроен опенсервер. Пробуют скачаться css/js из папок, начинающихся с точки (.../.default/...)
    Надо в конфиге апача удалить
    <LocationMatch "/\.(?!well-known)">
        Require             all denied
    </LocationMatch>

    В конфиге Nginx удалить
    location ~ /\. {deny all;}
    Ответ написан более года назад
    2 комментария
    2 комментария
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Следующие →
Самые активные сегодня
  • Sozdavan
    • 15 ответов
    • 0 вопросов
  • Evgenii
    • 12 ответов
    • 0 вопросов
  • Dr. Bacon
    • 8 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • Денис
    • 5 ответов
    • 1 вопрос
  • delphinpro
    Сергей delphinpro
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации