FaZeBookSocialNetwork / www / src / FaZeBook / Page / EditProfile.php
EditProfile.php
Raw
<?php

namespace FaZeBook\Page;

require_once(__DIR__.'/../../Application/Page/PageInterface.php');

use Application\Page\PageInterface;
use FaZeBook\Data;
use FaZeBook\Session;

class EditProfile implements PageInterface {

    public function getId()
    {
        return "editprofile";
    }

    public function hasNavigationItem()
    {
        return true;
    }


    public function getTitle()
    {
        return 'Profil bearbeiten';
    }

    public function getViewScript()
    {
        return __DIR__.'/../../../view/app/editprofile.php';
    }


    public function getViewVariables()
    {
        $currUser = Session::getInstance()->currentUser();

        if(null != $currUser->getBirthday()){
            $bday = $currUser->getBirthday()->format('Y-m-d');
        }

        if(isset($_POST['firstname'])){
            $currUser->setFirstName(htmlspecialchars($_POST['firstname']));
            $currUser->setLastName(htmlspecialchars($_POST['lastname']));
            $currUser->setBirthday(new \DateTimeImmutable($_POST['birthday']));
            if(Data::getInstance()->getUserByEmail($_POST['email'])==null){
                $currUser->setEmail(htmlspecialchars($_POST['email']));
            }
            if($_POST['phone']!== ""){
                $currUser->setPhoneNumber(htmlspecialchars($_POST['phone']));
            }
            if(is_numeric($_POST['politicalDir']) && $_POST['politicalDir'] <= 50 && $_POST['politicalDir']>=-50){
                $currUser->setPoliticalDirection($_POST['politicalDir']);
            }
            if(isset($_POST['avatarUrl']) && strlen($_POST['avatarUrl']) > 0) {
                $currUser->setAvatarUrl(htmlspecialchars($_POST['avatarUrl']));
            } else {
                $currUser->setAvatarUrl(null);
            }
        }

        return [
            'firstName' => $currUser->getFirstName(),
            'lastName' => $currUser->getLastName(),
            'bday' => $bday,
            'email' => $currUser->getEmail(),
            'phone' => $currUser->getPhoneNumber(),
            'profileChanged' => isset($_POST['firstname']),
            'politicalDir' => $currUser->getPoliticalDirection(),
            'avatarUrl' => is_null($currUser->getAvatarUrl()) ? "" : $currUser->getAvatarUrl()
        ];
    }
}