phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Una piccola cosa

Supporto MODs generale.
BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Una piccola cosa

Messaggio da BMercer » 05/01/2010, 20:21

Avrei tutta una serie di domande. Allora incominciamo una alla volta.
Mio sito: http://www.shadowsclan.netsons.org/forum/

Ok Allora, se andate all'indirizzo sopra indicato, potrete vedere la welcome MOD, dove a da sx verso dx, possiamo trovare l'avatar dell'utente, un messaggio di benvenuto e l'ora attuale (o click here to register ecc..., per i guests) e tutti gli strumenti per l'utente (pannello di controllo, messaggi privati, faq, iscritti, logout).

Ora vorrei lavorare sulla colonna in mezzo, tra l'avatar e gli strumenti per l'utente:

Vorrei cancellare tutto il codice ed inserire una serie di statistiche utente del tipo:

Posts:
Posts in un determinato forum:
Discussioni in un determinato forum:

Però oltre a quello avevo in mente di inserire un'altra cosa. Allora facciamo un'esempio delle statistiche sopra citate:

Posts: 320
Posts in un determinato forum: 42
Discussioni in un determinato forum: 1

Mettiamo il caso che le statistiche consigliate (che noi richiediamo) siano:

Posts: X >= 150
Posts in un determinato forum: x >= 50
Discussioni in un determinato forum: X >= 1

E mettiamo il caso volessimo far vedere all'utente (nel caso non abbia raggiunto tali richieste) il numero di topic/posts necessari, l'esempio si trasformerebbe così:

Posts: 320
Posts in un determinato forum: 42 [50]
Discussioni in un determinato forum: 1

Tutto questo è possibile farlo?

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Una piccola cosa

Messaggio da Carlo » 05/01/2010, 20:57

Tipo una specie di obbiettivi, giusto?

Comunque aggiungo alla mia lista di script da realizzare.

P.S.: Titolo errato.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Una piccola cosa

Messaggio da BMercer » 05/01/2010, 21:15

Diciamo di si.
Gli obiettivi da raggiungere sono tra [] e quando li raggiungi semplicemente spariscono.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Una piccola cosa

Messaggio da Carlo » 08/01/2010, 19:33

Questo è il codice php occorrente:

Codice: Seleziona tutto

<?php

$posts_totali_minimi = 100;
$posts_minimi_forum_X = 10;
$topic_minimi_forum_X = 5;

$sql = "SELECT COUNT(post_id) as user_posts_forum_x FROM " . POSTS_TABLE . " WHERE poster_id = {$user->data['user_id']} WHERE forum_id = $posts_minimi_forums_X";
$result = $db->sql_query($sql);
$user_posts_forum_x = (int) $db->sql_fetchfield('user_posts_forum_x');
$db->sql_freeresult($result);

$sql = "SELECT COUNT(topic_id) as user_topics_forum_x FROM " . TOPICS_TABLE . " WHERE topic_poster = {$user->data['user_id']} WHERE forum_id = $topics_minimi_forums_X";
$result = $db->sql_query($sql);
$user_topics_forum_x = (int) $db->sql_fetchfield('user_topics_forum_x');
$db->sql_freeresult($result);

$template->assign_vars(array(
    'USER_POSTS'            => $user->data['user_posts'],
    'POSTS_MINIMI'            => $posts_totali_minimi,
    'USER_POSTS_FORUM_X'    => $user_posts_forum_x,
    'POSTS_MINIMI_FORUM_X'    => $posts_minimi_forum_X,
    'USER_TOPICS_FORUM_X'    => $user_topics_forum_x,
    'TOPICS_MINIMI_FORUM_X'    => $topic_minimi_forum_x
));

?>
Questo invece è il codice occorrente nel template:

Codice: Seleziona tutto

Posts: {USER_POSTS} <!-- IF USER_POSTS < POSTS_MINIMI -->[{POSTS_MINIMI}]<!-- ENDIF --><br />
Posts in forum X: {USER_POSTS_FORUM_X} <!-- IF USER_POSTS_FORUM_X < POSTS_MINIMI_FORUM_X -->[{POSTS_MINIMI_FORUM_X}]<!-- ENDIF --><br />
Topic in forum X: {USER_TOPICS_FORUM_X} <!-- IF USER_TOPICS_FORUM_X < TOPICS_MINIMI_FORUM_X -->[{TOPICS_MINIMI_FORUM_X}]<!-- ENDIF -->
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Una piccola cosa

Messaggio da BMercer » 08/01/2010, 19:48

Grazie mille, lo provo domani perchè non sono nel pc adatto.
Il codice php devo metterlo nell'header?

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Una piccola cosa

Messaggio da BMercer » 09/01/2010, 15:07

carlino1994 ha scritto:Questo è il codice php occorrente:

Codice: Seleziona tutto

<?php

$posts_totali_minimi = 100;
$posts_minimi_forum_X = 10;
$topic_minimi_forum_X = 5;

$sql = "SELECT COUNT(post_id) as user_posts_forum_x FROM " . POSTS_TABLE . " WHERE poster_id = {$user->data['user_id']} WHERE forum_id = $posts_minimi_forums_X";
$result = $db->sql_query($sql);
$user_posts_forum_x = (int) $db->sql_fetchfield('user_posts_forum_x');
$db->sql_freeresult($result);

$sql = "SELECT COUNT(topic_id) as user_topics_forum_x FROM " . TOPICS_TABLE . " WHERE topic_poster = {$user->data['user_id']} WHERE forum_id = $topics_minimi_forums_X";
$result = $db->sql_query($sql);
$user_topics_forum_x = (int) $db->sql_fetchfield('user_topics_forum_x');
$db->sql_freeresult($result);

$template->assign_vars(array(
    'USER_POSTS'            => $user->data['user_posts'],
    'POSTS_MINIMI'            => $posts_totali_minimi,
    'USER_POSTS_FORUM_X'    => $user_posts_forum_x,
    'POSTS_MINIMI_FORUM_X'    => $posts_minimi_forum_X,
    'USER_TOPICS_FORUM_X'    => $user_topics_forum_x,
    'TOPICS_MINIMI_FORUM_X'    => $topic_minimi_forum_x
));

?>
Questo invece è il codice occorrente nel template:

Codice: Seleziona tutto

Posts: {USER_POSTS} <!-- IF USER_POSTS < POSTS_MINIMI -->[{POSTS_MINIMI}]<!-- ENDIF --><br />
Posts in forum X: {USER_POSTS_FORUM_X} <!-- IF USER_POSTS_FORUM_X < POSTS_MINIMI_FORUM_X -->[{POSTS_MINIMI_FORUM_X}]<!-- ENDIF --><br />
Topic in forum X: {USER_TOPICS_FORUM_X} <!-- IF USER_TOPICS_FORUM_X < TOPICS_MINIMI_FORUM_X -->[{TOPICS_MINIMI_FORUM_X}]<!-- ENDIF -->
Ho inserito

Codice: Seleziona tutto

$posts_totali_minimi = 10000;
$topic_minimi_forum_120 = 1;
$topic_minimi_forum_214 = 30;
$topic_minimi_forum_198 = 300;

$sql = "SELECT COUNT(topic_id) as user_topics_forum_x FROM " . TOPICS_TABLE . " WHERE topic_poster = {$user->data['user_id']} WHERE forum_id = $topics_minimi_forums_120";
$result = $db->sql_query($sql);
$user_topics_forum_120 = (int) $db->sql_fetchfield('user_topics_forum_120');
$db->sql_freeresult($result);

$sql = "SELECT COUNT(topic_id) as user_topics_forum_x FROM " . TOPICS_TABLE . " WHERE topic_poster = {$user->data['user_id']} WHERE forum_id = $topics_minimi_forums_214";
$result = $db->sql_query($sql);
$user_topics_forum_214 = (int) $db->sql_fetchfield('user_topics_forum_214');
$db->sql_freeresult($result);

$sql = "SELECT COUNT(topic_id) as user_topics_forum_x FROM " . TOPICS_TABLE . " WHERE topic_poster = {$user->data['user_id']} WHERE forum_id = $topics_minimi_forums_198";
$result = $db->sql_query($sql);
$user_topics_forum_198 = (int) $db->sql_fetchfield('user_topics_forum_198');
$db->sql_freeresult($result);

$template->assign_vars(array(
    'USER_POSTS'            => $user->data['user_posts'],
    'POSTS_MINIMI'            => $posts_totali_minimi,
    'USER_TOPICS_FORUM_X'    => $user_topics_forum_120,
    'TOPICS_MINIMI_FORUM_X'    => $topic_minimi_forum_120,
    'USER_TOPICS_FORUM_X'    => $user_topics_forum_214,
    'TOPICS_MINIMI_FORUM_X'    => $topic_minimi_forum_214,
    'USER_TOPICS_FORUM_X'    => $user_topics_forum_198,
    'TOPICS_MINIMI_FORUM_X'    => $topic_minimi_forum_198
));

 
Nel file common.php (questa cosa deve funzionare in tutte le pagine), ma mi dà errore di sintassi sql.
Ho sbagliato qualche cosa?

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Una piccola cosa

Messaggio da Carlo » 09/01/2010, 15:09

Uhm.. ti consiglio di inserirlo nel file includes/functions.php. Comunque a quale delle 3 query ti dà errore?
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Una piccola cosa

Messaggio da BMercer » 09/01/2010, 15:12

C'era una "Line 1" e un "Where forum id" mi pare.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Una piccola cosa

Messaggio da Carlo » 09/01/2010, 15:16

Ho notato che le variabili sono tipo:

Codice: Seleziona tutto

$topics_minimi_forum_120
mentre nella query le hai modificate così:

Codice: Seleziona tutto

$topics_minimi_forums_120
Ovvero aggiungendo una S a "forum".
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Una piccola cosa

Messaggio da BMercer » 09/01/2010, 15:28

Ho inserito questo

Codice: Seleziona tutto

$posts_totali_minimi = 10000;
$topics_minimi_forum_120 = 1;
$topics_minimi_forum_214 = 30;
$topics_minimi_forum_198 = 300;

$sql = "SELECT COUNT(topic_id) as user_topics_forum_120 FROM " . TOPICS_TABLE . " WHERE topic_poster = {$user->data['user_id']} WHERE forum_id = $topics_minimi_forum_120";
$result = $db->sql_query($sql);
$user_topics_forum_120 = (int) $db->sql_fetchfield('user_topics_forum_120');
$db->sql_freeresult($result);

$sql = "SELECT COUNT(topic_id) as user_topics_forum_214 FROM " . TOPICS_TABLE . " WHERE topic_poster = {$user->data['user_id']} WHERE forum_id = $topics_minimi_forum_214";
$result = $db->sql_query($sql);
$user_topics_forum_214 = (int) $db->sql_fetchfield('user_topics_forum_214');
$db->sql_freeresult($result);

$sql = "SELECT COUNT(topic_id) as user_topics_forum_198 FROM " . TOPICS_TABLE . " WHERE topic_poster = {$user->data['user_id']} WHERE forum_id = $topics_minimi_forum_198";
$result = $db->sql_query($sql);
$user_topics_forum_198 = (int) $db->sql_fetchfield('user_topics_forum_198');
$db->sql_freeresult($result);

$template->assign_vars(array(
    'USER_POSTS'            => $user->data['user_posts'],
    'POSTS_MINIMI'            => $posts_totali_minimi,
    'USER_TOPICS_FORUM_X'    => $user_topics_forum_120,
    'TOPICS_MINIMI_FORUM_X'    => $topics_minimi_forum_120,
    'USER_TOPICS_FORUM_X'    => $user_topics_forum_214,
    'TOPICS_MINIMI_FORUM_X'    => $topics_minimi_forum_214,
    'USER_TOPICS_FORUM_X'    => $user_topics_forum_198,
    'TOPICS_MINIMI_FORUM_X'    => $topics_minimi_forum_198
)); 
In funcions.php alla fine e mi ha dato un errore alle line 3200 circa (mentre il codice era alla 4000 più o meno).
Allora l'ho preso e l'ho messo all'inizio, e mi ha dato fatal error alla linea che dice

Codice: Seleziona tutto

$result = $db->sql_query($sql); 
Che cosa sta succedendo?

Rispondi

Torna a “Supporto MODs”

Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti