MisterB Posted May 5, 2009 Share Posted May 5, 2009 Ciao a tutti, sto cercando di creare nuove tabs in admin per risolvere un piccolo problema con i moduli e con la gestione sviluppatori. Per crearli non c'è nessun problema, basta andare nel BO -> utilità -> tabs -> Aggiungi nuovoA questo punto abbiamo una nuova fantastica tabs (anche nel database si può notare nella tabella PREFISSO_tab) ma adesso come si fa a scriverci il codice dentro?ho provato ad andare nella cartella dell'admin quindi in tabs e a inserirne una con nome della tab creata (su modello delle tabs di default) ma anche questa strategia non funziona, viene sempre fuori "Scheda inesistente".Ho pensato che avesse bisogno di estendere qualche AdminTab etc e quindi ho provato a sparagli il contenuto di un'altra tab giusto per vedere se funzionava ma anche così niente da fare!Adesso vado avanti a ragionarci, ma se qualcuno ha già affrontato il problema sono tutto orecchie (o meglio occhi).Saluti a tutti Link to comment Share on other sites More sharing options...
MisterB Posted May 5, 2009 Author Share Posted May 5, 2009 Me la canto e me la suono... era abbastanza ovvio credo che i [spam-filter] non mi hanno risposto per l'eccessiva banalità...cmq bastava mettere include_once(PS_ADMIN_DIR.'/../classes/AdminTab.php'); class NOMECLASS extends AdminTab dove il NOMECLASS della class è quello che si è settato nel BO...ma ora la domanda è un'altra:Una volta creata la tab io voglio metterci un redirect a una configurazione di un modulo e il codice della classe potrebbe essere: <?php include_once(PS_ADMIN_DIR.'/../classes/AdminTab.php'); class prova extends AdminTab { public function __construct() { parent::__construct(); } public function display() { header('location:INDIRIZZO'); return true; } } ?> e tutto funziona correttamente se non fosse per quel dannato token che bisogna passare in get.ho visto che ho una funzione per creare il token, in particolare: &token;='.Tools::getAdminToken($item['class_name'].intval($item['id_tab']).intval($cookie->id_employee)).' che ovviamente non funziona o meglio funziona ma da il risultato cannato perchè come class_name prende la nostra nuova class_name e come id_tab prende il nostro, ovviamente dovremmo mettere quello di destinazione!Riassumendo la mia domanda è:come faccio a sapere il nome e l'id_tab di classe che configura un modulo? o in altre parole come creo dinamicamente questo link? index.php?tab=AdminModules&configure=productcomments&token=97a77ba9a3aefc968c337cc1acfd1b25 ? Link to comment Share on other sites More sharing options...
MisterB Posted May 5, 2009 Author Share Posted May 5, 2009 Finito, sono riuscito a risolvere i miei problemi, posto una miniguida per i posteri o per gli interessati:OBBIETTIVO: avere delle tabs nell'admin per alcuni utenti che portano direttamente alla configurazione di moduli selezionati. Impedire per questi utenti l'accesso diretto alla tabs moduliSOLUZIONE: prima di tutto si crea nel BO una tab per ogni configurazione che si vuole un accesso veloceBO -> Utility -> Tabs -> Aggiungi nuovoPer esempio se volessimo creare un accesso veloce per il testo della home page (modulo editorial) creaeremo una tab che si chiama "Testo Home", come classe le diamo per esempio "DV_AdminModuliHome" e come Capogruppo "Home".A questo punto editiamo header.inc.php e circa alla riga 100 modifichiamo il foreach con foreach ($tabs AS $t) { if ($t['class_name'] == $tab) $id_parent = $t['id_tab']; if (checkTabRights($t['id_tab']) === true){ if ($t['class_name']=="AdminModules" and $cookie->id_employee!=1){ $link_moduli = 'index.php?tab='.$t['class_name'].'&token;='.Tools::getAdminToken($t['class_name'].intval($t['id_tab']).intval($cookie->id_employee)); }else{ echo 'id_employee)).'"> '.$t['name'].' '; } } } in particolare if ($t['class_name']=="AdminModules" and $cookie->id_employee!=1){ l'1 nel mio caso rappresenta lo sviluppatore mentre tutti gli altri chi inserisce i testi etc.ora creiamo all'interno della cartella dell'admin -> tabs un file php che si chiama come la classe che abbiamo impostato nel BO (nell'esempio DV_AdminModuliHome) con il seguente contenuto <?php include_once(PS_ADMIN_DIR.'/../classes/AdminTab.php'); class DV_AdminModuliHome extends AdminTab { public function __construct() { parent::__construct(); } public function display() { global $link_moduli; header("location: $link_moduli&configure=editorial"); return true; } } ?> Per ogni altra configurazione basta cambiare "editorial" con il nome del modulo.Per finire disattiviamo per l'amministratore le schede che abbiamo appena creato così da non creare confusione e le attiviamo per gli altri utentiSpero di essere stato chiaro, saluti e EnjoySimone Link to comment Share on other sites More sharing options...
mpadi1964 Posted September 21, 2013 Share Posted September 21, 2013 Ciao, non sono esperto, non trovo in BO il link utility .. prestashop 1.5.5 mi puoi aiutare ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now