[RISOLTO] Consiglio su metodo meno distruttivo per eliminare tab nel profilo user

3 contenuti / 0 new
Ultimo contenuto
[RISOLTO] Consiglio su metodo meno distruttivo per eliminare tab nel profilo user

Ciao a tutti.
Ho installato il modulo Vote Up/Down per avere dei semplici voti nei commenti. E' perfetto ma ho notato che questo modulo mi crea automaticamente un tab "Votes" nel profilo degli utenti che non mi garba affatto.
Ora, è mia intenzione affrontare il discorso del theming delle tab nei profili e ho trovato qui una guida per eliminare quelle che mi interessano. Quindi potrei, quando tra qualche settimana affronterò questa cosa, adottare questo metodo per eliminarla.
Il fatto è che avrei trovato nel modulo Vote Up/Down, il codice che genera quella tab:

/**
* Implementation of hook_menu().
*/
function vud_menu() {
  $items = array();
  $items['admin/settings/voteupdown'] = array(
    'title'            => 'Vote Up/Down',
    'description'      => 'Control the functioning of Vote Up/Down.',
    'page callback'    => 'drupal_get_form',
    'page arguments'   => array('vud_admin_advanced_settings'),
    'access arguments' => array('administer vote up/down'),
    'type'             => MENU_NORMAL_ITEM,
  );
  $items['admin/settings/voteupdown/advanced'] = array(
    'title'  => 'General',
    'type'   => MENU_DEFAULT_LOCAL_TASK,
    'weight' => -10,
  );
  $items['vote/%/%/%/%/%/%'] = array(
    'title'            => 'Vote',
    'page callback'    => 'vud_vote',
    'page arguments'   => array(1, 2, 3, 4, 5, 6),
    'access arguments' => array('use vote up/down'),
    'type'             => MENU_CALLBACK,
    'file'             => 'vud.theme.inc',
  );
  $items['votereset/%/%/%/%'] = array(
    'title'            => 'Reset vote',
    'page callback'    => 'vud_reset',
    'page arguments'   => array(1, 2, 3, 4),
    'access arguments' => array('reset vote up/down votes'),
    'type'             => MENU_CALLBACK,
  );
  $items['user/%user/votes'] = array(
    'title'            => 'Votes',
    'page callback'    => 'vud_user_votes',
    'page arguments'   => array(1),
    'access arguments' => array('access vote up/down statistics'),
    'type'             => MENU_LOCAL_TASK,
  );
  $items['vud/%ctools_js/denied/%'] = array(
    'title'            => 'Vote denied',
    'page callback'    => 'vud_denied_vote',
    'page arguments'   => array(1, 3),
    'access arguments' => array('access content'),
    'type'             => MENU_CALLBACK,
  );
  return $items;
}

In particolare si tratta di questa porzione:
  $items['user/%user/votes'] = array(
    'title'            => 'Votes',
    'page callback'    => 'vud_user_votes',
    'page arguments'   => array(1),
    'access arguments' => array('access vote up/down statistics'),
    'type'             => MENU_LOCAL_TASK,
  );

Ho provato a cancellarlo "barbaramente" e ottengo il risultato desiderato.
Mi chiedo però: è giusto agire in maniera così distruttiva?
Il fatto è che la pagina che richiama quel tab, a me non interessa proprio. Inoltre anche agendo sul theming delle tab, e quindi sul farle vedere o meno, quella pagina esisterebbe comunque e sarebbe raggiungibile in http://www.esempio.com/user/1/votes..
Posso stare tranquillo nel cancellare quella parte di codice? O è meglio trovare una soluzione più elegante?

benipulp wrote:
In particolare si tratta di questa porzione:
  $items['user/%user/votes'] = array(
    'title'            => 'Votes',
    'page callback'    => 'vud_user_votes',
    'page arguments'   => array(1),
    'access arguments' => array('access vote up/down statistics'),
    'type'             => MENU_LOCAL_TASK,
  );

Ho provato a cancellarlo "barbaramente" e ottengo il risultato desiderato.

Posso stare tranquillo nel cancellare quella parte di codice? O è meglio trovare una soluzione più elegante?

Decisamente non è consigliato amputare i moduli pubblicati in questo modo (al prossimo upgrade, se non ti ricordi quello che hai modificato, sei nella m..elma)

Tra l'altro, il codice mostra il modo per disabilitare quel tab: c'è un permesso 'access vote up/down statistics', e solo i ruoli a cui è assegnato il permesso (+ il superuser, uid=1) possono vedere quel tab

Angelo Turetta

Quote:
Tra l'altro, il codice mostra il modo per disabilitare quel tab: c'è un permesso 'access vote up/down statistics', e solo i ruoli a cui è assegnato il permesso (+ il superuser, uid=1) possono vedere quel tab

Sì infatti che stupido che sono! Io entravo nel profilo degli utenti come amministratore e ovviamente vedevo quel tab. Gli utenti normali però non lo vedono, a meno che io non cambi i permessi.