Come nascondo la pagina / il nodo predefiniti?


22

Drupal out of the box viene fornito con una pagina (che è la homepage predefinita) che viene assegnata al percorso del nodo .

Come posso evitare che gli utenti lo raggiungano e li reindirizzino alla pagina iniziale effettiva del sito?


Ho usato la soluzione proposta da @kiamlaluno per reindirizzare il nodo su un percorso diverso.

Risposte:



8

Creare un alias percorso che reindirizzi da / node alla pagina che si desidera utilizzare come prima pagina.


1
Questo non funziona per me con url alias module, aliasing / node su <front> o index.php. Io sto cercando di trasmettere al proprio /
john

5
Strano ho fatto / nodo su <front> e funziona benissimo.
Sean Bannister,

Come te @john, l'interfaccia utente dell'aliasing non mi consente di passare alla prima pagina. Ho dovuto usare invece il modulo di reindirizzamento.
Postscripter,

6

Preferisco modificare il callback della pagina di / node in modo che mostri un errore 404 Page.
Questo mostra sempre la tua pagina 404 personalizzata quando accedi / nodo.

function yourmodule_menu_alter(&$items) {
    $items['node']['page callback'] = 'drupal_not_found';      
}

4
<?php
function MY_MODULE_menu_alter(&$callbacks) {
unset($callbacks['node']);
}
?>

o aggiungilo a settings.php (URL inbound stuff)

<?php
function custom_url_rewrite_inbound(&$result, $path, $path_language) {
  if ($path == 'node') {
    $result = ''; 
  }
}
?>

2

Ho usato il modulo Redirect : ho appena aggiunto un nuovo reindirizzamento 301 da nodea <front>.


1

Simile alla risposta berdirs, ho il seguente codice incluso in un modulo che fa parte di una distribuzione personalizzata da cui costruiamo:

function HOOK_menu_alter(&$items) {
  $items['node']['page callback'] = '_HOOK_empty_home';
}

function _HOOK_empty_home() {
  drupal_set_title('');
  return '';
}

In questo modo posso mantenere il percorso 'nodo' come prima pagina e usare il contesto per posizionare i blocchi per costruire la prima pagina richiesta.


1

È possibile creare una pagina mappata su / nodo che non è pubblicata. Pertanto, gli utenti che chiameranno questo percorso avranno accesso a una pagina vietata


1

La soluzione semplice per me era creare una pagina che volevo essere la home page e impostare l'URL su / nodo. Quindi in / admin / config / system / site-information imposta la prima pagina predefinita su / node. Non vedi mai "/ node" nell'URL a meno che qualcuno non lo scriva realmente. È veloce, facile e pulito, a condizione che tu voglia impostare l'URL della tua homepage su / node.


1

Puoi creare una nuova pagina con l'URL del nodo e le persone possono vedere un messaggio che li reindirizza per visitare la prima pagina o scegliere una categoria di qualcosa.


1

Ho provato più cose. Quindi per Drupal 7 e 8, ho scoperto che questo è molto semplice, senza scrivere alcun codice:

scarica e abilita i moduli node_page_disable, globalredirect e reindirizzamento.

(Nota: il modulo node_page_disable reindirizza / nodo alla pagina di errore 404 non trovata.)

quindi aggiungere un reindirizzamento per / nodo -> pagina iniziale

Notare che il reindirizzamento reindirizza entrambi / node e / node / alla prima pagina.

e un articolo utile da leggere: https://www.drupalaid.com/blog/3-things-you-should-hide


È una vista in D8, quindi drush @example.com views-disable frontpagela disattiverà. Otterrà comunque un 404 fino a quando le altre cose non saranno completate.
colan,

0

Crea un nodo, quindi vai alla configurazione del sito -> informazioni sul sito e imposta la home page sul percorso del nodo. Quindi se è il tuo primo nodo, sarebbe node / 1.

Modifica: per impostazione predefinita, semplicemente creando un nodo tale pagina scompare se si seleziona "promuovi in ​​prima pagina". Il passaggio delle informazioni sul sito renderà quel nodo la tua prima pagina effettiva.


1
È vero, ma /nodeè ancora raggiungibile, non sarà visibile per impostazione predefinita
Laxman13

Ho letto male quello che stava chiedendo. Che dire del modulo di reindirizzamento del percorso http://drupal.org/project/path_redirect ?
Mike L.

1
Purtroppo il reindirizzamento dei percorsi non ti consente di reindirizzare da percorsi esistenti. Verifica se il percorso da cui stai tentando di reindirizzare è un percorso valido e, in tal caso, il reindirizzamento non viene creato e viene visualizzato un avviso.
Laxman13

Freddo. Non lo uso da un po ', quindi non è stato positivo. Grazie!
Mike L.

0

Puoi utilizzare il modulo Regole per controllare l'URL prima di visualizzare una pagina e reindirizzare gli utenti a un'altra pagina, se lo desideri.

  • Aggiungi regola con evento: il contenuto verrà visualizzato
  • Aggiungi condizione: esegue il codice PHP personalizzato e controlla il percorso
  • Aggiungi azione: reindirizzamento della pagina e scegliere il percorso a cui si desidera reindirizzare

Ciò non comporta solo gravi penali di prestazione, ma deve essere considerato molto pericoloso. "Esegui PHP personalizzato" non dovrebbe mai essere suggerito a meno che tutti gli effetti collaterali e gli aspetti negativi siano ben noti. -1 per quello.
Berkes,

@berkes Suppongo che sia perché le regole eseguiranno un controllo su ogni caricamento della pagina e quindi rallentando il sito? Perché "Esegui php personalizzato" è sempre disapprovato? Ovviamente non va bene per l'uso dell'utente finale, ma ci sono anche aspetti negativi per l'uso degli sviluppatori? Scusate se lungo, ho lavorato molto duramente per essere il migliore possibile con Drupal e imparare i "dettagli". (Potrebbe aggiungere la seconda parte come domanda se necessario)
Laxman13

si prega di prendere in considerazione un nuovo Q "Quali sono gli svantaggi dell'utilizzo di PHP" personalizzato "con alcune aree di esempio (blocchi, argomenti di viste, filtro php ecc.) in cui questo può essere discusso?
Berkes,

0

Domanda popolare di alcuni anni fa, con già alcune risposte interessanti. Tuttavia, indovina un po ': "In questi giorni c'è un modulo per questo ... in realtà anche due!" (non menzionato in nessuna delle risposte precedenti).

Continua a leggere per maggiori dettagli ... (le citazioni sono dalle pagine dei loro progetti) ...

Amministratore pagina nodo (D6 o D7):

Questo modulo aggiunge un pannello delle impostazioni di amministrazione per gestire / nodo l' accesso alla pagina. Una volta attivato, ci sono tre configurazioni possibili:

  • Core - Drupal core gestirà l'accesso alla pagina del nodo come al solito: tutti gli utenti con permesso di "accesso al contenuto"
  • Disabilitato: nessuno sarà in grado di accedere / nodo. Restituirà 'Pagina non trovata' (404).
  • Per autorizzazione: l'accesso verrà gestito da una nuova autorizzazione: "pagina nodo di accesso"

Pagina nodo disabilitata (D6 o D7, anche se solo versioni rc2):

Consente un facile accesso all'interfaccia utente e la disabilitazione del percorso / nodo quando non utilizzato. Ciò è stato ispirato da una considerazione di sicurezza nel modulo di controllo della produzione .


-1

il modo migliore è nascondere i nodi dalla funzione template_preprocess_page

function template_preprocess_page(&$variables) {
    if ($variables['is_front'] == 1) {
        if (isset($variables['page']['content']['system_main'])) {
            unset($variables['page']['content']['system_main']);
        }
    }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.