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.

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;
}