pegasus81 ha scritto:Vorrei anche cercare di bloccare la modifica degli stessi nel Pannello di Controllo Utente.
....e se un utente si trasferisce....
bingo ha scritto:io avevo cercato una soluzione che non toccasse il database, ma intervenisse sui campi del profilo personalizzati già previsti da phpbb.
Per utilizzare i campi personalizzati di phpbb secondo me bisognerebbe fare questo:
- creare un nuovo tipo di campo:
Numeri
Singolo campo di testo
Area di testo
Booleana (Sì/No)
Menù a tendina
Data
Località
- gestirne l'input e l'output dei dati, in questo caso dovendo salvare 2 dati in un singolo campo, bisogna utilizzare explode/implode e un separatore (es. IT_CAM::IT_NA per salvare Campania - Napoli). Provare a gestire due campi separati collegati al singolo tipo di campo secondo me è complesso, ma potrei anche sbagliarmi;
- programmare il form, costituito da due select (questa è facile);
tutto ciò potrebbe essere comodo poichè si utilizzano tutte le funzioni native di phpbb per gestire i campi personalizzati, però alla fine dei conti il db viene toccato comunque (v. tabella phpbb_profile_fields_data). Quindi lasciare a phpbb l'onere di creare un campo, oppure crearne 2 direttamente nella tabella user, non cambia parecchio...
inoltre, se si volessero programmare dei filtri o dei form di ricerca, quando si hanno dei campi "multidato", diventa molto più complicato e poco elegante, dato che sarebbe da usare il parametro LIKE nelle query.
Sono dell'idea che le mod debbano essere meno invasive possibile, dato che ogni tanto ci si deve prendere la briga di aggiornare la board: se lasciamo gestire le mod a file esterni e non facciamo altro che inserire degli include, richiamare delle funzioni o utilizzare delle classi ex novo (o estendere quelle esistenti, per chi ha più dimestichezza), diventa facilissimo aggiornare la board e si ha sempre un visione ordinata delle modifiche effettuate. Inoltre, altro consiglio, evito sempre di modificare il PCA (o ACP ahahahah), gestendo eventuali parametri riservati allo staff in una pagina separata. In questa mod, per esempio, si potrebbe fare questo:
- creare una pagina personalizzata, es. admin_extend.php
- metterci un controllo permessi admin (o la conferma delle credenziali di accesso), basta un copia/incolla;
- creare un form dove gestire il parametro di configurazione $config['allow_location_data'] (anche qui basta utilizzare la funzione set_config() );
per un singolo parametro sembra stupido creare una pagina dedicata...ma se dovessi scrivere altre mod o strutturare meglio questa (che ne so, magari abilitare o meno la visualizzazione degli stati esteri via php), utilizzerei sempre la stessa pagina di configurazione.
Mi sa che mi sono dilungato parecchio...