97 lines
2.6 KiB
PHP
Executable File
97 lines
2.6 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use Kernel\View;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class QuillDemoController extends BaseAdminController
|
|
{
|
|
/**
|
|
* Displays the Quill demo page
|
|
*/
|
|
public function index(Request $request): Response
|
|
{
|
|
// Check if the user is authenticated
|
|
if (!$this->isAuthenticated()) {
|
|
return $this->redirectToRoute('login');
|
|
}
|
|
|
|
// Render the demo view
|
|
$view = new View();
|
|
$content = $view->render('examples/quill-demo.twig');
|
|
|
|
return new Response($content);
|
|
}
|
|
|
|
/**
|
|
* Processes the demo form submission
|
|
*/
|
|
public function submit(Request $request): Response
|
|
{
|
|
// Check if the user is authenticated
|
|
if (!$this->isAuthenticated()) {
|
|
return $this->redirectToRoute('login');
|
|
}
|
|
|
|
// Get form data
|
|
$title = $request->get('title');
|
|
$content = $request->get('content');
|
|
$advancedContent = $request->get('advanced_content');
|
|
$simpleContent = $request->get('simple_content');
|
|
|
|
// Save to session to display on results page
|
|
$_SESSION['form_data'] = [
|
|
'title' => $title,
|
|
'content' => $content,
|
|
'advanced_content' => $advancedContent,
|
|
'simple_content' => $simpleContent
|
|
];
|
|
|
|
// Redirect to results page
|
|
return $this->redirectToRoute('quill-demo-results');
|
|
}
|
|
|
|
/**
|
|
* Displays form results
|
|
*/
|
|
public function results(Request $request): Response
|
|
{
|
|
// Check if the user is authenticated
|
|
if (!$this->isAuthenticated()) {
|
|
return $this->redirectToRoute('login');
|
|
}
|
|
|
|
// Get session data
|
|
$formData = $_SESSION['form_data'] ?? [];
|
|
|
|
// Clear session data
|
|
unset($_SESSION['form_data']);
|
|
|
|
// Render the results view
|
|
$view = new View();
|
|
$content = $view->render('examples/quill-results.twig', [
|
|
'formData' => $formData
|
|
]);
|
|
|
|
return new Response($content);
|
|
}
|
|
|
|
/**
|
|
* Checks if the user is authenticated
|
|
*/
|
|
private function isAuthenticated(): bool
|
|
{
|
|
return isset($_SESSION['user_id']);
|
|
}
|
|
|
|
/**
|
|
* Redirects to a route
|
|
*/
|
|
private function redirectToRoute(string $route): Response
|
|
{
|
|
$url = url($route);
|
|
return new Response("", 302, ["Location" => $url]);
|
|
}
|
|
} |