Skip to content

Commit f2be2cb

Browse files
committed
Merge branch 'master' into test-links
2 parents 69570ba + 6f88db9 commit f2be2cb

File tree

24 files changed

+306
-43
lines changed

24 files changed

+306
-43
lines changed

code_samples/catalog/custom_attribute_type/src/Attribute/Percent/Form/PercentValueFormMapper.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ public function createValueForm(
3434
];
3535

3636
if ($assignment->isRequired()) {
37-
$options['constraints'] = [
38-
new Assert\NotBlank(),
39-
];
37+
$options['constraints'][] = new Assert\NotBlank();
4038
}
4139

4240
$builder->add($name, PercentType::class, $options);

docs/content_management/content_management_guide.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Content management capabilities are available in all [[= product_name =]] editio
3232
You can set up content structure, define the templates to be filled with content, and assign different areas of the structure to your editors.
3333
Next steps would be to create the actual content, and then classify content items, and organize them as necessary.
3434

35-
You can then publish the content directly, by building a website or a web store, or by using external systems together with a [headless CMS](https://developers.ibexa.co/developer-portal/headless-cms) that relies on the [[= product_name =]] technology.
35+
You can then publish the content directly, by building a website or a web store, or by using external systems together with a [headless CMS](https://developers.ibexa.co/headless-cms) that relies on the [[= product_name =]] technology.
3636

3737
## Content structure
3838

@@ -284,4 +284,4 @@ Extensive content management capabilities would prove themselves in a setting,
284284
where multiple buyers from different partner companies connect to an industry leader’s trading website,
285285
and they expect to find well organized SKU catalogs that contain basic product information.
286286
From there they would like to access detailed specifications, white papers and application notes.
287-
The same products could come with different brands and at different price points, depending on the customer segment or origin.
287+
The same products could come with different brands and at different price points, depending on the customer segment or origin.

docs/content_management/data_migration/exporting_data.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ or in [a custom folder that you configure](managing_migrations.md#migration-fold
1414
You can later use this file to import the data.
1515

1616
``` bash
17-
php bin/console ibexa:migrations:generate --type=content --mode=create
17+
php bin/console ibexa:migrations:generate --type=content --mode=create --siteaccess=admin
1818
```
1919

2020
This generates a file containing all Content items.
@@ -134,6 +134,12 @@ Note that you should test your migrations. See [Importing data](importing_data.m
134134

135135
Migration command can be executed with database rollback at the end with the `--dry-run` option.
136136

137+
!!! caution
138+
139+
The `--siteaccess` option usage can be relevant for a multi-language repository.
140+
You must export with a SiteAccess that supports all languages, or the migration skips translations in non-supported languages.
141+
It is recommended to use the SiteAccess from the Back Office of the targeted repository.
142+
137143
## type
138144

139145
The mandatory `--type` option defines the type of Repository data to export.

docs/content_management/data_migration/importing_data.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,17 @@ and specify the file name within this folder as parameter.
1515
If you don't specify the file, all files within this directory are used.
1616

1717
``` bash
18-
php bin/console ibexa:migrations:migrate --file=my_data_export.yaml
18+
php bin/console ibexa:migrations:migrate --file=my_data_export.yaml --siteaccess=admin
1919
```
2020

2121
Migrations store execution metadata in the `ibexa_migrations` database table.
2222
This allows incremental upgrades:
2323
the `ibexa:migrations:migrate` command ignores files that it had previously executed.
2424

25+
Notice that `--siteaccess` option usage is important when several languages are used.
26+
You must import with a SiteAccess that supports all languages, or the migration skips translations in non-supported languages.
27+
It's recommended to use the SiteAccess from the Back Office of the targeted repository.
28+
2529
## Migration step
2630

2731
A data migration step is a single operation in data migration process

docs/content_management/taxonomy/taxonomy.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ To use this new taxonomy, add an `ibexa_taxonomy_entry_assignement` Field to a C
5757

5858
### Hide Content tab
5959

60-
The **Content** tab in taxonomy objects, for example, tags and categories, lists all Content assigned to the current taxonomy.
60+
The **Content** tab in taxonomy objects, for example, tags and categories, lists all Content assigned to the current taxonomy.
6161
You can hide the **Content** tab in the **Categories** view.
6262

6363
In configuration add `assigned_content_tab` with the flag `false` (for other taxonomies this flag is by default set to `true`):
@@ -68,3 +68,36 @@ In configuration add `assigned_content_tab` with the flag `false` (for other tax
6868
```
6969

7070
For more information about available functionalities of tags, see [User Documentation]([[= user_doc =]]/taxonomy).
71+
72+
## Hide delete button on large subtree
73+
74+
The **Delete** button can be hidden when a taxonomy entry has many children.
75+
By default, the button is hidden when there are 100 children or more.
76+
77+
The `delete_subtree_size_limit` configuration is [SiteAccess-aware](siteaccess_aware_configuration.md), and can be set per SiteAccess, per SiteAccess group, or globally per default.
78+
For example:
79+
80+
```yaml
81+
ibexa:
82+
system:
83+
default: # or a SiteAccess, or a SiteAccess group
84+
taxonomy:
85+
admin_ui:
86+
delete_subtree_size_limit: 20
87+
```
88+
89+
## Remove orphaned Content items
90+
91+
In some rare case, especially in I[[= product_name =]] v4.2 and older, when deleting parent of huge subtrees, some Taxonomy entries are not properly deleted, leaving Content items that point to a non-existing parent.
92+
The command `ibexa:taxonomy:remove-orphaned-content` deletes those orphaned Content item.
93+
It works on a taxonomy passed as an argument, and has two options that act as a protective measure against deleting data by mistake:
94+
95+
- `--dry-run` to list deletable Content items, without performing the deletion.
96+
- `--force` to effectively delete the orphaned Content items.
97+
98+
The following example first lists the orphaned Content items for taxonomy `tags`, and then deletes them:
99+
100+
```bash
101+
php bin/console ibexa:taxonomy:remove-orphaned-content tags --dry-run
102+
php bin/console ibexa:taxonomy:remove-orphaned-content tags --force
103+
```

docs/getting_started/requirements.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ Recommendation for production setups is to use Varnish/Fastly, Redis/Memcached,
455455

456456
### Cloud hosting with eZ Platform Cloud and Platform.sh
457457

458-
In general, eZ Platform Cloud supports all features and services of [Platform.sh](https://platform.sh/hosting/php/ez) that are compatible and supported by the eZ Platform version you use.
458+
In general, eZ Platform Cloud supports all features and services of [Platform.sh](https://platform.sh/marketplace/ibexa/) that are compatible and supported by the eZ Platform version you use.
459459

460460
For example:
461461

docs/infrastructure_and_maintenance/clustering/clustering_with_aws_s3.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ meaning AWS S3 will be used to store binary files.
1414
## Set up AWS S3 account
1515

1616
1. Go to <https://aws.amazon.com/> and create an account.
17-
An [existing Amazon account can be used](http://docs.aws.amazon.com/AmazonS3/latest/gsg/SigningUpforS3.html).
18-
1. [Choose a region](http://docs.aws.amazon.com/storagegateway/latest/userguide/available-regions-intro.html).
17+
An [existing Amazon account can be used](https://docs.aws.amazon.com/AmazonS3/latest/userguide/setting-up-s3.html#sign-up-for-aws).
18+
1. [Choose a region](https://docs.aws.amazon.com/storagegateway/latest/vgw/available-regions-intro.html).
1919
The example below uses EU (Ireland): `eu-west-1`
2020
1. Create a bucket in your chosen region and make note of the bucket name:
21-
<http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html>.
21+
<https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html>.
2222
1. Go to the [IAM Management Console](https://console.aws.amazon.com/iam/home#/users) and create a user.
23-
See <http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html>.
23+
See <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html>.
2424
1. Then create a group and assign the user to the group.
2525
1. Assign policies to the group. The `AmazonS3FullAccess` policy gives read/write access to your bucket.
2626
1. Still in the IAM console, view the user you created. Click the "Security credentials" tab.
@@ -30,7 +30,7 @@ The secret key cannot be retrieved again after the key has been created, so don'
3030

3131
!!! note
3232

33-
Make sure that your bucket is [configured as Public](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-bucket.html) to avoid facing 403 errors, as the current S3 handler is meant to store files publicly so they can be served directly from S3.
33+
Make sure that your bucket is [configured as Public](https://docs.aws.amazon.com/AmazonS3/latest/userguide/configuring-block-public-access-bucket.html) to avoid facing 403 errors, as the current S3 handler is meant to store files publicly so they can be served directly from S3.
3434

3535
## Set up [[= product_name =]] for AWS S3
3636

@@ -76,8 +76,8 @@ ibexa_io:
7676
`aws_s3` is an arbitrary handler identifier that is used in the config block below.
7777
You can configure multiple handlers.
7878

79-
For example, you could configure one called `gcloud_storage` for a third-party (community-supported)
80-
[Google Cloud Storage adapter](https://github.com/thephpleague/flysystem#community-supported).
79+
For example, you could configure one called `gcloud_storage` for a
80+
[Google Cloud Storage adapter](https://github.com/thephpleague/flysystem#officially-supported-adapters).
8181

8282
Under the `ibexa.system.<scope>.io` [configuration key](configuration.md#configuration-files), enable the binary data handler:
8383

docs/personalization/api_reference/content_api.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ The following call attributes are available:
6161

6262
| Parameter name | Description | Value |
6363
|---|---|---|
64-
| `customerid` |A customer ID (for example "00000"), as defined when [enabling Personalization](#multiple-website-hosting).| alphanumeric |
64+
| `customerid` | A customer ID (for example "00000"), as defined when [enabling Personalization](enable_personalization.md#get-authentication-parameters). Can be used to identify a website in installations that [hosts multiple SiteAccesses]([[= user_doc =]]/personalization/use_cases/#multiple-website-hosting). | alphanumeric |
6565
| `itemid` | A unique ID of the Content item/product. Used to identify the item in the database. | integer |
6666
| `itemtypeid` | An ID of the type of Content item/product. In most cases, the value is 1 but you might have items/products of more than one type. | integer |
6767
| `lang` | A [language code](languages.md) of the Content item/product (for example, "ger-DE"). This parameter is optional. | string |
@@ -75,7 +75,7 @@ An XML representation of the data object used for item import can look like this
7575
<!-- Version is mandatory and must always be set to 1 -->
7676
<item id="102" type="1">
7777
<description>the item's description</description>
78-
<price currency="EUR">122</price>
78+
<price currency="EUR">1234</price>
7979
<validfrom>2011-01-01T00:00:00</validfrom>
8080
<validto>2021-01-01T00:00:00</validto>
8181
<categorypaths>
@@ -115,7 +115,7 @@ The following keys and attributes used in the XML object are available:
115115
| `type` | An ID of the type of item/product. This parameter is required. | integer |
116116
| `description`| Additional information about the item. | alphanumeric |
117117
| `currency` | Currency used for the price. By default, prices are expressed in EUR. | ISO 4217 |
118-
| `price` | The item's price in the currency's fractional units (for example, cents).<br/>See below for more information. | integer |
118+
| `price` | The item's price in the currency's fractional units (for example, cents).<br/>[See below for more information.](#price-and-currency) | integer |
119119
| `validfrom` | Together with `validto`, defines the lifespan of an item.<br/>If NULL or not available, the item is considered valid immediately.<br/>See below for more information. | ISO 8601 |
120120
| `validto` | Together with `validfrom`, defines the lifespan of an item.<br/>If NULL or not available, the item is considered valid indefinitely.<br/>See below for more information. | ISO 8601 |
121121
| `categorypath` | A logical (website) navigation path through which the end user can reach the item/product in your website.<br/>You can define multiple paths for the product.| alphanumeric, separated with "/" ("%2F") characters |
@@ -125,11 +125,16 @@ The following keys and attributes used in the XML object are available:
125125
Keys and their values can only contain letters, digits and underscore characters.
126126
Attribute keys are case-sensitive.
127127

128-
##### Currency
128+
##### Price and currency
129129

130-
If the currency does not have a fractional unit, the main unit is used,
131-
for example 12 for 12 Japanese Yen.
132-
To check whether the currency has fractional units, see the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217#cite_note-ReferenceA-6).
130+
The price is given as an integer in the fractional unit of the currency, which ends as removing the decimal separators.
131+
For example:
132+
133+
- 1234 for 12.34 Euro: `<price currency="EUR">1234</price>`
134+
- 12 for 12 Japanese Yen: `<price currency="JPY">12</price>`
135+
- 12345 for 12.345 Tunisian Dinar: `<price currency="TND">12345</price>`
136+
137+
To check how many digits the fractional unit of a currency has, see the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes).
133138

134139
##### Validity
135140

docs/personalization/api_reference/recommendation_api.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,17 @@ For more information, see [Submodels]([[= user_doc =]]/personalization/recommend
8787

8888
`GET https://reco.perso.ibexa.co/api/v2/00000/john.doe/landing_page.json?numrecs=50&outputtypeid=1&width-range=10:30&color=green`
8989

90+
##### Segment parameters
91+
92+
If you have configured segments, you can use them in the recommendation model. Pass the following parameter
93+
to request recommendations for a specific segment or segment group.
94+
95+
Parameter|Example|Description|Value|
96+
|---|---|---|---|
97+
|`segments`|`&segments=7,8,10,11`|ID from segment group management|string|
98+
99+
For more information, see [Segments]([[= user_doc =]]/personalization/segment_management).
100+
90101
## Responses
91102

92103
The recommendation request returns information about the currently used context

docs/personalization/api_reference/tracking_api.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ By using the shopping cart products as input for getting recommendations, proble
199199
with an empty profile or no buy history for the user can be solved.
200200
The more valuable Basket events instead of recent user clicks can be used to provide
201201
personalized recommendations.
202-
It also happens quite often that users "store" products on their shopping [wishlist](#wishlist)
202+
It also happens quite often that users "store" products on their shopping [wishlist](#wishlist-event)
203203
and plan to buy them later.
204204
With the help of this information, personalized shopping cart-based recommendations
205205
can be provided in the whole shop.
@@ -472,12 +472,12 @@ Example of a trigger message:
472472
"userExternalId":"[email protected]",
473473
"triggerType":"REACTIVATION|ABANDAONED_SHOPPING_CART",
474474
"triggerName":"trigger_ref_code",
475-
"triggerOpenedLink":"//tracker.ibexa.co/api/17751/triggeropened/johndoe?triggername=action_trigger_ref_code",
475+
"triggerOpenedLink":"//event.perso.ibexa.co/api/17751/triggeropened/johndoe?triggername=action_trigger_ref_code",
476476
"recommendations":[
477477
{
478478
"itemId":959,
479479
"itemType":46,
480-
"clickRecommended":"//tracker.ibexa.co/api/17751/clicktriggered/johndoe/46/959?triggername=action_trigger_ref_code",
480+
"clickRecommended":"//event.perso.ibexa.co/api/17751/clicktriggered/johndoe/46/959?triggername=action_trigger_ref_code",
481481
"attributes":{
482482
"ses_name":"Minimalista Coffee Table",
483483
"ses_image":["img_1", "img_2"]
@@ -536,7 +536,7 @@ The Triggeropened event is sent when the end user opens a trigger message, for e
536536

537537
The URL has the following format:
538538

539-
`GET https://tracker.ibexa.co/api/[customerid]/triggeropened/[userid]?triggername=<action_trigger_reference_code>`
539+
`GET https://event.perso.ibexa.co/api/[customerid]/triggeropened/[userid]?triggername=<action_trigger_reference_code>`
540540

541541
For a detailed description of embedded parameters, see [event parameters](#event-parameters).
542542
The request parameter is:
@@ -553,7 +553,7 @@ The Clicktriggered event is sent when the end user clicks the link delivered in
553553

554554
The URL has the following format:
555555

556-
`GET https://tracker.ibexa.co/api/[customerid]/clicktriggered/[userid]/[itemtypeid]/[itemid]?triggername=<action_trigger_reference_code>`
556+
`GET https://event.perso.ibexa.co/api/[customerid]/clicktriggered/[userid]/[itemtypeid]/[itemid]?triggername=<action_trigger_reference_code>`
557557

558558
For a detailed description of embedded parameters, see [event parameters](#event-parameters).
559559
The request parameter is:

0 commit comments

Comments
 (0)