D6: Come si usa l' api template_preprocess_page ?

4 contenuti / 0 new
Ultimo contenuto
D6: Come si usa l' api template_preprocess_page ?

Scusate ragazzi, ma da mesi sono alle prese con i contenuti duplicati di Drupal.
Sono quì per chiedere una mano a qualcuno di voi che abbia già affrontato l' argomento, oppure una forte collaborazione con chi ritiene importante il problema che descriverò e che vorrebbe contribuire a risolvere.
Come detto in altri thread, Drupal genera una marea di pagine simili, non scansionate dai motori di ricerca perchè escluse con il disallow nel robots.txt; il titolo di queste pagine viene comunque riportato nella SERP riempiendola di pagine simili. Come già detto in precenza, è possibile eliminare nella Serp le pagine simili togliendo il disallow e mettendo il noindex in quelle pagine, anche se questo, come sto verificando, funziona ma è un processo molto lungo.
Per quanto riguarda i contenuti interni duplicati, è possibile fare molto con il modulo Nodewords, ma non tutto. Se si è scelto di riempire automaticamente un vocabolario con dei tags, Drupal genera una pagina per ognuno di quei tags ed ogni nodo potrebbe generare più contenuti duplicati, dipendenti dal numero dei tags utilizzati. Le pagine generate sono quelle che con url /taxonomy/term/..... Pensavo di aver risolto il problema utilizzando il modulo Pathauto che genera un percorso /alias/nometag anzichè /taxonomy/term/.... ed aggiungendo con Nodewords un noindex per tutte le pagine /alias/*; Google invece, pur non indicizzando le pagine /alias/nometag, continua a spulciare nel sito indicizzando le pagine /taxonomy/term.... che sono, nella maggior parte dei casi, sempre contenuti interni duplicati.
Le mie ricerche hanno portato ad una soluzione che consiste nell' utilizzare l' api template_preprocess_page con l' api taxonomy_node_get_terms_by_vocabulary. La soluzione da rielaborare è contenuta in questo articolo, ma dove e come si inseriscono queste api ? In page.tpl.php ? e come ?
Spero che ci sia qualcuno che ha voglia di dilettarsi.

template_preprocess_page è un hook (una chiamata all'indietro, una funzione del tuo codice che drupal chiama in momenti stabiliti) che viene chiamato dal sistema di theming prima di utilizzare il template della pagina. Ti permette di assegnare un valore a variabili che poi ti ritroverai dentro il tuo page.tpl.php

Essendo un hook dei temi, la funzione che lo implementa deve essere dichiarata nel template.php del tuo tema con il nome MIOTEMA_preprocess_page (es: se il tu tema si chiama zenpincopallo, la funzione deve essere zenpincopallo_preprocess_page(&$vars, $hook)

L'altra funzione invece non è un hook, ma un'api che può essere chiamata dal tuo codice per recuperare tutti i termini di un nodo appartenenti ad un dato vocabolario. Nell'esempio che citi, questa funzione viene chiamata nell'implementazione dell'hook di cui sopra per aggiungere un meta se la pagina visualizza un nodo che ha un termine definito in quel vocabolario.
Secondo me dovrebbe funzionare così come è scritta (dandogli un nome come indicato prima) cambiando i parametri 2 (vocabolario) e 41 (tid del termine).

Non so però se fa al caso tuo. Io questa faccenda del path sdoppiato non la capisco. Perché dovrebbe generare dei path doppi? nei miei siti un nodo è sempre /node/n (oppure /alias se ce l'ho attivo). Che cosa mi sta sfuggendo?

E se invece di noindex riuscissi ad usare il meta canonical?

Angelo Turetta

@Angelo
Innanzitutto ti ringrazio di aver partecipato al thread; cercherò di fare buon uso delle tue indicazioni.

Quote:
Che cosa mi sta sfuggendo?

Se nel tuo sito non crei termini della tassomia forse non hai questo problema; avrai i tuoi nodi e gli alias dei nodi. Se crei termini della tassonomia avrai nodi, alias nodi, terminidellatassonomia ed alias/terminidellatassonomia.
Dalla mia esperienza (ma potrebbe anche essere una falsa esperienza generata da una configurazione errata) Google mi ha indicizzato tutte queste pagine dopo che il sito ha iniziato ad avere un minimo di importanza; ho iniziato ad affrontare i contenuti duplicati interni quando ho visto una diminuzione del 60% degli accessi al sito.
Quote:
E se invece di noindex riuscissi ad usare il meta canonical?

Con Nodewords puoi impostare il rel canonical per il singolo nodo o per tutti i nodi (e tutti i contenuti); se si hanno termini della tassonomia, Nodewords mette il canonical anche per il termine della tassonomia.
Se riesco a trovare la soluzione, anche con i tuoi suggerimenti, la posterò sul thread.

Mi rispondo

Quote:
Pensavo di aver risolto il problema utilizzando il modulo Pathauto che genera un percorso /alias/nometag anzichè /taxonomy/term/.... ed aggiungendo con Nodewords un noindex per tutte le pagine /alias/*; Google invece, pur non indicizzando le pagine /alias/nometag, continua a spulciare nel sito indicizzando le pagine /taxonomy/term.... che sono, nella maggior parte dei casi, sempre contenuti interni duplicati.

Probabilmente mi sto sbagliando, in quanto il /taxonomy/term/... indicizzato esisteva prima di aver implementato il noindex per i tags.