Виталий Фантич (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Как проникает Вирус в assets Битрикс: папка assets/images ?
 
Кому-то уже понятно как проникает данный вирус https://bxproger.ru/public/bitrix/virus-v-assets-bitriks-papka-assets-images-pod-ugrozoy/ ?
Изменено: Фантич Виталий - 14.02.2025 07:46:52
Кнопка переключателя языков для шаблона Intec Universe - пример кода на javascript
 
Вставляем код по ссылке на вкладке JavqScript: /bitrix/admin/constructor_builds_edit.php?build=1&lang=ru
Код
BX.ready(function () {
    const curUrl = window.location.href;
    const origin = window.location.origin;

    // Находим родительский блок
    const buttonsContainer = BX.findChild(document, { className: 'widget-authorization-buttons' }, true);

    if (!buttonsContainer) {
        console.error('Контейнер widget-authorization-buttons не найден!');
        return;
    }

    // Вспомогательная функция для создания элементов
    const createElement = (tag, props = {}, children = []) => {
        return BX.create(tag, { props, children });
    };

    // Формируем ссылку и текст для кнопки
    const href =
        BX.message('SITE_DIR') === '/'
            ? '/ru' + curUrl.replace(origin, '')
            : curUrl.replace(BX.message('SITE_DIR'), '/').replace(origin, '');
    const text = BX.message('LANGUAGE_ID') === 'ua' ? 'RU' : 'UA';

    // Создаем новую кнопку с минимальной вложенностью
    const newButton = createElement('div', { className: 'intec-grid-item-auto' }, [
        createElement('div', { className: 'widget-authorization-button' }, [
            createElement('div', { className: 'intec-grid intec-grid-nowrap intec-grid-a-v-center intec-grid-i-h-4' }, [
                createElement('div', { className: 'intec-grid-item-auto' }, [
                    createElement('a', { className: 'widget-authorization-button-content', href }, [text]),
                ]),
            ]),
        ]),
    ]);

    // Добавляем новый блок в контейнер
    BX.append(newButton, buttonsContainer);
});
Статусы в таблице b_event
 
F — письмо по всем почтовым шаблонам не смогли быть отправлены
P — часть писем отправлена успешно, часть писем — безуспешно
0 — почтовые шаблоны не были найдены
N — почтовое событие ещё не обрабатывалось функцией CEvent::CheckEvents\
дата и время Заказа больше даты и времени документа! - 1C Битрикс обмен заказами ошибка
 
В строке номер "1" табличной части "Товары": дата и время Заказа больше даты и времени документа!
UNCAUGHT_EXCEPTION - [Bitrix\Main\ArgumentOutOfRangeException] The value of an argument 'methodName' is outside the allowable range of values
 
UNCAUGHT_EXCEPTION - [Bitrix\Main\ArgumentOutOfRangeException]
The value of an argument 'methodName' is outside the allowable range of values (100)
/bitrix/modules/sale/lib/internals/transferprovider.php:30
Status does not equal Part. PostingId: - Ошибка в рассылке почты.
 
Привет, коллеги!
Помогите разобраться с ежедневной рассылкой новостей для почты.
Создал периодическую рассылку с использованием компонента bitrix:news.list.mail с параметром "Не отправлять выпуск если недостаточно указанного количества новых элементов.".

Теперь если новостей было недостаточно - выпуск не уходит.
Но в логи кидает:

Module: sender
Status does not equal Part. PostingId: 1147

По таблице b_sender_posting  видно что статус - А



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

Что тут не так? Где искать проблему ?
Сравнение GPT-4o и GPT-3.5 Turbo на Битрикс: Кто победит?
 

Уважаемые участники форума,

Новая эра в мире искусственного интеллекта наступила с появлением двух мощных моделей: GPT-4o и GPT-3.5 Turbo. Обе эти модели интегрированы в наш модуль на Битрикс и предоставляют пользователю уникальные возможности в области генерации текста.

GPT-4o — наша новая флагманская модель, обладающая беспрецедентной скоростью и точностью. Она способна создавать профессиональные тексты в реальном времени и значительно улучшает понимание текста, аудио и изображений.

GPT-3.5 Turbo — долгожданное улучшение нашего предыдущего модуля, которое также предлагает высокое качество генерации текста и мощные функции.

В этой ветке форума приглашаем вас к обсуждению и сравнению этих двух моделей. Какие преимущества и недостатки у каждой из них? Какая из них лучше подходит для ваших конкретных задач? Давайте вместе разберемся, какая модель лучше соответствует вашим потребностям и требованиям к контенту.

Присоединяйтесь к обсуждению и делитесь своими мыслями и опытом!

Ссылка на модуль https://marketplace.1c-bitrix.ru/solutions/bxproger.copymaster/#tab-about-link

GPT-4o на Битрикс, Встречайте GPT-4o на Битрикс!
 

Дорогие пользователи,

Мы рады представить вам нашу новую флагманскую модель — GPT-4o, интегрированную в наш модуль! GPT-4o открывает новые горизонты в создании текстов, обеспечивая беспрецедентную скорость и точность.

Основные преимущества GPT-4o:

  • Мгновенная генерация текстов: Создавайте профессиональные тексты в считанные секунды.
  • Улучшенное понимание: GPT-4o обладает улучшенными способностями к обработке текста, аудио и изображений, что повышает качество конечного продукта.
  • Эффективность и экономичность: Новая модель работает быстрее и дешевле, чем предыдущие версии, что делает ее идеальным инструментом для вашего бизнеса.

Приглашаем всех обсудить возможности и преимущества новой модели, поделиться своими впечатлениями и задать вопросы. Мы уверены, что GPT-4o станет незаменимым помощником для всех, кто стремится к совершенству в создании контента.

С нетерпением ждем ваших отзывов и обсуждений!

Ссылка на модуль https://marketplace.1c-bitrix.ru/solutions/bxproger.copymaster/#tab-about-link
Изменено: Фантич Виталий - 22.05.2024 19:44:45(Добавил ссылку)
Incorrect integer value: '' for column 'IBLOCK_SECTION_ID' at row, Incorrect integer value: '' for column 'IBLOCK_SECTION_ID' at row при сохранении переводов раздела
 
Ошибка MySQL Incorrect integer value: '' for column 'IBLOCK_SECTION_ID' at row при сохранении переводов раздела  рещается:

Пройдите проверку системы  в админке "Полное тестирование системы" (Рабочий стол->Настройки->Инструменты->Проверка системы) и исправьте все ошибки.

А именно Режим работы MySQL:
Код
Параметр sql_mode задаёт режим работы MySQL. Может принимать значения, несовместимые с 1С-Битрикс. Чтобы установить режим работы по умолчанию, добавьте в /bitrix/php_interface/after_connect_d7.php:
$connection = Bitrix\Main\Application::getConnection();
$connection->queryExecute("SET sql_mode=''");
$connection->queryExecute("SET innodb_strict_mode=0");


Обратите внимание, что в Mysql 8.0.26 и новее для настройки параметров соединения может потребоваться привилегия пользователя БД SESSION_VARIABLES_ADMIN. Если текущих привилегий недостаточно, то необходимо обратиться к администратору БД или настроить параметры в файле конфигурации Mysql.
Умный фильтр выводит символьные коды вместо названий на Мультиязычности
 
Если в умном фильтре свойства типа справочник (Highload-блок) вместо названий значений выводятся их символьные коды, то скорее всего не создан фасетный индекс для инфоблока.
Для решения данной проблемы просто пересоздайте фасетные индексы.  
Модуль Мультиязычновсти: Fatal error: Declaration of FCUserTypeManager::GetUserFields, Fatal error: Declaration of FCUserTypeManager::GetUserFields($entity_id, $value_id = 0, $LANG = false, $user_id = false) must be compatible with CUserTypeManager::GetUserFields($entity_id, $value_id = 0, $LANG = false, $user_id = false, $selectFields = nu
 
Внимание!‼️
Обновился Битрикс.

После обновления у Вас будет ошибка:

⛔️Fatal error: Declaration of FCUserTypeManager::GetUserFields($entity_id, $value_id = 0, $LANG = false, $user_id = false) must be compatible with CUserTypeManager::GetUserFields($entity_id, $value_id = 0, $LANG = false, $user_id = false, $selectFields = null)

✅ Замените данный файл в папке модуля: /classes/FCUserTypeManager.php

На прикрепленный в этом сообщении: https://t.me/bxproger/84
Изменено: Фантич Виталий - 16.01.2024 05:12:04
Получение событий onCustomEvent для кастомизации интерфейса Битрикс 24
 
Вставляем в консоль данный скрипт
Код
let originalBxOnCustomEvent = BX.onCustomEvent;

BX.onCustomEvent = function (eventObject, eventName, eventParams, secureParams) {

    let logData = {
        eventObject: eventObject,
        eventName: eventName,
        eventParams: eventParams,
        eventParamsClassNames: [],
        secureParams: secureParams
    };

    for (var i in eventParams) {
        let param = eventParams [i];
        if (param !== null && typeof param == 'object' && param.constructor) {
            logData['eventParamsClassNames'].push(param.constructor.name)
        } else {
            logData['eventParamsClassNames'].push(null);
        }
    }
    
    console.log(logData);

    originalBxOnCustomEvent.apply(null, [eventObject, eventName, eventParams, secureParams]);
}


После чего будут логироваться все события которые вызываются например при клике на кнопку!
Параметр bXhtmlStyle для bitrix_sessid_post
 
Было бы хорошо если бы в функции bitrix_sessid_post присутвовал параметр bXhtmlStyle аналогично CMain::ShowHead. Таким образом можно было бы количество ошибок разметки свести к нулю на validator.w3.org, указав параметр false
Аспро Макс - Переопределяет каноническую ссылку
 
К примеру у нас site.com, и в свойствах главного раздела указана каноническая ссылка , например https://another.site.com. И если установлен модуль aspro.max, то она будет игнорироваться. А будет установлена каноническая ссылка на текущее имя сайта, например site.com или www.site.com. В зависимости где находимся.

Это настройками решается, или это баг? Кто знает?  
[TypeError] Unsupported operand types: string / int (0) /bitrix/components/bitrix/forum/component.php:278
 
После обновления форума появилась ошибка:
Код
[TypeError] Unsupported operand types: string / int (0)/bitrix/components/bitrix/forum/component.php:278
Решение в файле bitrix/components/bitrix/forum/component.php
Код
Строку 
$arParams["TIME_INTERVAL_FOR_USER_STAT"] = ($arParams["TIME_INTERVAL_FOR_USER_STAT"] ?? 60) / 60;

Заменить на:
$arParams["TIME_INTERVAL_FOR_USER_STAT"] = (int)($arParams["TIME_INTERVAL_FOR_USER_STAT"] ?? 60) / 60;
Изменено: Boudybuilder - 17.09.2023 16:05:21
Аспро - фраза обязательные поля в main.profile
 
В компоненте main.profile на странице Профиль пользователя есть надпись в форме "обязательные поля"  которая подтягивается из языковых файлов.
Код
<?=GetMessage('FORM_REQUIRED_FIELDS');?>
Мы заполнили все языковые фразы с кодом фразы FORM_REQUIRED_FIELDS на украинском языке, но надпись по прежнему выводится на английском
Аспро - фраза "Быстрый просмотр" на разных языках
 
Назначать надписи в шаблоне Аспро можно в настройках в разделе "Выражения и названия".
И вывод этих фраз устроен таким образом что если в настройках их не указать то они будут подтягиваться с языковых файлов по умолчанию на текущем языке файла.
Так как у нас один сайт на двух языках , то нам нужно выводить надпись "Быстрый просмотр" на разных языках. Для этого мы в настройках убрали значения для этой фразы.

Например в списке товаров в шаблоне компонента catalog.section за вывод этой фразы отвечает код
Код
<?if($fast_view_text_tmp = CMax::GetFrontParametrValue('EXPRESSION_FOR_FAST_VIEW'))
   $fast_view_text = $fast_view_text_tmp;
else
   $fast_view_text = Loc::getMessage('FAST_VIEW');?>

Где видно что фраза должна браться из кода фразы FAST_VIEW.

Мы поменяли абсолютно во ВСЕХ языковых  файлах эту фразу, но Loc::getMessage('FAST_VIEW') не показывает изменения.  
Перевод платежных систем, служю доставки, свойств заказа на странице оформления заказа
 
Все переводы нужно вносить в файл: bitrix/modules/modulemarket.translator/lang/ua/lib/order/orderclass.php

Заполнить языковые фразы в массив с ключами в таком формате таком формате

Префикс_ID_Поле

Префикиксы:
  • Для Типов покупателей - PT
  • Для Платежных систем - PS
  • Для Служб доставки - D
  • Для свойств заказа - PROP
Пример:
Код
// Типы покупателей (префикс_ID_Ключ)
$MESS['PT_1_NAME'] = 'Замовити товар';


// Платежные системы (префикс_ID_Ключ)
$MESS['PS_14_NAME'] = 'Оплата замовлення при отриманні';
$MESS['PS_14_PSA_NAME'] = 'Оплата замовлення при отриманні';
$MESS['PS_14_DESCRIPTION'] = 'Ви можете сплатити замовлення готівкою, банківською карткою або онлайн при отриманні';


// Службы доставки (префикс_ID_Ключ)
$MESS['D_13_NAME'] = 'Нова Пошта (Доставка до відділення Нова пошта)';
$MESS['D_13_OWN_NAME'] = 'Доставка у відділення Нова пошта';
$MESS['D_13_DESCRIPTION'] = 'забираєте товар самостійно із відділення НП. Зверніть увагу, що товар автоматично повертається через 5 днів після отримання SMS!';

$MESS['D_2_NAME'] = 'Я сам заберу товар із магазину';
$MESS['D_2_OWN_NAME'] = 'Я сам заберу товар із магазину';
$MESS['D_2_DESCRIPTION'] = 'Ви можете самостійно забрати замовлення із нашого магазину.';


// Свойства (префикс_ID_Ключ)
$MESS['PROP_93_NAME'] = 'ПІБ';
$MESS['PROP_93_DESCRIPTION'] = 'Тарас Григорович Шевченко';
Надписи из настроек модуля Аспро в компонентах на разных языках
 
Некоторые модули такие как instargam.max могут подтягивать надписи из настроек модуля. В данном случае например "Мы в инстаграм" и "Все публикации".
Но для вывода этих надписей Аспро так же предусмотрели их вывод по умлочанию из языковых файлов компонента. И если у нас многоязычность реализована на одном сайте, то если заполнен параметр в настройках модуля, то из языкових файлов фраза подтягиваться не будет.

Для решения данного вопроса , достаточно оставить параметр пустым, и уже переводы фраз выполнить в локализации. Только при условии что  параметр пустой будет подтягиваться фраза из локализированных языковых файлов компонента.
Симлинки для Аспро
 
Чтобы шаблон Аспро корректно работал и подключались нужные блоки нужно в языковом разделе сайта прокинуть симликни  на файлы и папки.
Например у вас дополнительный язык в разделе ua.
Тогда прокидываем для папок:
  1. /var/www/dev/site.com.ua/ajax /var/www/dev/site.com.ua/ua/ajax

  2. /var/www/dev/site.com.ua/include /var/www/dev/site.com.ua/ua/include

Для файлов:
  1. /var/www/dev/site.com.ua/indexblocks_index1.php /var/www/dev/site.com.ua/ua/indexblocks_index1.php