• Как изменять инфу на сайте?

    FlyMoBiS, оффтопик касательно показанного кода: я могу подсказать только самое простое.
    1) если разумно выделить из fillItem() отдельные функции fillItemImage(), fillItemTitle() ( можно даже fillItemLink() для единообразия, хоть она и будет совсем короткой ), то станет лучше.

    2) ошибка в строке
    if (name.length > 33) { name= nameAnime.slice(0, 30) + '...' };


    3) тут тоже: if (typeof itemData.names === 'string') - там же по смыслу видно, что не строка, а хеш (объект).

    4) блок проверок в имени наверняка можно записать читабельнее. Что там может быть, если не строки? Null? Стоит вынести в функцию:
    const getName = function (names) {
        // не уверен, что это лучший вариант
        const name = String( names.ru || names.alternative || names.en || "" );
        // поборники чистоты разделят поиск непустого варианта и обрезку в разные функции
        if ( name.length > 33 ) {
            return name.slice(0, 30) + '...';
        }
        return name;
    }

    и тогда в том месте кода даже переменная не нужна:
    element.getElementsByTagName('p')[0].textContent = getName( itemData.names );


    5) c currentPage можно похоже записать:
    currentPage = MathNumber.parseInt(currentPage) || 0;
    currentPage = Math.max( currentPage, 1 );


    6) функция changeItems() выглядит подозрительно. Я не очень понял, что там происходит, но сначала идет вроде как более "тяжёлая" операция ( модификация DOM ), а потом какие-то подгоны массивов под размер. Нельзя ли сделать наоборот?

    7) стоит подумать над тем, что случится в fillItem(), если данные будут неполными. Как я вижу, url изменится, а картинка или подпись могут остаться старыми в некоторых случаях.
    Написано
  • Как изменять инфу на сайте?

    FlyMoBiS, я считаю, что проще взять данные ( хотя бы синтетический тестовый набор) и проверить. В DevTools есть Recorder, Performance Monitor, Memory ( последний даже виден на скриншоте, только я бы выбрал режим Allocation Sampling).
    Написано
  • Почему умный фильтр не учитывает торговые предложения?

    я пришёл к выводу, что смешивать в одном каталоге простые товары и товары с предложениями - прямая дорога в ад. Нужно в таких случаях конвертировать каждый простой товар в товар с единственным предложением, и жизнь станет проще
    Написано
  • Как сделать редирект с https на http если заблокированы какие-то порты на хостинге?

    минимальный платный тариф у бегета - 390 рублей ( если брать сразу год, то ещё дешевле). Это меньше, чем за сотовую связь. Один раз поесть.
    Написано
  • Как сделать возможность добавления картинки товара, загружая её перед этим в БД?

    следующий вопрос, который возникает после запихивания картинки в бд - как её оттуда достать и показать? Если уж так хочется сохранить в бд что-нибудь, связанное с картинкой - храните путь до неё. А саму картинку держите на диске, как обычный файл.
    Написано
  • Можно ли сравнить большие массивы по частям?

    kategg, другими словами: так, как предлагает Сергей П - можно. Делать какой-нибудь array_slice() и пихать в array_diff() - нельзя
    Написано
  • Bitrix как создать компонент, к которому будет доступ по ссылке?

    Aleksandr Yurchenko, пересмотрел материал по ссылкам, так как смутила Ваша фраза:
    Но в них создание компонента подразумевало "создать и вывести",

    Компоненты - это не про "создать" вообще. Даже если это "iblock.element.add" - это про "вывести форму, обработать результат заполнения формы". То, что при этом создастся элемент инфоблока, второстепенно.

    Как Вашу задачу решают на практике:
    1) древний способ: в корне есть папка ajax ,в ней обработчики. Ссылки, конечно, будут другими, что-то вроде /ajax/network.php?name=vk&action=link . (Кстати, при ajax ссылки вообще необязательны.)
    Внутри файла-обработчика может быть простой императивный PHP код. Например, компания Аспро такое использует в своих решениях
    2) менее древний способ: файл ajax.php в шаблоне компонента. Ссылки опять получаются другими:
    в шаблоне
    <a href="<?=$this->GetFolder()?>/ajax.php?name=vk&action=link">...</a>

    В ajax.php - опять же, что угодно.
    3) ещё менее древний способ - такой же файл ajax.php , но уже в компоненте, а не его шаблоне. Пример из коробки: bitrix/components/bitrix/catalog.section/ajax.php

    Я привёл это для того, чтобы показать, что ЧПУ - не "родной" для Битрикса путь, они изначально мыслили GET-параметрами.

    4) Далее идёт комплексный компонент - по смыслу, это роутер, который разрулит Ваши ЧПУ "/network/link/", "/network/unlink/", "/network/update/" на файлы в своём шаблоне. А в файлах - опять же, что угодно. Вы с тем же успехом можете создать физические папки по этим своим ЧПУ, разницы почти не будет ( но в шаблон комплексного компонента приходят, как и в любой шаблон, $arParams и $arResult ).

    5) и, наконец, современный путь - через роутинг и контроллеры, который Вам показал Максим Ткачев , но которого лично я пока не видел "из коробки".
    Написано
  • Почему иногда не срабатывает событие?

    Код выглядит безумно. Вы вешаетесь на событие OnBeforeCrmCompanyAdd - то есть "до создания компании". Значит, на этом этапе ID не может существовать. Однако Вы его якобы передаёте в CCrmCompany::getList() .
    Далее: первый аргумент этого метода - массив для сортировки результата. Вы же туда пихаете то, что, по Вашим предположениям, должно быть числом ( а по факту получается null, как понимаю).
    Фильтр же пустой, так что метод просто вываливает вообще все компании, которые есть, хотя можно было бы отфильтровать по имени.

    Я бы советовал Вам сначала переписать на адекватный вариант, используя $arFilter и $nPageTop=1, а все случаи, когда выборка оказалась пустой - логировать.
    Тогда, при возникновении проблемы с дублем компанией, будет проще воспроизвести ситуацию.
    Может, хитрый пользователь создаёт компанию с одним именем, а потом переименовывает. Или там пробелы. Или ещё какая-то дичь.
    Написано
  • Зачем объявлять name в конструкторе?

    Сергей delphinpro, небязательно, но местами встречается максима "не должно быть возможности перевести объект в неконсистентное состояние". Может, поэтому
    Написано
  • Миграция с Виндовс на Арч. Какие могут быть проблемы?

    Adamos, у меня опыт противоположный Вашему. Надо было перейти с Jessie на Stretch (или с Wheezy на Jessie, не помню), я сделал apt-get dist-upgrade - и всё нафиг умерло. После этого я, конечно, прочёл в описании к релизу, что если не хотите проблем при обновлении - снесите все сторонние программы, а после перехода поставьте заново. ( источником проблемы был VirtualBox). Но впечатление было испорчено..
    С тех пор сижу на Арче ( точнее, посидел на нём и перешёл на Manjaro), и никаких проблем.
    Я, правда, редко ставлю новый софт - рабочие потребности закрыты, что-то запускаю в Docker. Что-то не получается ( например, не смог заставить работать Bluetooth гарнитуру как гарнитуру, только в режиме наушника), но систему это не ломает; поставил blue-z, потыкался, снёс blue-z.
    Написано
  • Как сделать обработку событий для всех элементов в таблицы?

    winser, тут нет "лучше" или "хуже". Если в Вашей ситуации решение Valeri Tsvetkov сработало без проблем - отлично, пользуйтесь.
    Когда столкнётесь с тем, что такой подход с чем-то конфликтует - вспомните, что можно и по-другому.
    Написано
  • Как сделать обработку событий для всех элементов в таблицы?

    winser, потому что вариант Valeri Tsvetkov опирается на всплытие события. Которое могут перехватить, например.
    И это всегда проблема выбора: обработчик на контейнере, который должен разобраться, что же там прилетело, или идентичные обработчики на пачке идентичных элементов.
    Написано
  • На каких сайтах не используются куки?

    maksam07, я в курсе. Я пытаюсь понять позицию топикстартера по этому вопросу. Мне трудно представить себе сайт без Метрики/Аналитики
    Написано
  • На каких сайтах не используются куки?

    был у меня сайт-визитка, но на нём стояла Метрика. Это не считается?
    Написано
  • Почему при скролле Yandex-браузер тупит?

    window.addEventListener('scroll', function ()...

    Разве не нужно обработчик в debounce обернуть?
    Написано
  • Почему не работают аннотации js?

    Вы бы написали, в какой IDE работаете. И разумнее было бы добавить в теги webpack и название IDE, а node.js убрать.
    Написано
  • Можно ли так доказывать правильность алгоритмов?

    floppa322, откуда Вы взяли это утверждение?
    Например, у Вас есть 10 прямоугольников: 1*10, 2*9 и так далее ( ширина всё время растёт, а высота всё время убывает ). Насколько я вижу, никакой последовательности тут не найти.
    Написано
  • Как преобразовать формулу "наборот"?

    Дмитрий, потому что даже в начальных формулах
    A3-A3*B3 эквивалентно A3*(1-B3)
    и так далее
    Написано