Ответы пользователя по тегу PHP
  • Как в битриксе при query join объединить вывод данных?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Выборку делать не через fetch() а через getObject()
    Ответ написан
    Комментировать
  • Как убрать загрузку всей страницы после отправки формы?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Вынесите обработчик в отдельный файл. Судя по всему, он вызывается «в окружении» остальной страницы
    Чтобы было например так:
    <?
    //Минимальный пролог — если нужно использоваться Битрикс-API
    require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
    
    //Ваш обработчик
    ***
    ?>


    Через аякс посылайте данные на него, в ответе принимайте текст или JSON.
    Ответ написан
    Комментировать
  • Как сделать повторную проверку выбранного пользователя из группы?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Похоже на гадание.
    Даже в предоставленном исходнике нет функции changeLinkedMeetings, в котором скорее всего производится переключение значений, но без перезагрузки страницы.
    Скорее всего, в этом и причина. При загрузке страницы производится проверка, а при переключении пользователя страница не перезагружается и соответственно не перепроверяется доступ.
    Ответ написан
  • Как организовать многоуровневые комментарии с постраничной навигацией?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    www.realcommenter.com

    Специально запустил тестовый поддомен, где регулярно генерится в автомате новая порция комментариев.
    Там уже 1 800 000 комментариев
    test.realcommenter.com
    Ответ написан
    Комментировать
  • Как правильно применить отрицание в регулярных выражениях?

    AlexeyGfi
    @AlexeyGfi Автор вопроса
    YouTube >>> Битриксоид из Колхоза
    Удалось расковырять самому.
    https://regex101.com/r/suCdNB/4/

    Основываясь на условных подмасках:
    php.net/manual/ru/regexp.reference.conditional.php
    а именно:
    (?(condition)yes-pattern)
    (?(condition)yes-pattern|no-pattern)


    Наш анализ сводится к такому: «Если выполняется условие "не содержится match", мы применяем шаблон [^>] (который соответствует телу тега <a=тело=>), иначе (если match присутствует), применяем пустой шаблон (то есть пытаемся найти пустой тег <a>)».

    Пустые теги <a> теоретически возможны (хоть и с точки зрения внедрения ссылки в текст безопасны), а значит наша регулярка не даёт железно 100%-результат. Потому в качестве no-pattern-а можно дать любую невалидную абракадабру (просто, чтобы её не было найдено).

    <(a)(?(?!match)[^>]|false)+>[^<]*</\1>
    Ответ написан
    Комментировать
  • Почему очищается массив $_POST?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Если вы обновите страницу, она не попросит вас подтвердить отправку формы (как обычно бывает при отправке POST-запроса).
    Это значит, что страница прошла через LocalRedirect( ... );

    Первое, что я бы сделал — прошёлся по лабиринту за ниточку xdebug-а.

    Возможно в _after подключении срабатывает условие переадресации, а перехватить _POST нужно до его подключения и самому сделать редирект.

    UPD: вот ещё, может поможет:
    https://dev.1c-bitrix.ru/api_help/main/general/pag...
    Ответ написан
    4 комментария
  • Что за ошибка bitrix?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    while($ar_result = $db_list->GetNextElement()) {
    	$ar_el= $ar_result->GetFields();
    	$ar_el[ 'PROPERTIES' ]= $ar_result->GetProperties();
    	
    	$arResult[]= $ar_el;
    }
    Ответ написан
    Комментировать
  • Как получить значение переменной из одного класса в другой?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Во-первых, у вас путаница в коде
    38663631d8e1456a9544977bd362537e.jpg
    .

    Во-вторых (по сути вопроса), исходя из очерёдности наступления событий:
    — сначала вызовется
    CEvent::Send( 'THANKS', $arrSite, $arSend );
    — потом наступит событие
    OnBeforeEventAdd
    — которое вызовет функцию
    OnBeforeEventAddHandler ( &$event, &$lid, &$arFields )

    При чём в этой ветке вызовов:
    &$event УЖЕ равно'THANKS' и значит его не нужно переопределять (а даже можно добавить проверку, чтобы не резались все почтовые события поголовно);
    &$arFields будет содержать ссылку на массив $arSend, в который вы и можете поместить нужную переменную. Использовать как вам нужно и почистить (или не чистить — поля, которых нет в почтовом шаблоне просто проигнорируются).

    В-третьих: что-то мне не нравится такая логика (либо не очевидно то, что вы пытаетесь сделать). Если $WORKEREMAIL задумано как одно из полей в письме, его нужно просто учесть в почтовом шаблоне и передать сразу в
    CEvent::Send( 'THANKS', $arrSite, $arSend ); без последующего перехвата.

    Сюда же: $arSend составлен неправильно. Тут должен быть массив ключ–значение.
    Ответ написан
  • Правильная настройка ЧПУ Битрикс?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Через обработку адресов + настройку шаблонов ссылок непосредственно в инфоблоке.

    Обработка адресов:
    /bitrix/admin/urlrewrite_list.php
    + курс

    Шаблоны ссылок в инфоблоке:
    первый скриншот
    Ответ написан
  • Не выводится ни один компонент IncludeComponent в Битриксе: как починить?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    В каких файлах задается работа IncludeComponent?

    /bitrix/modules/main/*
    Конкретно —
    /bitrix/modules/main/classes/general/main.php

    лицензия истекла

    Желательно иметь точную сборку согласно версии, некоторые фичи могут быть несовместимы с ядром.

    Я написал бы в техподдержку.
    Ответ написан
    Комментировать
  • Переход из 1С в web-разработчики (PHP ) в 35 лет. С чего начать и реально ли?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Больше 10 лет работаю под Битриксом. Мне очень нравится то, что в этой работе нужен целый стек знаний. Начиная от настройки апача и нжинкса (у меня свой сервер на Хетцнере) и до вёрстки. Прям прёт от кайфа.

    Этот год начал вникать в новое ядро (а там уже ORM), начал восполнять недостаток знаний. Ниточка за ниточкой... — просмотрев видео-курс по Ларавел понял, что моё мировоззрение дало трещину. Насколько там всё строго и по полочкам, в противовес анархии внутри Битрикса. Но у битрикса шикарное лицо. CMS прокачана так, что удобно как заказчику, так и обслуживающей команде. Вряд ли какая CMS сможет угнаться. Но внутренности... Мама дорогая. Хочется скрестить Ларавел и Битрикс (CMS).

    Есть надежда, что новое ядро привнесёт какую-то строгость, но, увы, Битриксы не культивируют "эко-культуру". То есть тренда быть стильным, правильным, структурным — нет. Порог входа опущен настолько, что можешь писать лапшой, можешь прикручивать свои шаблонизаторы. Вообще твори что хочешь. Битрикс ограничивается необязательными рекомендациями.

    Ища выход стремлению "хочу большего" завёл профиль на апворке и логично задумался: а что я могу предложить? То есть сначала была шальная мысль выходить на full-stack заказы c Битриксом, но, блин, после Ларавелл я уже не уверен. Если переходить (менять тех заказчиков, которые уже есть), то на солидный уровень (по задачам, в первую очередь). А для этого нужно понимание: к чему душа лежит (выбор технологии) и что востребовано (однозначно могу сказать, что буду копать Ларавел — уже и мини-проекты придумал; из фронт-энда буду пробовать пилить Вью, но пока что нет жёсткой мотивации: чистый css/js никто не отменял). А значит метод проб и ошибок. Пока не определился — держать ушки на макушке и анализировать входящий поток, не особо отвлекаясь от текущих дел, потому что так можно и загнуться (а на плечах семья, дети).

    Пытаясь понять, «как оно», — запустил и небольшой оффлайн бизнес с продажей через Интернет. Есть опыт запуска своих проектов и этот путь мне кажется наиболее перспективным для удовлетворения жизнью: сразу делаешь то, что легко согласовывать (с самим собой =), за ошибки платишь сам, можно делать неспеша (некоторые решения должны вызреть внутри), а можно упасть и прям не вставать пока не закончил — делаешь-то для себя, а это совсем другой настрой.

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

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Написать самому на основе
    imagecreatetruecolor
    Ответ написан
    Комментировать
  • Как изменить кнопки вызова форм в Битрикс, которые не получается изменить в визуальном редакторе?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Нужно отредактировать текст в лингвистическом файле.
    Там же, где лежит файл шаблона (как правило template.php либо component_epilog.php) должна быть папка lang/
    Внутри, по папкам, языковые разделы: ru/, ua/, en/, tr/, ...
    В нужной папочке ищите файл с таким же названием, как и файл шаблона.
    Внутри — лингвистический массив вида:
    $MESS[ 'CALL_DESIGNER_UP' ]= "..."
    Там и меняете текст.

    [!] Шаблон может быть закеширован и вы не увидите текст. Сбросьте кеш шаблона либо откройте страницу с ключом clear_cache=Y
    Ответ написан
    3 комментария
  • Отслеживание входа в админку Битрикс через PHP?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Гляньте на события:
    dev.1c-bitrix.ru/api_help/main/events/#user
    тогда можно отслеживать в любом месте, а именно в админку или нет — проверять по текущему урлу.

    Как альтернативный финт, при просмотре директорий всегда подключается файл .access.php из родной папки, родительской и так до корня.
    /bitrix/admin/.access.php всю дорогу пустой, но он "торкается" перед авторизацией. Можно в него разместить проверочный код. Я, например, у себя так админку блокирую: проверяю — если адрес открывает неавторизованный, выбиваю его на 404. А авторизация сделана в скрытой папочке. Это на сайте, где профилей пользователей нет, только я, админ.
    Ответ написан
  • Как применить правило работы с корзиной( с привязкой к группе) для гостя?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Имеются в виду одновременно и не авторизованные и не зарегистрированные?
    Тогда как-минимум нужно определить город.
    Дальше у меня рождается два теоретических сценария.

    1.
    Играть на функции dev.1c-bitrix.ru/api_help/main/reference/cuser/set...
    которая привязывает зарегистрированного пользователя к группе без записи в БД (то есть на время действия сеанса). Но нам нужен авторизованный пользователь — это (регистрацию и авторизацию) можно организовать через API, привязав в соответствующей группе пользователей его города. Генерить ему логин по какому-то правилу и флажок ставить в карточке, что мол это "болванка", которую нужно будет перезаполнить при фактическом оформлении заказа

    2. Имея город и зная, какая скидка отвечает за пользователей "оттуда", генерить одноразовый купон и скрыто его применить. Я помню, когда-то такой финт делал, но очень давно. Но делал =)
    Ответ написан
  • Почему не работает каталог в битрикс?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    А символьные коды у разделов прописаны?
    Карточка раздела, закладка Дополнительно
    Ответ написан
    2 комментария
  • Привязка к элементам инфоблока с уникальными значениями?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Получается, что привязка нужна для того, чтобы получить значения привязанного свойства (например, название и ещё что-то) и это служит текстовым идентификатором характеристики, а параллельно нужно задать значение этой характеристики, верно?

    Рассмотрите тогда такой вариант привязки: тип свойства в инфоблоке автомобилей — Строка, а в детальных настройках проставьте чекбокс "Выводить поле для описания значения"
    i.imgur.com/LXXz4cL.jpg

    В свойство записываете ID привязки характеристики, в описание — уникальное значение
    Ответ написан
  • Битрикс редакция "Старт" автоматическая загрузка XML?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    Если речь про админ-страницу
    /bitrix/admin/iblock_xml_import.php
    ... то ею фактически выполняется скрипт
    /bitrix/modules/iblock/admin/iblock_xml_import.php

    Можно его себе скопировать, откорректировать обрабатываемые параметры, добавить "шапку" (для вызова из php-интерпретатора) и вызывать в кроне.
    Ответ написан
  • Не работает умный фильтр в 1C Битрикс почему?

    AlexeyGfi
    @AlexeyGfi
    YouTube >>> Битриксоид из Колхоза
    не могу понять почему не работает

    Расшифруйте
    Ответ написан
    32 комментария