Simplified
This commit is contained in:
@@ -1,26 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Slim\App;
|
||||
use App\Factories\ServiceFactory;
|
||||
use App\Factories\PostControllerFactory;
|
||||
|
||||
/**
|
||||
* @param App $app
|
||||
* @return void
|
||||
*/
|
||||
return function (App $app): void {
|
||||
// Créer services (centralisé)
|
||||
$services = \App\Factories\ServiceFactory::createServices();
|
||||
|
||||
// Créer controller via sa factory
|
||||
$controller = PostControllerFactory::create($services);
|
||||
|
||||
$app->get('/', [$controller, 'index']);
|
||||
$app->get('/admin', [$controller, 'admin']);
|
||||
$app->get('/admin/edit/{id}', [$controller, 'form']);
|
||||
$app->post('/admin/create', [$controller, 'create']);
|
||||
$app->post('/admin/edit/{id}', [$controller, 'update']);
|
||||
$app->post('/admin/delete/{id}', [$controller, 'delete']);
|
||||
};
|
||||
225
var/cache/twig/a8/a8a112b9f839398a4c36c8749dbe2f2d.php
vendored
Normal file
225
var/cache/twig/a8/a8a112b9f839398a4c36c8749dbe2f2d.php
vendored
Normal file
@@ -0,0 +1,225 @@
|
||||
<?php
|
||||
|
||||
use Twig\Environment;
|
||||
use Twig\Error\LoaderError;
|
||||
use Twig\Error\RuntimeError;
|
||||
use Twig\Extension\CoreExtension;
|
||||
use Twig\Extension\SandboxExtension;
|
||||
use Twig\Markup;
|
||||
use Twig\Sandbox\SecurityError;
|
||||
use Twig\Sandbox\SecurityNotAllowedTagError;
|
||||
use Twig\Sandbox\SecurityNotAllowedFilterError;
|
||||
use Twig\Sandbox\SecurityNotAllowedFunctionError;
|
||||
use Twig\Source;
|
||||
use Twig\Template;
|
||||
use Twig\TemplateWrapper;
|
||||
|
||||
/* pages/post_form.twig */
|
||||
class __TwigTemplate_1bca1bf826c65d946ceb9c6169e6cfec extends Template
|
||||
{
|
||||
private Source $source;
|
||||
/**
|
||||
* @var array<string, Template>
|
||||
*/
|
||||
private array $macros = [];
|
||||
|
||||
public function __construct(Environment $env)
|
||||
{
|
||||
parent::__construct($env);
|
||||
|
||||
$this->source = $this->getSourceContext();
|
||||
|
||||
$this->blocks = [
|
||||
'title' => [$this, 'block_title'],
|
||||
'content' => [$this, 'block_content'],
|
||||
'scripts' => [$this, 'block_scripts'],
|
||||
];
|
||||
}
|
||||
|
||||
protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
|
||||
{
|
||||
// line 1
|
||||
return "layout.twig";
|
||||
}
|
||||
|
||||
protected function doDisplay(array $context, array $blocks = []): iterable
|
||||
{
|
||||
$macros = $this->macros;
|
||||
$this->parent = $this->load("layout.twig", 1);
|
||||
yield from $this->parent->unwrap()->yield($context, array_merge($this->blocks, $blocks));
|
||||
}
|
||||
|
||||
// line 3
|
||||
/**
|
||||
* @return iterable<null|scalar|\Stringable>
|
||||
*/
|
||||
public function block_title(array $context, array $blocks = []): iterable
|
||||
{
|
||||
$macros = $this->macros;
|
||||
// line 4
|
||||
if (((array_key_exists("post", $context) && !(null === ($context["post"] ?? null))) && (CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "id", [], "any", false, false, false, 4) > 0))) {
|
||||
// line 5
|
||||
yield "Éditer l'article
|
||||
";
|
||||
} else {
|
||||
// line 7
|
||||
yield "Créer un article
|
||||
";
|
||||
}
|
||||
yield from [];
|
||||
}
|
||||
|
||||
// line 11
|
||||
/**
|
||||
* @return iterable<null|scalar|\Stringable>
|
||||
*/
|
||||
public function block_content(array $context, array $blocks = []): iterable
|
||||
{
|
||||
$macros = $this->macros;
|
||||
// line 12
|
||||
yield "
|
||||
<h2>
|
||||
";
|
||||
// line 14
|
||||
if (((array_key_exists("post", $context) && !(null === ($context["post"] ?? null))) && (CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "id", [], "any", false, false, false, 14) > 0))) {
|
||||
// line 15
|
||||
yield " Éditer l'article
|
||||
";
|
||||
} else {
|
||||
// line 17
|
||||
yield " Créer un article
|
||||
";
|
||||
}
|
||||
// line 19
|
||||
yield "</h2>
|
||||
|
||||
";
|
||||
// line 22
|
||||
yield "<form id=\"articleForm\" method=\"post\" action=\"";
|
||||
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(($context["action"] ?? null), "html", null, true);
|
||||
yield "\">
|
||||
<p>
|
||||
<label for=\"title\">Titre<br>
|
||||
<input type=\"text\" id=\"title\" name=\"title\" value=\"";
|
||||
// line 25
|
||||
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "title", [], "any", true, true, false, 25)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "title", [], "any", false, false, false, 25), "")) : ("")), "html", null, true);
|
||||
yield "\" required maxlength=\"255\">
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for=\"editor\">Contenu<br>
|
||||
<textarea id=\"editor\" name=\"content\" rows=\"6\" required>";
|
||||
// line 31
|
||||
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "content", [], "any", true, true, false, 31)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "content", [], "any", false, false, false, 31), "")) : ("")), "html", null, true);
|
||||
yield "</textarea>
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<button type=\"submit\" class=\"btn btn-primary\">
|
||||
";
|
||||
// line 37
|
||||
if (((array_key_exists("post", $context) && !(null === ($context["post"] ?? null))) && (CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "id", [], "any", false, false, false, 37) > 0))) {
|
||||
// line 38
|
||||
yield " Mettre à jour
|
||||
";
|
||||
} else {
|
||||
// line 40
|
||||
yield " Enregistrer
|
||||
";
|
||||
}
|
||||
// line 42
|
||||
yield " </button>
|
||||
<a href=\"/admin\" class=\"btn btn-secondary\">Annuler</a>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
";
|
||||
// line 47
|
||||
if (((array_key_exists("post", $context) && !(null === ($context["post"] ?? null))) && (CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "id", [], "any", false, false, false, 47) > 0))) {
|
||||
// line 48
|
||||
yield "<hr>
|
||||
<small>
|
||||
Créé le : ";
|
||||
// line 50
|
||||
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "createdAt", [], "any", false, false, false, 50), "d/m/Y à H:i"), "html", null, true);
|
||||
yield "<br>
|
||||
Modifié le : ";
|
||||
// line 51
|
||||
yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Twig\Extension\CoreExtension']->formatDate(CoreExtension::getAttribute($this->env, $this->source, ($context["post"] ?? null), "updatedAt", [], "any", false, false, false, 51), "d/m/Y à H:i"), "html", null, true);
|
||||
yield "
|
||||
</small>
|
||||
";
|
||||
}
|
||||
// line 54
|
||||
yield "
|
||||
";
|
||||
yield from [];
|
||||
}
|
||||
|
||||
// line 57
|
||||
/**
|
||||
* @return iterable<null|scalar|\Stringable>
|
||||
*/
|
||||
public function block_scripts(array $context, array $blocks = []): iterable
|
||||
{
|
||||
$macros = $this->macros;
|
||||
// line 58
|
||||
yield "<script src=\"/js/tinymce/tinymce.min.js\" referrerpolicy=\"origin\" crossorigin=\"anonymous\"></script>
|
||||
<script>
|
||||
tinymce.init({
|
||||
selector: '#editor',
|
||||
base_url: '/js/tinymce', // assure le bon chemin relatif
|
||||
license_key: 'gpl',
|
||||
height: 400,
|
||||
menubar: false,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image',
|
||||
'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen',
|
||||
'insertdatetime', 'media', 'table',
|
||||
'help', 'wordcount'
|
||||
],
|
||||
toolbar: [
|
||||
'undo redo | formatselect | bold italic underline |',
|
||||
'alignleft aligncenter alignright alignjustify |',
|
||||
'bullist numlist outdent indent | link image media |',
|
||||
'removeformat | help'
|
||||
].join(' '),
|
||||
content_style: 'body {font-family:Helvetica,Arial,sans-serif;font-size:14px}'
|
||||
});
|
||||
</script>
|
||||
";
|
||||
yield from [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function getTemplateName(): string
|
||||
{
|
||||
return "pages/post_form.twig";
|
||||
}
|
||||
|
||||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function isTraitable(): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
public function getDebugInfo(): array
|
||||
{
|
||||
return array ( 169 => 58, 162 => 57, 156 => 54, 150 => 51, 146 => 50, 142 => 48, 140 => 47, 133 => 42, 129 => 40, 125 => 38, 123 => 37, 114 => 31, 105 => 25, 98 => 22, 94 => 19, 90 => 17, 86 => 15, 84 => 14, 80 => 12, 73 => 11, 66 => 7, 62 => 5, 60 => 4, 53 => 3, 42 => 1,);
|
||||
}
|
||||
|
||||
public function getSourceContext(): Source
|
||||
{
|
||||
return new Source("", "pages/post_form.twig", "/home/julien/Documents/Git/julien/blog-slim/views/pages/post_form.twig");
|
||||
}
|
||||
}
|
||||
@@ -10,11 +10,13 @@ Créer un article
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% if post is defined and post is not null and post.id > 0 %}
|
||||
Éditer l'article
|
||||
{% else %}
|
||||
Créer un article
|
||||
{% endif %}
|
||||
<h2>
|
||||
{% if post is defined and post is not null and post.id > 0 %}
|
||||
Éditer l'article
|
||||
{% else %}
|
||||
Créer un article
|
||||
{% endif %}
|
||||
</h2>
|
||||
|
||||
{# Formulaire identifié pour le script JavaScript #}
|
||||
<form id="articleForm" method="post" action="{{ action }}">
|
||||
@@ -26,7 +28,8 @@ Créer un article
|
||||
|
||||
<p>
|
||||
<label for="editor">Contenu<br>
|
||||
<textarea id="editor" name="content" rows="6" required>{{ post.content|default('') }}</textarea>
|
||||
{# <textarea id="editor" name="content" rows="6" required>{{ post.content|default('') }}</textarea> #}
|
||||
<textarea id="editor" name="content" rows="6">{{ post.content|default('') }}</textarea>
|
||||
</label>
|
||||
</p>
|
||||
|
||||
@@ -52,4 +55,29 @@ Créer un article
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
{% block scripts %}
|
||||
<script src="/js/tinymce/tinymce.min.js" referrerpolicy="origin" crossorigin="anonymous"></script>
|
||||
<script>
|
||||
tinymce.init({
|
||||
selector: '#editor',
|
||||
base_url: '/js/tinymce', // assure le bon chemin relatif
|
||||
license_key: 'gpl',
|
||||
height: 400,
|
||||
menubar: false,
|
||||
plugins: [
|
||||
'advlist', 'autolink', 'lists', 'link', 'image',
|
||||
'charmap', 'preview', 'anchor', 'searchreplace',
|
||||
'visualblocks', 'code', 'fullscreen',
|
||||
'insertdatetime', 'media', 'table',
|
||||
'help', 'wordcount'
|
||||
],
|
||||
toolbar: [
|
||||
'undo redo | formatselect | bold italic underline |',
|
||||
'alignleft aligncenter alignright alignjustify |',
|
||||
'bullist numlist outdent indent | link image media |',
|
||||
'removeformat | help'
|
||||
].join(' '),
|
||||
content_style: 'body {font-family:Helvetica,Arial,sans-serif;font-size:14px}'
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user