Domanda

Ho riscontrato un problema con la ricerca del mio sito che non si collega correttamente alle pagine delle mie visualizzazioni. Ho una pagina di visualizzazioni impostata per visualizzare i dati della ricetta. Ha le proprietà URL di:

index.php?q=recipe/%1/%2

dove% 1 è la categoria della ricetta, ad esempio colazione , e% 2 è il nome della ricetta, ad esempio Muffin . La vista passa attraverso il contenuto del nodo ricetta e lo visualizza come appropriato. Il problema è che il modulo di ricerca del sito non si collega alla vista, si collega al nodo che può ancora apparire come:

index.php?q=node/22

Se modifico quel nodo con un alias URL, posso trasformarlo in dire:

index.php?q=recipe/muffin

Ma : questo si scontra con la visualizzazione visualizzata sul sito e la funzione di ricerca li porta al NODE e non alla VISTA. Ho davvero, davvero bisogno che siano presi in considerazione.

È chiaro?

Come può essere riparato?

Modifica: la vista ha variabili sia per la categoria della ricetta che per il nome della ricetta (ad esempio, colazione / muffin). La formattazione delle pagine dei nodi è stata impossibile, quindi temo di dover utilizzare le viste.

È stato utile?

Soluzione 2

Potrebbe funzionare?

Ho impostato un modulo di visualizzazione ricercabile - con alcuni filtri esposti nella pagina (e quindi nell'URL).

Ho disabilitato la ricerca nel sito, non ne ho bisogno al di fuori di quest'area della ricetta e penso di poter costruire un semplice blocco in $ GET (o $ POST, dimentico sempre) i dati del modulo per la vista.

La vista quindi legge l'URL e viene visualizzata in modo appropriato:

index.php?q=recipes%2Fsearch&time=All&keywords=pie

mostra le ricette contenenti " pie " nel titolo.

Devo solo compilare il modulo ora ...

modifica - sì, ha funzionato a meraviglia!

<form id="search-block-form" action="index.php?q=recipes%2Fsearch&amp;time=All" accept-charset="UTF-8" method="get">
<div>
<div class="container-inline right-search">
<div id="edit-search-block-form-1-wrapper" class="form-item">
<label for="edit-search-block-form-1">Quick recipe search: </label>
<input name="q" value="recipes/search" type="hidden" />
<input name="time" value="All" type="hidden" />
<input id="edit-search-block-form-1" class="form-text" title="Enter the recipe terms you wish to search for." maxlength="128" name="keywords" size="15" type="text" />
</div>
<input id="edit-submit" class="form-submit" name="op" type="submit" value="Search" />
</div>
</div>
</form>

Altri suggerimenti

Cosa fa esattamente la vista?

Se cerca i nodi con l'argomento (diciamo "Muffin") nei loro titoli, allora penso che dovresti semplicemente cambiare l'URL della vista in qualcosa come search_recipe e farlo con esso.

Se fa qualcosa di simile alla visualizzazione di un singolo nodo (quindi la ricetta / muffin sarebbe un ID univoco appropriato), allora perché usi Views per questo?

Inoltre, puoi sostituire la pagina di ricerca del sito con filtri di visualizzazione esposti. È abbastanza potente.

Questa è una soluzione alternativa, ma:

Puoi provare il motore di ricerca personalizzato di Google come ricerca predefinita e fare in modo che Google non veda il nodo / * URL usando robots.txt .

Basta aggiungere questo sotto " # Percorsi (URL puliti) " nel file robots.txt che si trova nella radice di Drupal:

Disallow: /node/

(Non dimenticare che l'aggiunta di questa riga impedirà ai motori di ricerca di eseguire la scansione di tutti i nodi / ** URL.)

Anche l'aggiunta di visualizzazioni alla Sitemap potrebbe essere utile per questo processo.

Non ho mai provato questo processo, quindi non posso essere sicuro che funzioni o meno;)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top