netcore/module-category

分类管理模块

这个包的官方仓库似乎已不存在,因此该包已被冻结。

安装数: 1,162

依赖项: 1

建议者: 0

安全性: 0

星标: 0

关注者: 7

分支: 0

语言:CSS

类型:模块

v1.1.1 2019-05-24 06:28 UTC

README

本模块旨在简化分类管理。

功能

  • 一切可翻译
  • 每个分类都有slug,允许手动slug
  • 拖放支持重新排序

预安装

此模块是Netcore CMS生态系统的一部分,仅在已安装以下包的项目中有效

  1. https://github.com/netcore/netcore
  2. https://github.com/netcore/module-admin
  3. https://github.com/netcore/module-translate

安装

  • 使用composer安装此包
    composer require netcore/module-category
  • 发布 assets/configuration/migrations
    php artisan module:publish Category
    php artisan module:publish-config Category
    php artisan module:publish-migration Category
    php artisan migrate

配置

  • 配置文件位于 config/netcore/module-category.php

分类组

  • 分类组不能从管理员控制面板中编辑。您应该初始化它们。
    // DatabaseSeeder.php:
    
    // For select2 type, you should create presenter first, read below about presenters.
    CategoryGroup::create([
        'key'                   => 'advertisment',
        'title'                 => 'Advertisement categories', 
        'has_icons'             => true,
        'icons_for_only_roots'  => true,
        'icons_type'            => 'select2',
        'icons_presenter_class' => \App\Icons\ClassifiedIconsPresenter::class,
        'levels'                => 3, 
    ]);

    CategoryGroup::create([
        'key'                  => 'forum',
        'title'                => 'Forum categories',
        'has_icons'            => true,
        'icons_for_only_roots' => true,
        'icons_type'           => 'file',
        'levels'               => null, // no limit
    ]);

图标集

  • 创建图标表示器。它应该实现 \Modules\Category\Icons\IconSetInterface
    use Modules\Category\Icons\IconSetInterface;

    class CustomIconSet implements IconSetInterface
    {
        /**
         * Get array of available icons
         *
         * @return array
         */
        public function getIcons(): array {
            return [
                // Class    => Text
                'my-icon-1' => 'My Icon 1',
                'my-icon-2' => 'My Icon 2'
            ];
        }

        /**
         * Get template for select2 render
         *
         * @return string
         */
        public function getSelect2Template(): string {
            return '<i class="::class::"></i><span>::text::</span>';
        }

        /**
         * Get styles to inject
         *
         * @return array
         */
        public function getInjectableStyles(): array {
            return [
                '/link/to/your/css/style.css'
            ];
        }

        /**
         * Get sprite to inject before container
         *
         * @return string
         */
        public function getInjectableSprite(): string {
            return ''; // this is needed when using SVG icons. ex.: return view('svg/sprite')->render();
        }
    }