private static function getFrequencyMenu($index) { // Get the post variables $post = JFactory::getApplication()->input->post; $userFrequency = $post->get('frequency_' . $index, null, 'string'); $html = '<select class="frequency" name="frequency_' . $index . '" id="frequency_' . $index . '">'; $html .= '<option value=""' . (strcmp($userFrequency, '') == 0 ? ' selected' : '') . '>' . JText::_('PLG_ISSNREGISTRY_FORMS_SELECT') . '</option>'; foreach (IssnregistryFormsHelper::getFrequencyList() as $frequency) { $html .= '<option value="' . $frequency . '"' . (strcmp($userFrequency, $frequency) == 0 ? ' selected' : '') . '>' . JText::_('PLG_ISSNREGISTRY_FORMS_FREQUENCY_' . strtoupper($frequency)) . '</option>'; } $html .= '</select>'; return $html; }
public function onContentPrepare($context, &$row, &$params, $page = 0) { // Search in the article text the plugin code and exit if not found $regex = "%\\{serials_pub_form\\}%is"; $found = preg_match_all($regex, $row->text, $matches); $count = 0; if ($found) { foreach ($matches[0] as $value) { $html = ""; // Add plugin css $document = JFactory::getDocument(); $document->addStyleSheet("plugins/content/issnregistry_forms/css/style.css"); // Add plugin scripts JHtml::_('jquery.framework'); JHtml::_('formbehavior.chosen'); $document->addScript("plugins/content/issnregistry_forms/scripts/custom.js"); // Email settings $email = $this->params->def('email', ''); $notifyAdmin = $this->params->def('notify_admin', true); // Get max publications count $maxPublicationsCount = $this->params->def('max_publications_count', 1); // Language settings $lang = JFactory::getLanguage(); // Load the language file in the current site language $lang->load('plg_content_issnregistry_forms', JPATH_ADMINISTRATOR, $lang->getTag(), true); // Get the post variables $post = JFactory::getApplication()->input->post; // Get submit button values $submitApplicationPt1 = $post->get('submit_application_pt1', null, 'string'); $submitApplicationPt2 = $post->get('submit_application_pt2', null, 'string'); $submitApplicationPt3 = $post->get('submit_application_pt3', null, 'string'); // Get back button values $backApplicationPt3 = $post->get('back_application_pt3', null, 'string'); // Get refresh button value $refreshApplicationPt2 = $post->get('refresh_application_pt2', null, 'string'); // Process if (JSession::checkToken() && isset($submitApplicationPt1)) { // Filter input data IssnregistryFormsHelper::filterFields1(); // Validate input data $errors = IssnregistryFormsHelper::validateApplicationFormPt1(); // If there are no errors, continue processing if (empty($errors)) { // Show the second page $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount); } else { // Show the first page with error messages $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt1($errors); } } else { if (JSession::checkToken() && isset($submitApplicationPt2)) { // Filter input data IssnregistryFormsHelper::filterFields2($maxPublicationsCount); // Validate input data $errors = IssnregistryFormsHelper::validateApplicationFormPt2($maxPublicationsCount); if (empty($errors)) { // Show overview form $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt3($maxPublicationsCount); } else { // Show the second page with error messages $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount, $errors); } } else { if (JSession::checkToken() && isset($submitApplicationPt3)) { // Validate input data $errorsPt1 = IssnregistryFormsHelper::validateApplicationFormPt1(); $errorsPt2 = IssnregistryFormsHelper::validateApplicationFormPt2(); if (empty($errorsPt1) && empty($errorsPt2)) { // Save to DB $formId = IssnregistryFormsHelper::saveApplicationToDb($maxPublicationsCount); // If formId is 0 saving donation to DB failed if ($formId == 0) { // Return error page $html .= '<div>' . JText::_('PLG_ISSNREGISTRY_FORMS_APPLICATION_ERROR') . '</div>'; } else { // Return success page $html .= '<div>' . JText::_('PLG_ISSNREGISTRY_FORMS_APPLICATION_SUCCESS') . '</div>'; // Notify admin if necessary if ($notifyAdmin) { IssnregistryFormsHelper::notifyAdmin($email, $formId); } } } else { if (!empty($errorsPt1)) { // Show the first page with error messages $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt1($errorsPt1); } else { if (!empty($errorsPt2)) { // Show the second page with error messages $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount, $errorsPt2); } } } } else { if (JSession::checkToken() && isset($backApplicationPt3)) { // Back button has been pressed - generate form $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount); } else { if (JSession::checkToken() && isset($refreshApplicationPt2)) { // Show the second page $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount); } else { // Generate form $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt1(); } } } } } // Add HTML code $replacement[$count] = $html; // Increase counter $count++; } for ($i = 0; $i < count($replacement); $i++) { $row->text = preg_replace($regex, $replacement[$i], $row->text, 1); } } return true; }