Sto cercando un buon approccio con aggiungi / aggiorna già preparato (di default) il modulo Magento User (modulo-utente). Il modulo è raggiungibile nel pannello di amministrazione da questo percorso:
Sistema> Tutti gli utenti> [chosen_user]> scheda di modifica principale dell'utente (Informazioni sull'account)
Ora sto provando con l'utilizzo di di.xml nel mio modulo personalizzato in cui specifico le dipendenze: `
<preference for="Magento\User\Block\User\Edit\Tab\Main" type="Vendor_Name\Module_Name\Block\User\Edit\Tab\Main" />
<preference for="Magento\User\Block\Role\Grid\User" type="Vendor_Name\Module_Name\Block\Role\Grid\User" />
`
Questo è il contenuto che ho già creato per una classe Main.php
// @codingStandardsIgnoreFile
namespace Nome fornitore \ Nome modulo \ Blocco \ Utente \ Modifica \ Scheda;
usa \ Magento \ Utente \ Blocca \ Utente \ Modifica \ Scheda \ Principale come UserEditMainTab;
usa \ Magento \ Backend \ Block \ Template \ Context;
usa \ Magento \ Framework \ Registry;
usa \ Magento \ Framework \ Data \ FormFactory;
usa \ Magento \ Backend \ Model \ Auth \ Session;
usa \ Magento \ Framework \ Locale \ ListsInterface;
class Main estende UserEditMainTab
{
funzione pubblica __construct (
Context $ context,
Registro $ registro,
FormFactory $ formFactory,
Sessione $ authSession,
ListsInterface $ localeLists,
array $ data = []
) {
genitore :: __ costrutto ($ context, $ register, $ formFactory, $ authSession, $ localeLists, $ data);
}
funzione protetta _prepareForm ()
{
/ ** @var $ model \ Magento \ User \ Model \ User * /
$ model = $ this -> _ coreRegistry-> register ('autorizzazioni_utente');
/ ** @var \ Magento \ Framework \ Data \ Form $ form * /
$ form = $ this -> _ formFactory-> create ();
$ Form-> setHtmlIdPrefix ( 'user_');
$ baseFieldset = $ form-> addFieldset ('base_fieldset', ['legend' => __ ('Informazioni account __ TEST')]);
if ($ model-> getUserId ()) {
$ baseFieldset-> addField ('user_id', 'hidden', ['name' => 'user_id']);
} altro {
if (! $ model-> hasData ('is_active')) {
$ Modello-> setIsActive (1);
}
}
$ BaseFieldset-> addField (
'User_image',
'Immagine',
[
'name' => 'user_image',
'label' => __ ('Immagine utente'),
'id' => 'user_image',
'title' => __ ('Immagine utente'),
'richiesto' => falso,
'note' => 'Consenti tipo di immagine: jpg, jpeg, png'
]
);
$ BaseFieldset-> addField (
'nome utente',
'testo',
[
'name' => 'username',
'label' => __ ('Nome utente'),
'id' => 'nome utente',
'title' => __ ('Nome utente'),
'richiesto' => vero
]
);
$ BaseFieldset-> addField (
'nome di battesimo',
'testo',
[
'name' => 'firstname',
'label' => __ ('Nome'),
'id' => 'firstname',
'title' => __ ('Nome'),
'richiesto' => vero
]
);
$ BaseFieldset-> addField (
'cognome',
'testo',
[
'name' => 'lastname',
'label' => __ ('Cognome'),
'id' => 'lastname',
'title' => __ ('Cognome'),
'richiesto' => vero
]
);
$ BaseFieldset-> addField (
'e-mail',
'testo',
[
'name' => 'email',
'label' => __ ('Email'),
'id' => 'customer_email',
'title' => __ ('Email utente'),
'class' => 'email di validazione della voce obbligatoria',
'richiesto' => vero
]
);
$ isNewObject = $ model-> isObjectNew ();
if ($ isNewObject) {
$ passwordLabel = __ ('Password');
} altro {
$ passwordLabel = __ ('Nuova password');
}
$ confirmLabel = __ ('Conferma password');
$ this -> _ addPasswordFields ($ baseFieldset, $ passwordLabel, $ confirmLabel, $ isNewObject);
$ BaseFieldset-> addField (
'Interface_locale',
'Selezionare',
[
'name' => 'interface_locale',
'label' => __ ('Localizzazione interfaccia'),
'title' => __ ('Localizzazione interfaccia'),
'valori' => $ questo -> _ LocaleLists-> getTranslatedOptionLocales (),
'class' => 'select'
]
);
if ($ this -> _ authSession-> getUser () -> getId ()! = $ model-> getUserId ()) {
$ BaseFieldset-> addField (
'è attivo',
'Selezionare',
[
'name' => 'is_active',
'label' => __ ('Questo account è'),
'id' => 'is_active',
'title' => __ ('Stato account'),
'class' => 'input-select',
'options' => ['1' => __ ('Active'), '0' => __ ('Inattivo')]
]
);
}
$ baseFieldset-> addField ('user_roles', 'hidden', ['name' => 'user_roles', 'id' => '_user_roles']);
$ currentUserVerificationFieldset = $ form-> addFieldset (
'Current_user_verification_fieldset',
['legenda' => __ ('Verifica dell'identità dell'utente corrente')]
);
$ CurrentUserVerificationFieldset-> addField (
self :: CURRENT_USER_PASSWORD_FIELD,
'parola d'ordine',
[
'name' => self :: CURRENT_USER_PASSWORD_FIELD,
'label' => __ ('Your Password'),
'id' => self :: CURRENT_USER_PASSWORD_FIELD,
'title' => __ ('Your Password'),
'class' => 'input-text validate-current-password required-entry',
'richiesto' => vero
]
);
$ data = $ model-> getData ();
unset ($ data [ 'password']);
unset ($ data [self :: CURRENT_USER_PASSWORD_FIELD]);
$ Form-> setValues ($ data);
$ This-> setForm ($ form);
return parent :: _ preparForm ();
}
}
e del codice per User.php
namespace Vendor_Name \ Module_Name \ Block \ Role \ Grid;
usa \ Magento \ Utente \ Blocca \ Ruolo \ Griglia \ Utente come RoleGridUser;
usa \ Magento \ Backend \ Block \ Widget \ Grid \ Extended come ExtendedGrid;
class L'utente estende RoleGridUser
{
funzione protetta _prepareColumns ()
{
parent :: _ prepareCollection ();
$ This-> addColumn (
'User_image',
[
'header' => __ ('Immagine utente'),
'larghezza' => 5,
'align' => 'left',
'ordinabile' => vero,
'index' => 'user_image'
]
);
return ExtendedGrid :: _ preparazioneCollection ();
}
}
Se ti dai un'occhiata più da vicino, ora che sto cercando di aggiungere un campo con l'immagine dell'utente.
Sfortunatamente, non vedo cambiamenti nel fronte dell'amministratore. Naturalmente, la colonna necessaria è stata aggiunta dallo script InstallSchema in precedenza alla tabella ' admin_user '.
Contenuti delle directory in un formato ad albero:
nome_modulo ├── Blocco │ ├── Catalogo │ │ └── Prodotto │ │ └── RelatedPosts.php │ ├── Ruolo │ │ └── Griglia │ │ └── User.php │ └── Utente │ └── Modifica │ └── Tab │ └── Main.php ├── composer.json ├── ecc │ ├── di.xml │ └── module.xml ├── Installazione └── InstallSchema.php
Che cosa ho fatto di sbagliato?