diff --git a/code_samples/api/public_php_api/src/Command/FormSubmissionCommand.php b/code_samples/api/public_php_api/src/Command/FormSubmissionCommand.php index 7407e5ad7e..b7a28e5716 100644 --- a/code_samples/api/public_php_api/src/Command/FormSubmissionCommand.php +++ b/code_samples/api/public_php_api/src/Command/FormSubmissionCommand.php @@ -40,9 +40,9 @@ protected function execute(InputInterface $input, OutputInterface $output): int $formValue = $content->getFieldValue('form', 'eng-GB')->getFormValue(); $data = [ - ['identifier' => 'single_line', 'name' => 'Line', 'value' => 'The name'], - ['identifier' => 'number', 'name' => 'Number', 'value' => 123], - ['identifier' => 'checkbox', 'name' => 'Checkbox', 'value' => 0], + ['id' => 7, 'identifier' => 'single_line', 'name' => 'Line', 'value' => 'The name'], + ['id' => 8, 'identifier' => 'number', 'name' => 'Number', 'value' => 123], + ['id' => 9, 'identifier' => 'checkbox', 'name' => 'Checkbox', 'value' => 0], ]; $this->formSubmissionService->create( diff --git a/docs/content_management/data_migration/data_migration_actions.md b/docs/content_management/data_migration/data_migration_actions.md index 19089e376c..09dece13d7 100644 --- a/docs/content_management/data_migration/data_migration_actions.md +++ b/docs/content_management/data_migration/data_migration_actions.md @@ -58,6 +58,7 @@ The following migration actions are available out of the box: - `remove_drafts` (Content type Update) - `remove_field_by_identifier` (Content type Update) - `unassign_content_type_group` (Content type Update) +- `add_block_to_available_blocks` (Content type Update) - `assign_role_to_user` (Role Create / Update) - `assign_role_to_user_group` (Role Create / Update) - `assign_user_to_role` (User Create / Update) @@ -103,6 +104,7 @@ mode: Update - { action: unassign_content_type_group, value: 'Content' } - { action: remove_field_by_identifier, value: 'short_title' } - { action: remove_drafts, value: null } + - { action: add_block_to_available_blocks, fieldDefinitionIdentifier: 'page', blocks: ['event'] } ``` ### Roles diff --git a/docs/content_management/pages/create_custom_page_block.md b/docs/content_management/pages/create_custom_page_block.md index f99965830b..f2bee4a8dc 100644 --- a/docs/content_management/pages/create_custom_page_block.md +++ b/docs/content_management/pages/create_custom_page_block.md @@ -132,5 +132,8 @@ The following UDW configuration is used so only an `event` typed content item ca For more information, see [UDW configuration](browser.md#udw-configuration). -Your custom page block is now ready. -Before you can use it in Page Builder, you must [enable it in Page field settings]([[= user_doc =]]/content_management/configure_ct_field_settings/#block-display). +Your custom page block is now registered in the system. + +!!! caution + + To use the new block in Page Builder, add it to the list of available blocks in a given content type's settings. This can be done manually in [Page field settings]([[= user_doc =]]/content_management/configure_ct_field_settings/#block-display) or by using the migration action [`add_block_to_available_blocks`](data_migration_actions.md#content-types). diff --git a/docs/personalization/tracking_with_ibexa-tracker.md b/docs/personalization/tracking_with_ibexa-tracker.md index 883552950d..a64ee5f67d 100644 --- a/docs/personalization/tracking_with_ibexa-tracker.md +++ b/docs/personalization/tracking_with_ibexa-tracker.md @@ -18,12 +18,18 @@ Otherwise a new one is created. The Personalization JavaScript is a Google-like tracking API (ga.js) that you can paste into your pages. -It activates the tracking by inserting  -into the page. +It activates the tracking by inserting  or + into the page. + +To use this mechanism on your pages, copy the code snippet below, and replace: + +- `` with the customer ID +- `` with the Content Type ID +- `` with the content item ID +- `` with an empty string for cookie based anonymous user or with the value generated by +your user identifier system for logged-in user. In case user activity should not be tracked, +'not_defined' value should be used to still have an event stored without a link to the user. -To use this mechanism on your pages, copy the code snippet below, and replace -`` with the customer ID, `` with the page/item identifier  -and `` with the one generated by your user identifier. All identifiers can be any form of string. Paste this snippet into your website template page so that it appears before the closing `` tag. @@ -38,7 +44,7 @@ the closing `` tag. var yc = document.createElement('script'); yc.type = 'text/javascript'; yc.async = true; - yc.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.perso.ibexa.co/ibexa-tracker.js'; + yc.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.perso.ibexa.co/ibexa-tracker.min.js'; var ycs = document.getElementsByTagName('script')[0]; ycs.parentNode.insertBefore(yc, ycs); })(); diff --git a/docs/update_and_migration/from_2.5/to_3.3.md b/docs/update_and_migration/from_2.5/to_3.3.md index 12ee4cbff1..8cd06928ce 100644 --- a/docs/update_and_migration/from_2.5/to_3.3.md +++ b/docs/update_and_migration/from_2.5/to_3.3.md @@ -1,6 +1,5 @@ --- target_version: '3.3' -latest_tag: '3.3.24' --- # Update the app to v3.3 @@ -52,7 +51,7 @@ Merge the current skeleton into your project: ``` bash git remote add content-skeleton https://github.com/ibexa/content-skeleton.git git fetch content-skeleton --tags - git merge v[[= latest_tag =]] --allow-unrelated-histories + git merge v[[= latest_tag_3_3 =]] --allow-unrelated-histories ``` === "Ibexa Experience" @@ -60,7 +59,7 @@ Merge the current skeleton into your project: ``` bash git remote add experience-skeleton https://github.com/ibexa/experience-skeleton.git git fetch experience-skeleton --tags - git merge v[[= latest_tag =]] --allow-unrelated-histories + git merge v[[= latest_tag_3_3 =]] --allow-unrelated-histories ``` === "Ibexa Commerce" @@ -68,7 +67,7 @@ Merge the current skeleton into your project: ``` bash git remote add commerce-skeleton https://github.com/ibexa/commerce-skeleton.git git fetch commerce-skeleton --tags - git merge v[[= latest_tag =]] --allow-unrelated-histories + git merge v[[= latest_tag_3_3 =]] --allow-unrelated-histories ``` This introduces changes from the relevant website skeleton and results in conflicts. @@ -102,9 +101,10 @@ Resolve the conflicts in the following way: ### B. Update the app -Run `composer update` to update the dependencies: +Update Symfony Flex, then update the dependencies: ``` bash +composer update symfony/flex --no-plugins --no-scripts composer update ``` diff --git a/docs/update_and_migration/from_4.3/update_from_4.3_new_commerce.md b/docs/update_and_migration/from_4.3/update_from_4.3_new_commerce.md index 9fa615f70c..28019b80b4 100644 --- a/docs/update_and_migration/from_4.3/update_from_4.3_new_commerce.md +++ b/docs/update_and_migration/from_4.3/update_from_4.3_new_commerce.md @@ -318,6 +318,88 @@ Apply the following database update scripts: psql < vendor/ibexa/installer/upgrade/db/postgresql/commerce/ibexa-4.3.latest-to-4.4.0.sql ``` +If you used old Commerce packages before, and have migrated everything, you can remove the old tables. +The tables that can be removed are prefixed with `ses_` and `sve_`. + +=== "MySQL" + + To switch to the right database, issue the following command: + ``` sql + USE ; + ``` + + Then, to remove all the old tables, run the following queries: + ``` sql + DROP TABLE IF EXISTS ses_basket; + DROP TABLE IF EXISTS ses_basket_line; + DROP TABLE IF EXISTS ses_content_modification_queue; + DROP TABLE IF EXISTS ses_customer_prices; + DROP TABLE IF EXISTS ses_customer_sku; + DROP TABLE IF EXISTS ses_download; + DROP TABLE IF EXISTS ses_externaldata; + DROP TABLE IF EXISTS ses_gdpr_log; + DROP TABLE IF EXISTS ses_invoice; + DROP TABLE IF EXISTS ses_log_erp; + DROP TABLE IF EXISTS ses_log_mail; + DROP TABLE IF EXISTS ses_log_search; + DROP TABLE IF EXISTS ses_payment_basket_map; + DROP TABLE IF EXISTS ses_price; + DROP TABLE IF EXISTS ses_shipping_cost; + DROP TABLE IF EXISTS ses_stat_sessions; + DROP TABLE IF EXISTS ses_stock; + DROP TABLE IF EXISTS ses_token; + DROP TABLE IF EXISTS sve_class; + DROP TABLE IF EXISTS sve_class_attributes; + DROP TABLE IF EXISTS sve_object; + DROP TABLE IF EXISTS sve_object_attributes; + DROP TABLE IF EXISTS sve_object_attributes_tmp; + DROP TABLE IF EXISTS sve_object_catalog; + DROP TABLE IF EXISTS sve_object_catalog_tmp; + DROP TABLE IF EXISTS sve_object_tmp; + DROP TABLE IF EXISTS sve_object_urls; + DROP TABLE IF EXISTS sve_object_urls_tmp; + ``` + +=== "PostgreSQL" + + To switch to the right database, issue the following command: + ``` sql + \connect ; + ``` + + + Then, to remove all the old tables, run the following queries: + ``` sql + DROP TABLE IF EXISTS ses_basket; + DROP TABLE IF EXISTS ses_basket_line; + DROP TABLE IF EXISTS ses_content_modification_queue; + DROP TABLE IF EXISTS ses_customer_prices; + DROP TABLE IF EXISTS ses_customer_sku; + DROP TABLE IF EXISTS ses_download; + DROP TABLE IF EXISTS ses_externaldata; + DROP TABLE IF EXISTS ses_gdpr_log; + DROP TABLE IF EXISTS ses_invoice; + DROP TABLE IF EXISTS ses_log_erp; + DROP TABLE IF EXISTS ses_log_mail; + DROP TABLE IF EXISTS ses_log_search; + DROP TABLE IF EXISTS ses_payment_basket_map; + DROP TABLE IF EXISTS ses_price; + DROP TABLE IF EXISTS ses_shipping_cost; + DROP TABLE IF EXISTS ses_stat_sessions; + DROP TABLE IF EXISTS ses_stock; + DROP TABLE IF EXISTS ses_token; + DROP TABLE IF EXISTS sve_class; + DROP TABLE IF EXISTS sve_class_attributes; + DROP TABLE IF EXISTS sve_object; + DROP TABLE IF EXISTS sve_object_attributes; + DROP TABLE IF EXISTS sve_object_attributes_tmp; + DROP TABLE IF EXISTS sve_object_catalog; + DROP TABLE IF EXISTS sve_object_catalog_tmp; + DROP TABLE IF EXISTS sve_object_tmp; + DROP TABLE IF EXISTS sve_object_urls; + DROP TABLE IF EXISTS sve_object_urls_tmp; + ``` + #### Ibexa Open Source If you have no access to Ibexa DXP's `ibexa/installer` package, database upgrade is not necessary. diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index eddd8fbb4e..6c7781a0be 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -70,11 +70,6 @@ parameters: count: 1 path: code_samples/api/public_php_api/src/Command/FormSubmissionCommand.php - - - message: "#^Parameter \\#4 \\$data of method Ibexa\\\\Contracts\\\\FormBuilder\\\\FormSubmission\\\\FormSubmissionServiceInterface\\:\\:create\\(\\) expects array\\, array\\{array\\{identifier\\: 'single_line', name\\: 'Line', value\\: 'The name'\\}, array\\{identifier\\: 'number', name\\: 'Number', value\\: 123\\}, array\\{identifier\\: 'checkbox', name\\: 'Checkbox', value\\: 0\\}\\} given\\.$#" - count: 1 - path: code_samples/api/public_php_api/src/Command/FormSubmissionCommand.php - - message: "#^Parameter \\#1 \\$messages of method Symfony\\\\Component\\\\Console\\\\Output\\\\OutputInterface\\:\\:writeln\\(\\) expects iterable\\\\|string, string\\|null given\\.$#" count: 2