_id = CRM_Utils_Request::retrieve('id', 'Integer', $this, TRUE); // ensure that there is a particpant type for this $this->_participantListingID = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->_id, 'participant_listing_id' ); if (!$this->_participantListingID) { CRM_Core_Error::fatal(ts('The Participant Listing feature is not currently enabled for this event.')); } // retrieve Event Title and include it in page title $this->_eventTitle = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->_id, 'title' ); CRM_Utils_System::setTitle(ts('%1 - Participants', array(1 => $this->_eventTitle))); // we do not want to display recently viewed contacts since this is potentially a public page $this->assign('displayRecent', FALSE); } /** * Run listing page. * * @throws \Exception */ public function run() { $this->preProcess(); // get the class name from the participantListingID $className = CRM_Utils_Array::value($this->_participantListingID, CRM_Core_PseudoConstant::get( 'CRM_Event_BAO_Event', 'participant_listing_id', ['keyColumn' => 'value', 'labelColumn' => 'description'] ) ); if ($className == 'CRM_Event_Page_ParticipantListing') { CRM_Core_Error::fatal(ts("Participant listing code file cannot be '%1'", array(1 => $className) )); } $classFile = str_replace('_', DIRECTORY_SEPARATOR, $className ) . '.php'; $error = include_once $classFile; if ($error == FALSE) { CRM_Core_Error::fatal('Participant listing code file: ' . $classFile . ' does not exist. Please verify your custom particpant listing settings in CiviCRM administrative panel.'); } $participantListingClass = new $className(); $participantListingClass->preProcess(); $participantListingClass->run(); } }