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