Auteur/autrice : Marc Cizeron
HTML Helper pour WordPress
Je n’aime pas le html. Je sais pour un dev web, c’est plutôt gênant. Quoiqu’il en soit j’ai créé une classe HTMLHelper pour WordPress. Bon il y a des pour et des contres quand à l’utilisation d’une classe PHP supplémentaire pour générer du templating. Cette réponse sur StackExchange est intéressante: http://codereview.stackexchange.com/a/65281.
J’en ai profité pour me familiariser avec les Closures et fonctions anonymes en PHP. Voici un exemple de ce qu’il est possible de faire:
// Déclaration des en-tête d'un tableau HTML $data['head'] = array( 'Capture', 'Nom', 'Catégories', 'Mots Clefs', 'Projet', 'Actions' ); // On prépare les donné a présenter dans le tableau foreach ( $videos as $index => $video ) { $data['data'][] = array( HTMLHelper::img( $image_url, array( 'height' => 256, 'width' => 128 ) ), $title, 'Catégories', 'Mots Clefs', HTMLHelper::p( array(), function () { echo 'Projet'; } ), 'Voir, editer, Supprimer' ); } // Et Hop! On génère notre tableau HTML ! HTMLHelper::table( $data, array(), true );
Ce projet en est à son commencement (aucun commentaire!), mais je compte bien l’améliorer au file de l’eau. Pour le moment il est disponible sur GitHub: https://github.com/natrio/wp-html-helper. Faites en bon usage 🙂
A noter que ce dépôt est plutôt bon à mon goût: https://github.com/naomik/htmlgen.
Notions avancées pour CTO débutant
https://www.youtube.com/watch?v=PcsdTo6ySI4
Complexité & développement d’un produit en 2015
https://www.youtube.com/watch?v=VL3DXvbVotE
Deux documents racine pour un vhost Apache en fonction de l’IP distante
Petite astuce de configuration apache quand on fait une maintenance sur un site. Bien sur on peut gérer l’affichage d’une page maintenance via le site. Mais cela ajoute des règles de re-directions qui peuvent interférer avec le site dont on assure la maintenance. L’opération de maintenance que j’ai dû faire aujourd’hui implique la gestion de re-direction. Donc, j’ai assuré l’affichage de la page de maintenance par le serveur Apache et non par le site web en question.
Voici la configuration utilisée:
<VirtualHost *:80> ServerAdmin webmaster@example.com ServerAlias *.example.com DocumentRoot /var/www/monsite-maintenance RewriteEngine On RewriteCond %{REMOTE_ADDR} xxx.xxx.xxx.xxx // L'ip de mon post de dev RewriteRule ^(.*)$ /var/www/monsite-maintenance/$1 Options -Indexes +FollowSymLinks +MultiViews AllowOverride all Order allow,deny allow from all Options -Indexes +FollowSymLinks +MultiViews AllowOverride all Order allow,deny allow from all
source: http://serverfault.com/questions/336586/apache-client-ip-based-documentroot
Et l’astuce du soir, pour tester sa configuration apache avant un reload ou un restart:
apachectl configtest
Ajouter des champs personnalisé à l’inscription Worpress dans un context buddypress
Je souhaite ajouter un champ de confirmation email lors du processus d’inscription d’un utilisateur.
Il existe de nombreux plugins pour customiser les champs a l’inscription en front-end WordPress. Mais pour un ou deux champs avec une logique de validation simple, je préfère utiliser un peu de code à mettre dans un plugin ou dans le functions.php. Plutôt que de prendre un plugin qui risque d’alourdir pour pas grand chose mon WordPress.
A ce sujet la doc WordPress est très bien faite: https://codex.wordpress.org/Customizing_the_Registration_Form
Mais… Avec BuddyPress cela ce passe différemment. En effet BuddyPress surcharge complètement le mécanisme d’inscription natif de WordPress. Voici comment faire:
Tout d’abord, créer un child theme, puis surcharger le fichier:
buddypress/members/register.php
Les champs de base de WordPress sont gérés autour des lignes 70 de ce Template.
email errors. * * @since BuddyPress (1.1.0) */ do_action( 'bp_signup_email_errors' ); ?> /> /** * Fires and displays any member registration email confirmations errors. * */
Ensuite il reste ces quelques fonctions pour gérer les erreurs et l’affichage du mail de confirmation:
add_action( 'bp_signup_validate', function() { $bp = buddypress(); if ( strcmp( $_POST['signup_email_confirm'], $_POST['signup_email'] ) !== 0 ) { $bp->signup->errors['signup_email_confirm'] = __( 'Les deux email ne correspondent pas.', 'lang-bp-confirm-email' ); } }); function bp_signup_email_confirm_value() { echo bp_get_signup_email_confirm_value(); } function bp_get_signup_email_confirm_value() { $value = ''; if ( isset( $_POST['signup_email_confirm'] ) ) { $value = $_POST['signup_email_confirm']; } return $value; }