Skip to content

avel07/Mifiti-Bitrix

Repository files navigation

Mifiti-Bitrix

Золотые правила работы с проектом

  1. Не использовать Jquery ни в коем случае. Вообще никак. Если нравится AJAX, используйте Bitrix библиотеку. Не подключать Jquery!!!.
  2. Использовать по максимуму Bitrix D7 с ORM. В идеале отказываться от устаревшего метода GetList и использовать объект Query.
  3. Для работы с CSS скачивать весь пакет SCSS и перекомпилировать его заново. Для работы использовался Live Sass Compiler.
  4. Для работы с JS не ставить константы глобальной области видимости, и вообще помещать все в функции, используя блочность. Использовать ES6. Стараться типизировать работу, кастомить app.js лучше внутри объекта основного объекта app. То есть внутри объекта добавляем новую функцию и используем. Не городить тысячи кода снизу, особенно глобально.
  5. Если видите название класса, начинающегося не с /Bitrix/.../, то этот класс находится по пути /local/php_interface/classes/namespace класса

Работа с CSS (SCSS)

  1. При работе с CSS лучше скачивать все файлы SCSS с зависимостями.
  2. Сами файлы:
  • _classes-generation.scss - тут генерируются колонки, контейнеры и т.д.
  • _mixins.scss - тут находятся все миксины и функции
  • _reboot.scss - тут переопределение глобальных браузерных стилей.
  • _variables.scss - тут находятся все переменные (цвета, кол-во колонок, брейкпоинты и т.д.)
  • _core.scss - тут общие стили всего сайта.
  1. Сложной логики не делал, на компоненты не разбивал, нет смысла, потому что по сути весь сайт и есть каталог товаров.
  2. По хорошему можно минифицировать и потом перекомпиливать с помощью SCSS.

Работа с JS.

  1. Архиректура проекта работает таким образом, что в объекте app файла app.js находятся все основные переиспользуемые функции, необходимые для правильной жизнеспособности сайта.
  2. Везде в проекте используется fetch. Лучше сохранять данную логику.
  3. Почти все функции основного объекта с комментариями, для упрощения работы.

Файловая система

Весь проект находится в папке /local/.

Файловая структура выглядит следующим образом:

  • ajax - папка в которую идут AJAX запросы. (можно сделать роутинг, но для адекватного роутинга с внешним namespace нужно писать модуль).
    • auth.php - обработчик аутентификации
    • basket.php - обработчик корзины
    • change_password.php - обработчик смены пароля
    • favorites.php - обработчик избранных товаров
    • register.php - обработчик регистрации
    • forms
      • form_return.php - обработчик формы возврата
  • php_interface
    • EventHandlerFunctions.php - отдельный файл для обработки Bitrix событий. Дабы не засорять привычный init.php
    • init.php - дефолтный init, тут в основном стоят define и подключаются свои классы (т.к. без модуля)
    • classes - в этой папке содержатся вынесенные в отдельный namespace классы для работы с проектом
      • BasketHelper.php - класс для работы с корзиной
      • CatalogHelper.php - класс для работы с каталогом
      • Security.php - класс для работы с защитой
      • SmsHelper.php - класс для работы с SMS
  • templates - шаблон

Капча

Капча рендерится при помощи вызова функции captchaRender. Функция captchaRender подтягивает объект CaptchaElements, в которой находится заранее подготовленный массив объектов селекторов капчи. Далее для рендера используется обсервер видимости капчи.
Файл загружается только тогда, когда, когда попадает в область видимости. Соответственно скачивается файл -> рендерится капча. Снизу капчи создаются блоки для formControl. В общем если долго не расписывать, то гайд по добавлению капчи в форму:

- Добавляем в шаблон какого-либо компонента или элемента div, с определенным классом.
- Добавляем в массив объектов Captcha.Elements этот селектор
- Вы молодец, капча срендерилась.
Для проверки капчи используется свой класс в namespace Security. Он отправляет POST запрос в google для верификации response.

About

Посаженный проект на Bitrix.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published