struttura drupal

8 contenuti / 0 new
Ultimo contenuto
struttura drupal

ciao a tutti. Sto cercando di mettere mano nel codice di drupal e mi servirebbe un aiuto per capire come è strutturato.Dove sono le query al db? che differenza c'è tra il module e il tpl? e i file .inc a cosa servono?

io vorrei riuscire per ogni commento, ad avere l'immagine personale dell'autore del commento, o l'uri dell'immagine, solo che non so se ci sia una variabile che posso usare dentro al template di comment...le var disponibili sembrano essere inadatte,$author mi restituisce solo il nome dell'autore, ci sarebbe $picture ma non visualizza niente anche se dovrebbe essere proprio l'immagine personale dell'autore ..come mai?

eventualmente, non c'è una variabile globale che io possa usare in comment.tpl che mi contenga una lista degli oggetti utente, in modo da poter usare theme(image, user) come faccio nella home per visualizzare l'immagine personale dell $user, che però è solo l'utente corrente?
ho pensato che potrei risolvere con una query al db,se non ci sono metodi più diretti, selezionando tutti gli utenti e picture dove utente=all'autore del commento, ma dove dovrei mettere la query?
il problema è descritto nel dettaglio anche , qui

insomma io sto provando a saltarci un po' fuori ma drupal è davvero molto complesso per uno alle prime armi come me.

grazie
fede

Fede wrote:

insomma io sto provando a saltarci un po' fuori ma drupal è davvero molto complesso per uno alle prime armi come me.

Sì, confermo, è complesso..... ma non ti scoraggiare. Quando avrai capito come funzionano i moduli, poi dirai "geniale!!" e ti renderai conto che in realtà è molto più semplice di altri cms.
Prenditi un po di tempo per imparare ed inizia a leggerti la documentazione che c'è su questo sito.

Ciao
Gianni

lo spero:-) comunque per ora nello specifico problema ho fatto un passo avanti scrivendo una query :

$query_picture = "SELECT picture FROM avdrupal_users WHERE name='$author'"

l'ultimo problema è che $author in comment non è una stringa..come faccio ad avere la stringa e solo quella, contenente il NOME dell'autore? altrimenti la query non da risultati perche non confronta 2 stringhe..help...mi manca poco per farcela ;-)

grazie fede

ok ce l'ho fatta ad avere la stringa modificando cosi la query:
$query_picture = "SELECT picture FROM avdrupal_users WHERE uid='$comment->uid' "
Ora posso stampare l'immagine, però mi appaiono tutti questi warning al posto delle tre tab view edit track sopra al nodo a cui sono riferiti i commenti.Inoltre i commenti cambiano d'aspetto, non hanno piu spazi tra i capoversi e gli a capo che prima c'erano.. qualcuno mi sa dire come mai la mia query va a coinvolgere database.mysql.inc?

* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: array_map() [function.array-map]: Argument #2 should be an array in /membri/pensieroaschegge/drupal/modules/system/system.module on line 958.
* warning: array_keys() [function.array-keys]: The first argument should be an array in /membri/pensieroaschegge/drupal/includes/theme.inc on line 1712.
* warning: Invalid argument supplied for foreach() in /membri/pensieroaschegge/drupal/includes/theme.inc on line 1712.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 301.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.
* warning: mysql_affected_rows(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 198.
* warning: mysql_real_escape_string(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 321.
* warning: mysql_query(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 108.
* warning: mysql_errno(): 8 is not a valid MySQL-Link resource in /membri/pensieroaschegge/drupal/includes/database.mysql.inc on line 122.

Fede, non so dirti di preciso dove trovare l'informazione, ma credo che le query non siano necessarie. Ci sono funzioni nelle API per recuparari i dati degli utenti. L'immagine dell'utente dovrebbe essere uno dei componenti dell'oggetto $user, che credo tu possa richiamare con user_load.
Hai provato http://api.drupal.org/api/function/theme_user_picture/5 ?

grazie pinolo...me lo sto studiando, per ora il risultato l'ho raggiunto con la query, un po' alla grezza lo ammetto, ma se qualcuno avesse la stessa necessità posto il codice che è funzionante, basta inserirlo nel comment.tpl.php del vostro tema.Ora non da piu neanche warning sull'accesso al db quindi la soluzione di seconda mano c'è..:-)

<?php
//connessione al db
$db = mysql_connect("localhost","user","password");
if (
$db == FALSE)
die (
"Errore nella connessione. Verificare i parametri");
//selezione db
mysql_select_db("nomedb", $db)
or die (
"Errore nella selezione del database. Verificare");
//descriz. query
$query_picture_avatar = "SELECT picture FROM avdrupal_users WHERE uid='$comment->uid'";
//associazione variabile al query output
$risultato=mysql_query($query_picture_avatar, $db);
$url_picture_avatar = mysql_fetch_row($risultato);
echo
"<p align=right></p><img src="";
echo 
$url_picture_avatar[0];
echo "" align=left/"
></p>";
?>

ah, e dai un'occhiata nella API anche alla sezione sul db. Un sacco di chiamate che fai te le puoi risparmiare o le puoi scrivere in modo più ottimizzato:
http://api.drupal.org/api/group/database/5

Prima di scrivere codice, consulta sempre la API!! ;)

Comunque, tornando alla tua domanda iniziale, non bastava fare i 2 passi seguenti?
- Attivare le user pictures in user settings: admin/user/settings
- Attivare le immagini per i post e/o i commenti nella configurazione del tema: admin/build/themes/settings/[nometema]

Leggi anche qua:
http://drupal.org/node/22271

Grazie pinolo, ho risolto tutto..il prob era che non dovevo chiudere il db.. nella discussione vecchia ho inserito le righe di codice create e modificate per far apparire il numero dei commenti scritti, magari a qualcuno possono essere utili anche se davvero di livello base

grazie ancora e ciao..