Задать вопрос
  • Как удалить из массива?

    cyber-jet
    @cyber-jet
    Adamos, из практики пример, когда при обмене с внешним источником нужно сделать преобразование, разбить данные по таблицам, сравнить с тем что есть в массиве из базе в цикле, если нет такого в массиве из базе - add, если есть - update и unset из массива базы, после чего в массиве базы остаются элементы, которых не было в источнике, и их нужно удалить из базы или деактивировать.
    Написано
  • Как удалить из массива?

    cyber-jet
    @cyber-jet
    Adamos, в данном случае разницы нет, вернее этот вариант даже более громоздкий и запутанный, чем двойная вложенность foreach().
    Написано
  • Как удалить из массива?

    cyber-jet
    @cyber-jet
    Adamos, как передать в функцию то что в пределах блока? Как например в JS можно передать функции весь контекст через this.
    Написано
  • Как удалить из массива?

    cyber-jet
    @cyber-jet
    Adamos, это понятно, но array_filter использует колбэк функцию, которая замыкает область видимости на себя, циклы же видят переменные выше себя в пределах блока. Автор вопроса выше в камментах написал про цикл, и до конца не ясно что он вообще хочет, по этому в цикле можно сделать вот так например:
    $arr[1]['one']="1";
    $arr[1]['two']="2";
    $foo = 1;
    $bar = 'one';
    
    foreach( $arr as $k => $sub_arr ) {
        foreach( $sub_arr as $sub_k => $sub_v ) {
            if( $k === $foo && $sub_k === $bar)
                unset($arr[$k][$sub_k]);
        }
    }
    Написано
  • Почему не работает forEach?

    cyber-jet
    @cyber-jet
    Lahma, потому что там синхронный код:
    for (let i = 0; i < 80; i++)
      database.value.push({ id: i, name: `user ${i}` })

    Нужно переделать в асинхронный
    Написано
  • Аспро Ошибка запроса error Некорректный id инфоблока избранных товаров как исправить?

    cyber-jet
    @cyber-jet
    pletnyova1207, для того чтобы настроить "проще" всего прочитать код, но это я говорю про себя. В интернете вы навряд-ли что-то найдёте, потому что это студийные компоненты Аспро, которые не распространены и по ним мало опыта. Мой совет, посмотрите что дешевле, возможно стоит купить лицензию и обратится в техподдержку Аспро, но я вижу что тут задача не сильно сложная.
    Написано
  • Почему не работает forEach?

    cyber-jet
    @cyber-jet
    Lahma, до конца не могу понять смысл задуманного, но если вам нужно асинхронно получать посты и отображать есть два пути:
    1. Показать пустой список, потом грузить посты.
    2. Сделать это в beforeMount.

    PS: posts.value.forEach() перед явно асинхронной функцией выглядит странно.
    Написано
  • Почему не работает forEach?

    cyber-jet
    @cyber-jet
    Lahma, если не работает выведете в консоль эту переменную, посмотрите может ли она быть iterable.
    Написано
  • Аспро Ошибка запроса error Некорректный id инфоблока избранных товаров как исправить?

    cyber-jet
    @cyber-jet
    pletnyova1207, по скриншотам гадать не могу в любом случае. Но есть подозрение что нужен инфоблок для избранного, т.е. инфоблок в который будут писаться избранные товары для пользователя. И ещё, в этом инфоблоке скорее всего должны быть свойства с определенными символьным кодом, чтобы туда записывать id товара и id пользователя. По идее всё это должен настраивать инсталлятор решения.
    Написано
  • Как передать значение из компонента в result_modifier шаблона, где компонент вызывается?

    cyber-jet
    @cyber-jet
    Если всё сделано правильно массив $arResult доступен в result_modifier.php, т.е. если в компоненте сделать так:
    $arResult['COUNT_QUESTIONS'] = count($processedQuestion);

    то в result_modifier.php можно его прочитать:
    $count_questions = $arResult['COUNT_QUESTIONS'];
    Написано
  • Аспро Ошибка запроса error Некорректный id инфоблока избранных товаров как исправить?

    cyber-jet
    @cyber-jet
    Если вы купили шаблон у Аспро, у них есть техподдержка.
    Написано
  • Как объединить ключи и значения объекта или get параметров строки?

    cyber-jet
    @cyber-jet
    Сергей Василенко, и можно что-то типа такого использовать, если уж сильно надо GET:
    <input type="checkbox" value="1" name="svfilter_category_62" checked>
    <input type="checkbox" value="1" name="svfilter_category_63" checked>
    <input type="checkbox" value="1" name="svfilter_category_64" checked>
    Написано
  • Как объединить ключи и значения объекта или get параметров строки?

    cyber-jet
    @cyber-jet
    Сергей Василенко, тогда очевидно нужно использовать POST, от себя лишь могу сказать, что собирать GET из полей формы при помощи JS это моветон.
    Написано
  • Как объединить ключи и значения объекта или get параметров строки?

    cyber-jet
    @cyber-jet
    Идиотский вопрос, а зачем тут вообще нужен Java Script? Если в форме будет кнопка submit то get-запрос сам соберется формой по отправке.
    Написано
  • Почему не создаётся пользовательское поле?

    cyber-jet
    @cyber-jet
    svetilniki_tut, разницы особой нет, везде это пользовательские поля, в том смысле что не поля сущности user, а пользовательский(кастомный) тип поля, объект же может быть любой, например раздел инфоблока, или вообще своя сущность, описанная в ORM. Но в любом случае, в массиве нужно указать BASE_TYPE, так-же это косвенно подтверждается тем, что множественное поле хранится в базе как текст, и по этому если выбрано множественное ошибки не будет, так как BASE_TYPE будет text по умолчанию, в документации это указано, но оно и понятно, потому что множественное поле хранится в базе как сериализированный объект, а для этого подходит только тип text в виду отсутствия ограничений длинны. (bitrix/modules) /main/lib/userfield/types/stringtype - тут можно подсмотреть пример класса UF-поля.
    Написано
  • Почему не создаётся пользовательское поле?

    cyber-jet
    @cyber-jet
    svetilniki_tut, что значит не "описывается в документации"? Что конкретно не описывается в документации?

    Хорошо, давайте конкретно, раз утверждаете что читали и знаете:

    Вы пишите "Я зарегистрировала свой тип пользовательского поля с помощью функции GetUserTypeDescription. " - событие не регистрируется при помощи этого метода, этот метод вызывается событием OnIBlockPropertyBuildList, так написано в документации которую вы "знаете".

    Так-же в документации, в примере метода возвращаемые поля другие:
    public static function GetUserTypeDescription()
    	{
    		return array(
    			"PROPERTY_TYPE"		=>"S",
    			"USER_TYPE"		=>"MyDateTime",
    			"DESCRIPTION"		=>"Дата/Время",
    			...
    		);
    	}

    У вас отсутствует ключевой параметр PROPERTY_TYPE, который указывает на то, в каком виде(типе) поле будет храниться в таблице базы данных.

    По поводу пункта 2, не понятно как вообще должно выглядеть пользовательское поле, где должно отображаться и т.д., возможно вам вообще не нужно своё пользовательское поле и можно обойтись имеющимися.

    PS Если пишите в парадигме пространства имён классов, то и пишите свой класс в своём пространстве, подключайте через use, использовать require_once в данном случае пример плохого кода. Класс можно хранить в своём модуле, там-же можно хранить и класс пользовательского поля, и при регистрации модуля сразу подписать поле на нужные события, чтобы не городить огород в init.php.
    Написано
  • Почему не создаётся пользовательское поле?

    cyber-jet
    @cyber-jet
    Вижу что вопрос не первый, и у меня две идеи:
    1. Может быть вы всё-же прочитаете документацию для разработчиков по созданию классов пользовательских полей.
    2. Дадите больше информации о вашем коде, ибо "спасение утопающего дело рук самого утопающего", а информации от "утопающего" крайне крайне мало.

    ...и у меня лично складывается впечатление, что вы не осознаете код. И откуда у вас появился require_once в парадигме namespace классов?
    Написано
  • Как сделать перемещение по странице с помощью перетаскивания?

    cyber-jet
    @cyber-jet
    Функция из моего решения целиком для тачскрина занимает 40 строк, было бы глупо вот так взять и рассказать, вопрос о не в этом :) вот все события на которые нужно подписать выполнение функций, всё остальное можно найти в мануале по этим событиям, если вкратце, вначале перетаскивания нужно запоминать положение пальца, оно передается в событие, и положение скролла элемента который нужно "драгать", потом путём нехитрых вычислений получать расстояние на которое двигается палец и передавать в скролл:

    function touchToScroll(selector) {
      const el = document.querySelector(selector);
    
      if (!el) return;
    
      let touchX,
        touchY,
        scrollLeft,
        scrollTop,
        touched = false;
    
      el.addEventListener("touchstart", touchIsDown);
      el.addEventListener("touchend", touchUp);
      el.addEventListener("touchcancel", touchUp);
      el.addEventListener("touchmove", touchMove);
    
      ...
    }
    Написано
  • Как вытащить данные из формы в дополнительных настройках пользовательского поля?

    cyber-jet
    @cyber-jet
    Описание свойств инфоблока, в том числе и пользовательских, можно получить через CIBlockProperty. Если конечно речь идёт о свойствах инфоблока.
    Написано
  • Как сверстать данный фон(background)?

    cyber-jet
    @cyber-jet
    Дмитрий Ярощук, нужно сделать псевдоэлементом, а область основного контейнера можно будет ограничить паддингом, если не нужно чтобы контент налезал на этот элемент.
    <div class="container fig">
      ...content
    </div>

    .container {
      position: relative;
      border: 1px solid #000;
      width: 800px; 
      height: 400px;
      overflow: hidden;
    }
    .fig::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      left: -105%;
      width: 150%; 
      height: 150%;
      transform: skew(-20deg, -25deg);
      background: linear-gradient(180deg, #C91C04 0%, #4B0900 100%);
    }
    Написано