
- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Champ personnalisé
-
Également disponible :
- Affichages : 5110
Salut super joomlers!
Cette fois ci je vais présenter un code tout simple à copier coller que vous pouvez utiliser directement dans vos surchages de template de com_content (articles). Pour ceux et celles qui veulent rajouter des champs personnalisés simplement dans leur templates préférées voici les deux bouts de code à mettre.
Un en haut et l'autre là où vous souhaitez afficher votre champ personnalisé (requiert Joomla! 3.7.x minimum).
ex: Dans le fichier templates/example/html/com_content/article/defaut.php
<?php
defined('_JEXEC') or die();
//code specifique à votre template...
// Début: Bout de code à rajouter tout en haut
JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
$champs_par_nom = \Joomla\Utilities\ArrayHelper::pivot($this->item->jcfields, 'name');
// Fin: Bout de code à rajouter tout en haut
?>
<?php
//...
//code specifique à votre template...
//...
// Début: Bout de code à rajouter
// là où vous voulez afficher
// un champ personnalisé grâce à son nom
echo $champs_par_nom['mon-champ-personnalise']->label
. ':' . $champs_par_nom['mon-champ-personnalise']->value;
// Fin: Bout de code à rajouter
// là où vous voulez afficher
// un champ personnalisé grâce à son nom
?>

- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Champ personnalisé
-
Également disponible :
- Affichages : 4745
Salut super joomlers!
Un ami joomler qui se reconnaitra m'a demandé comment faire pour intégrer $this->item->jcfields dans un module comme mod_articles_latest
J'ai accepté le défi et je partage le resultat avec vous. La communauté de Joomla!. La famille des joomlers.
Découvrez sans plus attendre l'exemple de code à utiliser, bien commenté pour réussir le challenge.

- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Champ personnalisé
-
Également disponible :
- Affichages : 4683
Salut super joomlers!
Je sais, je sais. Vous allez me dire mais qu'est ce que c'est que ce titre barbare et tordu? Ne vous en faite pas. Tout va s'éclaircir au fur et à mesure. Dès Joomla! 3.7, nous avons droit dans les fichiers du coeur de Joomla! aux champs personnalisés grâce au formidable travail de Allon Moritz (@laoneo). Il faut savoir que le composant com_content (articles) ainsi que quelques autres dispose du support natif des champs personnalisés. Mais qu'en est t-il des extensions tierces que nous aussi développeurs et développeuses veulent réaliser? Nous souhaiterions avoir le même support des champs personnalisés, voir plus, avec un peu plus d'efforts.
Ce composant d'exemple com_example mets le contenu de base des champs personnalisés, plus le support de ce que l'on appelle le multi-contexte (Pensez plusieurs types de "elements" qui peuvent avoir eux aussi leurs champs personnalisés et leurs groupes de champs personnalisés. Ex: Un hotêl veut gérer les activités de ces clients durant les 4 saisons de l'année.
"contexte 1" : Printemps
- Groupe de champs personnalisés: "Activités printannières"
- Champ personnalisé: Natation
"contexte 2" : Eté
- Groupe de champs personnalisés: "Activités estivales"
- Champ personnalisé: Volley Ball
etc...
Dans le cadre multi-contexte, chaque saison est listée dans un menu déroulant dans le filtre de champs personnalisés ainsi que dans le filtre groupe de champs personnalisés

- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Champ personnalisé
-
Également disponible :
- Affichages : 4253
Salut super joomlers!
Vous allez me dire qu'il y aura des conflits de noms si on utilise cette méthode et que les noms des champs personnalisés ne sont pas forcéments uniques. Mais si on s'y prend bien et qu'on utilise ce petit bout de code. On s'en sort beaucoup plus simplement qu'en essayant de vouloir retenir par coeur, même en ayant noté sur un document les id des différents champs personnalisés. Voici le bout de code:
$champs_par_nom = \Joomla\Utilities\ArrayHelper::pivot($liste_de_champs, 'name');
La partie $liste_de_champs correspond à la variable qui contient déjà les champs personnalisés de votre élément. Dans les cas communs (com_content.article, com_user.user, etc...)
Voilà, c'est tout pour cette fois

- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Champ personnalisé
-
Également disponible :
- Affichages : 3993
Salut super joomlers!
Comment rendre utiliser ses champs personnalisés dans un contexte multilingue.
Ou encore comment traduire certaines parties de ses champs personnalisés.
On a le droit d’utiliser les chaines de traduction dans les cas suivants (liste non exhaustive)
- Le label du champ personnalisé
- La description
- Le texte des valeurs de la liste, case à cocher ou bouton radio.

- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Champ personnalisé
-
Également disponible :
- Affichages : 1894
Salut! Super Joomlers
Le concept d'inférence dynamique de champs personnalisés:
Tenter de "déduire" le type de champ personnalisé à créer dynamiquement en fonction de l'API mise en cache.
Infé quoi ? Pensez-y comme à des "Choco Fields" ! Chocolate Custom Fields, le sucre synthaxique autour de la création de champs personnalisés enveloppé dans la crème glacée de l'api en cache.
Pensez-vous que c'est un poisson d'avril ? Bien sûr ! Mais cette extension est réelle.
Découvrez "Choco Fields"

- Détails
- Écrit par : Mr Alexandre J-S William ELISÉ
- Catégorie : Champ personnalisé
-
Également disponible :
- Affichages : 1665
Disons que vous voulez ajouter un champ personnalisé de type calendrier pour un événement (affaire, fête, réunion)
et que vous voulez avoir une date et heure par défaut pour l'événement de 3 jours à partir de la date de création de l'événement.
La date de début c'est la date du jour.Pour seulement 3 jours ça à l'air simple de faire le calcul de tête.
Et si vous ne voulez pas vous embêtez avec tout ça et plutôt dire quelque chose comme:
Dis Joomla! Je veux 3 jours de plus à partir d'aujourd'hui s'il te plaît. Peux-tu le faire? Bien-sûr!
- Crééz deux champs personnalisés de type calendrier: date-debut et date-fin
- Définissez une valeur par défaut pour date-debut en tapantnow
- Définissez une valeur par défaut pour date-fin en tapantnow +3 days
C'est tout pour cette fois. Changez les valeurs et expérimentez pour voir ce que ça donne. Cela devrait fonctionner.