Files
dockerfluxodecaixapro/app/Controllers/QuillDemoController.php
T
2026-09-01 10:46:29 -03:00

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]);
}
}