_pages = array(); $this->_pages['CRM_Case_Form_Search'] = NULL; list($task, $result) = $this->taskName($controller, 'Search'); $this->_task = $task; if (is_array($task)) { foreach ($task as $t) { $this->_pages[$t] = NULL; } } else { $this->_pages[$task] = NULL; } if ($result) { $this->_pages['CRM_Case_Form_Task_Result'] = NULL; } $this->addSequentialPages($this->_pages, $action); } /** * Determine the form name based on the action. This allows us * to avoid using conditional state machine, much more efficient * and simpler * * @param CRM_Core_Controller $controller the controller object * * @param string $formName * * @return string the name of the form that will handle the task * @access protected */ function taskName($controller, $formName = 'Search') { // total hack, check POST vars and then session to determine stuff $value = CRM_Utils_Array::value('task', $_POST); if (!isset($value)) { $value = $this->_controller->get('task'); } $this->_controller->set('task', $value); return CRM_Case_Task::getTask($value); } /** * return the form name of the task * * @return string * @access public */ function getTaskFormName() { return CRM_Utils_String::getClassName($this->_task); } /** * Since this is a state machine for search and we want to come back to the same state * we dont want to issue a reset of the state session when we are done processing a task * */ function shouldReset() { return FALSE; } }