chamilo/chamilo-lms

View on GitHub
public/main/inc/email_editor_external.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

/* For licensing terms, see /license.txt */

use ChamiloSession as Session;

/**
 * This script contains the code to send an e-mail to the portal admin.
 */
require_once __DIR__.'/../inc/global.inc.php';

if ('false' === api_get_setting('mail.allow_email_editor_for_anonymous')) {
    api_not_allowed(true);
}

$originUrl = Session::read('origin_url');
if (empty($originUrl) && isset($_SERVER['HTTP_REFERER'])) {
    Session::write('origin_url', $_SERVER['HTTP_REFERER']);
}

$action = isset($_GET['action']) ? $_GET['action'] : null;

$form = new FormValidator('email_editor', 'post');
$form->addText('email', get_lang('Email'));
$form->addRule('email', get_lang('EmailWrong'), 'email');
$form->addText('email_title', get_lang('EmailTitle'));
$form->addTextarea('email_text', get_lang('Message'), ['rows' => '6'], true);
$form->addCaptcha();
$form->addButtonSend(get_lang('SendMail'));

$emailTitle = isset($_REQUEST['subject']) ? Security::remove_XSS($_REQUEST['subject']) : '';
$emailText = isset($_REQUEST['body']) ? Security::remove_XSS($_REQUEST['body']) : '';

$defaults = [
    'email_title' => $emailTitle,
    'email_text' => $emailText,
];

if (isset($_POST)) {
    $defaults = [
        'email' => $_REQUEST['email'] ?? null,
        'email_title' => $_REQUEST['email_title'] ?? null,
        'email_text' => $_REQUEST['email_text'] ?? null,
    ];
}

$form->setDefaults($defaults);
if ($form->validate()) {
    $values = $form->getSubmitValues();
    $message =
        get_lang('Sender').': '.$values['email'].'<br /><br />'.
        nl2br($values['email_text']).
        '<br /><br /><br />'.get_lang('EmailSentFromLMS').' '.api_get_path(WEB_PATH);

    api_mail_html(
        '',
        api_get_setting('emailAdministrator'),
        $values['email_title'],
        $message,
        get_lang('Anonymous')
    );

    Display::addFlash(Display::return_message(get_lang('MessageSent')));
    $orig = Session::read('origin_url');
    Session::erase('origin_url');
    header('Location:'.$orig);
    exit;
}

Display::display_header(get_lang('SendEmail'));
$form->display();
Display::display_footer();