| description | Configure the Collaborative editing feature. |
|---|---|
| month_change | false |
Collaborative editing feature is available in [[= product_name =]] starting with version v5.0.2 or higher, regardless of its edition.
If you have an arrangements with [[= product_name_base =]] to use Real-time editing feature, you need to install following package:
composer require ibexa/fieldtype-richtext-rteThis command installs also ibexa/ckeditor-premium package and adds the new real-time editing functionality to the Rich Text field type.
It also modifies the permission system to account for the new functionality.
Then, if not using Symfony Flex, add the following code to the config/bundles.php file:
<?php
return [
// A lot of bundles…
Ibexa\Bundle\FieldTypeRichTextRTE\IbexaFieldTypeRichTextRTEBundle::class => ['all' => true],
Ibexa\Bundle\CkeditorPremium\IbexaCkeditorPremiumBundle::class => ['all' => true],
];Before you can start Collaborative editing feature, you must enable it by following these instructions.
After an installation process is finished, go to config/packages/security.yaml and make following changes:
- uncomment following lines with
shareduser provider under theproviderskey:
security:
providers:
# ...
shared:
id: Ibexa\Collaboration\Security\User\ShareableLinkUserProvider- uncomment following lines under the
ibexa_shareable_linkkey:
security:
# ...
ibexa_shareable_link:
request_matcher: Ibexa\Collaboration\Security\RequestMatcher\ShareableLinkRequestMatcher
pattern: ^/
provider: shared
stateless: true
user_checker: Ibexa\Core\MVC\Symfony\Security\UserChecker
custom_authenticators:
- Ibexa\Collaboration\Security\Authenticator\ShareableLinkAuthenticatorYou can configure Collaborative editing per Repository.
Under ibexa.repositories.<repository_name>.collaboration configuration key, indicate the settings for collaboration:
ibexa:
repositories:
<repository_name>:
collaboration:
participants:
allowed_types:
- internal
- external
auto_invite: <value>
session:
public_link_enabled: <value>The following settings are available:
- participants:
allowed_types- defines allowed user types, values:internal,external, you can set one or both of the valuesauto_invite- determines whether invitations should be sent automatically when inviting someone to a session, default value:true, available values:true,false
- session:
public_link_enabled- determines whether the public link is available, default value:false, available values:true,false
To share content model, you need to configure the ibexa/share package.
Under ibexa.system configuration key, indicate the settings:
ibexa:
system:
admin_group:
share:
content_type_groups:
- 'Content'
excluded_content_types:
- 'tag'
- 'landing_page'
- 'product_category_tag'The following setting is available:
content_type_groups– defines groups of content types for which the Share button is displayed (it can still be disabled for specific content types within these groups by using theexcluded_content_typessetting)
In the example configuration above, the Share button is displayed for any content that belongs to the Content group, except for tag, landing_page, and product_category_tag content types.
You can also control which user content types can use the feature through the ibexa.share.permission_check_context.content.user_content_type_identifiers container parameter.
It accepts an array of content type identifiers and the default value is ['editor'].
You can now restart you application and start working with the Collaborative editing feature. To add the real-time editing capabilities, continue with the instruction below.
You must have an arrangement with [[= product_name_base =]] before configuring the real-time editing. If you haven't already, you must also accept the Terms of Service in the Service portal.
Only then you can create a new Collaborative editing environment. To do it, log in to the service portal, go to your Service Portal and select Create environment (this requires the Portal administrator access level).
Once the environment is created, you can proceed with the configuration in [[= product_name =]].
Use the generated values to set the environment_id, environment_secret, and web_socket_url for your repositories as in the example below:
ibexa:
repositories:
default:
fieldtype_richtext_rte:
environment_id: '%env(CKEDITOR_ENVIRONMENT_ID)%'
environment_secret: '%env(CKEDITOR_ENVIRONMENT_SECRET)%'
web_socket_url: '%env(CKEDITOR_WEB_SOCKET_URL)%'Then, enable real-time editing for specific SiteAccesses. The following example enables it for the back office:
ibexa:
system:
admin_group:
fieldtype_richtext_rte:
enabled: trueFinish the configuration by running:
composer run post-install-cmdReal-Time Collaboration service is only available after accepting its Terms and Conditions. Any new version of this document released by [[= product_name_base =]] must be accepted before the assigned deadline.
The Portal administrator for your Service portal can accept it in Service portal's service details.
If not done in time, the Real-Time Collaboration service will be disabled until the latest Terms and Conditions are accepted.