initializeLogger($config); //load the translation $this->loadLanguage(); // example code: set Joomla input object to class variable // $this->input = Factory::getApplication()->getInput(); // example code: get parameter id from the Joomla input object from class variable // $id = $this->input->getInt('id', 0); } public static function getSubscribedEvents(): array { return [ 'onVisformsAfterFormSave' => 'onVisformsAfterFormSave', ]; } public function onVisformsAfterFormSave(VisformsAfterFormSaveEvent $event): void { // context = 'com_visforms.form' $context = $event->getContext(); $form = $event->getForm(); $fields = $event->getFields(); //skip plugin if context is wrong $allowedContexts = array('com_visforms.form', 'mod_visforms.form', 'plg_vfformview.form'); if (!in_array($context, $allowedContexts)) { $event->addResult(true); } $formFields = $form->fields; //need to know which form is being used $formTitle = $form->title; switch ($formTitle) { case 'Trip Report Form': if ($_SERVER['HTTP_HOST'] == 'localhost') { require_once $_SERVER["DOCUMENT_ROOT"] . '/PTC/Scripts/trip-report-functions.php'; } else { require_once $_SERVER["DOCUMENT_ROOT"] . '/Scripts/trip-report-functions.php'; } //get value of database id attribute of the saved form $dataRecordId = $form->dataRecordId; //create new Joomla article createArticle($dataRecordId); break; case 'Run A Script Form': $actionKey = array_search('Script To Run', array_column($formFields, 'label')); $actionInput = $formFields[$actionKey]->userInput; switch ($actionInput[0]) { case 'createTripReportArticle': if ($_SERVER['HTTP_HOST'] == 'localhost') { require_once $_SERVER["DOCUMENT_ROOT"] . '/PTC/Scripts/trip-report-functions.php'; } else { require_once $_SERVER["DOCUMENT_ROOT"] . '/Scripts/trip-report-functions.php'; } //obtain value entered by user for the database ID $reportIdKey = array_search('Trip Report Id', array_column($formFields, 'label')); $reportId = $formFields[$reportIdKey]->userInput; //create new Joomla article createArticle($reportId); break; case 'runAFunction': $functionArgumnets = ''; $result = ''; //obtain value entered by user for the function name $functionNameKey = array_search('Function Name', array_column($formFields, 'label')); $functionName = $formFields[$functionNameKey]->userInput; //obtain value entered by user for the name of the script file $scriptNameKey = array_search('Script File', array_column($formFields, 'label')); $scriptName = $formFields[$scriptNameKey]->userInput; if ($_SERVER['HTTP_HOST'] == 'localhost') { require_once $_SERVER["DOCUMENT_ROOT"] . '/PTC/Scripts/' . $scriptName . '.php'; } else { require_once $_SERVER["DOCUMENT_ROOT"] . '/Scripts/' . $scriptName . '.php'; } $functionString = $functionName . '(' . $functionArgumnets . ')'; $result = $functionString; if ($result != '' || $result != NULL) { $mailer = JFactory::getMailer(); $mailer->setSubject('Run A Function Result'); $mailer->setSender('website@parawaitc.org.nz'); $mailer->addRecipient('webmaster@parawaitc.org.nz'); $mailer->setBody($result); $send = $mailer->Send(); } break; default: break; } break; case 'Incident Report Upload Form': if ($_SERVER['HTTP_HOST'] == 'localhost') { require_once $_SERVER["DOCUMENT_ROOT"] . '/PTC/Scripts/article-upload-functions.php'; } else { require_once $_SERVER["DOCUMENT_ROOT"] . '/Scripts/article-upload-functions.php'; } //update the files processIncidentReportFiles(); break; case 'Officers Upload Form': if ($_SERVER['HTTP_HOST'] == 'localhost') { require_once $_SERVER["DOCUMENT_ROOT"] . '/PTC/Scripts/article-upload-functions.php'; } else { require_once $_SERVER["DOCUMENT_ROOT"] . '/Scripts/article-upload-functions.php'; } //update the files processOfficeHolderFiles(); break; case 'Newsletter Upload Form': if ($_SERVER['HTTP_HOST'] == 'localhost') { require_once $_SERVER["DOCUMENT_ROOT"] . '/PTC/Scripts/article-upload-functions.php'; } else { require_once $_SERVER["DOCUMENT_ROOT"] . '/Scripts/article-upload-functions.php'; } //update the files processNewsletterFiles(); break; case 'Annual Report Upload Form': if ($_SERVER['HTTP_HOST'] == 'localhost') { require_once $_SERVER["DOCUMENT_ROOT"] . '/PTC/Scripts/article-upload-functions.php'; } else { require_once $_SERVER["DOCUMENT_ROOT"] . '/Scripts/article-upload-functions.php'; } //update the files processAnnualReportFiles(); break; case 'Minutes Document Upload Form': if ($_SERVER['HTTP_HOST'] == 'localhost') { require_once $_SERVER["DOCUMENT_ROOT"] . '/PTC/Scripts/article-upload-functions.php'; } else { require_once $_SERVER["DOCUMENT_ROOT"] . '/Scripts/article-upload-functions.php'; } //obtain value entered by user for the function name $meetingTypeKey = array_search('Select meeting type', array_column($formFields, 'label')); $meetingType = $formFields[$meetingTypeKey]->userInput; //update the files processMeetingMinutesFiles($meetingType); break; default: break; } $event->addResult(true); } }