• Как изменить текст Нет в наличии у товаров в Битрикс?

    @Firsov36
    full-stack web developer
    Если компонент стандартный, то в настройках компонента каталога можно поменять настройки:

    605b32f8ec970903359623.png
    Ответ написан
    Комментировать
  • Как использовать AJAX в Битрикс?

    @Firsov36
    full-stack web developer
    BX.ajax это тот же Ajax, только в обертке Битрикса. Используйте его почти точно также как и обычный Ajax с некоторыми нюансами от Битрикса.

    Вот на хабре пост Ajax для новичков
    Документация Битрикс BX.ajax

    Не совсем понятно, что имеется в виду "примеры обработки формы". Обработки полей формы на валидность? Или сбор данных, манипуляция данных формы перед отправкой? Или куда отправить запрос и что за скрипт написать в бэкэнде? Или как из бэкэнда получить данные, а потом что-то с ними сделать?

    Если с Ajax знакомы плохо, то лучше начать с изучения этой технологии. Там ничего сложного.

    Если очень кратко пример, то вот 2 файла. Специально использовал Битриксовские обертки для js.

    простая страница сайта с формой /ajax.php
    <?php
    
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
    CJSCore::Init(array('ajax'));
    ?>
    
    <div id="my-form">
        <input id="my-input"></div>
        <button id="my-button">send ajax request</button>
        <div id="my-result" style="margin:10px 0;padding:.5em;border:1px solid #ececec;"></div>
    </div>
    
    <script>
        const input = BX('my-input')
        const button = BX('my-button')
        const result = BX('my-result')
        
        BX.bind(button, 'click', () => {
          BX.ajax({
            url: '/ajaxhandler.php',
            data: {
              text: input.value,
            },
            method: 'POST',
            dataType: 'json',
            timeout: 10,
            onsuccess: function( res ) {
              console.log('res: ', res)
              result.innerText = res.text;
            },
            onfailure: e => {
              console.error( e )
            }
          })
        })
    </script>
    
    <?
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");


    и скрипт, куда обращается ajax (/ajaxhandler.php):
    <?php
    
    $result = [
        'isSuccess' => true,
        'text' => "user was typing: {$_POST['text']}",
    ];
    
    header("Content-type: application/json; charset=utf-8");
    echo json_encode($result);


    В поле вводим текст. Нажимаем на кнопку и ниже в поле появляется текст 'user was typing' + текст что ввели в поле.

    Изучайте. На вопрос я ответил, у вас скорее всего появилось куча дополнительных вопросов. Но все ответы в изучении js, php и ajax в частности..
    Ответ написан
  • Что делать, если в битриксе не отправляется тело письма?

    @Firsov36
    full-stack web developer
    Раз письмо приходит, но пустое, то с вероятностью 98% у вас скрипты подменяют тело письма. Начните проверку с проверки кода в Событиях (всевозможные init.php в разных местах) и Агентах (ну тут искать там, как разработчик Агента решил, подсказки в Битриксе). Для теста, можно все init.php удалить и выключить Агенты не от Битрикса. Проверить, что все заработало и вернуть все как было и начать поиск плохого кода.

    И 1%, что дело в перекодировке между utf-8 и windows-1251 (в любую сторону), когда все тело превращается в false;

    Ну и оставшийся 1% - это то, что я не угадал))
    Ответ написан
    4 комментария
  • Что это значит?

    @Firsov36
    full-stack web developer
    Да многое где такое есть. У Apple например. Допустим выбираешь дату. Система смотрит, что дата это сегодняшнее число и после выбора, в поле ввода просто пишется: Сегодня, 21 апреля 2020 года. Если выбрал 22 апреля, то система определит, что это "завтра" и добавит к дате слово "завтра": Завтра, 22 апреля 2020 года. А если уже дальше 23, 24 ... и следующие дни, то просто подставляет день недели. Считается, что на уровне подсознания, так воспринимается информация легче.
    Ответ написан
    Комментировать
  • Почему не срабатывает hide()?

    @Firsov36
    full-stack web developer
    hide() у Вас работает. Вот только сначала срабатывает $('.category-show__close').on('click', function() {, а потом для предка $('.category-show__btn').on('click', function() {.

    Т.е. за доли секунды у вас блоки прячутся, а потом снова появляются.

    Поставьте везде время 1000мс и увидите:

    jQuery(document).ready(function($) {
        $('.category-show__btn').on('click', function() {
            $(this).children('.category-show__overlay').show(1000);
            $(this).children('.category-show__dropdown').show(1000);
        });
    
        $('.category-show__close').on('click', function() {
            $(this).closest('.category-show__dropdown').hide(1000);
            $(this).closest('.category-show__dropdown').prev('.category-show__overlay').hide(1000);
        });
    
        $('.category-show__overlay').on('click', function() {
            $(this).hide(1000);
            $(this).next('.category-show__dropdown').hide(1000);
        });
    })
    Ответ написан
    Комментировать
  • Ошибка синтаксиса unexpected 'Content' (T_STRING), как исправить?

    @Firsov36
    full-stack web developer
    в переменной $file у вас скорее всего просто путь до файла, а должен быть file handler.
    т.е. $file = open('path/to/file', 'w'); например
    Ответ написан
  • Как при клике на элемент менять значение в массиве $arParams?

    @Firsov36
    full-stack web developer
    Если рассматривать именно задачу поменять параметр в компоненте, то это не "простой" вопрос. Как минимум и к Вам и от Вас куча вопросов дополнительных появится, а без видимости кода тут можно долго гадать. Тем более Вы привели код из php скрипта, а этот код как исполняется? По запросу ajax или при загрузке страницы? У загружаемой страницы есть какие-то параметры на входе? ... и т.д.

    А в целом у Вас не правильный подход к решению задачу. Во-первых, уверен, что точно не из-за параметра "CHANGE_CITY_MANUAL" => "Y" у Вас снова вылезает табличка, а скорее всего из-за того, что система по какой-то причине не может сохранить выбранное или подтвержденное местоположение пользователем.

    В коде у Вас есть закомменченный участок:
    // $('.' + obClass.params.CLASS.WRAP_QUESTION_REASAPEKT).remove();
    - почему он закомменчен? Трудно сказать, но похоже он нужен в коде. К тому же слово REASAPEKT написано с ошибкой, если брать во внимание, сравнивать с названием компоненты reaspekt:reaspekt.geoip.

    Так что Вы изучите ошибки в DevTools, проверьте код php и закомментированные строки в том числе. В основном логика местоположения такая: смотрится куки местоположения. если не сохранено или вышел срок куки, то определяется местоположение. Как определили местоположение по каким-то алгоритмам, то спрашиваем пользователя - правильно ли? Пользователь выбирает что правильно или нет, указывая правильный город. Куки сохраняется для повторного использования на время сессии или просто на какое-то свое время, не только на текущую сессию.
    Ответ написан
    6 комментариев
  • Как расставить два блока?

    @Firsov36
    full-stack web developer
    Добавьте для .content justify-content: space-around;

    .content {
      border: 2px solid;
      padding: 3rem;
      
      display: flex;
      justify-content: space-around;
      flex-wrap: wrap;
    }
    
    .block1, .block2 {
      border: 1px solid blue;
    }
    Ответ написан
    Комментировать
  • Как свапнуть местами текст и иконки font awesome?

    @Firsov36
    full-stack web developer
    1. flex-direction: row-reverse
    2. копи-пастом местами поменять
    3. :before -> :after
    4. вопросы правильно задавать и предоставлять код
    Ответ написан
  • Как найти нужный tr td?

    @Firsov36
    full-stack web developer
    Так:

    Ответ написан
    Комментировать
  • Как сделать появление другого текста при нажатие на картинку?

    @Firsov36
    full-stack web developer
    В продолжение обсуждения, вот Вам набросок для решения задачи. Без использования javascript, все на checkbox и css. Как нажимаете на кнопку, появляется второй блок и первый скрывается.

    Ответ написан
    Комментировать
  • Как сделать автоматический перенос строки при длинном слове?

    @Firsov36
    full-stack web developer
    Есть в css word-wrap: break-word и тогда будет переносить и длинные слова, но указать на каком символе переносить, такое только через javascript.
    Ответ написан
  • Как отцентрировать элемент во flex?

    @Firsov36
    full-stack web developer
    В вашем случае добавить стилей, например:
    И лучше p сделать в div

    p {
      flex: 1;
    }
    
    p:nth-child(2) {
      text-align:center;
    }
    
    p:last-child {
      text-align:right;
    }
    Ответ написан
  • Как сделать блок как на скриншоте?

    @Firsov36
    full-stack web developer
    Вы в коде используете

    <svg class="social__icons">
            <use xlink:href="#facebook"> </use>
          </svg>


    а где сам facebook ?
    типа такого:

    <svg height=0 >
       <g id="facebook">
             <polygon points="38.25,0 38.25,357 318.75,178.5" />
       </g>            
    </svg>


    или в use использовать ссылку на файл
    Ответ написан
    3 комментария
  • Как узнать ID картинки в медиагалерее?

    @Firsov36
    full-stack web developer
    Так можно загрузить Коллекции (папки) и файлы по отдельности.. фильтр можно разнообразить под Ваши нужды.

    use Bitrix\Main\Loader;
    Loader::includeModule('fileman');
    CMedialib::Init();
    
    // Папки, разделы
    $ar = CMedialibCollection::GetList(
        [
            'filter' => ['ACTIVE' => 'Y']
        ]
    );
    \Bitrix\Main\Diag\Debug::dump($ar);
    
    // Элементы
    $ar = CMedialibItem::GetList(
        [
            'filter' => ['ACTIVE' => 'Y']
        ]
    );
    \Bitrix\Main\Diag\Debug::dump($ar);
    Ответ написан
    Комментировать
  • Как с помощью CSS выровнять текст слева и по центру относительно картинки?

    @Firsov36
    full-stack web developer
    Можно, например, с помощью flexbox

    Ответ написан
    Комментировать
  • Как правильно настроить категории и карточки?

    @Firsov36
    full-stack web developer
    Для настроек компонента на странице в секции "Дополнительные настройки" поставьте галочки:
    - Использовать основной раздел для показа элемента
    - Строгая проверка раздела для детального показа элемента
    Ответ написан
  • Непонятное поведение Битрикса, как исправить?

    @Firsov36
    full-stack web developer
    Права доступа к инфоблоку на чтение стоит? И проверьте, что в $category_xmlid именно то, что должно быть, возможно он пуст или не равняется XML_ID инфоблока.
    Ответ написан
    1 комментарий
  • Есть ли сайты, на которых собраны множество "рецептов" по html/css?

    @Firsov36
    full-stack web developer
    Та же песочница codepen.io очень много разного и можно скопировать к себе, изменить, улучшить и т.д.
    Ответ написан
    Комментировать
  • Непонятное пустое место в flex сетке. Как убрать?

    @Firsov36
    full-stack web developer
    В песочнице ваш код работает нормально. Отступа нету. Скорее всего это у вас другими стилями добавляется отступ, которых нет в приведенном коде

    Ответ написан