Относительно недавно в Bitrix появилась поддержка контроллеров, маршрутизация, и сразу показалось, что можно написать своё SPA без особых костылей, используя функционал коробки. https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&CHAPTER_ID=03750&LES... Но тут же столкнулся с проблемами: 1. Запросы кидать предлагается через специальный метод BX.ajax.runAction, но тогда надо тянуть из ядра либы core.js и core_ajax.js, а это простите почти 620 кб. Как быть? 2. Как производить авторизацию? Каких-то заготовок из коробки и в документации я не нашел, может конечно плохо искал, подскажите.
Обновил Bitrix24 до версии 20.0.87 и в консоли браузера стал наблюдать множество предупреждений. J
Код
The instance of BX.Event.EventEmitter is supposed to have an event namespace. Use emitter.setEventNamespace() to make events more unique. 14 core.js:10910:17
Possible BX.Event.EventEmitter memory leak detected. 27 "onuientityeditoruserfieldsetvalidator" listeners added. Use emitter.setMaxListeners() to increase limit. core.js:10834:21
и т.д.
их настолько много, что кол-во переваливает за 1000. Данная проблема наблюдается во всех браузерах, в связи с чем я побаиваюсь обновлять промышленные сервера с BX24.
В активном количестве они генерируются при нажатии на кнопку изменить в профиле пользователя.
Поднимал виртуалку Bitrix ENV, абсолютно тоже самое наблюдается и там.
Можно ли как-то ограничить доступ к BX24 для любых устройство кроме приложения для телефона? Конечно можно попытаться фильтровать по юзер агенту, но такой вариант не самый надежный. Изучив запросы приложения на сервер, понял, что запросы достаточно разные и при фильтре запросов могут возникнуть проблемы, т.к. они достаточно разные, конечно основная часть идет на адреса
- Переписывание шаблона Корзины и оформления заказа вместе с JS.
- Переделка шаблона сайта для корректной работы в режиме "Эмуляция навигации"
- Настройка ajax обработчиков
- Обработка событий
- Подключение и работа с композером
- Создание нестандартных скидок для магазина через обработку событий
- Создание обработчиков для AJAX
Прочтенные книги: PHP 7 (Котеров Дмитрий Владимирович / Симдянов Игорь Вячеславович) Объекты, шаблоны и методики программирования – Мэтт Зандстра JavaScript в примерах и задачах (Васильев Алексей Николаевич) Unity в действии (Хокинг Джозеф)
Всем привет, имеется следующая проблема. Есть довольно большой каталог товаров на 10 000, все работает в режиме ajax, однако при некоторой нагрузке на сайт, фильтр не успевает отрабатывать, а браузер устает ждать и выкидывает ошибку 404
отсюда вытекают следующие вопросы: 1) Есть ли смысл использовать ajax при столь длительном ответе 2) Как увеличить время ожидания. (в функции BX.ajax можно передавать timeout или поменять в файле core_ajax.js дефолтное значение ожидания, но это никак не помогло)
Всем привет! Суть проблемы состоит в следующем: Нужно реализовать акцию два товара по цене одного, выбирается самый дешевый товар из корзины, и его цена вычитается из итоговой цены. Навесить обработчик "OnSaleComponentOrderCreated", т.к. нужно учитывать тип оплаты, получить через него список всех элементов в корзине, а что делать дальше? Простое увеличение поля 'DISCOUNT_PRICE' через $order-setField() ни к чему не приводит, через данный метод итоговую цену изменить нельзя, выкидывает исключение, как ещё можно изменить цену у заказа или корзины?
Не работает сортировка по пользовательскому свойству типа Дата/Время
Имеется инфоблок с пользовательскими свойствами START_TIME типа Дата/Время
Аналогичный код, но с базовым строковым типом работает без проблем, но Дата/Время отказывается так сортироваться. В модуле iblock никаких подготовительных действий не проводит при создании массива $arOrder. CAdminList работает без проблем, повторюсь, с другими свойствами все фильтруется отлично, но с Датой/Время - нет. В чем может быть проблема?
Как отключить автоматическое создание отгрузок при создании заказа? Можно ли это сделать где то в настройках или надо будет лезть в ядро?
п.с. Задаюсь вопросом, почему такая слабая документация по интернет-магазину, в частности по отгрузкам, там нет и половины функций для работы с ними, это вообще не по людски как-то.
Денис Сон написал: Еще раз перечитайте мое сообщение. Страницы админки нигде не регистрируются. Они копируются в /bitrix/admin/ - каждый php в этой папке подключает php-файл уже из папки admin вашего модуля.
Все проверил, разобрался, вот же систему придумали )) спасибо! Можно тему закрывать!
Денис Сон написал: Вы забыли про файлы в /bitrix/admin/ - для примера смотрите в своем модуле папку install/admin/ - оттуда при установке модуля эти файлы копируются в /bitrix/admin/ Т.е. при обращении /bitrix/admin/xxx.php открывается именно файл из /bitrix/admin, а этот файл содержит всего одну инструкцию - подключение нужного файла из папки модуля.
Я же написал что
Цитата
Никита Ермолаев написал: тут лежат все страницы страницы для админки - /www/bitrix/modules/test.testparser/admin
Вот путь к разрабатываемому модулю /home/bitrix/www/bitrix/modules/test.testparser
тут лежат все страницы страницы для админки - /www/bitrix/modules/test.testparser/admin
Если я добавляю новую страницу сюда /test.testparser/admin ,то Битрикс её не видит Если я беру страницу которая там уже была создана мною до этого и доступна - step3.php, меняю у неё название на step4.php Если зайти на страницу 127.0.0.1/bitrix/admin/test.testparser_step4.php ,то будет следующая ошибка:
Fatal error: require(): Failed opening required '/home/bitrix/www/bitrix/modules/test.testparser/admin/step3.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/bitrix/www/bitrix/admin/test.testparser_step3.php on line 1
Если перейти на страницу step4.php, то будет ошибка 404 Если переустановить модуль, то страница step4.php будет найдена.
Занимался разработкой модуля и столкнулся со следующей проблемой, которой раньше не было. Если я добавляю страницы в модуль, то при попытке перехода на них появляется ошибка 404, если у существующей страницы изменить название, то при переходи на ней появится ошибка Fatal error: require(): Failed opening require Очевидно что страницы где-то регистрируются, вопрос только где.
У меня стоит Bitrix управление сайтом на VDS. Столкнулся со следующей проблемой, не работают функции POSIX. Хотя они должны работать по умолчанию. Да этого были проблемы с pcntl, но после установки определенных пакетов, все хорошо работает. Но если попытаться использовать команды POSIX, хоть через командную строку PHP в админ панели, хоть через запуск скрипта, выдается ошибка Call to undefined function posix_* (*-любая функция posix).
Пробовал установить пакет yum -y install php-process, не спасло, ошибка так же осталась. Выручайте
Как в Битрикс осуществляется работа с текстовыми файлами? Есть IO - объектно-ориентированная работа с файлами, но при попытки создать объект данного класса, выдается ошибка Class 'IO\File' not found (0) http://dev.1c-bitrix.ru/api_d7/bitrix/main/io/index.php Хотя данный класс позволил бы решать все поставленные задачи.
Дмитрий Рубцов написал: Скажите, а какую задачу хотите этим решить?
По команде из админки запускается обработчик заявки, этот обработчик посылает с определенное периодичностью команды на контроллер, а так же должен следить за входными данными, которые могут поступать не него.
Всем привет, столкнулся со следующей проблемой. Мне нужно создать бесконечно работающий цикл, который будет вечно работать и который можно остановить в любой момент. Подскажите что можно сделать.
Bitrix стоит и у меня на машине CentOS. Я пытался создать процесс использую функцию pcntl_fork, но Bitrix тут же выдал ошибку: Call to undefined function pcntl_fork() (0)
Так же попробовал через командную строку запустить скрипт с бесконечным циклом на выполнение exec("php -f /home/bitrix/ext_www/test.org/go.php"); Но увы, система полностью повисает, видимо данный скрипт забирает на себя все процессорное время, но ведь он должен жить как сторонний процесс.