oip/custom

此包最新版本(0.61.0)没有提供许可信息。

Bitrix CMS的标准产品目录,由 ООО "Отдел Интернет-проектов" 提供

0.61.0 2020-08-21 10:04 UTC

This package is auto-updated.

Last update: 2024-09-05 14:30:04 UTC


README

包安装

非常简单

  1. composer require oip/custom:dev-master
  2. 将目录 /local/components/oip/local/templates/custom/local/js/migrations 复制到您的项目中,
  3. 执行 composer install 以加载依赖项,
  4. 如果在此之前项目中没有使用过包 arrilot/bitrix-migrations,请执行其初始化指令。

前端

环境配置

为Bitrix进行Webpack的初始配置以及自动部署指南: bitrix-webpack

如果webpack、vue(或react)已在项目中配置,并且计划使用 /bitrix 目录中的模板,则需要进行几个简单的步骤,否则可以跳过将webpack连接到标准模板。

需要全局安装npm包bitrix-webpack,并执行两个命令

$ npm i -g bitrix-webpack
$ bitrix-webpack
$ [выбрать CSS (по умолчанию) и нажать Enter]

无论如何,应安装 package-lock.json 中指定的版本依赖项(不更新包)

$ npm сi

组件连接

以下示例中只列出了必需的参数(没有这些参数会导致程序崩溃),其余设置:分页、缓存、模板等省略,因为它们默认创建。

为了更改组件的行为,需要知道应该传递哪个参数及其值。

综合目录

<?$APPLICATION->IncludeComponent("oip:iblock.element.complex","",[
    "IBLOCK_ID" => 29, // id инфоблока товароа
    "BASE_DIR" => "/catalog/", // базовая директория каталога
    "BRANDS_IBLOCK_ID" => 25,  // id инфоблока брендов для фильтрации по ним - если параметр опусить, фильтр не появится
    "TAGS_IBLOCK_ID" => 26,    // id инфоблока тегов для фильтрации по ним - если параметр опусить, фильтр не появится
])?>

商品列表页面(带有品牌、标签等额外过滤器的列表)

<?$APPLICATION->IncludeComponent("oip:iblock.element.page","",[
    "IBLOCK_ID" => 29,
    "BRANDS_IBLOCK_ID" => 25,  // id инфоблока брендов для фильтрации по ним - если параметр опусить, фильтр не появится
    "TAGS_IBLOCK_ID" => 26,    // id инфоблока тегов для фильтрации по ним - если параметр опусить, фильтр не появится
])?>

商品列表(带分页)

<?$returnedData = $APPLICATION->IncludeComponent("oip:iblock.element.list","",[
    "IBLOCK_ID" => 29, // id инфоблока товароа
])?>

<?$pagination = $returnedData->getPagination()?>

<?if(!empty($pagination) && $pagination["PAGES"] > 1):?>
    <?$APPLICATION->IncludeComponent("oip:page.navigation","",[
        "NAV_ID" => $pagination["NAV_ID"],
        "PAGES" => $pagination["PAGES"],
        "PAGE" => $pagination["PAGE"],
    ])?>
<?endif?>

商品详情页

<?$APPLICATION->IncludeComponent("oip:iblock.element.one","",[
    "IBLOCK_ID" => 29,
    "ELEMENT_CODE" => "test-product", // символьный код товара - обязателен только 1 из параметров, любой
    "ELEMENT_ID" => 375,              // id товара  - обязателен только 1 из параметров, любой
])?>

过滤器表单

过滤器只能用于单页组件(列表、列表页面),因为它会发送带有页面重载的请求。

<?$catalogFilter = $APPLICATION->IncludeComponent("oip:filter.form","",[
    "FILTER_ID" => 1, // id фильта, уникальное число, не должно повторяться на странице
                       // сейчас принимает только число 1..9, потом это поправлю
    "BRANDS_IBLOCK_ID" => 25 // id инфоблока брендов для подключения в форме фильтра по брендам
])?>
 

调用表单后,可以将其结果传递给商品列表


<?$return = $APPLICATION->IncludeComponent("oip:iblock.element.list","",[
   "IBLOCK_ID" => 29, // id инфоблока товаров
   "FILTER" => $catalogFilter
])?>

分类树

<?$APPLICATION->IncludeComponent("oip:iblock.section.list","",[
    "IBLOCK_ID" => 29,
    "BASE_SECTION" => "test-category", // код/id базовой категории - выведется дерево ее подкатегорий
                                       // можно опустить для вывода полного дерева
])?>

分类描述

<?$returnedSectionData = $APPLICATION->IncludeComponent("oip:iblock.section.list","",[
    "IBLOCK_ID" => 29,
    "BASE_SECTION" => "test-category",  // для вывода деталки обязателен
    "DEPTH" => 0, // глубина вложенности; для деталки обязателен 0
    "USER_FIELDS" => ["UF_*"],   // массив польз. полей, которые нужно вернуть; в данном случае все
])?>

<?// $returnedSectionData  - сюда пришли данные польз. полей + section_name ?>

购物车页面

<?$APPLICATION->IncludeComponent("oip:social.store.cart.page","",[])?>