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

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

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

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

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

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

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

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

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

Олег Прилепа

Frontend developer
  • 51
    вклад
  • 1
    вопрос
  • 74
    ответа
  • 35%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Какой самый простой для пользователей вариант управления аватаркой?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Вот неплохой редактор: https://github.com/mosch/react-avatar-editor

    Т.е. делаем UI выбора файла, данные передаем в редактор, на выходе получим blob данные из canvas и их уже можно отправлять на back для записи.
    Ответ написан более года назад
    3 комментария
    3 комментария
  • Как отключить подсказки в input type password?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Нужно использовать autocomplete="new-password"

    Документация.

    Попробовал собрать пример и посмотреть, как работает:
    1. Chrome без autocomplete сразу заполнял первое поле в форме, не предлагал "сгенерировать надёжный пароль".
    После явного указания autocomplete="new-password" поле оставалось пустым при открытии формы, но при получении фокуса всё равно показывало на выбор сохранённый пароль, как на скрине в вопросе + появился пункт генерации нового.

    2. FF аналогично.

    3. Safari стал сразу предзаполнять "новым сгенерированным" + рекламку своей фичи показывал рядом с полем.

    4. Opera проигнорировала атрибут и продолжила предлагать автозаполнение.

    Получается, в актуальных версиях совсем запретить автозаполнение легально мы не можем.
    Ответ написан более года назад
    12 комментариев
    12 комментариев
  • Как я могу проитерировать каждый элемент массива?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Если я правильно понял вопрос, здесь подойдет Array.reduce

    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Есть ли готовый инструментарий для таймтрекинга в Jira Marketplace?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Готового много, например вот: https://marketplace.atlassian.com/vendors/6558/tem...

    Если речь про разработчиков, то точно видел, что продукты JetBrains умеют замерять время, потраченное на задачи и отправлять статистику в Jira по кнопке: https://www.jetbrains.com/help/youtrack/standalone...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как исправить что npm ci игнорирует registry, указанный в package-lock.json?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Насколько я понимаю, надо чтобы в проекте лежал файл .npmrc и в нём была строка вида:
    @my/package:registry=http://corporate.npm
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Что сделать чтобы composer загружал файлы библиотеки?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Надо чтобы в composer.json присутствовала секция autoload:
    "autoload": {
        "psr-4": {
          "PackageName\\": ""
        }
      },


    И после не забыть запустить composer update чтобы пересобрался vendor/autoload.php
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как изменить значения массива на основе значений другого массива?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    foreach($array1 as $key => &$value) {
        $value['price'] = $array2[$key]['price'];
    }
    unset($value);
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как указать в скрипте путь в котором папка постоянно меняет название?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Я думаю нужно сначала прочитать список папок в C:\Users\Admin\ и выбрать из них нужную, особенно если ее название попадает под шаблон Window_*
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как убрать монозвук в AirPods на windows 10?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Насколько мне известно, эту проблему не решить.
    Т.е. либо устройство работает в режиме наушников (без микрофона), тогда звук в хорошем качестве, либо в режиме гарнитуры - тогда звук моно.
    Вот тут подробно про кодеки и матчасть: https://habr.com/ru/post/427997/
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Почему не добавляется ярлык Web App сайта на экран Android телефона?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    https://developers.google.com/web/fundamentals/web...

    Кажется, нужно еще disaplay: standalone добавить в manifest.json
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как правильно оформить url?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    1. Имхо, лучше не 404 вешать, а 301 редирект на первую страницу раздела. Т.е. /service >> /service/work1

    2. Если хочется совсем убрать из url раздел service, надо написать правило в urlrewrite.php в корне проекта.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Где хранится компонент «bitrix:catalog.section.list» и его template «sections_list»?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Зависит от контекста вызова, подробней рассказывается в доке:
    https://dev.1c-bitrix.ru/learning/course/index.php...

    Т.е. оно либо лежит в /(local|bitrix)/templates/{#template_name#}/components/bitrix/{catalog|catalog.section.list}/
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как получить значение охвата на посте ВК?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Вот документация: https://vk.com/dev/objects/post
    Насколько я вижу, охват там не отдается.


    вы в коде почему-то перебираете $wall['response']['count'] - это же число-количество, перебирать надо $wall['response']['items'] - может в этом проблема?
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Постоянные ссылки на разделы/товары в многоуровневом каталоге битрикс?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    У комплексного компонента bitrix:catalog есть параметр USE_MAIN_ELEMENT_SECTION
    [Y|N] Если опция отмечена, то при переходе на детальную страницу элемента в адресную строку браузера будет подставляться тот путь, который формируется при просмотре элемента через основной раздел, даже если элемент открыт через другой родительский его раздел.

    Источник: https://dev.1c-bitrix.ru/user_help/components/cont...
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Есть ли возможность автоматической генерации рассылок из новостей?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Если есть модуль "Подписка и рассылка", он такое умеет из коробки.
    Вот подробно описывают, как это настроить: https://dev.1c-bitrix.ru/community/webdev/user/161...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему не заполняются пользовательские поля в sale.order.ajax?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Насколько я понял, из коробки оно так не работает, но можно решить обработчиком событий в /bitrix/php_interface/init.php
    <?php
    AddEventHandler("sale", "OnSaleComponentOrderResultPrepared", ['\SaleEvents', "OnSaleComponentOrderResultPrepared"]);
    class SaleEvents {
    	public static function OnSaleComponentOrderResultPrepared($order, &$user_result, $request, &$params, &$result)
    	{
    		/**@global \CUser $USER */
    		global $USER;
    		if ($USER->IsAuthorized()
    			&& ($user_info = \Bitrix\Main\UserTable::getList([
    				'filter' => [
    					'=ID' => $USER->GetID(),
    				],
    				'select' => [
    					'EMAIL',
    					'NAME',
    					'LAST_NAME',
    					'SECOND_NAME',
    					'PERSONAL_PHONE',
    				],
    			])->fetch())
    		) {
    			foreach($result['JS_DATA']['ORDER_PROP']['properties'] as &$prop) {
    				if (!empty(reset($prop['VALUE']))) {
    					continue;
    				}
    				switch($prop['CODE']) {
    					case 'EMAIL':
    						$prop['VALUE'] = [$user_info['EMAIL']];
    						break;
    					case 'FIO':
    						$name_parts = [];
    						foreach([
    							'LAST_NAME',
    							'NAME',
    							'SECOND_NAME',
    				        ] as $name_key) {
    							if (empty($user_info[$name_key])) {
    								continue;
    							}
    							$name_parts[] = $user_info[$name_key];
    						}
    						$prop['VALUE'] = [
    							implode(' ', $name_parts)
    						];
    						break;
    					case 'PHONE':
    						$prop['VALUE'] = [$user_info['PERSONAL_PHONE']];
    						break;
    				}
    			}
    			unset($prop);
    		}
    	}
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какой запрос показывает конкретную ошибку в скрипте?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Лучше пользоваться новым API для добавления в корзину:
    Bitrix\Main\Loader::includeModule("catalog");
    
    $fields = [
        'PRODUCT_ID' => 98, // ID товара, обязательно
        'QUANTITY' => 2, // количество, обязательно
        'PROPS' => [
            ['NAME' => 'Test prop', 'CODE' => 'TEST_PROP', 'VALUE' => 'test value'],
        ],
    
    ];
    $r = Bitrix\Catalog\Product\Basket::addProduct($fields);
    if (!$r->isSuccess()) {
        var_dump($r->getErrorMessages());
    }

    Источник: https://mrcappuccino.ru/blog/post/work-with-basket...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как убрать фиксацию номера последней страницы в навигации?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    <?
    // Пример запрещает сохранение в сессии номера последней страницы 
    // при стандартной постраничной навигации.
    // По умолчанию в сессии запоминается последняя открытая страница постраничной навигации. 
    // Если вы хотите изменить такое поведение для данной текущей страницы, 
    // то до вызова метода CDBResult::NavPrint необходимо воспользоваться следующим кодом:
    CPageOption::SetOptionString("main", "nav_page_in_session", "N");
    
    // Для того чтобы вернуть режим по умолчанию:
    CPageOption::SetOptionString("main", "nav_page_in_session", "Y");
    ?>

    https://dev.1c-bitrix.ru/api_help/main/reference/c...
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Почему в каталоге отображаются товары из неактивных разделов?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    Это нормальное поведение, разделы и элементы - разные сущности, и у них разные флаги активности.
    Если нужно, чтобы при деактивации раздела ИБ автоматически деактивировались все привязанные к нему элементы - надо написать обработчик события OnAfterIBlockSectionUpdate и там запросом \CIBlockElement::GetList получить все элементы и сделать Update каждого.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Куда правильно вставлять код Google Аналитики на сайт Bitrix?

    OAPrilepa
    Олег Прилепа @OAPrilepa
    Frontend developer
    /bitrix/templates/#имя шаблона#/footer.php
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • Mi11er
    Denis Melnikov
    • 7 ответов
    • 0 вопросов
  • scoffs
    Семён Окулов
    • 6 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • Adamos
    Adamos
    • 5 ответов
    • 0 вопросов
  • Justa Gain
    • 5 ответов
    • 0 вопросов
  • rPman
    • 4 ответа
    • 1 вопрос
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

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

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