diff --git a/docs/administration/admin_panel.md b/docs/administration/admin_panel.md deleted file mode 100644 index fcaf347844..0000000000 --- a/docs/administration/admin_panel.md +++ /dev/null @@ -1,171 +0,0 @@ ---- -description: Ibexa DXP Back Office contains managements options for permissions, users, languages, Content Types, as well as system information. ---- - -# Admin panel - -Once you set up your environment you can start your work as an administrator. -Your most useful tools can be found in **Admin Panel**. - -![Admin Panel](admin_panel.png "Admin Panel") - -## System Information - -The System Information panel in the Back Office is sourced in a [ibexa/support-tools repository](https://github.com/ibexa/support-tools). -There you will also find basic system information such as versions of all installed packages. - -![System Information](admin_panel_system_info.png "System Information") - -## Sections - -Sections are used to divide Content items in the tree into groups that are more easily manageable by content editors. -Division into Sections allows you, among others, to set permissions for only a part of the tree. - -![Sections screen](admin_panel_sections.png "Sections screen") - -Technically, a Section is a number, a name and an identifier. -Content items are placed in Sections by being assigned the Section ID. One item can be in only one Section. - -When a new Content item is created, its Section ID is set to the default Section (which is usually Standard). -When the item is published it is assigned to the same Section as its parent. Because content must always be in a Section, unassigning happens by choosing a different Section to move it into. -If a Content item has multiple Location assignments then it is always the Section ID of the item referenced by the parent of the main Location that will be used. -In addition, if the main Location of a Content item with multiple Location assignments is changed then the Section ID of that item will be updated. - -When content is moved to a different Location, the item itself and all of its subtree will be assigned to the Section of the new Location. -Note that it works only for copy and move; assigning a new Section to a parent Content item does not affect the subtree, meaning that subtree cannot currently be updated this way. - -Sections can only be removed if no Content items are assigned to them. Even then, it should be done carefully. -When a Section is deleted, it is only its definition itself that will be removed. -Other references to the Section will remain and thus the system will most likely lose consistency. - -!!! caution - - Removing Sections may corrupt permission settings, template output and other things in the system. - -Section ID numbers are not recycled. If a Section is removed, its ID number will not be reused when a new Section is created. - -## Users - -Users in [[= product_name =]] are treated the same way as Content items. -They are organized in groups such as *Guests*, *Editors*, *Anonymous*, which makes it easier to manage them and their permissions. -All User Groups and Users can be accessed in the Admin panel by selecting Users. - -![Users and User Groups](admin_panel_users.png "Users and User Groups") - -!!! caution - - Be careful not to delete an existing User account. If you do this, content created by this User will be broken and the application can face malfunction. - -### Registering users - -Registration form for your website is placed under this address: /register. -By default, new Users created in this way are placed in the Guest accounts group. -To give your users a possibility to register themselves, follow the instructions -on [enabling account registration](8_enable_account_registration.md). - -## Roles - -To give users an access to your website you need to assign them Roles in the Admin Panel. - -![Roles](admin_panel_roles.png "Roles") - -Each Role consists of: - -**Policies** - -![Policies](admin_panel_policies.png "Policies") - -Rules that give users access to different function in a module. -You can restrict what user can do with Limitations. -The available Limitations depend on the chosen Policy. -When Policy has more than one Limitation, all of them have to apply. -See [example use case](permission_use_cases.md#restrict-editing-to-part-of-the-tree). - -!!! note - - Limitation specifies what a User can do, not what they can't do. - A `Location` Limitation, for example, gives the User access to content with a specific Location, not prohibits it. See [Available Limitations](limitations.md#available-limitations) for further information. - -**Assignments** - -![Assignments](admin_panel_assignments.png "Assignments") - -After you created all Policies, you can assign the Role to Users and/or User Groups with possible additional Limitations. -Every User or User Group can have multiple Roles. -A User can also belong to many groups, for example, Administrators, Editors, Subscribers. - -Best practice is to avoid assigning Roles to Users directly. -Model your content (Content Types, Sections, Locations etc.) in a way that can be accessed by generic Roles. -That way system will be more secure and easier to manage. -This approach also improves performance. Role assignments and Policies are taken into account during search/load queries. - -See [Permissions overview](permissions.md) for further information -and [Permission use cases](permission_use_cases.md) for details on how to customize access to different parts of the Back Office. - -## Languages - -[[= product_name =]] offers the ability to create multiple translations of your website. -Which version is shown to a visitor depends on the way your installation is set up. -A new language version for the website can be added in the Admin Panel in the Languages tab. -Every new language must have a name and a language code, written in the `xxx-XX` format, for example `eng-GB` etc. - -![Languages](admin_panel_languages.png "Languages") - -The multilanguage system operates based on a global translation list that contains all languages available in the installation. -After adding a language you may have to reload the application to be able to use it. -Depending on your set up, additional configuration may be necessary for the new language to work properly, especially with SiteAccesses. - -See [Languages](languages.md) for further information. - -## Content Types - -A Content Type is a base for new Content items. -It defines what Fields will be available in the Content item. - -![Content Types](admin_panel_content_types.png "Content Types") - -For example, a new Content Type called *Article* can have Fields such as title, author, body, image, etc. -Based on this Content Type, you can create any number of Content items. -Content Types are organized into groups. - -![Content Type groups](admin_panel_content_type_groups.png "Content Type groups") - -You can add your own groups here to keep your Content Types in better order. - -For a full tutorial, see [Create a Content Type](first_steps.md#create-a-content-type) or follow [user documentation](https://doc.ibexa.co/projects/userguide/en/latest/organizing_the_site/#content-types). -For a detailed overview of the content model, see [Content model overview](content_model.md). - -## Object States - -Object states are user-defined states that can be assigned to Content items. -They are contained in groups. - -![Object State group](admin_panel_object_state_groups.png "Object State group") - -If a state group contains any states, each Content item is automatically assigned a state from this group. - -You can assign states to content in the Back Office in the Content item's Details tab. - -![Assigning an Object state to a Content item](assigning_an_object_state.png "Assigning an Object state to a Content item") - -By default, [[= product_name =]] contains one Object state group: **Lock**, with states **Locked** and **Not locked**. - -![**Lock** Object state](object_state_lock.png "Lock Object state") - -Object states can be used in conjunction with permissions, in particular with the [State Limitation](limitation_reference.md#state-limitation). -Their specific use cases depend on your needs and the setup of your permission system. - -## Segments [[% include 'snippets/experience_badge.md' %]] [[% include 'snippets/commerce_badge.md' %]] - -You can use Segments to display specific content to specific Users. -They are used out of the box in the Targeting and Dynamic targeting blocks in the Page. - -Segments are collected in Segment Groups: - -![](admin_panel_segment_groups.png) - -Each Segment Group can contain Segments that you can target content for. - -![](admin_panel_segment.png) - -You can assign Users to Segments [through the API](segment_api.md#assigning-users). diff --git a/docs/administration/admin_panel/admin_panel.md b/docs/administration/admin_panel/admin_panel.md new file mode 100644 index 0000000000..42dcc5c433 --- /dev/null +++ b/docs/administration/admin_panel/admin_panel.md @@ -0,0 +1,21 @@ +--- +description: Ibexa DXP Back Office contains managements options for permissions, users, languages, Content Types, as well as system information. +--- + +# Admin panel + +Once you set up your environment you can start your work as an administrator. +Your most useful tools can be found in **Admin Panel**. + +To access Admin Panel, click the icon: ![Admin Panel Icon](admin_panel_icon.png){.inline-image}. + +[[= cards([ + "administration/admin_panel/users_admin_panel", + "administration/admin_panel/roles_admin_panel", + "administration/admin_panel/url_management_admin_panel", + "administration/admin_panel/languages_admin_panel", + "administration/admin_panel/segments_admin_panel", + "administration/admin_panel/corporate_admin_panel", + "administration/admin_panel/workflow_admin_panel", + "administration/admin_panel/system_information_admin_panel", +], columns=4) =]] \ No newline at end of file diff --git a/docs/administration/admin_panel/corporate_admin_panel.md b/docs/administration/admin_panel/corporate_admin_panel.md new file mode 100644 index 0000000000..016fc60e49 --- /dev/null +++ b/docs/administration/admin_panel/corporate_admin_panel.md @@ -0,0 +1,15 @@ +--- +description: You can manage companies profiles in the Admin Panel. +--- + +# Corporate + +You can manage companies profiles in the Admin Panel. + +There, in the **Corporate** section, you can find basic information about existing companies, +for example, details, versions, locations, translations, a list of members, billing addresses +and technical details regarding the organization, such as visibility, IDs, or relations. + +![Corporate section](admin_panel_corporate.png "Corporate section") + +See [Customer management](https://doc.ibexa.co/projects/userguide/en/latest/customer_management/manage_customers/) for further information. \ No newline at end of file diff --git a/docs/administration/admin_panel/languages_admin_panel.md b/docs/administration/admin_panel/languages_admin_panel.md new file mode 100644 index 0000000000..acf71c74f1 --- /dev/null +++ b/docs/administration/admin_panel/languages_admin_panel.md @@ -0,0 +1,21 @@ +--- +description: Ibexa DXP offers the ability to create multiple translations of your website. +--- + +# Languages + +[[= product_name =]] offers the ability to create multiple translations of your website. +Which version is shown to a visitor depends on the way your installation is set up. +A new language version for the website can be added in the [Admin Panel](admin_panel.md) in the **Languages** tab. + +Every new language must have a name and a language code, written in the `xxx-XX` format, for example `eng-GB` etc. + +![Languages](admin_panel_languages.png "Languages") + +The multilanguage system operates based on a global translation list +that contains all languages available in the installation. +After adding a language you may have to reload the application to be able to use it. +Depending on your set up, additional configuration may be necessary +for the new language to work properly, especially with SiteAccesses. + +See [Languages](languages.md) for further information. diff --git a/docs/administration/admin_panel/roles_admin_panel.md b/docs/administration/admin_panel/roles_admin_panel.md new file mode 100644 index 0000000000..bf872356c5 --- /dev/null +++ b/docs/administration/admin_panel/roles_admin_panel.md @@ -0,0 +1,43 @@ +--- +description: To give users an access to your website you need to assign them Roles in the Admin Panel. +--- + +# Roles + +To give users an access to your website you need to assign them Roles in the Admin Panel. + +![Roles](admin_panel_roles.png "Roles") + +Each Role consists of: + +**Policies** + +![Policies](admin_panel_policies.png "Policies") + +Rules that give users access to different function in a module. +You can restrict what user can do with Limitations. +The available Limitations depend on the chosen Policy. +When Policy has more than one Limitation, all of them have to apply. +See [example use case](permission_use_cases.md#restrict-editing-to-part-of-the-tree). + +!!! note + + Limitation specifies what a User can do, not what they can't do. + A `Location` Limitation, for example, gives the User access to content with a specific Location, + not prohibits it. See [Available Limitations](limitations.md#available-limitations) for further information. + +**Assignments** + +![Assignments](admin_panel_assignments.png "Assignments") + +After you created all Policies, you can assign the Role to Users and/or User Groups with possible additional Limitations. +Every User or User Group can have multiple Roles. +A User can also belong to many groups, for example, Administrators, Editors, Subscribers. + +Best practice is to avoid assigning Roles to Users directly. +Model your content (Content Types, Sections, Locations etc.) in a way that can be accessed by generic Roles. +That way system will be more secure and easier to manage. +This approach also improves performance. Role assignments and Policies are taken into account during search/load queries. + +See [Permissions overview](permissions.md) for further information +and [Permission use cases](permission_use_cases.md) for details on how to customize access to different parts of the Back Office. \ No newline at end of file diff --git a/docs/administration/admin_panel/segments_admin_panel.md b/docs/administration/admin_panel/segments_admin_panel.md new file mode 100644 index 0000000000..b51e7a55a7 --- /dev/null +++ b/docs/administration/admin_panel/segments_admin_panel.md @@ -0,0 +1,18 @@ +--- +description: You can use Segments to display specific content to specific Users. +--- + +# Segments + +You can use Segments to display specific content to specific [Users](users.md). +They are used out of the box in the Targeting and Dynamic targeting blocks in the Page. + +Segments are collected in Segment Groups: + +![Segment Groups](admin_panel_segment_groups.png) + +Each Segment Group can contain Segments that you can target content for. + +![Segment](admin_panel_segment.png) + +You can assign Users to Segments [through the API](segment_api.md#assigning-users). \ No newline at end of file diff --git a/docs/administration/admin_panel/system_information_admin_panel.md b/docs/administration/admin_panel/system_information_admin_panel.md new file mode 100644 index 0000000000..6eb7a45078 --- /dev/null +++ b/docs/administration/admin_panel/system_information_admin_panel.md @@ -0,0 +1,10 @@ +--- +description: System information provides basic system information such as versions of all installed packages. +--- + +# System Information + +The System Information panel in the Back Office is sourced in the [`ibexa/support-tools` repository](https://github.com/ibexa/support-tools). +There you will also find basic system information such as versions of all installed packages. + +![System Information](admin_panel_system_info.png "System Information") diff --git a/docs/administration/admin_panel/url_management_admin_panel.md b/docs/administration/admin_panel/url_management_admin_panel.md new file mode 100644 index 0000000000..bbe0768b4f --- /dev/null +++ b/docs/administration/admin_panel/url_management_admin_panel.md @@ -0,0 +1,12 @@ +--- +description: URL Management let you manage external URL addresses and URL wildcards. +--- + +# URL Management + +You can manage external URL addresses and URL wildcards in the Admin Panel. +Configure URL aliases to have human-readable URL addresses throughout your system. + +See [URL management](url_management.md) for further information. + +![URL Management](admin_panel_url_management.png "URL Management") \ No newline at end of file diff --git a/docs/administration/admin_panel/users_admin_panel.md b/docs/administration/admin_panel/users_admin_panel.md new file mode 100644 index 0000000000..f41145ccef --- /dev/null +++ b/docs/administration/admin_panel/users_admin_panel.md @@ -0,0 +1,17 @@ +--- +description: All User Groups and Users can be accessed in the Users tab. +--- + +# Users + +[Users](users.md) in [[= product_name =]] are treated the same way as Content items. +They are organized in groups such as *Guests*, *Editors*, *Anonymous*, +which makes it easier to manage them and their permissions. +All User Groups and Users can be accessed in the Admin panel by selecting Users. + +![Users and User Groups](admin_panel_users.png "Users and User Groups") + +!!! caution + + Be careful not to delete an existing User account. + If you do this, content created by this User will be broken and the application can face malfunction. diff --git a/docs/administration/admin_panel/workflow_admin_panel.md b/docs/administration/admin_panel/workflow_admin_panel.md new file mode 100644 index 0000000000..a8f5b92e46 --- /dev/null +++ b/docs/administration/admin_panel/workflow_admin_panel.md @@ -0,0 +1,12 @@ +--- +description: The workflow functionality passes a Content item version through a series of stages. +--- + +# Workflow + +The workflow functionality passes a Content item version through a series of stages. +Each workflow consists of stages and transitions between them. + +See [Workflow](workflow.md) for further information. + +![Workflow](admin_panel_workflow.png "Workflow") \ No newline at end of file diff --git a/docs/administration/administration.md b/docs/administration/administration.md index 8b25378633..89a4b22bb0 100644 --- a/docs/administration/administration.md +++ b/docs/administration/administration.md @@ -7,7 +7,7 @@ description: Administer and configure your Ibexa DXP installation. Administer and configure your [[= product_name =]] installation. [[= cards([ - "administration/admin_panel", + "administration/admin_panel/admin_panel", "administration/project_organization/project_organization", "administration/configuration/configuration", "administration/back_office/back_office", diff --git a/docs/administration/content_organization/content_types.md b/docs/administration/content_organization/content_types.md new file mode 100644 index 0000000000..78cfca2a0b --- /dev/null +++ b/docs/administration/content_organization/content_types.md @@ -0,0 +1,137 @@ +--- +description: A Content Type is a base for new Content items. +--- + +# Content Types + +A Content Type is a base for new Content items. +It defines what Fields will be available in the Content item. + +![Content Types](admin_panel_content_types.png "Content Types") + +For example, a new Content Type called *Article* can have Fields such as title, author, body, image, etc. +Based on this Content Type, you can create any number of Content items. +Content Types are organized into groups. + +![Content Type groups](admin_panel_content_type_groups.png "Content Type groups") + +You can add your own groups here to keep your Content Types in better order. + +For a full tutorial, see [Create a Content Type](first_steps.md#create-a-content-type) or follow [user documentation](https://doc.ibexa.co/projects/userguide/en/latest/organizing_the_site/#content-types). +For a detailed overview of the content model, see [Content model overview](content_model.md). + +## Content Type metadata + +Each Content Type is characterized by a set of metadata which define the general behavior of its instances: + +**Name** – a user-friendly name that describes the Content Type. This name is used in the interface, but not internally by the system. It can consist of letters, digits, spaces and special characters; the maximum length is 255 characters. (Mandatory.) + +!!! note + + Note that even if your Content Type defines a Field intended as a name for the Content item (for example, a title of an article or product name), do not confuse it with this Name, which is a piece of metadata, not a Field. + +**Identifier** – an identifier for internal use in configuration files, templates, PHP code, etc. It must be unique, can only contain lowercase letters, digits and underscores; the maximum length is 50 characters. (Mandatory.) + +**Description** – a detailed description of the Content Type. (Optional.) + +**Content name pattern** – a pattern that defines what name a new Content item based on this Content Type gets. The pattern usually consists of Field identifiers that tell the system which Fields it should use when generating the name of a Content item. Each Field identifier has to be surrounded with angle brackets. Text outside the angle brackets will be included literally. If no pattern is provided, the system will automatically use the first Field. (Optional.) + +**URL alias name pattern** – a pattern which controls how the virtual URLs of the Locations will be generated when Content items are created based on this Content Type. Note that only the last part of the virtual URL is affected. The pattern works in the same way as the Content name pattern. Text outside the angle brackets will be converted using the selected method of URL transformation. If no pattern is provided, the system will automatically use the name of the Content item itself. (Optional.) + +!!! tip "Changing URL alias and Content name patterns" + + If you change the Content name pattern or the URL alias name pattern, + existing Content items will not be modified automatically. + The new pattern will only be applied after you modify the Content item and save a new version. + + The old URL aliases will continue to redirect to the same Content items. + +**Container** – a flag which indicates if Content items based on this Content Type are allowed to have sub-items or not. + +!!! note + + This flag was added for convenience and only affects the interface. In other words, it doesn't control any actual low-level logic, it simply controls the way the graphical user interface behaves. + +**Sort children by default by** – rule for sorting sub-items. If the instances of this Content Type can serve as containers, their children will be sorted according to what is selected here. + +**Sort children by default in order** – another rule for sorting sub-items. This decides the sort order for the criterion chosen above. + +**Make content available even with missing translations** – a flag which indicates if Content items of this Content Type should be available even without a corresponding language version. See [Content availability](content_availability.md). + +![Creating a new Content Type](admin_panel_new_content_type.png) + +## Field definitions + +Aside from the metadata, a Content Type may contain any number of Field definitions (but has to contain at least one). +They determine what Fields of what Field Types will be included in all Content items based on this Content Type. + +![Diagram of an example Content Type](content_model_type_diagram.png) + +!!! note + + You can assign each Field defined in a Content Type to a group by selecting one of the groups in the Category drop-down. [Available groups can be configured in the content repository](repository_configuration.md). + +!!! caution + + In case of Content Types containing many Field Types you should be aware of possible memory-related issues with publishing/editing. + They are caused by the limitation of how many `$_POST` input variables can be accepted. + + The easiest way to fix them is by increasing the `max_input_vars` value in the `php.ini` configuration file. + Note that this solution is not universally recommended and you're proceeding on your own risk. + + Setting the limit inappropriately may damage your project or cause other issues. + You may also experience performance problems with such large Content Types, in particular when you have many Content items. + If you're experincing too many issues, consider rearranging your project to avoid them. + +## Modifying Content Types + +A Content Type and its Field definitions can be modified after creation, +even if there are already Content items based on it in the system. +When a Content Type is modified, each of its instances will be changed as well. +If a new Field definition is added to a Content Type, this Field will appear (empty) in every relevant Content item. +If a Field definition is deleted from the Content Type, all the corresponding Fields will be removed from Content items of this type. + +## Removing Content Types + +System Content Types are by default used for the File Uploads and removing them will cause errors. + +If you decide to remove a `file` or `image` Content Type, or change their identifiers, +you will need to change the configuration, so it reflects the available Content Types. + +Example configuration: + +```yaml +parameters: + ibexa.multifile_upload.location.default_mappings: + # Image + - mime_types: + - image/jpeg + - image/jpg + - image/pjpeg + - image/pjpg + - image/png + - image/bmp + - image/gif + - image/tiff + - image/x-icon + - image/webp + content_type_identifier: custom_image_contenttype + content_field_identifier: image + name_field_identifier: name + # File + - mime_types: + - image/svg+xml + - application/msword + - application/vnd.openxmlformats-officedocument.wordprocessingml.document + - application/vnd.ms-excel + - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + - application/vnd.ms-powerpoint + - application/vnd.openxmlformats-officedocument.presentationml.presentation + - application/pdf + content_type_identifier: custom_file_contenttype + content_field_identifier: file + name_field_identifier: name + ibexa.multifile_upload.fallback_content_type: + content_type_identifier: custom_file_contenttype + content_field_identifier: file + name_field_identifier: name \ No newline at end of file diff --git a/docs/administration/content_organization/object_states.md b/docs/administration/content_organization/object_states.md new file mode 100644 index 0000000000..d3b4a090f4 --- /dev/null +++ b/docs/administration/content_organization/object_states.md @@ -0,0 +1,23 @@ +--- +description: Object states are user-defined states that can be assigned to Content items. +--- + +## Object States + +Object states are user-defined states that can be assigned to Content items. +They are contained in groups. + +![Object State group](admin_panel_object_state_groups.png "Object State group") + +If a state group contains any states, each Content item is automatically assigned a state from this group. + +You can assign states to content in the Back Office in the Content item's Details tab. + +![Assigning an Object state to a Content item](assigning_an_object_state.png "Assigning an Object state to a Content item") + +By default, [[= product_name =]] contains one Object state group: **Lock**, with states **Locked** and **Not locked**. + +![**Lock** Object state](object_state_lock.png "Lock Object state") + +Object states can be used in conjunction with [permissions](permission_overview.md), in particular with the [State Limitation](limitation_reference.md#state-limitation). +Their specific use cases depend on your needs and the setup of your permission system. \ No newline at end of file diff --git a/docs/administration/content_organization/sections.md b/docs/administration/content_organization/sections.md new file mode 100644 index 0000000000..c19b18cdbd --- /dev/null +++ b/docs/administration/content_organization/sections.md @@ -0,0 +1,38 @@ +--- +description: Sections are used to divide Content items in the tree. +--- + +## Sections + +Sections are used to divide Content items in the tree into groups that are more easily manageable by content editors. +Division into Sections allows you, among others, to set [permissions](permission_overview.md) for only a part of the tree. + +![Sections screen](admin_panel_sections.png "Sections screen") + +Technically, a Section is a number, a name and an identifier. +Content items are placed in Sections by being assigned the Section ID. One item can be in only one Section. + +When a new Content item is created, its Section ID is set to the default Section (which is usually Standard). +When the item is published it is assigned to the same Section as its parent. Because content must always be in a Section, unassigning happens by choosing a different Section to move it into. +If a Content item has multiple Location assignments then it is always the Section ID of the item referenced by the parent of the main Location that will be used. +In addition, if the main Location of a Content item with multiple Location assignments is changed then the Section ID of that item will be updated. + +When content is moved to a different Location, the item itself and all of its subtree will be assigned to the Section of the new Location. +Note that it works only for copy and move; assigning a new Section to a parent Content item does not affect the subtree, meaning that subtree cannot currently be updated this way. + +Sections can only be removed if no Content items are assigned to them. Even then, it should be done carefully. +When a Section is deleted, it is only its definition itself that will be removed. +Other references to the Section will remain and thus the system will most likely lose consistency. + +!!! caution + + Removing Sections may corrupt permission settings, template output and other things in the system. + +Section ID numbers are not recycled. If a Section is removed, its ID number will not be reused when a new Section is created. + +### Registering users + +Registration form for your website is placed under this address: /register. +By default, new Users created in this way are placed in the Guest accounts group. +To give your users a possibility to register themselves, follow the instructions +on [enabling account registration](8_enable_account_registration.md). \ No newline at end of file diff --git a/docs/administration/img/admin_panel_assignments.png b/docs/administration/img/admin_panel_assignments.png index 13090e4a74..b03d24044b 100644 Binary files a/docs/administration/img/admin_panel_assignments.png and b/docs/administration/img/admin_panel_assignments.png differ diff --git a/docs/administration/img/admin_panel_content_type_groups.png b/docs/administration/img/admin_panel_content_type_groups.png index cb00d03eac..f2f2efc604 100644 Binary files a/docs/administration/img/admin_panel_content_type_groups.png and b/docs/administration/img/admin_panel_content_type_groups.png differ diff --git a/docs/administration/img/admin_panel_content_types.png b/docs/administration/img/admin_panel_content_types.png index 05003515cc..e414319a11 100644 Binary files a/docs/administration/img/admin_panel_content_types.png and b/docs/administration/img/admin_panel_content_types.png differ diff --git a/docs/administration/img/admin_panel_corporate.png b/docs/administration/img/admin_panel_corporate.png new file mode 100644 index 0000000000..255f874d91 Binary files /dev/null and b/docs/administration/img/admin_panel_corporate.png differ diff --git a/docs/administration/img/admin_panel_icon.png b/docs/administration/img/admin_panel_icon.png new file mode 100644 index 0000000000..1666e0e587 Binary files /dev/null and b/docs/administration/img/admin_panel_icon.png differ diff --git a/docs/administration/img/admin_panel_languages.png b/docs/administration/img/admin_panel_languages.png index c5fcd0a53b..12a8630ce8 100644 Binary files a/docs/administration/img/admin_panel_languages.png and b/docs/administration/img/admin_panel_languages.png differ diff --git a/docs/administration/img/admin_panel_object_state_groups.png b/docs/administration/img/admin_panel_object_state_groups.png index 55058a4c26..cc398e8075 100644 Binary files a/docs/administration/img/admin_panel_object_state_groups.png and b/docs/administration/img/admin_panel_object_state_groups.png differ diff --git a/docs/administration/img/admin_panel_policies.png b/docs/administration/img/admin_panel_policies.png index b118a22ad3..8734c3d748 100644 Binary files a/docs/administration/img/admin_panel_policies.png and b/docs/administration/img/admin_panel_policies.png differ diff --git a/docs/administration/img/admin_panel_roles.png b/docs/administration/img/admin_panel_roles.png index bec8f957f2..ae18c14bc5 100644 Binary files a/docs/administration/img/admin_panel_roles.png and b/docs/administration/img/admin_panel_roles.png differ diff --git a/docs/administration/img/admin_panel_sections.png b/docs/administration/img/admin_panel_sections.png index 4686ec809e..a15f2a5765 100644 Binary files a/docs/administration/img/admin_panel_sections.png and b/docs/administration/img/admin_panel_sections.png differ diff --git a/docs/administration/img/admin_panel_segment.png b/docs/administration/img/admin_panel_segment.png index 1a65919d9f..e04b307c23 100644 Binary files a/docs/administration/img/admin_panel_segment.png and b/docs/administration/img/admin_panel_segment.png differ diff --git a/docs/administration/img/admin_panel_segment_groups.png b/docs/administration/img/admin_panel_segment_groups.png index 7b1e34c898..bc899dd863 100644 Binary files a/docs/administration/img/admin_panel_segment_groups.png and b/docs/administration/img/admin_panel_segment_groups.png differ diff --git a/docs/administration/img/admin_panel_system_info.png b/docs/administration/img/admin_panel_system_info.png index 2d3241e0c3..27a6b05553 100644 Binary files a/docs/administration/img/admin_panel_system_info.png and b/docs/administration/img/admin_panel_system_info.png differ diff --git a/docs/administration/img/admin_panel_url_management.png b/docs/administration/img/admin_panel_url_management.png new file mode 100644 index 0000000000..025990eb11 Binary files /dev/null and b/docs/administration/img/admin_panel_url_management.png differ diff --git a/docs/administration/img/admin_panel_users.png b/docs/administration/img/admin_panel_users.png index 7ea98392c3..16a96278c6 100644 Binary files a/docs/administration/img/admin_panel_users.png and b/docs/administration/img/admin_panel_users.png differ diff --git a/docs/administration/img/admin_panel_workflow.png b/docs/administration/img/admin_panel_workflow.png new file mode 100644 index 0000000000..8c5a52d845 Binary files /dev/null and b/docs/administration/img/admin_panel_workflow.png differ diff --git a/docs/administration/img/assigning_an_object_state.png b/docs/administration/img/assigning_an_object_state.png index 70f6d72aef..dd8be2eefd 100644 Binary files a/docs/administration/img/assigning_an_object_state.png and b/docs/administration/img/assigning_an_object_state.png differ diff --git a/docs/administration/img/object_state_lock.png b/docs/administration/img/object_state_lock.png index 892066fe0d..5ad9c9c38a 100644 Binary files a/docs/administration/img/object_state_lock.png and b/docs/administration/img/object_state_lock.png differ diff --git a/docs/content_management/content_model.md b/docs/content_management/content_model.md index 36a047303d..df7c13ba32 100644 --- a/docs/content_management/content_model.md +++ b/docs/content_management/content_model.md @@ -77,126 +77,7 @@ If a published item is removed from the Trash (or removed without being put in t ![Diagram of an example Content item](content_model_item_diagram.png) The Fields of a Content item are defined by the Content Type to which the Content item belongs. - -## Content Types - -### Content Type metadata - -Each Content Type is characterized by a set of metadata which define the general behavior of its instances: - -**Name** – a user-friendly name that describes the Content Type. This name is used in the interface, but not internally by the system. It can consist of letters, digits, spaces and special characters; the maximum length is 255 characters. (Mandatory.) - -!!! note - - Note that even if your Content Type defines a Field intended as a name for the Content item (for example, a title of an article or product name), do not confuse it with this Name, which is a piece of metadata, not a Field. - -**Identifier** – an identifier for internal use in configuration files, templates, PHP code, etc. It must be unique, can only contain lowercase letters, digits and underscores; the maximum length is 50 characters. (Mandatory.) - -**Description** – a detailed description of the Content Type. (Optional.) - -**Content name pattern** – a pattern that defines what name a new Content item based on this Content Type gets. The pattern usually consists of Field identifiers that tell the system which Fields it should use when generating the name of a Content item. Each Field identifier has to be surrounded with angle brackets. Text outside the angle brackets will be included literally. If no pattern is provided, the system will automatically use the first Field. (Optional.) - -**URL alias name pattern** – a pattern which controls how the virtual URLs of the Locations will be generated when Content items are created based on this Content Type. Note that only the last part of the virtual URL is affected. The pattern works in the same way as the Content name pattern. Text outside the angle brackets will be converted using the selected method of URL transformation. If no pattern is provided, the system will automatically use the name of the Content item itself. (Optional.) - -!!! tip "Changing URL alias and Content name patterns" - - If you change the Content name pattern or the URL alias name pattern, - existing Content items will not be modified automatically. - The new pattern will only be applied after you modify the Content item and save a new version. - - The old URL aliases will continue to redirect to the same Content items. - -**Container** – a flag which indicates if Content items based on this Content Type are allowed to have sub-items or not. - -!!! note - - This flag was added for convenience and only affects the interface. In other words, it doesn't control any actual low-level logic, it simply controls the way the graphical user interface behaves. - -**Sort children by default by** – rule for sorting sub-items. If the instances of this Content Type can serve as containers, their children will be sorted according to what is selected here. - -**Sort children by default in order** – another rule for sorting sub-items. This decides the sort order for the criterion chosen above. - -**Make content available even with missing translations** – a flag which indicates if Content items of this Content Type should be available even without a corresponding language version. See [Content availability](content_availability.md). - -![Creating a new Content Type](admin_panel_new_content_type.png) - -### Field definitions - -Aside from the metadata, a Content Type may contain any number of Field definitions (but has to contain at least one). -They determine what Fields of what Field Types will be included in all Content items based on this Content Type. - -![Diagram of an example Content Type](content_model_type_diagram.png) - -!!! note - - You can assign each Field defined in a Content Type to a group by selecting one of the groups in the Category drop-down. [Available groups can be configured in the content repository](repository_configuration.md). - -!!! caution - - In case of Content Types containing many Field Types you should be aware of possible memory-related issues with publishing/editing. - They are caused by the limitation of how many `$_POST` input variables can be accepted. - - The easiest way to fix them is by increasing the `max_input_vars` value in the `php.ini` configuration file. - Note that this solution is not universally recommended and you're proceeding on your own risk. - - Setting the limit inappropriately may damage your project or cause other issues. - You may also experience performance problems with such large Content Types, in particular when you have many Content items. - If you're experincing too many issues, consider rearranging your project to avoid them. - -### Modifying Content Types - -A Content Type and its Field definitions can be modified after creation, -even if there are already Content items based on it in the system. -When a Content Type is modified, each of its instances will be changed as well. -If a new Field definition is added to a Content Type, this Field will appear (empty) in every relevant Content item. -If a Field definition is deleted from the Content Type, all the corresponding Fields will be removed from Content items of this type. - -### Removing Content Types - -System Content Types are by default used for the File Uploads and removing them will cause errors. - -If you decide to remove a `file` or `image` Content Type, or change their identifiers, -you will need to change the configuration, so it reflects the available Content Types. - -Example configuration: - -```yaml -parameters: - ibexa.multifile_upload.location.default_mappings: - # Image - - mime_types: - - image/jpeg - - image/jpg - - image/pjpeg - - image/pjpg - - image/png - - image/bmp - - image/gif - - image/tiff - - image/x-icon - - image/webp - content_type_identifier: custom_image_contenttype - content_field_identifier: image - name_field_identifier: name - # File - - mime_types: - - image/svg+xml - - application/msword - - application/vnd.openxmlformats-officedocument.wordprocessingml.document - - application/vnd.ms-excel - - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - - application/vnd.ms-powerpoint - - application/vnd.openxmlformats-officedocument.presentationml.presentation - - application/pdf - content_type_identifier: custom_file_contenttype - content_field_identifier: file - name_field_identifier: name - ibexa.multifile_upload.fallback_content_type: - content_type_identifier: custom_file_contenttype - content_field_identifier: file - name_field_identifier: name -``` - +s ## Fields A Field is the smallest unit of storage in the content model and the building block of all Content items. Every Field belongs to a Field Type. diff --git a/mkdocs.yml b/mkdocs.yml index 8bdc6ca62d..4fa76c9df1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -85,7 +85,20 @@ nav: - Project organization: administration/project_organization/project_organization.md - Architecture: administration/project_organization/architecture.md - Bundles: administration/project_organization/bundles.md - - Admin panel: administration/admin_panel.md + - Admin panel: + - Admin panel: administration/admin_panel/admin_panel.md + - Users: administration/admin_panel/users_admin_panel.md + - Roles: administration/admin_panel/roles_admin_panel.md + - URL Management: administration/admin_panel/url_management_admin_panel.md + - Languages: administration/admin_panel/languages_admin_panel.md + - Segments: administration/admin_panel/segments_admin_panel.md + - Corporate: administration/admin_panel/corporate_admin_panel.md + - Workflow: administration/admin_panel/workflow_admin_panel.md + - System Information: administration/admin_panel/system_information_admin_panel.md + - Content organization: + - Sections: administration/content_organization/sections.md + - Content Types: administration/content_organization/content_types.md + - Object States: administration/content_organization/object_states.md - Configuration: - Configuration: administration/configuration/configuration.md - Dynamic configuration: administration/configuration/dynamic_configuration.md diff --git a/plugins.yml b/plugins.yml index 036d52127b..0ba323cd74 100644 --- a/plugins.yml +++ b/plugins.yml @@ -58,7 +58,8 @@ plugins: 'guide/project_organization.md': 'administration/project_organization/project_organization.md' 'guide/architecture.md': 'administration/project_organization/architecture.md' 'guide/bundles.md': 'administration/project_organization/bundles.md' - 'guide/admin_panel.md': 'administration/admin_panel.md' + 'guide/admin_panel.md': 'administration/admin_panel/admin_panel.md' + 'administration/admin_panel.md': 'administration/admin_panel/admin_panel.md' 'guide/configuration/configuration.md': 'administration/configuration/configuration.md' 'guide/configuration/config_dynamic.md': 'administration/configuration/dynamic_configuration.md' 'guide/configuration/config_repository.md': 'administration/configuration/repository_configuration.md'