Plus d’un millions d’images (photos, illustrations…) gratuites et libres de droits à utiliser dans vos applications ou autres sur pixabay.com.
Plus d’un millions d’images (photos, illustrations…) gratuites et libres de droits à utiliser dans vos applications ou autres sur pixabay.com.
La fonction WP_Query de wordpress qui permet de récupérer des posts en fonction d’une liste de critères contient une incohérence au niveau de l’argument « post__in ».
Cet argument permet de passer un tableau de posts (liste d’identifiants) afin de limiter la requête à ces posts. Pourtant si on lui passe un tableau vide, la recherche se fera sur tous les posts et on aura donc des résultats, alors qu’on s’attend à ne rien avoir.
Cela peut être gênant si notre tableau d’identifiants et généré dynamiquement et que l’on ne sait pas à l’avance si il va être vide.
Il faut donc penser à cette subtilité lors du développement afin de retrouver un comportement cohérent.
Une des solution est de toujours donner un identifiant inexistant (0) au tableau.
Après plusieurs mois (années) de développement en version alpha, le framework CSS Bootstrap qui c’est imposé comme référence pour le développement responsive sort en version 4 (beta). La page d’accueil de l’outil ne dirige plus vers la version précédente et toute la documentation pour la nouvelle version est disponible. Il est temps de s’y mettre.
Exemple de code wordpress permettant de transformer une url avec un paramètre du type « ?param=slug-param » en une url réécrite plus « propre »
Grace à ce code on va transformer
« https://numa-bord.com/custom-slug/slug-post/?param=slug-autre-post »
en
« https://numa-bord.com/custom-slug/slug-post/slug-autre-post »
Dans le template, on peux récupérer notre paramètre de la façon suivante :
C’est une technique qui permet de faire pas mal de chose, l’exemple ci dessus pourrait permettre de comparer deux « post ».
Plus concrètement sur un site ayant des véhicules en « custom post type », permettre de comparer les caractéristiques de deux d’entre eux avec une url de ce type :
https://numa-bord.com/comparateur/vehicule1/vehicule2
Exemple d’une fonction permettant de gérer l’upload d’une image en provenance d’un formulaire. Permet de la renommer et de la placer dans le répertoire voulus en fonctions des paramètres passés. Attention ici on contrôle uniquement le fait que ce soit une image, si on à des contraintes sur la taille du fichier ou les extensions autorisées il faudra rajouter des vérifications.
Comme pour le snippet précédent on imagine cette fonction dans une class « Misc » qui pourrait contenir d’autre fonctions utilitaires variées.
Utilisation (après l’envoi d’un formulaire ayant un input de type « file » ayant pour attribut « name » la valeur « logo ») :
Ci-dessous un script PHP permettant d’importer dans une base les données d’un fichier « export.sql ». Cela permet de créer les tables et d’insérer les données dans la base directement en PHP sans passer par l’import du fichier via le PhpMyAdmin
Ça peut être utile par exemple dans un « installeur » de site, dans la même idée de l’article précédent qui permettait de Créer une fichier de configuration en PHP
Exemple de code permettant de créer et d’écrire dans un fichier en PHP. Un des cas courant de ce besoins est la création de fichiers de configuration. Le code suivant permet de créer le fichier « config.db.php » qui comme son nom l’indiquer contiendra les constantes PHP permettant la connexion à la base de données.
Imaginons qu’il s’agit d’une partie d’un installeur de site. On demande de remplir les informations de connexion à l’utilisateur dans un formulaire classique. Une fois soumis on contrôle les champs, on vérifie que la connexion fonctionne et dans ce cas, on créer le fichier de configuration.
Dans le code est utilisé le tableau $fields sensé contenir les informations envoyé par le formulaire (et préalablement contrôlé)
Exemple d’une fonction permettant de générer une chaine aléatoire, avec le nombre de caractères et les caractères utilisés paramétrable.
On imagine cette fonction dans une class « Misc » qui pourrait contenir d’autre fonctions utilitaires variées.
Utilisation :
PHP fournit les classe DateTime, DateTimeImmutable et DateInterval qui permettent de travailler et faire des calculs facilement sur les dates
On peux par exemple facilement trouver la date qu’il sera dans X jours de la façon suivante :
On peux aussi connaitre la différence (nombre de jours, mois) entre 2 dates
Beaucoup de chose sont possible, ci-dessous on récupère le dernier jour du mois en cours, et le nombre de jours qui nous sépare de cette date
Pour plus d’informations il suffit de se reporter à la documentation PHP
Voici ci-dessous le code très simple d’un plugin wordpress.
Celui-ci permet d’utiliser un nouveau shortcode dans le système wordpress.
Dans le cas présent il va simplement afficher la liste des xx derniers utilisateurs inscrit sur le site.
Pour l’exemple le plugin s’appelle « Mon shortcode ». Il suffit de créer le fichier php « mon-shortcode.php » avec le code ci dessous.
La pratique veut que l’on place ce fichier dans un dossier du même nom « mon-shortcode », dossier à placer bien entendu dans le dossier des plugins de wordpress.
La dernière fonction présenté permet d’ajouter une fichier de mise en page et de traitement javascript. Il faut bien sur les ajouter dans ce même dossier pour qu’il soient correctement appelés.
Avec quelques améliorations, on peux obtenir un shortcode permettant d’afficher les derniers inscrits en popup comme sur cette page de démonstration
Depuis le controller, c’est un appel du formulaire classique, on ajoute juste les éventuelles options si besoins
Dans « ExampleFormType » définition de l’option « custom » et utilisation des « Form Events » pour adapter les champs
Savoir si un champs est définis dans twig
Exemple de relation entre entités Doctrine dans Symfony
Relation « unique » (ManyToOne) entre « Child » et « School »
Relation « multiple » (ManyToMany) entre « Child » et « Member »