• Как лучше связать frontend с backend-ом на c#?

    summoner2015
    @summoner2015
    Backend всему голова
    Неплохо было бы сделать rest api, на стороне сервера, и стучать в него с клиентской части (html+js+ajax, или разобраться с vuejs и использовать его).
    В api сделать:
    1. ручку для постановки задачи в очередь (rabbitmq, kafka, db)
    2. ручку для проверки статуса задачи
    3. ручку для получения результатов, если задача в статусе "выполнено"

    Соответственно, с клиента дергать первую ручку, затем крутить прелоадер и периодически дергать вторую ручку, пока не получим нужный статус задачи, или не закончится какой-нибудь таймаут, и в конце дернуть третью ручку и поменять текущий DOM с учетом полученных данных.
    На серверной части, по идее, можно отказаться от зоопарка из php+c#, и сделать это все на чем-то одном. Сами задачи будут обрабатываться чем-то в вечном цикле, а именно - ждать пока в очереди появятся задачи и сразу брать их в работу (при необходимости запустить несколько таких воркеров, и обрабатывать задачи параллельно)
    Ответ написан
    3 комментария
  • Как синхронизировать GitHub и продакшн-сервер?

    summoner2015
    @summoner2015
    Backend всему голова
    Тут либо перейти с github на gitlab и воспользоваться встроенным gitlab-ci, либо копать в сторону интеграции github и https://travis-ci.org, https://jenkins.io или https://jetbrains.ru/products/teamcity/
    Ответ написан
    5 комментариев
  • Как в Битриксе сортировать категории по кол-ву элементов в них?

    summoner2015
    @summoner2015
    Backend всему голова
    Добрый вечер. Вот тут есть подсказка - https://dev.1c-bitrix.ru/api_help/iblock/classes/c...

    arOrder - element_cnt (количество элементов в разделе, работает только если bIncCnt = true)
    Ответ написан
    Комментировать
  • Как развернуть резервную копию bitrix?

    summoner2015
    @summoner2015
    Backend всему голова
    Необходимо смотреть логи apache2, nginx или php-fpm. Без текста ошибки не получится угадать в чём проблема.
    Ответ написан
    Комментировать
  • Как переносить миграции в Symfony 4?

    summoner2015
    @summoner2015 Автор вопроса
    Backend всему голова
    Решение проблемы нашлось тут.
    Ответ написан
    Комментировать
  • Как реализовать удаление не используемых изображений с сервера на laravel?

    summoner2015
    @summoner2015
    Backend всему голова
    Можно реализовать скрипт, который будет запускаться по cron и сверять содержимое DB-таблицы с файлами из папки img, и удалять файлы, ссылок на которых нет в DB.

    Как вариант рассмотреть событийную модель laravel, мне кажется там можно сделать обработчик события удаления сущности, который и будет удалять связанные файлы. Но тут есть возможность того что один и тот же файл используется в 2 сущностях, и тогда в той что останется в DB будут битые ссылки на файлы.
    Ответ написан
  • По какому принципу возрастают версии продукта?

    summoner2015
    @summoner2015
    Backend всему голова
    Если Вас интересует какой подход в версионировании своего проекта выбрать, то можно рассмотреть вот этот.

    Если вопрос касается того как сравнить две версии, то в некоторых языках уже есть готовые методы для этого. В php, например, есть метод version_compare()
    Ответ написан
    Комментировать
  • Синтаксическая ошибка в классе?

    summoner2015
    @summoner2015
    Backend всему голова
    Скорее всего php ниже 7.1, и ошибка ругается именно на
    public function query(string $sql, $params = []): ?array

    Возможность указывать тип возвращаемого результата в таком виде ?array появилась только в 7.1.
    Ответ написан
    Комментировать
  • Есть ли способ конвертировать pug в twig?

    summoner2015
    @summoner2015
    Backend всему голова
    Вы хотели получить twig-шаблон, Вы его получили. Теперь самое время скормить его twig-шаблонизатору, который произведёт рендеринг html из полученного twig-шаблона.

    Не пробовали смотреть в сторону twig.js, таким образом что бы верстка уже была в шаблонах twig?
    Ответ написан
  • Как индексировать содержимое PDF файлов в системе Bitrix?

    summoner2015
    @summoner2015
    Backend всему голова
    Из коробки этот поиск по содержимому файлов может работать только если на сервере установлен sphinx и подключён в настройках модуля поиска по сайту. Но я не уверен что он сможет искать по содержимому PDF-файлов. Для этого скорее всего потребуется доработка, вот в этой статье есть некий пример - https://habr.com/post/131089/.

    Если сайт работает на bitrixenv, то sphinx устанавливать не нужно, достаточно включить его в настройках сервера и произвести индексацию.
    Ответ написан
    Комментировать
  • Как вывести csv файл на странице с пагинацией в Bitrix?

    summoner2015
    @summoner2015
    Backend всему голова
    Без БД в данном случае можно обойтись, но это очень костыльный вариант:
    1. Работаем с файлом построчно через fopen() и fgets()/fgetcsv(), а не через CCSVData
    2. Выбираем из файла только те строки, которые подходят к текущему состоянию пагинации
    3. Кэшируем нашу выборку с учётом пагинации и фильтров


    Мне кажется что лучше всё-же использовать таблицу в БД, которая будет очищаться при импорте нового csv.
    Ответ написан
    Комментировать
  • Как правильно скорректировать базу 1с для интернет магазина?

    summoner2015
    @summoner2015
    Backend всему голова
    Как справедливо заметили в комментариях, в базе номенклатуры бардак, и начинать наводить порядок необходимо именно в ней.
    Что касается 1C-Bitrix, в редакции "Бизнес" поддерживается многоскладовость и множество типов цен. Теоретически можно будет завести магазины в CMS как склады, и вести учёт остатков отдельно по каждому складу, и при необходимости суммировать общее кол-во по всем складам. Сложнее будет с ценами, т.к. не понятно по какому принципу они установлены. Есть возможность завести по 1 типу цен на каждый склад/магазин, но какую именно выводить из них на сайте зависит от вашей политики ценообразования (её необходимо будет разработать и внедрить, если такая отсутствует). Навскидку можно придумать 2 варианта:
    1. Выводить минимальную цену
    2. Давать возможность выбора склада, и далее выводить цены определённого типа

    В любом случае, при интеграции 1C с 1C-Bitrix важно что бы данные были актуальными в 1С, т.е. при реализации товара в магазинах, необходимо каким-то образом актуализировать эти данные в 1C.

    Проблему с задвоением номенклатуры, естественно, интернет-магазин никаким образом не решает. В лучшем случае он может помочь в каком-то виде навести порядок с номенклатурой на сайте, в случае если есть bitrix-разработчик, а 1C-разработчика нет.
    Ответ написан
  • Почему папка upload смотрит на другой домен в bitrix?

    summoner2015
    @summoner2015
    Backend всему голова
    Я бы попробовал:
    1. Сменить домен в настройках модуля main
    2. Сменить домен в настройках сайта (там где шаблон для сайта выбираем)
    3. Сбросить весь кеш на сайте

    Если не помогло, посмотреть в коде компонента. Если он не коробочный, возможно предыдущий разработчик там что-то от себя нахардкодил.
    Плюс посмотреть обработчики событий буферизации, возможно там будет парсинг страницы на предмет ссылок в Upload и подстановка домена перед такими ссылками хардкодом.
    Ну и на самый крайний случай ещё вариант посмотреть что там с настройками cdn. Возможно на сайте он был активирован и после переноса это как-то мешает, но по идее после очистки кеша и смене домена в настройках, такого точно быть не должно.
    Ответ написан
    3 комментария
  • Событие Битрикс после синхронизации заказов из 1с?

    summoner2015
    @summoner2015
    Backend всему голова
    Отдельных событий в Bitrix при интеграции с 1С очень мало. Обычно в таких случаях используют стандартные события инфоблоков, catalog или sale.
    В Вашем случае я бы использовал событие изменения заказа, и в нём отслеживал что происходит в $_SESSION и $_REQUEST. Точно не помню названий параметров, но они появляются при импорте из 1C. Таким образом можно кастомизировать интеграцию с 1С без изменений ядра Bitrix.
    Второй вариант - выделить отдельного пользователя для 1C, и отслеживать пользователя при работе с заказами. Так тоже можно кастомизировать логику только в случае когда работает интеграция 1С.
    Ответ написан
    Комментировать
  • Как реализовать такой вывод на битриксе?

    summoner2015
    @summoner2015
    Backend всему голова
    На сайте по первой ссылке при переходе к "товару" на самом деле открывается либо опять раздел, либо элемент инфоблока, который не является товарным каталогом.В первом случае настоящие товары привязаны к этому разделу-товару, а во втором настоящие товары привязаны к элементу инфоблока. Но мне всё же кажется что это просто ещё один раздел, т.к. на странице написано что это коллекция.
    Ещё как вариант, можно извернуться и завести коллекции через HL-справочник и привязать товары к его элементам.
    Ответ написан
  • Почему в джумле пароли хранятся в не зашифрованном виде?

    summoner2015
    @summoner2015
    Backend всему голова
    Да, действительно, это огромная дыра в безопасности)
    Для защиты Вашего проекта от взлома необходимо заменить пароль к бд в этом файле на его хеш. Генерировать нужно самому, и обязательно с добавлением "соли". Соль, естественно, на сервере не хранить, а оставить у себя на компьютере, но ни в коем случае не на рабочем столе. Я бы посоветовал спрятать файл с солью где-нибудь в недрах папки Windows или Program Files.
    И ещё момент, т.к. Вы скорее всего хешировать пароль будете в каком-нибудь онлайн-сервисе - после этого обязательно нужно очистить полностью вес кеш браузера, а ещё лучше из под виртуалки, которую потом обязательно удалить))))
    Ответ написан
    4 комментария
  • Как сбросить таймер битрикса?

    summoner2015
    @summoner2015
    Backend всему голова
    Переносить свои шаблоны, компоненты, модули и страницы на свежую копию. Да, и инфоблоки тоже, через import/export.
    Ответ написан
    3 комментария
  • Как восстановить сайт bitrix, путем загрузки его на сервер?

    summoner2015
    @summoner2015
    Backend всему голова
    Попробуйте класть не в /root, а в корневую папку веб-сервера. /www/, или /home/#USERNAME#/www/, как-то так.
    Ответ написан
    Комментировать
  • Как отправить письмо при помощи smtp?

    summoner2015
    @summoner2015
    Backend всему голова
    Можно воспользоваться готовой библиотекой phpMailer - https://github.com/PHPMailer/PHPMailer
    Ответ написан
    Комментировать