protected function callApiAndReturnDataTable($apiModule, $method, $request) { $class = Request::getClassNameAPI($apiModule); $request = $this->manipulateSubtableRequest($request); $request['serialize'] = 0; $request['expanded'] = 0; // don't want to run recursive filters on the subtables as they are loaded, // otherwise the result will be empty in places (or everywhere). instead we // run it on the flattened table. unset($request['filter_pattern_recursive']); $dataTable = Proxy::getInstance()->call($class, $method, $request); $response = new ResponseBuilder($format = 'original', $request); $response->disableSendHeader(); $dataTable = $response->getResponse($dataTable); if (Common::getRequestVar('disable_queued_filters', 0, 'int', $request) == 0) { if (method_exists($dataTable, 'applyQueuedFilters')) { $dataTable->applyQueuedFilters(); } } return $dataTable; }
/** * @internal */ protected function loadDataTableFromAPI() { if (!is_null($this->dataTable)) { // data table is already there // this happens when setDataTable has been used return $this->dataTable; } // we build the request (URL) to call the API $request = $this->buildApiRequestArray(); $module = $this->requestConfig->getApiModuleToRequest(); $method = $this->requestConfig->getApiMethodToRequest(); PluginManager::getInstance()->checkIsPluginActivated($module); $class = ApiRequest::getClassNameAPI($module); $dataTable = Proxy::getInstance()->call($class, $method, $request); $response = new ResponseBuilder($format = 'original', $request); $response->disableSendHeader(); $response->disableDataTablePostProcessor(); $this->dataTable = $response->getResponse($dataTable, $module, $method); }