public function getPageContent()
 {
     $lang = OutlineController::handleLanguageRequest();
     $terms = $this->getTemplateEngine()->readTemplate("terms-" . $lang . ".tpl");
     $template = $this->getTemplateEngine()->readTemplate($this->getTemplate());
     $template = $this->getTemplateEngine()->replaceTag("terms", $terms, $template);
     return $template;
 }
<?php

require_once 'Autoloader.php';
// handle GET requests for the backend
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    if (isset($_GET["lang"])) {
        echo OutlineController::handleLanguageRequest();
    }
}
// handle POST requests for the backend
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // if a language change was posted, let a OutlineController instance handling it.
    if (isset($_POST["lang"])) {
        echo OutlineController::handleLanguageChange($_POST["lang"]);
    } else {
        if (isset($_POST["logout"])) {
            echo FooterController::logout();
        } else {
            if (isset($_POST["productId"]) && isset($_POST["command"])) {
                $id = intval($_POST["productId"]);
                $cmd = $_POST["command"];
                $data = isset($_POST["data"]) ? $_POST["data"] : null;
                switch ($cmd) {
                    case CartModel::CMD_ADD:
                        CartController::addById($id, $data);
                        break;
                    case CartModel::CMD_REMOVE:
                        CartController::removeById($id);
                        break;
                    default:
                        Logger::error("unknown command '" . $cmd . "' for cart received!");