Задать вопрос
  • Как исправить ошибку in_array(): Argument #2 ($haystack) must be of type array, bool given (0)?

    добавь проверку что переменная arSelectFields массив
    if(is_array($arSelectFields) && in_array("ElementValues", $arSelectFields) && isset($item["IBLOCK_ID"]))
    Написано
  • Bitrix как создать компонент, к которому будет доступ по ссылке?

    Aleksandr Yurchenko, тогда вообще нет нужен компонент.
    Михаил Ливач рассказал вам про древний путь через AJAX .php файлы к которых вы реализуете обработку запросов. Получаете $_POST/$_GET или если доберетесь до битрикс API то объект request
    Но битрикс как фреимворк уже давно (более 5=ти лет) представляет контроллеры и роутинг
    Для реализации контроллера модуля вам надо реализовать самый простой модуль
    в него добавит .settings.php
    с кодом
    <?php
    
    return [
        'controllers' => [
            'value'    => [
                'defaultNamespace' => '\\Bquadro\\Fos\\Controllers',
            ],
            'readonly' => true,
        ],
    ];


    Этот код подключает контроллер
    local/modules/bquadro.fos/lib/controllers/foscontroller.php
    Обратите внимание на отличие Битрикс autoload classes от PSR-4 - имя файла в нижнем регистре
    в контроллере реализуете класс который наследуете от Bitrix\Main\Engine\Controller;

    namespace Bquadro\Fos\Controllers;
    use Bitrix\Main\Application;
    use Bitrix\Main\Engine\Controller;
    
    class FosController extends Controller
    {
        public function getDefaultPreFilters(): array
        {     
            $prefilters = [];
            return $prefilters;
        }
    
        public function submitAction()
        {
            $request = Application::getInstance()->getContext()->getRequest();
            return $request->getPostList()->toArray();
         }
    }


    AJAX запрос к методу котроллера
    let response = await BX.ajax.runAction('bquadro:fos.foscontroller.submit', {
                data: formData
            })

    где 'bquadro:fos.foscontroller - namespase указанный в settings
    submit - назване метода без суффикса Action
    метод getDefaultPreFilters - обязателен. Потом почитаете про префильтры
    Написано
  • Bitrix как создать компонент, к которому будет доступ по ссылке?

    web/social/index.php
    в index.php
    <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
    //подключение ядра битрикс
    
    $APPLICATION->IncludeComponent(
    	"custom:network", 
    	".default",[] 
    ?>
    Написано
  • Bitrix как создать компонент, к которому будет доступ по ссылке?

    если вам надо при клике на какой-то элемент делать запрос к API VK - то вам надо смотреть в сторону контроллеров в битриксе. их можно реализовать как в компоненте так и в модуле. Но с наскока, не понимая как работают компоненты в битрикс, думаю вы будете долго тыкасться не в те двери и ругать битрикс.
    Если вы не используете Коплексный компонент (аналогичного понятия в ларе нет), то вам не надо ничего в urlright прописывать. Битрикс не имеет единой точки входа. Просто делаете паку и кидаете туда index.php вуаяля - у вас новый раздел
    Только умоляю вас не надо городить все решение в индексном файле. не надо в нем обрабатывать реквесты и слать запросы. Сделайте нормальный кастомный комопннет. релизуйте контроллер. сделайте модельки. Это все можно сделать
    Написано
  • Bitrix как создать компонент, к которому будет доступ по ссылке?

    Совет один - начать со справки Битрикс.
    Первое - курс Битрикс Администратор
    Обычно после него 90% вопросов как это работает отпадает.
    Вы же когда Лару начинали изучать - читали справку и гайды по ларе.
    Так вот битрикс в это ничем не отличается от лары - надо изучить систему и понять как она устроена.
    Роутинг у битрикса есть и работает ровно также как и в ларе. Синтаксис практически такой же.
    Но в вашем случае до роутинга еще надо пару недель поизучать основы
    Написано
  • Как отловить событие изменения остатка у товара?

    потому-что обмен с 1с не создает событий при изменении в элементах.
    есть событие OnSuccessCatalogImport1C - которое вызывается ПОСЛЕ окончания обмена
    Написано
  • Как получить ссылки и данные с умного фильтра БИТРИКС?

    $el_res= CIBlockElement::GetByID( $ID );
    
    $if ( $el_arr= $el_res->GetNext() ) {
    
    	echo $el_arr[ 'DETAIL_PAGE_URL' ];
    
    }
    Написано
  • Почему мой скрипт установки не работает?

    Homebrew не рекомендуется устанавливать или запускать от имени пользователя root. Причина ошибки "Don't run this as root!" заключается в том, что ваш скрипт, выполняется с правами root, что приводит к конфликту с политикой безопасности Homebrew.
    Ошибки вроде "command not found" указывают на то, что среда, в которой выполняется скрипт, не включает в себя путь к исполняемым файлам Homebrew (/usr/local/bin), особенно если Homebrew был установлен в другом месте (например, /opt/homebrew для чипов Apple Silicon).
    Добавьте в скрипт установку пути к исполняемым файлам Homebrew в переменную окружения PATH. Это можно сделать с помощью команды export PATH="/usr/local/bin:$PATH" для Intel Mac или export PATH="/opt/homebrew/bin:$PATH" для Apple Silicon Mac, прежде чем вызывать brew или другие команды.
    Написано
  • Неверный анализ текста?

    Токенизатор неправильно обрабатывает одиночные кавычки внутри строк.
    При обнаружении одиночных кавычек он переключает флаг stringUse, но неправильно управляет содержимым строки между кавычками.
    Необходимо различать пробелы, которые разделяют токены, и пробелы, которые являются частью строк или других контекстов.
    Массивы operators и operatorsTypes должны быть синхронизированы, и их использование должно быть четко определено, чтобы предотвратить несоответствия или возврат неправильных типов.
    var position = 0
    
    const variables = []
    
    const kw = [
      'VAR', 'STRING', 'FUN', 'INT', 'FLOAT', 'CONST'
    ]
    
    const operators = [
      '(', ')', '=', ':', '{', '}'
    ]
    
    const operatorsTypes = [
      'LEFT', 'RIGHT', 'INIT', 'TYPE', 'SLEFT', 'SRIGTH'
    ]
    
    function error(text) {
      throw new Error(`TursLang:MainStream:${position}\n\n${text}`)
    }
    
    function tokenType(text) {
      if (!isNaN(text)) return 'NUMBER'
      if (operators.indexOf(text) != -1) return operatorsTypes[operators.indexOf(text)]
      if (text.toLowerCase() == text && /[a-zA-Z]+/.test(text)) {
        variables.push(text)
        return 'VARIABLE'
      }
      if (text.toUpperCase() == text && kw.includes(text)) return 'KEYWORD'
      error(`Unexpected identifier '${text}'`)
    }
    
    function token(text, types = null) {
      const y = types == null ? tokenType(text) : types
      return {
        type: y,
        text
      }
    }
    
    function tokenize(text) {
      const tokensList = []
      var stringUse = false
      var string = ''
    
      for (; position < text.length; position++) {
        var ch = text[position],
        next = position + 1 < text.length ? text[position + 1] : ''
    
        if (stringUse && ch != '\'') {
          string += ch
          continue
        }
    
        if (ch == '\'') {
          stringUse = !stringUse
          if (!stringUse) {
            tokensList.push(token(string, 'STRING'))
            string = ''
            continue
          }
        }
    
        if (!stringUse) {
          if (ch == ' ' || operators.includes(next)) {
            if (string) tokensList.push(token(string.trim()))
            string = ''
          } else if (operators.includes(ch)) {
            tokensList.push(token(ch))
          } else {
            string += ch
          }
        }
      }
    
      if (string) tokensList.push(token(string.trim()))
      return tokensList.filter(i => i.text.trim() !== '')
    }
    
    const tokens = tokenize(`
    
      FUN print() {
    
      }
    
      FUN main() {
      CONST: STRING hello = 'Hi!'
      print(hello)
      }
    
      `)
    console.log(tokens.map(token => `${token.type}: ${token.text}`).join('\n'))

    Основные изменения
    Исправлена обработка одинарных ковычек, чтобы правильно заключать строки в одинарные кавычки и вставлять завершенную строку только при обнаружении закрывающей кавычки.
    Обновлено разделение токенов, чтобы более надежно определять, когда вставлять токен, на основе наличия пробелов и следующего символа, являющегося оператором.
    Добавлена обработка крайних значений - проверка на наличие строк, оставшихся в буфере в конце синтаксического анализа.
    Необходимо правильно маркировать вводимые данные, включая правильную обработку строкового литерала для "hello".
    Написано
  • Почему перестало корректно работать поиск по заголовкам битрикс?

    function BeforeIndexHandler($arFields) - просит сделать статическим методом
    Написано
  • Как найти в массиве ответа API нужное значение, при том что значение может быть написано в разном регистре?

    приведите строки, искомую и ключ, к одному регистру. например к нижнему. и сравнивайте строки в одном регистре
    Написано
  • Вирус на сайте добавляет строки в index.php по всем директориям. Как избавиться?

    ну иплюс накатите последние обновления. он заражется через модуль VOTE. либо его удалите либо накатите обновления
    Написано
  • Вирус на сайте добавляет строки в index.php по всем директориям. Как избавиться?

    это вирус прописывает себя в агенты на кроне. отключите крон. потом все почистите.
    Написано
  • Можно ли из значения из бд сделать переменную js?

    Подозреваю ч ты хочешь получить на ФРОНТЕ данные с БЕКА. Для этого тебе сначала нужно отправить запрос на бек. там его обработать. получить данные из БД и в ответе вернуть JSON с полученными данными.
    Написано
  • Почему в компоненте catalog.section параметр SECTION_ID не влияет на выбираемые товары?

    Александр Маджугин, инициализации всего компонента. Второй вопрос. Как в переменную передаете значение. Она точно не пустая? Что будет если указать ID в параметрах?
    Написано
  • Php не видит name из html. Уверен, что все верно написано. Что делать?

    Ипатьев, я так понимаю камень в мой огород. Ты имеешь виду что в форме button вместо submit. да форма по факту не отправляется. Но если ты это сразу увидел. наверное стоило подсказать неофиту. явно же что у него уже замылен глаз или он не знает в чем разница
    Написано
  • Php не видит name из html. Уверен, что все верно написано. Что делать?

    Ипатьев, увидев структуру файлов. мы увидим где действительно лежит фаил index.php и поможем автору осознать важность понимания абсолютных и относительных путей.
    Написано
  • Php не видит name из html. Уверен, что все верно написано. Что делать?

    PabloEscobar213,
    в index.php сделай $postData = file_get_contents('php://input'); file_put_contents('post.log', $postData); и посмотри лог что приходит. Если ничего тогда структуру файлов в студию
    Написано
  • Php не видит name из html. Уверен, что все верно написано. Что делать?

    PabloEscobar213, дружище тебя здесь мучают вопросом -где в твоей форме элемент отвечающий за submit. input или button submit. ты похоже вставил его за тегом from
    Написано