Eliminare la prima pagina predefinita

  • 27 Sep 2014
  • Drupal 7, PHP

Ogni volta che viene creato un nuovo articolo (o node) abbiamo la possiblità non solo di pubblicarlo ma anche di promuoverlo alla prima pagina. In modo predefinito, la prima pagina di Drupal sarà una vista del riassunto di tutti gli articoli promossi.

Drupal: opzioni di pubblicazione

Visitando admin/config/system/site-information potremo configurare solo due parametri relativi alla prima pagina (front page). Uno è il numero di articoli da visualizzare per pagina e l'altro serve a dare il percorso di un contenuto alternativo alla vista predefinita di Drupal.

Drupal: configurazione della prima pagina

In genere la pagina /node serve a poco. In più, la sua personalizzazione è molto limitata. Risulterà sempre più comodo impostare la front page del sito che stiamo sviluppando con un node o una vista.

In questo caso, potrebbe essere di interesse disabilitare la pagina /node per completo. Una soluzione possibile è di utilizzare hook_menu_alter per aggiungere un page callback personalizzato che ci porterà al percorso impostato come prima pagina.

/**
 * Implementation of hook_menu_alter().
 */
function custom_functions_menu_alter(&$items) {
  $items['node']['page callback'] = '_internal_custom_function_name_here_redirect_to_frontpage';
}


/**
 * Redirect back to the frontpage for specific pages.
 */
function _internal_custom_function_name_here_redirect_to_frontpage() {
  if($_GET['q'] == 'node') {
    $_REQUEST['destination'] = "<front>";
    drupal_goto();
  }
}

Una parte della prima pagina del sito www.digium.com, sviluppato con Drupal