• Как сократить данные выводимые на сайте из доп. поля?

    Javascript варианты:
    если задачу понять как "ссылки должны быть в разметке, но видна должна быть только первая", то оберните список ссылок в контейнер с фиксированной высотой и overflow: hidden.
    А если ссылки, кроме первой, не нужны - то querySelectorAll(), forEach() и remove() в помощь.
    Ответ написан
    Комментировать
  • Как реализовать мониторинг приложения на Bitrix?

    в Bitrix VA для мониторинга предлагается использовать munin и nagios. Увы, ни разу не настраивал.
    Сервер Zabbix - да, прожорлив, но на целевых машинах запускаются клиенты, а они гораздо скромнее.
    Ответ написан
    Комментировать
  • Почему страницы элементов инфоблока открывают главную страницу?

    Если я Вас правильно понял, то при переходе по ссылке на товар в каталоге отображается главная страница (хотя URL в адресной строке браузера верный). Варианта вижу два:
    1) смотрите в urlrewrite.php правила выше (то есть блихе к началу файла) того, что Вы показали в комментариях:
    'CONDITION' => '#^/catalog/#',

    Помните, что ни ключи массива ( 2 в Вашем случае ), ни параметр SORT не несут никакого смысла.

    2) что-то не так в .htaccess или в конфигурации nginx
    Ответ написан
    Комментировать
  • Как обернуть все таблицы с помощью preg_replace?

    Решение Вашего затыка - в модификаторе "s": https://www.php.net/manual/en/reference.pcre.patte...
    Ответ написан
    Комментировать
  • Как в битриксе обновить товары в заказе?

    https://dev.1c-bitrix.ru/api_d7/bitrix/sale/techni... тут вроде все расписано
    Ответ написан
    Комментировать
  • Раздувает кэш bitrix menu?

    посмотрите, есть ли в параметрах меню "учитывать группы пользователей" (MENU_CACHE_USE_GROUPS). Если есть, но проект позволяет отключить ( верно для в 99% проектов), то выключите. И в других компонентах выключите тоже
    В Битриксе кому-то взбрело в голову для уникализации анонимных ( не залогиненных) посетителей присваивать каждому случайный фейковый ID группы пользователей. Таким образом, каждый аноним ( например, боты в этом плане хороши) провоцирует новые файлы кеша.
    Ответ написан
    Комментировать
  • Почему не работает CFile::MakeFileArray(); в агенте?

    искать в проекте копию Psr\Http\Message\StreamInterface другой версии . ( Одна копия запихана в недра модуля main ).
    Ответ написан
    1 комментарий
  • Как составить SQL запрос для отчета с разным количеством строк по категории?

    если исходную таблицу можно трансформировать, то я добавил столбец item_id и получил естественный первичный ключ (department_id, type_id, item_id). Столбец item идёт в довесок и, в общем-то, не нужен.
    данные для воспроизведения:
    CREATE TABLE `items` (
      `department_id` int(10) unsigned NOT NULL,
      `type_id` int(10) unsigned NOT NULL,
      `item_id` int(10) unsigned NOT NULL,
      `item` varchar(255) NOT NULL,
      PRIMARY KEY (`department_id`,`type_id`,`item_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    INSERT INTO `items` (`department_id`, `type_id`, `item_id`, `item`) VALUES
    (1,	1,	1,	'1_1_0001'),
    (1,	1,	2,	'1_1_0002'),
    (1,	2,	1,	'1_2_0001'),
    (1,	3,	1,	'1_3_0001'),
    (1,	3,	2,	'1_3_0002'),
    (1,	3,	3,	'1_3_0003'),
    (1,	3,	4,	'1_3_0004'),
    (1,	3,	5,	'1_3_0005'),
    (2,	1,	1,	'2_1_0001'),
    (2,	2,	1,	'2_2_0001'),
    (2,	3,	1,	'2_3_0001');


    Запрос для решения задачи:
    SELECT t.department_id, 
    IFNULL( t1.item, '' ) as type_1,
    IFNULL( t2.item, '' ) as type_2,
    IFNULL( t3.item, '' ) as type_3,
    IFNULL( t4.item, '' ) as type_4
    FROM `items` t
    LEFT JOIN `items` t1 ON ( t.department_id=t1.department_id AND t.item_id=t1.item_id AND t1.type_id=1 )
    LEFT JOIN `items` t2 ON ( t.department_id=t2.department_id AND t.item_id=t2.item_id AND t2.type_id=2 )
    LEFT JOIN `items` t3 ON ( t.department_id=t3.department_id AND t.item_id=t3.item_id AND t3.type_id=3 )
    LEFT JOIN `items` t4 ON ( t.department_id=t4.department_id AND t.item_id=t4.item_id AND t4.type_id=4 )
    GROUP BY t.department_id, t.item_id

    Я добавил 4-й столбец для иллюстрации NULL . Таким образом, есть 2 подхода:
    1) перед конструированием знать уникальные значения столбца type_id. Тогда надо добавить в таблицу ещё один индекс ( просто INDEX) чисто по этому столбцу, для скорости предварительного запроса.
    2) предполагать максимальный type_id и тупо строить по диапазону 1..type_id_max
    Ответ написан
    4 комментария
  • Как правильно реализовать доступ по SSH?

    если просто хочется при подключении вводить что-то человеческое, а не ip, то в этом очень помогает ~/.ssh/config
    Ответ написан
    Комментировать
  • Как в map вернуть развернутый массив?

    обязательно надо через map ? Без него всё тривиально:
    func = function (arr) {
        return [].concat( ...arr );
    };

    А с ним какой-то выверт получается:
    func = function (arr) {
        let tmp = [];
        return arr.map( (item => tmp = tmp.concat(item)) ).pop();
    };
    Ответ написан
    Комментировать
  • Как получить ссылки и данные с умного фильтра БИТРИКС?

    Касательно ссылок ( Вы же говорите про фильтр в режиме ЧПУ и вот эти '-is-' ?) - ха-ха, полмесяца и лезть в такое болото.. Если коротко, то в Битриксе не нашлось ни одного достаточно умного человека, чтобы сделать этот функционал в виде утилиты. Посмотрите в код модуля https://marketplace.1c-bitrix.ru/solutions/sotbit.... , они воспроизводили этот механизм ( надеюсь, в демо-версии нужная часть не обфусцирована).
    Возможно, этот модуль закроет Вашу задачу целиком.
    Ответ написан
  • Bitrix Как сделать вывод в детальной странице товара название товара?

    Поскольку все манипуляции Вы проводите в браузере - выбираете цвет и куда-то сохраняете id торгового предложения, связанного с этим цветом, то к PHP это отношения не имеет, нужен Javascript.

    Вариант хороший: у Вас на странице уже есть все данные о торговых предложениях данного товара. Берёте и пользуетесь.
    Вариант обоснованный: Вы опасаетесь, что секунду назад цена торгового предложения могла измениться, или оно стало недоступным. Делаете ajax-запрос.
    Вариант нехороший: Вы в шаблоне компонента использовали данные о торговых предложениях только для того, чтобы вывести палитру цветов товара, а остальное выкинули. Тогда надо доработать шаблон - поместить нужные данные в JS-объекты ( в смысле, что эти объекты будут созданы при загрузке страницы; в шаблонах Битрикса такое встречается), или в data-атрибуты блока с цветом. После чего см. вариант "хороший".
    Ответ написан
    Комментировать
  • Почему страницы раздела перенаправляет на 404?

    С одной стороны - это старый баг Битрикса. С другой - несколько сомнительно выглядит структура, в которой элементы и разделы на одном уровне. Если ничто не мешает, я бы посоветовал перейти на схему
    /projects/#SECTION_CODE#/#ELEMENT_CODE#/

    Вашу схему URL можно реализовать, только если кастомизировать компонент news , потому что вызов 404 там, в районе 250-й строки:
    <?php
    if($b404 && CModule::IncludeModule('iblock'))
    Ответ написан
  • Какую формулу использовать?

    монеты могут быть в значении 0.0005

    Если это - минимальное значение, то перед началом расчётов домножаете всё на 10000 и далее спокойно округляете, без всякой арифметики с плавающей точкой.
    Ответ написан
    Комментировать
  • Какой SSL-сертификат лучше использовать для стэйджинга?

    Let`s Encrypt , очевидно. Я вообще не понимаю, кому сейчас нужны покупные сертификаты, кроме банков и подобных структур, где наличие покупного сертификата вписано в регулятивные правила отрасли.
    Ответ написан
    Комментировать
  • Как сменить шаблон компонента?

    Должно работать. Сделайте отладочный вывод $linck и $template перед вызовом компонента, посмотрите. Может, этот кусок у Вас кешируется, может, ещё что-то.
    Ответ написан
    Комментировать
  • Как убрать анонс или подробно в битрикс?

    Никак. В админке Вы можете просто скрыть эти поля ( редактирование элемента, и там справа шестерёнка aka "настройки формы" ).
    Кстати про highload инфоблоки: если Вы создадите "Справочник" для обычного инфоблока ( а это действие и породит highload инфоблок), а потом попробуете из этого справочника удалить ненужные поля, то огребёте проблем.
    Ответ написан
    Комментировать
  • Как из php передать ошибки в js?

    сделайте обработку формы на ajax и это решит Вашу проблему. Потому что поменяется формат взаимодействия:
    1) форма отправляет на бэкенд сообщение - например, массив данных формы,
    2) бэкенд в ответ тоже шлёт сообщение - например, массив, упакованный с помощью json_encode() .
    3) обработчик формы решает, что делать с полученным ответом. Например, если в ответе есть непустое поле error , то вызвать displayNotificationerror( response.error ) . Или что-то ещё сделать.
    Ответ написан
    Комментировать
  • Как изменить цвет карточки сделки в зависимости от ее статуса?

    Если речь про цвет разных стадий сделки, то он нстраивается в публичной части: "настройки CRM ( /crm/configs/ ) -> Воронки продаж ( /crm/configs/deal_category/ )", затем кликаете по "гамбургеру" возле нужного направления и выбираете "редактировать стадии". Если навестись на стадию, то там есть иконка типа стаканчика, позволяет выбрать цвет заливки.
    Ответ написан
    Комментировать
  • Возможно ли отслеживать системные уведомления?

    По-моему, на скриншоте таймлайн в сделке. Смотрите на Bitrix\Crm\Timeline\TimelineEntry и всё, что с этим связано
    Ответ написан
    Комментировать