sessionGet('_MODULES'); // Should be available post login foreach($modules as $module) { if ($module->name() == $moduleName) return $module; } return false; } function getPagingModel(Mobile_API_Request $request) { $pagingModel = Mobile_WS_PagingModel::modelWithPageStart($request->get('page')); $pagingModel->setLimit(Mobile::config('Navigation.Limit', 100)); return $pagingModel; } /** For search capability */ function cachedSearchFields($module) { $cachekey = "_MODULE.{$module}.SEARCHFIELDS"; return $this->sessionGet($cachekey, false); } function getSearchFilterModel($module, $search) { $searchFilter = false; if (!empty($search)) { $criterias = array('search' => $search, 'fieldnames' => $this->cachedSearchFields($module)); $searchFilter = Mobile_UI_SearchFilterModel::modelWithCriterias($module, $criterias); return $searchFilter; } return $searchFilter; } /** END */ function process(Mobile_API_Request $request) { $wsResponse = parent::process($request); $response = false; if($wsResponse->hasError()) { $response = $wsResponse; } else { $wsResponseResult = $wsResponse->getResult(); $viewer = new Mobile_UI_Viewer(); $viewer->assign('_MODULE', $this->cachedModule($wsResponseResult['module']) ); $viewer->assign('_RECORDS', Mobile_UI_ModuleRecordModel::buildModelsFromResponse($wsResponseResult['records']) ); $viewer->assign('_MODE', $request->get('mode')); $viewer->assign('_PAGER', $this->getPagingModel($request)); $viewer->assign('_SEARCH', $request->get('search')); $response = $viewer->process('generic/List.tpl'); } return $response; } }