Le but de cet article est de créer des codes utilisateurs numériques auto-incrémentés sous Joomla! version 3.6.
Attention: si user id est inférieur à 10, Joomla! risque de bloquer car il attend au moins 2 caractères dans le code utilisateur.
Remarque: Joomla! crée des ID autoincrémentés à chaque nouvel utilisateur (Autocrément de la zone id dans la table #__users).
override de default.php
En cherchant un peu sur le web, on peut trouver des discussions sur "comment faire disparaître des zones d'un formulaire".
Donc, on copie le fichier components\com_users\views\registration\tmpl\default.php dans le répertoire templates/<votre template>/html/com_users/registration.
Ensuite, on ajoute dans le fichier default.php les lignes suivantes, juste après la ligne JHtml::_('behavior.formvalidator');
// récupération du dernier numero connu
$doc = JFactory::getDocument();
$db = JFactory::getDbo();
$db->setQuery('SELECT max(id) from #__users');
$id = $db->loadResult();
$js = "
jQuery(document).ready(function($){
// Define the variables
var regForm = $('#member-registration');
var name = regForm.find('#jform_username');
name.parents('.control-group').hide();
// Add a default value to the name field
name.val('".($id+1)."');
});
";
$doc->addScriptDeclaration($js);
Avec cette méthode, la zone de saisie du code utilisateur disparaît, elle est remplie automatiquement avec le dernier Id connu de la table #_user, auquel on ajoute 1, naturellement.