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 %}
|
{% block content %}
|
||||||
|
|
||||||
|
<h2>
|
||||||
{% if post is defined and post is not null and post.id > 0 %}
|
{% if post is defined and post is not null and post.id > 0 %}
|
||||||
Éditer l'article
|
Éditer l'article
|
||||||
{% else %}
|
{% else %}
|
||||||
Créer un article
|
Créer un article
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</h2>
|
||||||
|
|
||||||
{# Formulaire identifié pour le script JavaScript #}
|
{# Formulaire identifié pour le script JavaScript #}
|
||||||
<form id="articleForm" method="post" action="{{ action }}">
|
<form id="articleForm" method="post" action="{{ action }}">
|
||||||
@@ -26,7 +28,8 @@ Créer un article
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
<label for="editor">Contenu<br>
|
<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>
|
</label>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -53,3 +56,28 @@ Créer un article
|
|||||||
{% endblock %}
|
{% 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