
SOLUTION - Comment afficher image png avec fond transparent en utilisant Imagick en PHP
- Écrit par : M. Alexandre ELISÉ
- Affichages : 4063
Salut super joomlers!
Après avoir bien galéré en cherchant partout sur internet, le site officiel, la documentation php, les forums, j'ai enfin trouvé une solution grâce une suggestion d'une amie: Et si c'était pas tout simplement le fond de l'image ?
Effectivement, en inspectant le code de la librairie Imagick avec mon IDE de prédilection PhpStorm j'ai enfin decouvert la bonne méthode qu'il fallait appeler après l'appel au construteur d'Imagick. Voici le bout de code d'exemple:
$image = new Imagick('example.png');
$image->setImageAlphaChannel(Imagick::ALPHACHANNEL_ACTIVATE);
A vous de jouer! Happy coding!

ASTUCE - Les champs personnalisés pour les non-developpeur.euse
- Écrit par : M. Alexandre ELISÉ
- Affichages : 4461
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
?>

SOLUTION - Des champs personnalisés en plein coeur
- Écrit par : M. Alexandre ELISÉ
- Affichages : 4241
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.

ASTUCE - Maitrisez la force des champs personnalisés relatifs
- Écrit par : M. Alexandre ELISÉ
- Affichages : 1256
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.

ASTUCE - Comment envoyer un courriel au format texte et html avec l'api JMail de Joomla! 3
- Écrit par : M. Alexandre ELISÉ
- Affichages : 7604
Salut super joomlers!
Par défaut, on ne peut envoyer un courriel (email) soit en version texte, soit en version Html avec l'api JMail de Joomla! 3. Mais grâce à cette astuce, vous pourrez désormais envoyer vos courriels en version texte et html en même temps.
Pratique pour avoir un meilleur score et éviter un peu plus de se retrouver dans les pourriels (spams). Voici le code:
Je suis tombé sur ce problème et voici ce qui a fonctionné pour moi:
$mailer = JFactory::getMailer();
$mailer->setSender($sender);
$mailer->addRecipient($recipient);
$mailer->isHtml($is_html);
$mailer->CharSet = 'UTF-8';
$mailer->Encoding = 'base64';
$mailer->setSubject($subject);
$mailer->setBody($body);
$mailer->AltBody = $alt_body;
$send = $mailer->Send();
Le point essentiel est le suivant:
$mailer->AltBody = 'Votre version texte du courriel ici';
Ce message texte sera envoyé en plus du courriel en html pour les utilisateurs qui choisissent de ne pas afficher la version html des courriels.
Testé sur Joomla 3.7.5
J'espère que ça a pu aider quelqu'un. Codez bien!

SUGGESTION - Installer plusieurs extensions Joomla! différentes en une seule fois
- Écrit par : M. Alexandre ELISÉ
- Affichages : 1102
Salut Super Joomlers!
Juste une tite question: Pour vous, serait-ce utile d'avoir la possibilité de pour installer plusieurs extensions de développeurs différents en une seule fois par simple glisser- déposé?
Pour l'instant Joomla ne permet que d'installer une seule extension par glisser-deposer.
Je sais qu'il y a les packages mais c'est pour le et la même développeur-euse. J'attends vos retours et suggestions.

ASTUCE - Fichiers langues utilisables dans vos champs personnalisés
- Écrit par : M. Alexandre ELISÉ
- Affichages : 3566
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.

NOTES - Notes de conférences "clean code"
- Écrit par : M. Alexandre ELISÉ
- Affichages : 4678
Après avoir regardé des conférences sur Youtube concernant le code propre, je partage avec vous ce que j'ai retenu.
Conseils généraux sur le code propre:
- ne pas abréger
- retourner tôt
- ne pas utiliser return
- Gardez les classes et les méthodes petites
- fonctionnalité séparée dans les méthodes
- faire des contrôles défensifs (quitter tôt)
- un niveau d'indentation
Les meilleures pratiques pour résumer, le code propre devrait être:
- maintenable (compréhensible)
- flexible (ouvert aux changements futurs)
- testé
- facile à refactoriser
- utiliser setters et getters dans le bon contexte, par exemple: downloadPage() est différent de getPage()

SOLUTION - Comment forcer le chargement de la langue globale dans vos extensions Joomla! personnalisées
- Écrit par : M. Alexandre ELISÉ
- Affichages : 3841
Salut super joomlers!
Désolé d'avoir été silencieux pendant un si long moment. Me revoilà avec une nouvelle astuce Joomla! croustillante: Comment charger les fichier de langues globlaux de votre site Joomla! dans n'importe laquelle de vos extensions personnalisées. Vous êtes développeur(euse) d'extensions Joomla!? Comme moi, vous êtes sûrement déjà tombé sur ce problème.
Comment charger le fichier fr-FR.ini ou en-GB.ini situés dans:
JPATH_ADMINISTRATOR/language/en-GB/en-GB.ini
JPATH_ADMINISTRATOR/language/fr-FR/fr-FR.ini
ou
JPATH_SITE/language/en-GB/en-GB.ini
JPATH_SITE/language/fr-FR/fr-FR.ini
Dans vos propres extensions et forcer l'utilisation de ces fichiers afin, par exemple, D'afficher correctement les boutons traduits dans une toolbar en frontend (la même que dans l'admin). Pour ceux et celles que ça intéresse, voici le code pour forcer le chargement la langue globale venant de l'admin:
// Force loading of backend global language file
$language = Factory::getLanguage();
$language->load('joomla', JPATH_ADMINISTRATOR);

ASTUCE - Injection de dépendance existe depuis Joomla! 3.0.0
- Écrit par : M. Alexandre ELISÉ
- Affichages : 1355
Salut super joomlers!
Saviez-vous que l'injection de dépendance existait déjà depuis Joomla! 3.0.0 ?
Vous ne savez pas ce que c'est ?
En gros, l'injection de dépendance permet au développeur de ne pas créer des classes "en dur" un peu partout dans l'application,
mais plutôt "injecter" sa propre instance de la classe dont dépend le code utilisé.
C'est surtout intéressant dans le contexte des test unitaires ou la développeuse préfère injecter ses propres classes appélées "Tests Doubles" ou "Doublure de tests"
Voici un exemple dans le coeur de Joomla!
Dans le fichier situé JPATH_ROOT/libraries/src/Application/BaseApplication.php cet exemple suppose que vous avez Joomla! 3.9.23 dernière version stable à la date de cet article.
- ANNONCE - Helloapi exemple composant Joomla! 4 webservices
- ASTUCE - Accéder directement à la configuration d'un plugin dans Joomla! grâce à un lien
- ASTUCE - Comment cloner une seule branche avec git 2.21.0
- ASTUCE - Comment envoyer un courriel au format texte et html avec l'api JMail de Joomla! 3
- ASTUCE - Comment installer l’extension de cryptographie libsodium pour php7.0.27