exposeMethod('getReminders'); $this->exposeMethod('postpone'); } public function requiresPermission(Vtiger_Request $request){ $permissions = parent::requiresPermission($request); $mode = $request->getMode(); if(!empty($mode)) { switch ($mode) { case 'getReminders': $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); break; case 'postpone': $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView', 'record_parameter' => 'record'); break; default: break; } } return $permissions; } public function process(Vtiger_Request $request) { $mode = $request->getMode(); if(!empty($mode) && $this->isMethodExposed($mode)) { $this->invokeExposedMethod($mode, $request); return; } } function getReminders(Vtiger_Request $request) { $recordModels = Calendar_Module_Model::getCalendarReminder(); foreach($recordModels as $record) { $records[] = $record->getDisplayableValues(); $record->updateReminderStatus(); } $response = new Vtiger_Response(); $response->setResult($records); $response->emit(); } function postpone(Vtiger_Request $request) { $recordId = $request->get('record'); $module = $request->getModule(); $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $module); $recordModel->updateReminderStatus(0); } }