View Issue Details

IDProjectCategoryView StatusLast Update
0006923OXID eShop (all versions)4.07. Source code, Testpublic2018-11-26 07:58
Status acknowledgedResolutionopen 
Product Version6.1.1 
Target VersionFixed in Version 
Summary0006923: Backend PopUp Ajax Controller in Camelcase
Descriptioni cant call Backend PopUp Ajax Controller in CamelCase-Spelling. They need the old spelling (lowercase with underline).
Steps To Reproduce* create a module with a Backend PopUp Ajax Controller
* gave the Controller-Call the exact name from the class and Filename e.g.:
'MyControllerAjax' => \ MyVendor \ Application \ Controller \ Admin \ MyControllerAjax :: class
* try to call the PopUp
* The PopUp has no Data inside.
Additional InformationI write my own OXID6-Moduls strict in CamelCase-Notation. I use this Camelcase-Controller-Calls allthough in my templates. I have no problems so far.
Now I wanted to create a Backend PopUp Ajax Controller. For example, my controller is called "MyControllerAjax" and the file name is also "MyControllerAjax.php". I was wondering why the two pop-up windows did not fill up with the data. According to Errorlog, OXID tried to call the controller like this: "MyController_ajax" instead of "MyControllerAjax".

The cause lies in In [OXID6.1.1] \ source \ admin \ oxajax.php line 45. Attempting to append the appropriate controller by appending "_ajax" here.

Now I've looked at an original OXID6 controller, for example. "ActionArticleAjax". Unfortunately, the controller in the ...
\ Vendor \ oxide esales \ oxides shop-ce \ source \ Core \ Routing \ ShopControllerMapProvider.php
so routed:
'actions_article_ajax' => \ OxideEsales \ Eshop \ Application \ Controller \ Admin \ ActionsArticleAjax :: class
instead of writing here in Camelcase. I thing there is an extra mapper, there can do this in the old version:
\ Vendor \ oxide esales \ oxides shop-ce \ source \ Core \ Autoload \ BackwardsCompatibilityClassMap.php
which would allow both spellings ...

In my templates I use Camelcase everywhere and only in one place, in my controller configuration in the metadata.php I write now:

'MyController_ajax' => \ MyVendor \ Application \ Controller \ Admin \ MyControllerAjax :: class

This is a mistake.
TagsAdmin, AJAX, Module
ThemeNot defined
BrowserNot defined
PHP VersionNot defined
MySQL VersionNot defined


There are no notes attached to this issue.