deblan.io-gemini/blog/posts/620.gmi
2022-08-18 13:36:51 +02:00

60 lines
2.5 KiB
Plaintext

# Générer une page dans Murph
* 2022-05-16 10:30:00
* Développement, Logiciel libre, Projets personnels
Murph est un **framework open-source pour construire des CMS**. Il est développé à l'aide de **Symfony** et permet de gérer des sites web avec **plusieurs noms de domaines et en plusieurs langues**.
Cet article fait partie d'une
=> %7B%7Burl://blog_menu_search?page=1&tag=murph-tuto%7D%7D série de tutoriaux pour présenter les fonctionnalités de Murph
.
Contrairement à pas mal de CMS, une page permet de rassembler des contenus qui pourront être réutilisés plusieurs fois dans une arborescence, là où certains CMS lient définitivement une page à un élément du menu.
Par ailleurs, une page ne contient que des données qui pourront être présentées comme on le veut. Autrement dit, la manière de rendre une page est indépendante de la façon de rédiger les contenus.
On va créer une nouvelle page `ExamplePage` avec ces contenus :
* un titre `title` qui sera un champ texte
* un bloc de contenu `content` avec l'éditeur TinyMCE
```html
<script id="asciicast-WilAMpb7iX9kM07Ida6xxceNf" src="https://asciinema.org/a/WilAMpb7iX9kM07Ida6xxceNf.js" async></script>
```
On va ensuite enregistrer la page dans Murph et lui donner le nom `Page d'exemple`.
```{.language-yaml data-title="config/packages/app.yaml"}
core:
site:
# ...
pages:
App\Entity\Page\ExamplePage:
name: "Page d'exemple"
templates:
- {name: "Default", file: "page/example/default.html.twig"}
```
Quand une page est créée, un template par défaut l'est aussi. Une page peut avoir autant de templates qu'on souhaite.
Éditons le template par défaut pour afficher simplement nos contenus :
```{.language-twig data-title="templates/page/example/default.html.twig"}
{% extends 'base.html.twig' %}
{% block page %}
<h1>{{ _page.title.value }}</h1>
{{ _page.content.value|raw }}
{% endblock %}
```
On peut à présent créer un nouvel élément dans le menu, lui attribuer une nouvelle page et commencer à saisir le contenu.
```html
<iframe title="Murph - Générer une page dans Murph" src="https://peertube.fr/videos/embed/36f155ac-deb0-49a0-92e7-24d4fc052e44" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" style="aspect-ratio: 16 / 9; width: 100%; height: auto" frameborder="0"></iframe>
```
=> https://doc.murph-project.org/ La documentation complète est disponible sur doc.murph-project.org
.