Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

When developers override "kDBEventHandler::getPassedId" method and manually call the $this->Application->GetVar method inside, then it's up to them to set the "id_from_request" event parameter.

In-Portal uses object automatic loading technique, that attempts to load an object with ID provided in Web Request (e.g. in URL). For example:

  1. user opens /cars/japan/2013-suzuki-sx4.html url
  2. based on this URL following is automatically detected:
    1. this is "cars/japan" category
    2. this is "2013-suzuki-sx4" product
  3. the product detail template is shown
  4. the product detail template contains <inp2:p_Field name="Name"/> tag that shows product name
  5. the "Field" tag requested data from product object
  6. the product object is created since this is a 1st request to that object
  7. product object is loaded using "2013-suzuki-sx4" ID from Web Request

...

Solution

Plan for fixing:

  1. make "kDBEventHandler::getPassedId" and "kDBEventHandler::StoreSelectedIDs" methods to set "id_from_request" event parameter to the "$event" variable, when ID was obtained from Web Request
  2. in the "kDBEventHandler::OnItemBuild" event, when we're doing object auto-loading replace call to "kDBEventHandler::checkItemStatus" method with "true", when "id_from_request" event parameter is "false"
  3. to reduce human error factor the "kEvent::ID_FROM_REQUEST" constant needs to be created and used instead of using "id_from_request" string

Related Tasks

Jira Legacy
serverSystem Jira
serverId513b375f-8291-3313-9d9f-704c39b1f915
keyINP-1526