2017-08-04 1 views
1

Je viens de m'impliquer dans un projet qui utilise joomla pour gérer sa page d'accueil et a commencé à apprendre les bases de joomla. Jusqu'à présent, je vois que joomla est assez sympa si vous avez des pages avec du contenu statique et que vous pouvez les gérer facilement. Mais ce que je veux maintenant, c'est ajouter du contenu dynamique à ces pages (récupérées à partir d'une base de données ou d'un autre backend). Si je comprends bien le principe, on le ferait avec des modules ou même des composants (je ne sais pas comment les plugins pourraient aider pour de telles choses). Mais dois-je créer un module pour chaque vue avec un contenu dynamique? Ce que je voudrais avoir est quelque chose comme un service où je peux implémenter la logique de récupération de données et puis il devrait être possible de créer les vues avec un éditeur WYSIWYG où je peux insérer avec php les valeurs récupérées. Je sais déjà que l'on peut utiliser php dans l'éditeur WYSIWYG via l'extension Sourcerer.joomla: plusieurs vues avec un contenu dynamique

En fin de compte, je voudrais avoir quelque chose comme ça dans l'éditeur WYSIWYG:

{source} 
<?php 
$data = service.fetchData(...); // fetches view specific data from a central service which gets the data from a backend or a database 
?> 
{/source} 

...html code (in WYSIWYG style) 
<p>Hello {source}<?= $data['name']?> {/source} </p> <------ accessing the php data in the html 
... further html code 

comment pourrais-je obtenir quelque chose comme cela pour que son aussi facile pour quelqu'un qui n'est pas un développeur php pour créer vues avec un contenu dynamique et sans créer un nouveau module pour chaque vue différente avec un contenu dynamique? Ou est-ce que je ne comprends tout simplement pas les principes de joomla et cela peut être fait de manière complètement différente (plus facile?)?

Répondre

1

Vous pouvez en effet utiliser des modules ou des plugins pour insérer du contenu dynamique. Mais vous avez seulement besoin d'écrire un module ou un plugin, car les deux peuvent utiliser des paramètres.

D'après votre description je suppose que la meilleure façon d'obtenir le résultat pour vous serait de

a) créer un plugin de contenu qui remplace un code personnalisé dans votre texte d'articles; il devrait être quelque chose de facile pour vous à analyser, comme

[myservice:{year:2017, country:'uk'}]

si votre plugin peut tester le code facilement, puis récupérer les paramètres nécessaires.

b) créer un plug-in éditeurs-xtd pour l'éditeur pour permettre aux utilisateurs d'insérer le code facilement. Cela permettra aux utilisateurs d'insérer facilement les données et éventuellement d'éviter la plupart des erreurs.

Cette approche présente l'avantage d'un codage minimal (un plugin peut être aussi simple qu'un seul fichier, alors qu'avec des modules, vous devrez écrire plus de fichiers). Autre que cela, un module fonctionnerait tout aussi bien en utilisant le shortcode [loadposition]. Cependant, vous aurez toujours besoin d'un plugin editors-xtd pour aider les utilisateurs à écrire le shortcode et à passer les paramètres.