示例#1
0
 public function rsfp_doPayment($payValue, $formId, $SubmissionId, $price, $products, $code)
 {
     // execute only for our plugin
     if ($payValue != $this->componentValue) {
         return;
     }
     if ($price > 0) {
         list($replace, $with) = RSFormProHelper::getReplacements($SubmissionId);
         $args = array('cmd' => '_xclick', 'business' => RSFormProHelper::getConfig('paypal.email'), 'item_name' => implode(', ', $products), 'currency_code' => RSFormProHelper::getConfig('payment.currency'), 'amount' => number_format($price, 2, '.', ''), 'notify_url' => JURI::root() . 'index.php?option=com_rsform&formId=' . $formId . '&task=plugin&plugin_task=paypal.notify&code=' . $code, 'charset' => 'utf-8', 'lc' => RSFormProHelper::getConfig('paypal.language') ? RSFormProHelper::getConfig('paypal.language') : 'US', 'bn' => 'RSJoomla_SP');
         // Add cancel URL
         if ($cancel = RSFormProHelper::getConfig('paypal.cancel')) {
             $args['cancel_return'] = str_replace($replace, $with, $cancel);
         }
         // Add return URL
         if ($return = RSFormProHelper::getConfig('paypal.return')) {
             $args['return'] = str_replace($replace, $with, $return);
         }
         // Add tax
         if ($tax = RSFormProHelper::getConfig('paypal.tax.value')) {
             if (RSFormProHelper::getConfig('paypal.tax.type')) {
                 $args['tax'] = $tax;
             } else {
                 $args['tax_rate'] = $tax;
             }
         }
         // Get a new instance of the PayPal object. This is used so that we can programatically change values sent to PayPal through the "Scripts" areas.
         $paypal = RSFormProPayPal::getInstance();
         // If any options have already been set, use this to override the ones used here
         $paypal->args = array_merge($args, $paypal->args);
         $paypal->url = RSFormProHelper::getConfig('paypal.test') ? 'https://www.paypal.com/cgi-bin/webscr' : 'https://www.sandbox.paypal.com/cgi-bin/webscr';
         JFactory::getApplication()->redirect($paypal->url . '?' . http_build_query($paypal->args, '', '&'));
     }
 }
示例#2
0
 public function getTemplate()
 {
     $app = JFactory::getApplication();
     $Itemid = $this->getItemId();
     $has_suffix = JFactory::getConfig()->get('sef') && JFactory::getConfig()->get('sef_suffix');
     $layout = $app->input->getCmd('layout', 'default');
     // Templates
     $template_module = $this->params->def('template_module', '');
     $template_formdatarow = $this->params->def('template_formdatarow', '');
     $template_formdetail = $this->params->def('template_formdetail', '');
     if ($layout == 'default') {
         $formdata = '';
         $submissions = $this->getSubmissions();
         $headers = $this->getHeaders();
         $pagination = $this->getPagination();
         $i = 0;
         foreach ($submissions as $SubmissionId => $submission) {
             list($replace, $with) = $this->getReplacements($submission['UserId']);
             $pdf_link = JRoute::_('index.php?option=com_rsform&view=submissions&layout=view&cid=' . $SubmissionId . '&format=pdf' . $Itemid);
             if ($has_suffix) {
                 $pdf_link .= strpos($pdf_link, '?') === false ? '?' : '&';
                 $pdf_link .= 'format=pdf';
             }
             $details_link = JRoute::_('index.php?option=com_rsform&view=submissions&layout=view&cid=' . $SubmissionId . $Itemid);
             $replacements = array('{global:userip}' => $submission['UserIp'], '{global:date_added}' => RSFormProHelper::getDate($submission['DateSubmitted']), '{global:submissionid}' => $SubmissionId, '{global:submission_id}' => $SubmissionId, '{global:counter}' => $pagination->getRowOffset($i), '{global:confirmed}' => $submission['confirmed'], '{details}' => '<a href="' . $details_link . '">', '{details_link}' => $details_link, '{detailspdf}' => '<a href="' . $pdf_link . '">', '{detailspdf_link}' => $pdf_link, '{_STATUS:value}' => isset($submission['SubmissionValues']['_STATUS']) ? JText::_('RSFP_PAYPAL_STATUS_' . $submission['SubmissionValues']['_STATUS']['Value']) : '');
             $replace = array_merge($replace, array_keys($replacements));
             $with = array_merge($with, array_values($replacements));
             foreach ($headers as $header) {
                 if (!isset($submission['SubmissionValues'][$header]['Value'])) {
                     $submission['SubmissionValues'][$header]['Value'] = '';
                 }
                 if (!empty($submission['SubmissionValues'][$header]['Path'])) {
                     $replace[] = '{' . $header . ':path}';
                     $with[] = $submission['SubmissionValues'][$header]['Path'];
                 }
             }
             list($replace2, $with2) = RSFormProHelper::getReplacements($SubmissionId, true);
             $replace = array_merge($replace, $replace2);
             $with = array_merge($with, $with2);
             $rowdata = $template_formdatarow;
             // Add scripting
             if (strpos($rowdata, '{/if}') !== false) {
                 require_once JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/scripting.php';
                 RSFormProScripting::compile($rowdata, $replace, $with);
             }
             $formdata .= str_replace($replace, $with, $rowdata);
             $i++;
         }
         $html = str_replace('{formdata}', $formdata, $template_module);
     } else {
         $cid = $app->input->getInt('cid');
         $format = $app->input->getCmd('format');
         $user = JFactory::getUser();
         $userId = $this->params->def('userId', 0);
         if ($userId != 'login' && $userId != 0) {
             $userId = explode(',', $userId);
             JArrayHelper::toInteger($userId);
         }
         // Grab submission
         $this->_db->setQuery("SELECT * FROM #__rsform_submissions WHERE SubmissionId='" . $cid . "'");
         $submission = $this->_db->loadObject();
         // Submission doesn't exist
         if (!$submission) {
             JError::raiseWarning(500, JText::sprintf('RSFP_SUBMISSION_DOES_NOT_EXIST', $cid));
             return $app->redirect(JURI::root());
         }
         // Submission doesn't belong to the configured form ID OR
         // can view only own submissions and not his own OR
         // can view only specified user IDs and this doesn't belong to any of the IDs
         if ($submission->FormId != $this->params->get('formId') || $userId == 'login' && $submission->UserId != $user->get('id') || is_array($userId) && !in_array($user->get('id'), $userId)) {
             JError::raiseWarning(500, JText::sprintf('RSFP_SUBMISSION_NOT_ALLOWED', $cid));
             return $app->redirect(JURI::root());
         }
         if ($this->params->get('show_confirmed', 0) && !$submission->confirmed) {
             JError::raiseWarning(500, JText::sprintf('RSFP_SUBMISSION_NOT_CONFIRMED', $cid));
             return $app->redirect(JURI::root());
         }
         $pdf_link = JRoute::_('index.php?option=com_rsform&view=submissions&layout=view&cid=' . $cid . '&format=pdf' . $Itemid);
         if ($has_suffix) {
             $pdf_link .= strpos($pdf_link, '?') === false ? '?' : '&';
             $pdf_link .= 'format=pdf';
         }
         list($replace, $with) = RSFormProHelper::getReplacements($cid, true);
         list($replace2, $with2) = $this->getReplacements($submission->UserId);
         $replacements = array('{global:userip}' => $submission->UserIp, '{global:date_added}' => RSFormProHelper::getDate($submission->DateSubmitted), '{global:submissionid}' => $cid, '{global:submission_id}' => $cid, '{global:confirmed}' => $submission->confirmed ? JText::_('RSFP_YES') : JText::_('RSFP_NO'), '{detailspdf}' => '<a href="' . $pdf_link . '">', '{detailspdf_link}' => $pdf_link);
         $replace = array_merge($replace, $replace2, array_keys($replacements));
         $with = array_merge($with, $with2, array_values($replacements));
         if ($format == 'pdf' && preg_match_all('#{detailspdf}(.*?){\\/detailspdf}#is', $template_formdetail, $matches)) {
             foreach ($matches[0] as $fullmatch) {
                 $template_formdetail = str_replace($fullmatch, '', $template_formdetail);
             }
         }
         // Add scripting
         if (strpos($template_formdetail, '{/if}') !== false) {
             require_once JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/scripting.php';
             RSFormProScripting::compile($template_formdetail, $replace, $with);
         }
         $html = str_replace($replace, $with, $template_formdetail);
     }
     return $html;
 }
 function getTemplate()
 {
     $mainframe = JFactory::getApplication();
     $Itemid = '';
     if ($Itemid = JRequest::getInt('Itemid')) {
         $Itemid = '&Itemid=' . $Itemid;
     }
     $template_module = $this->params->def('template_module', '');
     $template_formdatarow = $this->params->def('template_formdatarow', '');
     $template_formdetail = $this->params->def('template_formdetail', '');
     $formdata = '';
     $has_suffix = $mainframe->getCfg('sef') && $mainframe->getCfg('sef_suffix');
     $layout = JRequest::getVar('layout', 'default');
     if ($layout == 'default') {
         $submissions = $this->getSubmissions();
         $headers = $this->getHeaders();
         $pagination = $this->getPagination();
         $i = 0;
         foreach ($submissions as $SubmissionId => $submission) {
             list($replace, $with) = $this->getReplacements($submission['UserId']);
             $pdf_link = JRoute::_('index.php?option=com_rsform&view=submissions&layout=view&cid=' . $SubmissionId . '&format=pdf' . $Itemid);
             if ($has_suffix) {
                 $pdf_link .= strpos($pdf_link, '?') === false ? '?' : '&';
                 $pdf_link .= 'format=pdf';
             }
             $details_link = JRoute::_('index.php?option=com_rsform&view=submissions&layout=view&cid=' . $SubmissionId . $Itemid);
             $replace = array_merge($replace, array('{global:userip}', '{global:date_added}', '{global:submissionid}', '{global:submission_id}', '{global:counter}', '{details}', '{detailspdf}', '{global:confirmed}', '{details_link}', '{detailspdf_link}'));
             $with = array_merge($with, array($submission['UserIp'], $submission['DateSubmitted'], $SubmissionId, $SubmissionId, $pagination->getRowOffset($i), '<a href="' . $details_link . '">', '<a href="' . $pdf_link . '">', $submission['confirmed'], $details_link, $pdf_link));
             $replace[] = '{_STATUS:value}';
             $with[] = isset($submission['SubmissionValues']['_STATUS']) ? JText::_('RSFP_PAYPAL_STATUS_' . $submission['SubmissionValues']['_STATUS']['Value']) : '';
             foreach ($headers as $header) {
                 if (!isset($submission['SubmissionValues'][$header]['Value'])) {
                     $submission['SubmissionValues'][$header]['Value'] = '';
                 }
                 /* $replace[] = '{'.$header.':value}';
                 			$with[] = $submission['SubmissionValues'][$header]['Value']; */
                 if (!empty($submission['SubmissionValues'][$header]['Path'])) {
                     $replace[] = '{' . $header . ':path}';
                     $with[] = $submission['SubmissionValues'][$header]['Path'];
                 }
             }
             list($replace2, $with2) = RSFormProHelper::getReplacements($SubmissionId, true);
             $replace = array_merge($replace, $replace2);
             $with = array_merge($with, $with2);
             $formdata .= str_replace($replace, $with, $template_formdatarow);
             $i++;
         }
         $html = str_replace('{formdata}', $formdata, $template_module);
     } else {
         $cid = JRequest::getInt('cid');
         $user = JFactory::getUser();
         $userId = $this->params->def('userId', 0);
         if ($userId != 'login' && $userId != 0) {
             $userId = explode(',', $userId);
             JArrayHelper::toInteger($userId);
         }
         $this->_db->setQuery("SELECT * FROM #__rsform_submissions WHERE SubmissionId='" . $cid . "'");
         $submission = $this->_db->loadObject();
         if (!$submission || $submission->FormId != $this->params->get('formId') || $userId == 'login' && $submission->UserId != $user->get('id') || is_array($userId) && !in_array($user->get('id'), $userId)) {
             JError::raiseWarning(500, JText::_('ALERTNOTAUTH'));
             $mainframe->redirect(JURI::root());
             return;
         }
         if ($this->params->get('show_confirmed', 0) && !$submission->confirmed) {
             JError::raiseWarning(500, JText::_('ALERTNOTAUTH'));
             $mainframe->redirect(JURI::root());
             return;
         }
         $format = JRequest::getVar('format');
         $pdf_link = JRoute::_('index.php?option=com_rsform&view=submissions&layout=view&cid=' . $cid . '&format=pdf' . $Itemid);
         if ($has_suffix) {
             $pdf_link .= strpos($pdf_link, '?') === false ? '?' : '&';
             $pdf_link .= 'format=pdf';
         }
         $confirmed = $submission->confirmed ? JText::_('RSFP_YES') : JText::_('RSFP_NO');
         list($replace, $with) = RSFormProHelper::getReplacements($cid, true);
         list($replace2, $with2) = $this->getReplacements($submission->UserId);
         $replace = array_merge($replace, $replace2, array('{global:userip}', '{global:date_added}', '{global:submissionid}', '{global:submission_id}', '{detailspdf}', '{global:confirmed}', '{detailspdf_link}'));
         $with = array_merge($with, $with2, array($submission->UserIp, RSFormProHelper::getDate($submission->DateSubmitted), $cid, $cid, '<a href="' . $pdf_link . '">', $confirmed, $pdf_link));
         if ($format == 'pdf' && preg_match_all('#{detailspdf}(.*?){\\/detailspdf}#is', $template_formdetail, $matches)) {
             foreach ($matches[0] as $fullmatch) {
                 $template_formdetail = str_replace($fullmatch, '', $template_formdetail);
             }
         }
         $html = str_replace($replace, $with, $template_formdetail);
     }
     return $html;
 }
                $replace[] = '{' . $header . ':path}';
                $with[] = $submission['SubmissionValues'][$header]['Path'];
            }
        }
        $formdata .= str_replace($replace, $with, $template_formdatarow);
        $i++;
    }
    $html = str_replace('{formdata}', $formdata, $template_module);
    $html .= '<div>' . $pagination->getResultsCounter() . '</div>';
    $html .= '<div>' . $pagination->getPagesLinks() . '</div>';
} else {
    $detail = JRequest::getInt('detail' . $formId);
    if ($userId != 'login' && $userId != 0) {
        $userId = explode(',', $userId);
        JArrayHelper::toInteger($userId);
    }
    $db->setQuery("SELECT * FROM #__rsform_submissions WHERE SubmissionId='" . $detail . "'");
    $submission = $db->loadObject();
    if (!$submission || $submission->FormId != $formId || $userId == 'login' && $submission->UserId != $user->get('id') || is_array($userId) && !in_array($user->get('id'), $userId)) {
        JError::raiseWarning(500, JText::_('ALERTNOTAUTH'));
        return;
    }
    $confirmed = $submission->confirmed ? JText::_('RSFP_YES') : JText::_('RSFP_NO');
    list($replace, $with) = RSFormProHelper::getReplacements($detail, true);
    list($replace2, $with2) = $helper->getReplacements($submission->UserId);
    $replace = array_merge($replace, $replace2, array('{global:submission_id}', '{global:date_added}', '{global:confirmed}'));
    $with = array_merge($with, $with2, array($detail, $submission->DateSubmitted, $confirmed));
    $html = str_replace($replace, $with, $template_formdetail);
}
// Display template
require JModuleHelper::getLayoutPath('mod_rsform_list');
示例#5
0
 public function sendEmails($formId, $SubmissionId)
 {
     $directory = $this->getDirectory();
     $this->_db->setQuery("SELECT Lang FROM #__rsform_submissions WHERE FormId='" . $formId . "' AND SubmissionId='" . $SubmissionId . "'");
     $lang = $this->_db->loadResult();
     list($placeholders, $values) = RSFormProHelper::getReplacements($SubmissionId);
     $this->_db->setQuery("SELECT * FROM #__rsform_emails WHERE `type` = 'directory' AND `formId` = " . $formId . " AND `from` != ''");
     if ($emails = $this->_db->loadObjectList()) {
         $etranslations = RSFormProHelper::getTranslations('emails', $formId, $lang);
         foreach ($emails as $email) {
             if (isset($etranslations[$email->id . '.fromname'])) {
                 $email->fromname = $etranslations[$email->id . '.fromname'];
             }
             if (isset($etranslations[$email->id . '.subject'])) {
                 $email->subject = $etranslations[$email->id . '.subject'];
             }
             if (isset($etranslations[$email->id . '.message'])) {
                 $email->message = $etranslations[$email->id . '.message'];
             }
             if (empty($email->fromname) || empty($email->subject) || empty($email->message)) {
                 continue;
             }
             // RSForm! Pro Scripting - Additional Email Text
             // performance check
             if (strpos($email->message, '{/if}') !== false) {
                 require_once JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/scripting.php';
                 RSFormProScripting::compile($email->message, $placeholders, $values);
             }
             $directoryEmail = array('to' => str_replace($placeholders, $values, $email->to), 'cc' => str_replace($placeholders, $values, $email->cc), 'bcc' => str_replace($placeholders, $values, $email->bcc), 'from' => str_replace($placeholders, $values, $email->from), 'replyto' => str_replace($placeholders, $values, $email->replyto), 'fromName' => str_replace($placeholders, $values, $email->fromname), 'text' => str_replace($placeholders, $values, $email->message), 'subject' => str_replace($placeholders, $values, $email->subject), 'mode' => $email->mode, 'files' => array());
             // additional cc
             if (strpos($directoryEmail['cc'], ',') !== false) {
                 $directoryEmail['cc'] = explode(',', $directoryEmail['cc']);
             }
             // additional bcc
             if (strpos($directoryEmail['bcc'], ',') !== false) {
                 $directoryEmail['bcc'] = explode(',', $directoryEmail['bcc']);
             }
             //Trigger Event - beforeDirectoryEmail
             $this->_app->triggerEvent('rsfp_beforeDirectoryEmail', array(array('directory' => &$directory, 'placeholders' => &$placeholders, 'values' => &$values, 'submissionId' => $SubmissionId, 'directoryEmail' => &$directoryEmail)));
             eval($directory->EmailsScript);
             // mail users
             $recipients = explode(',', $directoryEmail['to']);
             if (!empty($recipients)) {
                 foreach ($recipients as $recipient) {
                     if (!empty($recipient)) {
                         RSFormProHelper::sendMail($directoryEmail['from'], $directoryEmail['fromName'], $recipient, $directoryEmail['subject'], $directoryEmail['text'], $directoryEmail['mode'], !empty($directoryEmail['cc']) ? $directoryEmail['cc'] : null, !empty($directoryEmail['bcc']) ? $directoryEmail['bcc'] : null, $directoryEmail['files'], !empty($directoryEmail['replyto']) ? $directoryEmail['replyto'] : '');
                     }
                 }
             }
         }
     }
 }