Details
-
Bug
-
Resolution: Fixed
-
High
-
1.7.3, 1.9.1, 1.10.0
-
None
Description
When trying to link some text inside RichText to external url ( https://www.google.ch/maps/place/Tobler+Technique+du+B%C3%83%C2%A2timent+SA+[March%C3%83%C2%A9+Tobler]/@46.101331,7.0872363,17z/data=!3m1!4b1!4m5!3m4!1s0x478ec9ca57e24dd7:0xf0ff4cc3a15b81c2!8m2!3d46.101331!4d7.089425 ) which contains unmasked chars like `[` or `]` the validation fails with error Validation of XML content failed:↵Error in 212:0: Element section has extra content: itemizedlist.
Update (eZ Support):
This issue happens when trying to link inside RichText to an external URL that contains characters: "]", "[" or "%". I tested more of them, but only these ones were causing the issue to occur. This would probably require proper Q&A testing after the patch is ready to cover all the possible cases.
URL encoding the characters manually seems to be a workaround for this issue, but I think it still should be allowed to provide unencoded ones.
When the validation error is thrown, there is also an error thrown in the browser console: "_ezcombo?app-base/app-base-min.js&querystring-stringify-simple/querystring-stringify-simple-min.js&…:1687 POST http://ezplatform.dev/api/ezp/v2/content/objects/71/versions/1 400 (Bad Request)". The response to this request looks like this:
{ "ErrorMessage": { "_media-type": "application\/vnd.ez.api.ErrorMessage+json", "errorCode": 400, "errorMessage": "Bad Request", "errorDescription": "Content fields did not validate", "errorDetails": { "fields": [ { "_fieldTypeId": 120, "errors": [ { "type": null, "message": "Validation of XML content failed:\nError in 18:0: Element section has extra content: para" } ] } ] }, "trace": "#0 C:\\Apache24\\htdocs\\ezplatform\\vendor\\ezsystems\\platform-ui-bundle\\Controller\\Rest\\ContentController.php(92): eZ\\Publish\\Core\\REST\\Server\\Controller\\Content->updateVersion('71', '1', Object(Symfony\\Component\\HttpFoundation\\Request))\n#1 [internal function]: EzSystems\\PlatformUIBundle\\Controller\\Rest\\ContentController->updateVersion('71', '1', Object(Symfony\\Component\\HttpFoundation\\Request))\n#2 C:\\Apache24\\htdocs\\ezplatform\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\HttpKernel.php(144): call_user_func_array(Array, Array)\n#3 C:\\Apache24\\htdocs\\ezplatform\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\HttpKernel.php(64): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#4 C:\\Apache24\\htdocs\\ezplatform\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\DependencyInjection\\ContainerAwareHttpKernel.php(69): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#5 C:\\Apache24\\htdocs\\ezplatform\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\Kernel.php(185): Symfony\\Component\\HttpKernel\\DependencyInjection\\ContainerAwareHttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#6 C:\\Apache24\\htdocs\\ezplatform\\web\\app.php(70): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#7 {main}", "file": "C:\\Apache24\\htdocs\\ezplatform\\vendor\\ezsystems\\ezpublish-kernel\\eZ\\Publish\\Core\\REST\\Server\\Controller\\Content.php", "line": 469 } }
Steps to reproduce:
- Create new eZPlatform project.
- In PlatformUI panel, go to Content/Content structure and click "Create". Select "Article" from available Content Types.
- Write something in the "Intro" field, for example "asd".
- Double click on "asd". The menu will be shown, select "Link".
- In "Link to" field enter something that has characters: "]", "[" or "%", for example "https://www.test.com/[test]" or "https://www.test.com/%test".
- Click "Save" and then try to save the article. You will be presented with validation error for "Intro" field.
Attachments
Issue Links
- testing discovered
-
EZP-28019 Console error (t.ancestor) occurs when creating or editing article
- Open