proklung / bitrix-menu-builder-bundle

Symfony + Bitrix 的 Bitrix 菜单构建器包

1.0.13 2021-06-11 12:41 UTC

This package is auto-updated.

Last update: 2024-09-11 19:59:44 UTC


README

获取格式良好的 - 嵌套的,- 数据数组用于菜单。另外还有缓存代理。

内部

重构公司遗留代码(消除静态等)。

安装

composer require proklung/bitrix-menu-builder-bundle

使用

  1. 服务 bitrix_menu_bundle.manager(也称为 Prokl\BitrixMenuBuilderBundle\Services\MenuManager
  2. 缓存代理 - bitrix_menu_bundle.manager_cached(也称为 Prokl\BitrixMenuBuilderBundle\Services\MenuManagerCached
  3. 外观 - Prokl\BitrixMenuBuilderBundle\Services\MenuManagerCachedFacade。如果已连接相应的
  4. 外观 - Prokl\BitrixMenuBuilderBundle\Services\MenuManagerFacade

缓存有效时间和目录由包的配置管理(/local/config/packages/bitrix-menu-builder.yaml)中的 ttl_cachecache_dir 键(相对于 bitrix 文件夹)。

默认值为 9600 和 /cache/bitrix_models_bundle

    /**
     * Возвращает рекурсивный массив пунктов меню.
     *
     * @param string  $dir              Директория, с которой начинать рекурсию.
     * @param string  $menuType         Тип меню.
     * @param boolean $bDisableRootLink Заменить ссылки корневого меню на
     * ссылку из первого дочернего элемента.
     * @param boolean $bUseExt          Подключать файлы расширений.
     * @param integer $maxLevel         Количество уровней для сканирования.
     * @param boolean $bCheckSelected   Отмечать выбранные пункты.
     *
     * @return array
     * @throws Exception Error.
     */
    public function getTreeMenuByDir(
        string $dir = '/',
        string $menuType = 'top',
        bool $bDisableRootLink = true,
        bool $bUseExt = true,
        int $maxLevel = 4,
        bool $bCheckSelected = true
    ): array {}

    /**
     * Получает один уровень меню из пути.
     *
     * @param string  $dir      Директория, с которой начинать рекурсию.
     * @param integer $level    Уровень, который необходимо получить.
     * @param string  $menuType Тип меню.
     * @param boolean $bUseExt  Подключать файлы расширений.
     *
     * @return array
     */
    public function getOneLevelMenu(
        string $dir = '/',
        int $level = 1,
        string $menuType = 'top',
        bool $bUseExt = true
    ) { }