Introduction
Gérez les pages de votre site web et les écrans de votre application mobile avec du contenu dynamique.
Plus d'informations sur l'interface utilisateur du module https://doc.oneentry.cloud/docs/category/pages
🎯 Que fait ce module ?
Le module Pages vous permet de récupérer et gérer des pages (pour les sites web) ou des écrans (pour les applications mobiles) avec tout leur contenu - titre, contenu HTML/texte brut, visibilité et attributs personnalisés. Vous créez des pages dans le panneau d'administration OneEntry et les récupérez dynamiquement dans votre application, de sorte que les modifications de contenu dans l'administration soient mises en ligne sans redéploiement.
🚀 Démarrage rapide
Initialisez le module à partir de defineOneEntry :
const { Pages } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
Récupérez une seule page par son URL (marqueur) et lisez ses champs :
// Fetch the "about" page in English.
const page = await Pages.getPageByUrl("about", "en_US");
console.log(page.id, page.localizeInfos.title);
console.log("Visible:", page.isVisible);
// Custom fields you defined live in attributeValues.
console.log(page.attributeValues);
La plupart des méthodes de lecture suivent la même structure : un identifiant (url ou id) plus un langCode. Consultez le tableau de référence rapide ci-dessous pour l'ensemble complet.
✨ Concepts clés
Qu'est-ce qu'une page ?
Une page est une entité de contenu qui représente :
- Web : Une page sur votre site web (par exemple,
/about,/contact) - Mobile : Un écran dans votre application (par exemple, Écran de profil, Écran des paramètres)
Chaque page contient :
- Contenu - titre et contenu HTML/texte brut via
localizeInfos - URL -
pageUrl, le marqueur de la page utilisé pour le routage et les recherches - Visibilité - le drapeau
isVisible - Attributs personnalisés - tous les champs supplémentaires que vous définissez dans
attributeValues(les métadonnées SEO sont modélisées comme des attributs personnalisés, pas comme un champ intégré) - Localisation - contenu multilingue
Types de pages
OneEntry prend en charge différents types de pages (type), les plus courants étant :
| Type | valeur type | Utilisation Exemple |
|---|---|---|
| Page commune | common_page | À propos, Contact, Conditions |
| Page de catalogue | catalog_page | Catégories de catalogue |
| Page externe | external_page | Liens vers des URL externes |
| Page d'erreur | error_page | Page 404 / Non trouvé |
La liste complète des types est disponible via le module GeneralTypes.
Hiérarchie des pages
Les pages sont organisées dans un arbre via parentId (les pages de niveau supérieur ont parentId: null) :
📁 Company
├─ About Us
├─ Team
└─ Careers
📁 Products
├─ Product Category 1
│ ├─ Product A
│ └─ Product B
└─ Product Category 2
Vous pouvez récupérer les pages racines avec getRootPages() et descendre avec getChildPagesByParentUrl().
📋 Ce que vous devez savoir
Deux façons d'identifier les pages
| Méthode | Quand l'utiliser | Exemple |
|---|---|---|
| Par URL | L'utilisateur visite une page spécifique | getPageByUrl("about") |
| Par ID | Références internes | getPageById(123) |
Meilleure pratique : le pageUrl est un marqueur stable - ce n'est pas un chemin de route Next.js. Passez le marqueur OneEntry (par exemple, "about"), pas /en/about.
Structure de la page
Chaque page a ces champs clés :
{
"id": 9,
"parentId": 8,
"pageUrl": "blog1",
"depth": 1,
"localizeInfos": {
"title": "Blog 1",
"menuTitle": "Blog 1",
"htmlContent": "",
"plainContent": ""
},
"isVisible": true,
"blocks": [],
"type": "common_page",
"templateIdentifier": null,
"attributeSetIdentifier": null,
"attributeValues": {},
"isSync": false
}
Localisation
Les pages prennent en charge plusieurs langues - demandez un langCode différent pour obtenir la même page dans une autre langue.
Attributs personnalisés
Ajoutez des champs à des pages en utilisant AttributesSets - auteur/date/étiquettes de l'article de blog, images héro de la page d'atterrissage, métadonnées SEO, etc. Lisez-les à partir de page.attributeValues. En savoir plus : Module AttributesSets.
Visibilité
Utilisez le drapeau isVisible pour contrôler quelles pages sont affichées aux utilisateurs - filtrez pour isVisible: true en production.
📊 Tableau de référence rapide - Méthodes courantes
| Méthode | Ce qu'elle fait | Quand l'utiliser |
|---|---|---|
| getPages() | Récupérer toutes les pages | Construire un plan du site, lister toutes les pages |
| getRootPages() | Récupérer toutes les pages de niveau supérieur | Construire la navigation de niveau supérieur |
| getChildPagesByParentUrl() | Récupérer les pages enfants par URL parent | Parcourir l'arbre d'une section |
| getBlocksByPageUrl() | Récupérer des objets PositionBlock pour une page par URL | Rendre les blocs de contenu de la page |
| getConfigPageByUrl() | Récupérer les paramètres pour une page par URL | Lire les paramètres d'affichage par page |
| getPageById() | Récupérer une seule page par ID | Références internes |
| getPageByUrl() | Récupérer une seule page par URL | Rendre une page sur une route |
| searchPage() | Recherche rapide de pages | Rechercher des pages par titre |
❓ Questions fréquentes (FAQ)
Quelle est la différence entre l'URL et l'ID ?
pageUrl- le marqueur de la page utilisé pour le routage (par exemple,"about"). Visible par l'utilisateur et stable à travers les environnements.id- l'identifiant numérique. Utilisé pour les références internes.
Comment construire la navigation à partir des pages ?
Utilisez getRootPages() pour les entrées de niveau supérieur et getChildPagesByParentUrl() pour descendre dans l'arbre, ou utilisez le module Menus dédié pour des structures de navigation gérées.
Comment ajouter des métadonnées SEO à une page ?
Le SEO n'est pas un champ intégré - modélisez le titre/meta description/etc. comme des attributs personnalisés dans un AttributesSet, puis lisez-les à partir de page.attributeValues.
🎓 Meilleures pratiques
- Utilisez
pageUrl(le marqueur) pour le routage - ne jamais coder en dur un chemin de route de framework comme URL. - Filtrez par
isVisible: truepour la production. - Mettez en cache les pages pour réduire les appels API ; gérez les 404 (page non trouvée) de manière élégante.
- Lisez les données personnalisées à partir de
attributeValuesplutôt que de supposer des champs intégrés.
🔗 Documentation connexe
- Module Products - Gérer les produits de commerce électronique
- Module Blocks - Blocs de contenu réutilisables pour les pages
- Module AttributesSets - Champs personnalisés pour les pages
- Module Menus - Gestion des menus de navigation
- Module GeneralTypes - Types de pages