/**
  * Sendet eine Mail über den in der Konfiguration hinterlegten SMTP Account.
  * @param string $empfaenger Empfängeradresse / Wird automatisch von UTF-8 nach ANSI gewandelt
  * @param string $betreff Empfängeradresse / Wird automatisch von UTF-8 nach ANSI gewandelt
  * @param string $nachricht Nachricht als Plaintext
  * @param string $html Nachricht als HTML
  * @param string $attachment Pfad und Dateiname eines Anhangs
  * @return boolean
  */
 public function sendMail($empfaenger, $betreff, $nachricht, $html = null, $attachment = null)
 {
     if (Configuration::get('mail.from') === '') {
         Logging::warning('Kein Absender in der Konfiguration eingetragen. E-Mail wird nicht versendet');
         return false;
     }
     if ($empfaenger === '') {
         Logging::warning('Keine E-Mail Adresse übergeben');
         return false;
     }
     $empfaenger = trim($empfaenger);
     Profiler::startSection('Mailer::sendMail');
     try {
         $message = Swift_Message::newInstance();
         $message->setSubject($betreff);
         $message->setFrom(array(Configuration::get('mail.from')));
         $message->setTo(array(utf8_decode($empfaenger)));
         $message->setBody(strip_tags($nachricht));
         if ($html !== null) {
             $templatePath = Environment::get()->srcDir . '/site/mails/template.html';
             if (file_exists($templatePath)) {
                 $html = str_replace('{mail}', $html, file_get_contents($templatePath));
             }
             $message->addPart($html, 'text/html');
         }
         if ($attachment !== null) {
             $message->attach(Swift_Attachment::fromPath($attachment));
         }
         if ($this->transport === null) {
             $this->transport = Swift_SmtpTransport::newInstance(Configuration::get('mail.smtp_host'), Configuration::get('mail.smtp_port'))->setUsername(Configuration::get('mail.smtp_user'))->setPassword(Configuration::get('mail.smtp_pass'));
             $this->mailer = Swift_Mailer::newInstance($this->transport);
         }
         Logging::debug('Versende Mail per SMTP an ' . $empfaenger . ' über ' . Configuration::get('mail.smtp_host') . ':' . Configuration::get('mail.smtp_port') . ' / ' . Configuration::get('mail.smtp_user') . ' / ' . Configuration::get('mail.smtp_pass'));
         $result = $this->mailer->send($message);
         Logging::debug('Result des Mails ' . print_r($result, true));
         Profiler::endSection('Mailer::sendMail');
         return $result;
     } catch (Exception $ex) {
         Logging::error('Exception beim Senden einer Mail ' . $ex->getMessage());
         Profiler::endSection('Mailer::sendMail');
         return false;
     }
 }
 /**
  * Sucht nach der ersten Konfiguration mit dem Test-Kennzeichen und lädt diese
  * @throws \RuntimeException
  */
 protected function readConfigByServerUri()
 {
     $pattern = $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'];
     $file = simplexml_load_file(Environment::get()->srcDir . '/Configuration.xml');
     foreach ($file->configurations->configuration as $entry) {
         if (strpos(strtolower($pattern), strtolower((string) $entry->urlPattern)) !== false) {
             $this->configuration = $entry;
             break;
         }
     }
     unset($this->file);
     if ($this->configuration === null) {
         throw new \RuntimeException("\n                Keine Konfiguration für URL-Pattern {$pattern} gefunden");
     }
 }
 /**
  * Startet die Verarbeitung des aktuellen Aufrufs.
  *
  * @param boolean $admin true, falls Aufruf der Administration
  */
 public static function start($admin = false)
 {
     // Bootstrapping der konkreten App aufrufen (vor dem Laden der Session!)
     // Beim Laden der Session werden u.a. schon DB-Abfragen ausgeführt. Einstellungen,
     // die die DB betreffen müssen also vorher (!) gemacht werden.
     include Environment::get()->srcDir . '/Bootstrap.php';
     $application = self::getInstance();
     $application->startSession();
     Debug::init();
     // Konkrete Applikation initialisieren (nach dem Laden der Session!)
     include Environment::get()->srcDir . '/InitApplication.php';
     // Request parsen und ausführen
     $request = $application->parseRequest();
     $request = self::sanitizeRequest($request, $admin);
     $application->handleRequest($request);
     // DB Verbindung garantiert trennen
     Database::getInstance()->close();
 }
<?php

use NewFrontiers\Framework\Core\Application;
include 'bootstrap.php';
include \Nostromo\Contracts\Configuration\Environment::get()->srcDir . '/Bootstrap.php';
Application::getInstance()->startSession();
include \Nostromo\Contracts\Configuration\Environment::get()->srcDir . '/InitApplication.php';
// Wenn nichts übertragen wird ist es ein Grid
if (!isset($_POST['control'])) {
    $var = unserialize(base64_decode($_POST['vars']));
    $sort = unserialize(base64_decode($_POST['sort']));
    $grid = new NewFrontiers\Controls\DataControls\GridControl(null, 'grid');
    $grid->loadFromConfigArray($var, $sort);
    if (isset($_POST['page'])) {
        $grid->setCurPage($_POST['page']);
    }
    if (isset($_POST['sorting'])) {
        $grid->setCurSorting($_POST['sorting']);
    }
    $grid->ajax = true;
    echo $grid->toHtml();
}
 /**
  * Gibt ein Array aller Module zurück
  * @return Module[]
  */
 public function getAllModules()
 {
     $result = [];
     $result = array_merge($result, $this->getModulesInDir(Environment::get()->srcDir . '/' . Configuration::get('defaultNamespace')));
     $result = array_merge($result, $this->getModulesInDir(Environment::get()->srcDir . '/NewFrontiers/Modules'));
     $result = array_merge($result, $this->getModulesInDir(Environment::get()->composerDir . '/nostromo'));
     ksort($result);
     return $result;
 }
 /**
  * @covers \NewFrontiers\Framework\Output\Mailer::sendMail
  * @covers \NewFrontiers\Framework\Output\Mailer::sendNotification
  */
 public function testSendMailWithHtmlAndAttachment()
 {
     Configuration::getInstance()->readConfig();
     $html = "<b>Hallo!</b>";
     $attachment = Environment::get()->wwwDir . '/templates/another/default.php';
     $mailer = $this->createMailerMock($lastMail);
     $successfulMail = $mailer->sendMail(self::$workingMailAdress, "test", "testnachricht", $html, $attachment);
     $this->assertTrue($successfulMail != false && $successfulMail != 0);
     $this->assertContains("Subject: test", $lastMail);
     $this->assertContains("From: " . Configuration::get('mail.from'), $lastMail);
     $this->assertContains("To: " . self::$workingMailAdress, $lastMail);
     $this->assertContains("\ntestnachricht", $lastMail);
     $this->assertContains("\n<i><b>Hallo!</b></i>", $lastMail);
     $this->assertContains("attachment; filename=default.php", $lastMail);
 }
示例#7
0
}
// Kondiguration anpassen
$config = file_get_contents(__DIR__ . '/site/Configuration.xml.dist');
$config = str_replace('BASEURL', $_POST['baseurl'], $config);
$config = str_replace('NAMESPACE', $_POST['namespace'], $config);
$config = str_replace('DATABASE_HOST', $_POST['database_host'], $config);
$config = str_replace('DATABASE_SCHEMA', $_POST['database_schema'], $config);
$config = str_replace('DATABASE_USER', $_POST['database_user'], $config);
$config = str_replace('DATABASE_PASSWORD', $_POST['database_pass'], $config);
file_put_contents(__DIR__ . '/site/Configuration.xml', $config);
// Uuund los geht's
include __DIR__ . '/bootstrap.php';
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
\NewFrontiers\Framework\Core\Application::getInstance();
include \Nostromo\Contracts\Configuration\Environment::get()->srcDir . '/Bootstrap.php';
$siteInstaller = new \NewFrontiers\Modules\Site\SiteInstaller();
$cmsInstaller = new \NewFrontiers\Modules\Cms\CmsInstaller();
$userInstaller = new \NewFrontiers\Modules\User\UserInstaller();
$siteInstaller->migrateDatabase();
$cmsInstaller->migrateDatabase();
$userInstaller->migrateDatabase();
$siteInstaller->install();
$cmsInstaller->install();
$userInstaller->install();
$installer = new \NewFrontiers\Modules\ModView\ModViewInstaller();
$installer->install();
$installer = new \NewFrontiers\Modules\Medien\MedienInstaller();
$installer->install();
$installer = new \NewFrontiers\Modules\DefaultMod\DefaultModInstaller();
$installer->install();
 /**
  * Gibt eine Liste mit den installierten Templates aus
  */
 public static function listTemplates()
 {
     $result = [];
     foreach (new \DirectoryIterator(Environment::get()->wwwDir . '/templates') as $fileInfo) {
         if ($fileInfo->isDot()) {
             continue;
         }
         if ($fileInfo->isDir()) {
             $result[] = $fileInfo->getFilename();
         }
     }
     return $result;
 }