Pagina 1 di 2

User color MOD

Inviato: 07/01/2010, 20:58
da BMercer
Poi volevo chiedervi un'ultima cosa, oltre alle altre 2 in sospeso:

http://www.phpbb.com/community/viewtopi ... e&start=75
Come vedete in questo topic, ho chiesto all'autore una serie di codici:

1. Di permettere l'uso della mod solo a chi ha più di una X di posts totali
2. Di permettere l'uso della mod solo a chi ha più di una X di post totali in un determinato forum
3. Di permettere l'uso della mod solo a chi ha più di una X di topic totali in un determinato forum

Per le prime 2 mi ha dato supporto, mentre per l'ultima mi ha detto che devo runnare qualche codice SQL per il conteggio.
Se non è troppo un problema, qualcuno potrebbe insegnarmi per la 3?

Re: User color MOD

Inviato: 07/01/2010, 21:14
da Carlo
Qual'è la risposta che ti ha dato per la seconda richiesta?

Re: User color MOD

Inviato: 07/01/2010, 22:03
da BMercer

Re: User color MOD

Inviato: 07/01/2010, 22:40
da Carlo
Potresti riportarmela qui?
Perchè non mi carica la pagina...

Re: User color MOD

Inviato: 08/01/2010, 17:05
da BMercer
mtrs ha scritto:For X posts limit, it is simple,
After installing this mod

Open
includes/ucp/ucp_profile.php
Find

Codice: Seleziona tutto

if ($auth->acl_get('u_change_colour'))
Replace with

Codice: Seleziona tutto

if ($auth->acl_get('u_change_colour') && $user->data['user_posts'] > 999)
For X posts limit in some forums
Open
includes/ucp/ucp_profile.php
Find

Codice: Seleziona tutto

if ($auth->acl_get('u_change_colour'))
Replace with

Codice: Seleziona tutto

	// Count users post in $X forum ID
		$X = 555; //forum_id where posts will be counted //change to an appropriate number you need
		$sql = 'SELECT COUNT(post_id) as posts_num
			FROM ' . POSTS_TABLE . '
			WHERE poster_id = ' . $user->data['user_id'] . ';
				AND forum_id = ' . $X;
		$result = $db->sql_query($sql);
		$user_posts_num = (int) $db->sql_fetchfield('posts_num');
		$db->sql_freeresult($result);
if ($auth->acl_get('u_change_colour') && $user_posts_num > 99 && $user->data['user_posts'] > 999)
Also you can use the user permissions to only allow certain users

Note: code is not tested, you need to test. Replace 99 and 999 number with your limit.

Re: User color MOD

Inviato: 08/01/2010, 17:15
da Carlo
La 3 e come la 2, l'unica differenza che la 2 conta i post e la 3 i topic. Giusto?

Re: User color MOD

Inviato: 08/01/2010, 18:19
da BMercer
Precisamente

Re: User color MOD

Inviato: 08/01/2010, 18:56
da Carlo
Al codice che ti ha comunicato l'autore della MOD, aggiungi:

Codice: Seleziona tutto

   // Count users topic in $X forum ID
      $fid_topics = 555; //forum_id where posts will be counted //change to an appropriate number you need
      $sql = 'SELECT COUNT(topic_id) as topics_num
         FROM ' . TOPICS_TABLE . '
         WHERE topic_poster = ' . $user->data['user_id'] . ';
            AND forum_id = ' . $fid_topics;
      $result = $db->sql_query($sql);
      $user_topics_num = (int) $db->sql_fetchfield('topics_num');
      $db->sql_freeresult($result);
E poi devi modificare così l'if:

Codice: Seleziona tutto

if ($auth->acl_get('u_change_colour') && $user_posts_num > 99 && $users_topics_num > 99 && $user->data['user_posts'] > 999)

Re: User color MOD

Inviato: 08/01/2010, 18:59
da BMercer
Gli avevo chiesto se si poteva cambiare solo "post" con "topic" nel codice suo e lui mi ha risposto che non si può fare e che serve runnare una query sql.
Senza offesa, ma sei sicuro del codice postato?

Re: User color MOD

Inviato: 08/01/2010, 19:22
da Carlo
Sì, certo.