Utiliser les champs personnalisés par leurs noms simplement

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

Afficher contenu masqué après installation de Joomla4.0-dev

Salut super joomlers!

Vous aussi qui aimez être à la pointe de la technologie, vous avez dû essayé d'installer Joomla! 4.x-dev sur votre ordinateur. Mais vous avez peut-être eu le même souci que moi. Que ce soit dans l'admin ou sur la partie site les modules ne s'affichent pas. Pourtant il n'y a pas d'erreur. Une requête SQL à la rescousse! La voici:


UPDATE `#__modules` SET `publish_down` = '0000-00-00 00:00:00' WHERE 1=1;
UPDATE `#__content` SET `publish_down` = '0000-00-00 00:00:00' WHERE 1=1;

A priori, la seconde requête n'est pas nécessaire mais juste au cas où les articles ne s'afficheraient pas vous pouvez executer la seconde requête. Pour ce faire, vous pouvez utiliser des outils comme phpMyAdmin, adminer, Sequel Pro, HeidiSql ou encore MySQL Workbench.
A bientôt les Joomlers de l'extrême!

Comment cloner une seule branche avec git 2.21.0

Comment cloner une seule branche avec git 2.21.0 ?
Par exemple pour cloner la branche 4.0-dev du dépôt joomla-cms dans le dossier joomla4x

git clone https://github.com/joomla/joomla-cms/ --branch '4.0-dev' --depth 1 joomla4x

J'ai essayé d'autres techniques sur le web sans succès. Apparemment l'ordre des paramètres et les guillemets simples sont importants pour que cela fonctionne. Courage! Ensemble nous y arriverons

Accéder directement à la configuration d'un plugin dans Joomla! grâce à un lien

Salut super joomlers!

Supposons que votre plugin soit un plugin système appelé coucou. (plg_system_coucou)

La structure de base du lien pour accéder directement au plugin dans votre admin est donc: 


https://www.example.com/administrator/index.php?option=com_plugins&filter.folder=system&filter.element=coucou


Remplacez par vos propres valeurs bien entendu.

A bientôt pour de nouvelles astuces!

Notes de conférences "clean code"

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()
Comment installer l’extension de cryptographie libsodium pour php7.0.27

Après avoir essayé d’installer cette extension avec pecl sans succès.
Avec le message suivant “Warning cannot install module.These settings must match”.
En gros avec pecl l’extension n’était pas compilée avec la bonne version de php.

La marche à suivre que je vous présente fonctionne bien et a été testée pour
Ubuntu Server 16.04 LTS et php7.0.27.



Veuillez sauvegarder toutes vos données avant de continuer. Je ne serai en aucun cas tenu responsable en cas de perte de données, d’erreur ou tout autre dommages.


Si vous lisez toujours, poursuivons:


1.Tapez la commande suivante dans votre terminal

sudo apt-get install php7.0-dev libsodium libsodium-dev


2. Créez un répertoire temporaire dans votre répertoire d’accueil en tapant la commande suivante dans votre terminal:

mkdir -p ~/monrepertoiretemp


3. Allez dans ce répertoire temporaire et télécharger l’extension libsodium-php dans ce répertoire avec les commandes suivantes dans votre terminal.


cd ~/monrepertoiretemp
wget https://github.com/jedisct1/libsodium-php/archive/2.0.10.zip


4. Décompressez l’archive de l’extension libsodium-php et aller dans le répertoire ainsi décompressé en tapant les commandes suivantes dans votre terminal:


unzip 2.0.10.zip
cd libsodium-php-2.0.10


5. Une fois dans le dossier des sources de l’extension libsodium-php, tapez la commande suivante dans votre terminal qui permettra de compiler l’extension libsodium-php avec votre version exacte de php. Dans mon cas, au moment ou j’écris ce tutoriel, j’utilise PHP 7.0.27


phpize && ./configure && make && sudo make install


6. Enfin, l’extension étant compilée vous pouvez la rajouter dans un fichier ini. Par exemple /etc/php/7.0/mods-available/sodium.ini et y mettre le contenu suivant:


extension=sodium.so


7.Activez l’extension avec la commande suivante dans votre terminal:


sudo phpenmod sodium


8. Relancez php et/ou votre serveur web (Pour moi c’est php7.0-fpm) donc


sudo systemctl reload php7.0-fpm


9. Vérifier que cela a fonctionné. En tapant dans votre terminal
php -i | grep -F “sodium”


10. Si tout c’est bien passé, vous devriez voir parmis les lignes la phrase suivante en anglais:
sodium support => enabled


Voilà! C’est tout pour cette fois. A bientôt pour de nouvelles trouvailles et astuces.

Comment envoyer un courriel au format texte et html avec l'api JMail de Joomla! 3

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!

Page 3 sur 3

Recevoir la Newsletter

Super Joomlers! Faites le plein d'astuces Joomla!
Nous détestons le spam tout autant que vous et nous ne vous enverrons aucun email non sollicité. Vous pouvez vous désinscrire / réinscrire à tout moment