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

Bump argomento esteso

Cerchi una MOD? Chiedi in questo forum.
Questa sezione è supportata dagli utenti del forum, pertanto lo Staff potrebbe non eseguire tali richieste.
Angolo
Leader Traduttori
Leader Traduttori
Messaggi: 7237
Iscritto il: 11/03/2011, 17:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.6.18
Database: MySQL 5.6.33-log
Contatta:

Bump argomento esteso

Messaggio da Angolo » 05/04/2012, 12:52

Attualmente, la funzione Bump argomento del phpBB3, può essere utilizzata solo da chi è intervenuto nell'argomento stesso.

Sapete se esiste una MOD, o è possibile creare una MOD tale che gli amministratori (e i moderatori globali), possano attuare il bump argomento, anche se non sono intervenuti nell'argomento in questione? Senza limiti?


Ho cercato sul com, e ho trovato info... ma frammentarie e inconcludenti... perché riferite a versioni vecchie.
E troppo forte inoltre, l'impressione di qualcosa di sperimentale.

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Bump argomento esteso

Messaggio da Barrnet » 05/04/2012, 15:12

Non so se funziona: prova a inviare un messaggio, fare un bump e poi cancellarlo: il messaggio verrà cancellato ma il bump dovrebbe rimanere...

Angolo
Leader Traduttori
Leader Traduttori
Messaggi: 7237
Iscritto il: 11/03/2011, 17:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.6.18
Database: MySQL 5.6.33-log
Contatta:

Re: Bump argomento esteso

Messaggio da Angolo » 05/04/2012, 16:46

No, perché non appena si invia il messaggio, deve passare x tempo prima di fare il bump... quindi è inattuabile.

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Bump argomento esteso

Messaggio da Barrnet » 05/04/2012, 16:53

Allora penso che basti mettere un "bypass" al controllo del bump (ovvero: è accessibile solo a chi ha postato) per chi è amministratore e moderatore, non saprei come fare però: meglio che attendi Micogian o Carlo.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Bump argomento esteso

Messaggio da Micogian » 05/04/2012, 19:10

Non mi sono mai interessato del bump. Cosa fa ? cambia la data del post ?
Non penso ci siano problemi ad aggirare l'ostacolo, devo capire prima cosa fa realmente.

Angolo
Leader Traduttori
Leader Traduttori
Messaggi: 7237
Iscritto il: 11/03/2011, 17:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.6.18
Database: MySQL 5.6.33-log
Contatta:

Re: Bump argomento esteso

Messaggio da Angolo » 05/04/2012, 20:02

Porta in primo piano l'argomento indicando la data dello stesso Bump.

Bump = porta in primo piano, producendo un up di fatto. Sì... modifica la data.

Es: http://www.phpbbitalia.net/forum/richie ... tml#p43907

L'argomento era di Febbraio...

Il file di riferimento, dovrebbe essere il posting.php

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Bump argomento esteso

Messaggio da Micogian » 05/04/2012, 21:13

Allora, da quello che ho capito il bump è legato all'user che ha creato il topic, a quello che ha postato per ultimo e all'intervallo stabilito per il bump nel PCA.
La funzione che fa questi controlli è bump_topic_allowed() e si trova nel file functions_content.php.
E' questa:

Codice: Seleziona tutto

/**
* Bump Topic Check - used by posting and viewtopic
*/
function bump_topic_allowed($forum_id, $topic_bumped, $last_post_time, $topic_poster, $last_topic_poster)
{
	global $config, $auth, $user;

	// Check permission and make sure the last post was not already bumped
	if (!$auth->acl_get('f_bump', $forum_id) || $topic_bumped)
	{
		return false;
	}

	// Check bump time range, is the user really allowed to bump the topic at this time?
	$bump_time = ($config['bump_type'] == 'm') ? $config['bump_interval'] * 60 : (($config['bump_type'] == 'h') ? $config['bump_interval'] * 3600 : $config['bump_interval'] * 86400);

	// Check bump time
	if ($last_post_time + $bump_time > time())
	{
		return false;
	}

	// Check bumper, only topic poster and last poster are allowed to bump
	if ($topic_poster != $user->data['user_id'] && $last_topic_poster != $user->data['user_id'])
	{
		return false;
	}

	// A bump time of 0 will completely disable the bump feature... not intended but might be useful.
	return $bump_time;
}
Ora, guardando la function si evince che ci sono delle condizioni per ottenere un risultato "true".
Prima di tutto ci sono i permessi, poi viene il controllo dell'intervallo: avviene solo se la somma dell'ultimo timestamp(last_post_time) + l'intervallo stabilito del bump (bump_time) è inferiore alla data attuale (time)
L'ultimo controllo è che se l'utente connesso (user_id) è diverso da chi ha creato il topic (poster_id) o dall'utente che ha postato per ultimo (last_topic_poster) il risultato è "false", quindi non compare il link "bump" nel topic.

Per aggirare l'ostacolo si può intervenire sull'ultima fase, quella del controllo dell'utente, questa:

Codice: Seleziona tutto

	if ($topic_poster != $user->data['user_id'] && $last_topic_poster != $user->data['user_id'])
	{
		return false;
	}
Il trucco sta nell'inserire una nuova condizione che escluda il "false" per un determinato "user".
Mettiamo che l'user da abilitare sia il '99', il codice diventa:

Codice: Seleziona tutto

	if ($topic_poster != $user->data['user_id'] && $last_topic_poster != $user->data['user_id'])
	{
                if ($user->data{'user_id'] != '99')
                {
		return false;
                }
	}
che in sostanza vuol dire che il valore "false" viene assegnato solo se l'utente non è il '99'.
Il risultato dovrebbe essere che l'utente '99' avrà a disposizione il link BUMP alla fine del topic, salvo che non ci siano le altre limitazioni.

Angolo
Leader Traduttori
Leader Traduttori
Messaggi: 7237
Iscritto il: 11/03/2011, 17:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.6.18
Database: MySQL 5.6.33-log
Contatta:

Re: Bump argomento esteso

Messaggio da Angolo » 05/04/2012, 21:51

A te devono dare il Nobel del php. Funziona.

Ho attuato questa variante, che pare funzionare:

Codice: Seleziona tutto

if ($topic_poster != $user->data['user_id'] && $last_topic_poster != $user->data['user_id'])
    {
        if ($user->data['group_id'] != 'ID_Gruppo')
        {
        return false;
        }
    }

L'unica cosa che mancherebbe è il testo di avviso del bump, nel messaggio. Lo puoi vedere nell'esempio prima linkato:
Ultimo bump di Angolo effettuato il giovedì 5 aprile 2012, 20:00.
Viene effettuato il bump, viene registrato il log, viene anche modificata la data del messaggio, ma non viene visualizzato il messaggio citato. Si può fare qualcosa?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Bump argomento esteso

Messaggio da Micogian » 05/04/2012, 22:38

Nella tabella topics viene aggiunto '1' al campo "topic_bump", nel campo "topic_bumper" viene inserito l'user_id e viene cambiata la data relativa a "last_topic_time".
Da qualche parte ho visto il messaggio, probabile che dipenda sempre dall'user, ci devo riguardare meglio.

EDIT:
Non mi sono chiare alcune cose, forse dipende da qualcosa che viene creata dal file posting.
Il messaggio poi deriva da questa parte del file viewtopic.php

Codice: Seleziona tutto

	// Bump information
	if ($topic_data['topic_bumped'] && $row['post_id'] == $topic_data['topic_last_post_id'] && isset($user_cache[$topic_data['topic_bumper']]) )
	{
		// It is safe to grab the username from the user cache array, we are at the last
		// post and only the topic poster and last poster are allowed to bump.
		// Admins and mods are bound to the above rules too...
		$l_bumped_by = sprintf($user->lang['BUMPED_BY'], $user_cache[$topic_data['topic_bumper']]['username'], $user->format_date($topic_data['topic_last_post_time'], false, true));
	}
	else
	{
		$l_bumped_by = '';
	}
ma non riesco a capire quale valore manchi per creare il messaggio.
Se nella condizione IF metto l'user o il group il messaggio lo crea ma lo mette in tutti i posts.
Ho l'impressione che ruoti tutto intorno a $user_cache

Angolo
Leader Traduttori
Leader Traduttori
Messaggi: 7237
Iscritto il: 11/03/2011, 17:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.6.18
Database: MySQL 5.6.33-log
Contatta:

Re: Bump argomento esteso

Messaggio da Angolo » 06/04/2012, 0:52

Sì, c'è un riferimento nel posting.php.
Ma la tua modifica funziona perfettamente così. Mancherebbe solo al visulizzazione dell'ora del Bump.

Il commento condizionale del viewtopic.html, relativo alla questione è:

Codice: Seleziona tutto

<!-- IF postrow.BUMPED_MESSAGE -->
Cioè... terra terra... se il messaggio è stato.. "bumpato" :lol: allora visualizza.

Il messaggio viene "bumpato", ma non viene visualizzato l'avviso...

Rispondi

Torna a “Richiesta MOD”

Chi c’è in linea

Visitano il forum: Nessuno e 31 ospiti