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?