Je suis cet exemple ici plugin de profil
créer mon propre plugin de profil. Ce que je ne peux pas comprendre, c'est comment créer un administrateur de champ uniquement?
Dans le profil/client d'origine, il existe des champs tels que la langue ou l'éditeur par défaut. Ils peuvent être désactivés via les "Paramètres utilisateur frontend".
Comment créer un tel champ? Visible uniquement par ADMIN, pas par l'utilisateur.
Il y a des paramètres comme name = "register-require_myfield", est-ce qu'ils peuvent désactiver un champ pour l'enregistrement, ou un profil?
Je ne trouve rien en ligne sur ce problème. Qu'est-ce qui me manque?
Merci
EDIT: Ceci est Joomla 3.2+
Je ne suis pas tout à fait sûr que cela fonctionnera car je n'ai pas de plugin utilisateur à installer, mais essayez d'ajouter cette fonction à votre plugin. L'intention est de vérifier si l'utilisateur appartient au groupe d'utilisateurs de votre choix et, dans le cas contraire, quitter et ne pas préparer le formulaire.
public function onContentPrepareForm($form, $data)
{
$groups = $data->groups->getProperties();
if(!in_array("8",$groups)){ // see table #__usergroups for a complete list to check
return;
}
}
Après mûre réflexion (et peut-être que je l'essayerai plus tard), vous devrez peut-être ajuster le contenu de $form
en utilisant les méthodes de jForm . Encore une fois, je ne sais pas si cela fonctionnera, mais cela semble être un bon point de départ. Je serais intéressé de savoir si vous résolvez de le mettre dans mon propre petit sac à malice.
Vous pouvez éditer le plugin de profil. Éditez onContentPrepareForm () changez la casse de profil en quelque chose comme ceci:
// Case profile in site
elseif ($name == 'com_users.profile')
{
// Toggle whether the field is required.
if ($this->params->get('profile-require_' . $field, 1) > 0)
{
$form->setFieldAttribute($field, 'required', ($this->params->get('profile-require_' . $field) == 2) ? 'required' : '', 'profile');
// Remove credits field from the front-end user profile edit page
if($field == 'usercredits') {
$form->removeField('usercredits', 'profile');
}
}
else
{
// Case profile in site
elseif ($name == 'com_users.profile')
{
// Toggle whether the field is required.
if ($this->params->get('profile-require_' . $field, 1) > 0)
{
$form->setFieldAttribute($field, 'required', ($this->params->get('profile-require_' . $field) == 2) ? 'required' : '', 'profile');
// Remove credits field from the front-end user profile edit page
if($field == 'usercredits') {
$form->removeField('usercredits', 'profile');
}
}
else
{
$form->removeField($field, 'profile');
// Remove credits field from the front-end user profile edit page
if($field == 'usercredits') {
$form->removeField('usercredits', 'profile');
}
}