static function replaceVars($template, $er = array()) { $r = rex_extension::registerPoint(new rex_extension_point('YFORM_EMAIL_BEFORE_REPLACEVARS', ['template' => $template, 'search_replace' => $er, 'status' => false])); $template = $r['template']; $er = $r['search_replace']; $status = $r['status']; if ($status) { return true; } $er['REX_SERVER'] = rex::getServer(); $er['REX_ERROR_EMAIL'] = rex::getErrorEmail(); $er['REX_SERVERNAME'] = rex::getServerName(); $er['REX_NOTFOUND_ARTICLE_ID'] = rex_article::getNotfoundArticleId(); $er['REX_ARTICLE_ID'] = rex_article::getCurrentId(); $template['body'] = rex_var::parse($template['body'], '', 'yform_email_template', $er); $template['body_html'] = rex_var::parse($template['body_html'], '', 'yform_email_template', $er); // rex_vars bug: sonst wird der Zeilenumbruch entfernt - wenn DATA_VAR am Ende einer Zeile if (rex_string::versionCompare(rex::getVersion(), '5.0.1', '<')) { $template['body'] = str_replace("?>\r", "?>\r\n\r", $template['body']); $template['body'] = str_replace("?>\n", "?>\n\r\n", $template['body']); $template['body_html'] = str_replace("?>\r", "?>\r\n\r", $template['body_html']); $template['body_html'] = str_replace("?>\n", "?>\n\r\n", $template['body_html']); } $template['body'] = rex_file::getOutput(rex_stream::factory('yform/email/template/' . $template['name'] . '/body', $template['body'])); $template['body_html'] = rex_file::getOutput(rex_stream::factory('yform/email/template/' . $template['name'] . '/body_html', $template['body_html'])); return $template; }
function executeAction() { $template_name = $this->getElement(2); if ($etpl = rex_yform_email_template::getTemplate($template_name)) { $mail_to = rex::getErrorEmail(); if ($this->getElement(3) != false && $this->getElement(3) != '') { foreach ($this->params['value_pool']['email'] as $key => $value) { if ($this->getElement(3) == $key) { $mail_to = $value; break; } } } // ---- fix mailto from definition if ($this->getElement(4) != false && $this->getElement(4) != '') { $mail_to = $this->getElement(4); } if ($this->params['debug']) { echo '<hr /><pre>'; var_dump($etpl); echo '</pre><hr />'; } $etpl = rex_yform_email_template::replaceVars($etpl, $this->params['value_pool']['email']); if ($this->params['debug']) { echo '<hr /><pre>'; var_dump($etpl); echo '</pre><hr />'; } $etpl['mail_to'] = $mail_to; $etpl['mail_to_name'] = $mail_to; if ($etpl['attachments'] != '') { $f = explode(',', $etpl['attachments']); $etpl['attachments'] = array(); foreach ($f as $v) { $etpl['attachments'][] = array('name' => $v, 'path' => rex_path::media($v)); } } else { $etpl['attachments'] = array(); } if (!rex_yform_email_template::sendMail($etpl, $template_name)) { if ($this->params['debug']) { echo 'email could be sent'; } return false; } else { if ($this->params['debug']) { echo 'email sent'; } return true; } } else { if ($this->params['debug']) { echo '<p>Template: "' . htmlspecialchars($template_name) . '" not found'; } } return false; }
$fragment->setVar('title', rex_i18n::msg('system_features')); $fragment->setVar('body', $content, false); echo $fragment->parse('core/page/section.php'); $content = []; $formElements = []; $n = []; $n['label'] = '<label for="rex-id-server">' . rex_i18n::msg('server') . '</label>'; $n['field'] = '<input class="form-control" type="text" id="rex-id-server" name="settings[server]" value="' . htmlspecialchars(rex::getServer()) . '" />'; $formElements[] = $n; $n = []; $n['label'] = '<label for="rex-id-servername">' . rex_i18n::msg('servername') . '</label>'; $n['field'] = '<input class="form-control" type="text" id="rex-id-servername" name="settings[servername]" value="' . htmlspecialchars(rex::getServerName()) . '" />'; $formElements[] = $n; $n = []; $n['label'] = '<label for="rex-id-error-email">' . rex_i18n::msg('error_email') . '</label>'; $n['field'] = '<input class="form-control" type="text" id="rex-id-error-email" name="settings[error_email]" value="' . htmlspecialchars(rex::getErrorEmail()) . '" />'; $formElements[] = $n; $fragment = new rex_fragment(); $fragment->setVar('elements', $formElements, false); $content[] = $fragment->parse('core/form/form.php'); $elements = ''; $formElements = []; $n = []; $n['label'] = '<label for="rex-id-lang">' . rex_i18n::msg('backend_language') . '</label>'; $n['field'] = $sel_lang->get(); $formElements[] = $n; $fragment = new rex_fragment(); $fragment->setVar('elements', $formElements, false); $elements .= $fragment->parse('core/form/form.php'); $formElements = []; $n = [];