Porting di un sito su piattaforma Drupal 7

21 contenuti / 0 new
Ultimo contenuto
Porting di un sito su piattaforma Drupal 7

Ciao a tutti,
Scrivo questo post perchè ho neessità di fare il porting di un sito in HTML su piattaforma Drupal.
Ho notevoli difficoltà a capire qual' è l'approccio corretto da utilizzare.
Il mio primo dubbio è come organizzarele diverse pagine.
Mi spiego meglio, Il sito in HTML attualmente ha diverse pagine, ha una home page, una pagina dei contatti, una pagina per la fotogallery ecc ... e inoltre dovrò integrare un blog.

Come dovrei organizzare queste diverse pagine? tenendo conto che ogniuna di queste carica diversi css e diversi javascript?

Grazie a tutti per l'aiuto.

Ciao,
credo che il primo step sia quello di creare un tema per drupal partendo dall'html statico, di guide in giro per la rete ce n'è parecchie, questa è una delle tante: http://www.drupaltherapy.com/node/52

Una volta che hai ricreato il look and feel del sito puoi cominciare a integrare tutto il resto: pagine statiche, blog, pagina contatto, fotogallery, ecc ecc.

Ciao DarthDrupal e grazie per la tua risposta.
Prima di tutto la guida è per D6 (che non conosco e non ho mai usato) mentre io sto usando D7 e so che ci sono molte differenze, quindi forse mi troverei incartato da qualche parte, ma soprattutto anche questa si riferisce ad una pagina sola.
Come seconda cosa per quanto riguarda il ricreare il look io ci sarei già riuscito.
Ho preso il file standard page.tpl.php
Ho creato il file info
Ho applicato i css
Ho aggiuto i javascript
Ho anche aggiunto il primo blocco inserendolo in una regione (creata ad hoc) e settato il contenuto dal pannello admin.

Vorrei sapere se, proprio come in un normale sito adesso devo aggiungere le diverse pagine con i vari page--xxx.tpl.php oppure cosa.

--
G.

No, così hai già fatto il tuo tema in Drupal.
Adesso devi aggiungere i contenuti tramite l'apposita interfaccia (tuosito/node/add).
Installare e abilitare i vari moduli che ti servono per creare la gallery, blog, pagina contatto ecc.

Poi se in alcune pagine la visualizzazione deve cambiare rispetto al resto del sito, allora si devi implementare dei page.tpl diversi per ogni tipo di visualizzazione di cui hai bisogno, ma solo per quanto riguarda la visualizzazione.

Fantatico!
Grazie per la bellissima notizia ;)

A questo punto, già che ci siamo, ti chiederei se conosci il modo di caricare all'interno di un page--xxx.tpl.php un javascript.
Non in tutti i page (come succede inserendoli nel .info) ma caricandoli con la funzione drupal_add_js().

Grazie per il tuo supporto

--
G.

ealmuno wrote:
soluzione

ad esempio in template.php

@muka soluzione errata, così lo carica in ogni pagina e lui non vuole così.

giusto, specifico, in hook_preprocess_node metti qualcosa tipo

drupal_add_js(base_path().path_to_theme()."/".$variables['node']->type);
drupal_add_js(base_path().path_to_theme()."/".$variables['node']->nid);

Grazie a tutti per l'aiuto.
Prima di tutto non ho capito perchè devo utilizzare la hook_preprocess_node anche se io voglio interagire con una pagina, o sbaglio qualcosa?

La "soluzione" suggerisce di utilizzare la hook_init() per intercettare l'inizializzazione della pagina quando viene richiamata e di infilarci la drupal_add_js.
Ho provato ad infilarla nel page.tpl.php ma non funziona (ho anche ripulito la cache).

L'unica soluzione che ho trovato e ho testato è infilare la drupal_add_js nella funzione template_preprocess_page() dentro al file template.php , ma non so come "identificare" e quindi selezionare la pagina.
C'è una variabile che posso usare dentro a template_preprocess_page() per identificare la pagina che sta "preprocessando" ?

A quel punto, potrei fare uno switch e caricare i file che mi servono in maniera selettiva.

--
G.

Potresti fare un if sul path utilizzando la funzione arg()

<?php
if  (arg(0) == node && arg(1) == 2) { //se il path è tuosito/node/2
 
drupal_add_js("XYZ");                      //aggiungi il js
}
 
?>

Ho seguito l tuo suggerimento mettendolo all'inizio del page.tpl.php (ho provato e ho scoperto che la funzione drupal_add_js() funziona correttamente anche qui! ) ma come dici t in arg(0) ho "node" ma in arg(1) non ho nulla...

--
G.

??? Cioè dopo node deve esserci l'id, controlla che di sicuro ti sei perso qualcosa, fai un print.

e invece non c'è:

print("-> ".arg(0));
print(" -> ".arg(1));

e questo è il risultato sulla home page:
-> node->

questo è il risultato nella pagina dei contatti (ho usato il modulo contact):
all'indirizzo .../?q=contact
-> contact ->

... c'è forse qualcosa che non va nella mia installazione?

--
G.

La home page di default non è associata a nessun nodo quindi il risultato è giusto, se vai in una pagina interna vedi che il numero compare.
Idem per la pagina contatti, non è un nodo, quindi funziona, bastava leggere l'url o la documentazione (ma m sa che è un optional, non la legge nessuno)

Ok, grazie.
Per quanto riguarda la documentazione, ignoro la provocazione :)

--
G.

Non è una provocazione è un dato di fatto, la documentazione eviterebbe certe domande e va letta, non è li solo per bellezza o per far numero e non provoca danni collaterali.

La documentazione non è li per bellezza, questo è vero, ma è li per chi sa cosa cercare e dove cercare.
Chi sta guardando per la prima volta una piattaforma o una tecnologia, spesso non sa nemmeno cosa cercare.
Nella documentazione, c'è un indice in cui c'è una voce con scritto "per determinare che pagina stai caricando leggi qui" ?
Non mi pare proprio, perchè l' avrei vista (la documentazione l'ho guardata e ho letto prima tutta la drupal overview e tutti "concetti base").
Non è nemmeno possibile leggere prima TUTTA la documentazione e poi iniziare a fare qualcosa, perchè ci vuole un bel po' di tempo e se hai 2 settimane per portare a termine un progetto non è fattibile.
Inoltre nessun libro che spiega linguaggi di programmazione, tecnologie o pioattaforme inizia con "Leggi prima tutta la documentazione", piuttosto, iniziano tutti con un "Realizziamo un semplice progetto".

Non voglio fare polemica, voglio solo farti capire che c'è chi è convinto che la cosa migliore sia leggersi prima tutta la documentazione e chi invece è convinto che la cosa migliore sia partire con un piccolo progetto (di esempio) per scoprire da solo le "solite domande", capire VEDENDO quello che succede, comprendendo i meccanismi, ecc. Alla fine poi, si capisce come e cosa cercare nella documentazione e ci si arrangia.

Io troverei molto utile una ricca sezione di FAQ, "come si fa questo", "come si fa quello" eccetera.

Spero tu riesca a capire il mio punto di vista.

--
G.

Allora quando ti trovi di fronte ad una domanda dovresti prima pensare a cercare la soluzione, se non sai nemmeno cosa cercare forse è meglio se non inizi nemmeno, se hai tempi ristretti non centra nulla, spiega al cliente il perché ci vuole più tempo, un sito di qualità non si può fare in fretta e furia su un cms che non si conosce.
Se sei convinto che una volta trovata la difficoltà si vede come risolverla la risposta c'è già e la trovi nella documentazione.
La lista di FAQ sarebbe infinita, soprattutto visto il livello di certe persone.
Nel tuo caso ti era stata data la funzione arg(), se cercavi su google arrivavi a questa (http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/arg/7), tra l'altro un link già dato, in cui non dovevi nemmeno fare la fatica di cercare, ma dovevi semplicemente leggere la soluzione, pagina in 2 secondi con la descrizione di cosa prendeva, risolvendo il tuo problema.
Il tuo punto di vista lo vedo completamente errato:
1)Se non si ha tempo per leggere la documentazione allora è meglio lasciar stare.
2)se ti fanno notare che bastava leggere o cercare forse è meglio appuntarselo e farlo la volta successiva.
3)se non sai cosa cercare rivedi il tuo ordine di lavoro, perché non sapere cosa e come cercare equivale a non saper usare un certo strumento.
4)i libri hanno l'obbiettivo di insegnarti le basi per creare un sito web, e non di contenere tutto.

giacomop81 wrote:
C'è una variabile che posso usare dentro a template_preprocess_page() per identificare la pagina che sta "preprocessando" ?

$variables['node'], se la pagina è un contenuto. Qui trovi tutto http://api.drupal.org/api/drupal/includes--theme.inc/function/template_p...

Angelo Turetta

@ealmuno: Penso che tu non abbia capito quello che volevo dire.
Comunque grazie per l'aiuto

--
G.