From 3af6394c35be120f70ba737e5549582e7c82a976 Mon Sep 17 00:00:00 2001 From: Yuri Salimovskiy Date: Mon, 7 Aug 2023 16:34:34 +0300 Subject: [PATCH 1/6] Allow making category group required for channel; Allow restricting category selection to single category per group --- docs/_images/cp-channel-categories-tab.png | Bin 0 -> 30530 bytes docs/_images/cp-entry-categories-tab.png | Bin 0 -> 31122 bytes docs/control-panel/channels.md | 9 +++ docs/control-panel/create.md | 8 ++- .../models/category-group-settings.md | 59 ++++++++++++++++++ docs/development/models/category-group.md | 27 +++++++- .../development/models/working-with-models.md | 4 +- docs/toc_sections/_advanced_usage_toc.yml | 2 + 8 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 docs/_images/cp-channel-categories-tab.png create mode 100644 docs/_images/cp-entry-categories-tab.png create mode 100644 docs/development/models/category-group-settings.md diff --git a/docs/_images/cp-channel-categories-tab.png b/docs/_images/cp-channel-categories-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..8743a2fd8b4a3d56ab040daa7b2d6a21ce3ffdab GIT binary patch literal 30530 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 AGynhq literal 0 HcmV?d00001 diff --git a/docs/_images/cp-entry-categories-tab.png b/docs/_images/cp-entry-categories-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..daee52bce56446d57887f8cb716845d274baba2d GIT binary patch literal 31122 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 Ove0r`-}}1sgQ^5l;0- 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 + +# Category Group Settings Model + +**class `ExpressionEngine\Model\CategoryGroupSettings`** + +[TOC] + +## Properties + +| Name | Validation | Type | Description | +| ---------------------------- |------------- | ---------- | ----------- | +| `category_group_settings_id` | | | the primary key | +| `site_id` | | | the site id | +| `group_id` | required | | the category group id | +| `channel_id` | required | | the channel id | +| `cat_required` | | boolString | whether or not having category in this group is required for this channel | +| `cat_allow_multiple` | | boolString | whether or not this multiple selections are allowed in this category group for this channel | + +## Relationships + +### `Site` + +The MSM Site which the Category Group belongs to. + +### `Channel` + +Channel for which these settings are defined + +### `CategoryGroup` + +Category Group for which these settings are defined + + +## Methods + +- `getAllCustomFields()` +- `createCategoryField()` +- `getContentType()` +- `getCategoryTree()` +- `getFieldMetadata()` +- `populateCategories()` +- `buildCategoryOptionsTree()` +- `buildCategoryList($categories, $sort_column)` + +## Events + +- `afterDelete` diff --git a/docs/development/models/category-group.md b/docs/development/models/category-group.md index 37c5d8963..137cb4642 100644 --- a/docs/development/models/category-group.md +++ b/docs/development/models/category-group.md @@ -7,7 +7,7 @@ lang: php ExpressionEngine User Guide (https://github.com/ExpressionEngine/ExpressionEngine-User-Guide) @link https://expressionengine.com/ - @copyright Copyright (c) 2003-2022, Packet Tide, LLC (https://packettide.com) + @copyright Copyright (c) 2003-2023, Packet Tide, LLC (https://packettide.com) @license https://expressionengine.com/license Licensed under Apache License, Version 2.0 --> @@ -32,8 +32,29 @@ lang: php ## Relationships -- `CategoryField` -- `Category` +### `Site` + +The MSM Site which the Category Group belongs to. + +### `CategoryGroupSettings` + +Per-channel settings for this Category Group. + +### `CategoryFields` + +Custom fields associated with this Category Group + +### `Categories` + +Collection of categories that have been created in this group + +### `Channels` + +Channels that this Category Group has been assigned to + +### `UploadDestinations` + +File upload directories that this Category Group has been assigned to ## Methods diff --git a/docs/development/models/working-with-models.md b/docs/development/models/working-with-models.md index fdf713519..628d3d90d 100644 --- a/docs/development/models/working-with-models.md +++ b/docs/development/models/working-with-models.md @@ -26,8 +26,10 @@ These are the most commonly used models in ExpressionEngine. For a full list, se - [Addon Fieldtype Model](development/models/addon-fieldtype.md) - [Addon Module Model](development/models/addon-module.md) - [Addon Plugin Model](development/models/addon-plugin.md) -- [Category Field](development/models/category-field.md) - [Category Group](development/models/category-group.md) +- [Category Group Settings](development/models/category-group-settings.md) +- [Category](development/models/category.md) +- [Category Field](development/models/category-field.md) - [Channel Entry Model](development/models/channel-entry.md) - [Channel Field Group Model](development/models/channel-field-group.md) - [Channel Field Model](development/models/channel-field.md) diff --git a/docs/toc_sections/_advanced_usage_toc.yml b/docs/toc_sections/_advanced_usage_toc.yml index 2d4fb8191..86600e50c 100644 --- a/docs/toc_sections/_advanced_usage_toc.yml +++ b/docs/toc_sections/_advanced_usage_toc.yml @@ -416,6 +416,8 @@ href: development/models/category-field.md - name: Category Group Model href: development/models/category-group.md + - name: Category Group Settings Model + href: development/models/category-group-settings.md - name: Channel Entry Model href: development/models/channel-entry.md - name: Channel Field Group Model From 1f80b4fd82a0081a032c66a38019175301c95e88 Mon Sep 17 00:00:00 2001 From: Tom Jaeger Date: Fri, 2 Feb 2024 15:18:19 -0500 Subject: [PATCH 2/6] few small changes --- docs/control-panel/channels.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/control-panel/channels.md b/docs/control-panel/channels.md index c16c9252e..60a003f8a 100755 --- a/docs/control-panel/channels.md +++ b/docs/control-panel/channels.md @@ -67,7 +67,7 @@ For each category group assigned to a channel, the following per-group settings | Setting | Default | Description | | --------------- | ------- | ------------------------------------------------------------------------------------------- | -| Allow multiple? | Yes | When turned on, multiple categories from the group can be selected for entry | +| Allow multiple? | Yes | When turned on, multiple categories from the group can be selected for an entry | | Required? | No | When turned on, selecting at least one category from the group is required to save an entry | --- From 2649120ce63aaf55ee0ef4f54ac797e12be8bc9a Mon Sep 17 00:00:00 2001 From: Tom Jaeger Date: Fri, 2 Feb 2024 15:20:50 -0500 Subject: [PATCH 3/6] few small changes --- docs/control-panel/create.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/control-panel/create.md b/docs/control-panel/create.md index fceecafea..90831d136 100755 --- a/docs/control-panel/create.md +++ b/docs/control-panel/create.md @@ -70,9 +70,9 @@ You may _optionally_ specify a date on which comments for this entry will no lon You may assign one of multiple (depending on [channel preference](control-panel/channels.md#categories-tab)) categories to your entry from the [category groups](control-panel/categories.md) associated with the channel. -Each associated category group will be rendered as separate set of checkboxes, or - if multiple selections are not allowed - as set of radio buttons. Selecting a category from group can also be set as required for channel. +Each associated category group will be rendered as separate set of checkboxes, or - if multiple selections are not allowed - as set of radio buttons. Selecting a category from a group can also be set as required for channel. -Additionally, "Manager Categories" toggle is provided, clicking which allows to add, edit or reorder the categories in the group. +Additionally, a "Manage Categories" toggle is provided, which allows the user to add, edit or reorder categories in the group. ![Publish Form - Categories](_images/cp-entry-categories-tab.png) From 64396f9b14dcdbf5b0123030778269d7d9fd4d50 Mon Sep 17 00:00:00 2001 From: Tom Jaeger Date: Fri, 2 Feb 2024 15:23:40 -0500 Subject: [PATCH 4/6] few small changes --- docs/development/models/category-group-settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/development/models/category-group-settings.md b/docs/development/models/category-group-settings.md index 30f8ca1dc..91bb78095 100644 --- a/docs/development/models/category-group-settings.md +++ b/docs/development/models/category-group-settings.md @@ -32,7 +32,7 @@ lang: php ### `Site` -The MSM Site which the Category Group belongs to. +The MSM Site for which the Category Group belongs to. ### `Channel` From 3e2d509b7ce86735638fffec3a4dc4321c392f69 Mon Sep 17 00:00:00 2001 From: Bryan Nielsen Date: Thu, 8 Feb 2024 13:01:38 -0500 Subject: [PATCH 5/6] Update create.md --- docs/control-panel/create.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/control-panel/create.md b/docs/control-panel/create.md index 90831d136..3b4aa7a1b 100755 --- a/docs/control-panel/create.md +++ b/docs/control-panel/create.md @@ -68,11 +68,11 @@ You may _optionally_ specify a date on which comments for this entry will no lon ## Categories Tab -You may assign one of multiple (depending on [channel preference](control-panel/channels.md#categories-tab)) categories to your entry from the [category groups](control-panel/categories.md) associated with the channel. +You may assign one or multiple (depending on [channel preference](control-panel/channels.md#categories-tab)) categories to your entry from the [category groups](control-panel/categories.md) associated with the channel. -Each associated category group will be rendered as separate set of checkboxes, or - if multiple selections are not allowed - as set of radio buttons. Selecting a category from a group can also be set as required for channel. +Each associated category group will be rendered as a separate set of checkboxes. If multiple selections are not allowed they will render as a set of radio buttons. Selecting a category from a group can also be set as required for the channel. -Additionally, a "Manage Categories" toggle is provided, which allows the user to add, edit or reorder categories in the group. +Additionally, a "Manage Categories" toggle is provided which allows the user to add, edit or reorder categories within the group. ![Publish Form - Categories](_images/cp-entry-categories-tab.png) From f1c46d7e548779453deda2fdba476259fc917f88 Mon Sep 17 00:00:00 2001 From: Bryan Nielsen Date: Thu, 8 Feb 2024 13:03:32 -0500 Subject: [PATCH 6/6] Update category-group-settings.md --- docs/development/models/category-group-settings.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/development/models/category-group-settings.md b/docs/development/models/category-group-settings.md index 91bb78095..642162971 100644 --- a/docs/development/models/category-group-settings.md +++ b/docs/development/models/category-group-settings.md @@ -25,8 +25,8 @@ lang: php | `site_id` | | | the site id | | `group_id` | required | | the category group id | | `channel_id` | required | | the channel id | -| `cat_required` | | boolString | whether or not having category in this group is required for this channel | -| `cat_allow_multiple` | | boolString | whether or not this multiple selections are allowed in this category group for this channel | +| `cat_required` | | boolString | whether or not having a category in this group is required for this channel | +| `cat_allow_multiple` | | boolString | whether or not having multiple selections is allowed in this category group for this channel | ## Relationships