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

[RISOLTO] "Auguri" nella Welcome Mod

Supporto MODs generale.
MarcoG
Utente
Utente
Messaggi: 90
Iscritto il: 13/01/2011, 22:56
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL(i) 5.1.58

[RISOLTO] "Auguri" nella Welcome Mod

Messaggio da MarcoG » 23/10/2011, 11:16

Ciao a tutti...
avrei una domanda...

ho installato questa mod per far apparire un'icona al compleanno (sono giusto 2 passaggi):
http://www.phpbb.com/community/viewtopic.php?t=981935

e a seguire la Welcome MOd:
http://www.phpbb.com/customise/db/mod/w ... n_index_2/

bene... stavo pensando... vorrei che il giorno del compleanno venisse mostrato un "tanti auguri" (o simile) anche nel pannello di benvenuto...
sapete dirmi come posso fare?
Ultima modifica di MarcoG il 24/10/2011, 21:47, modificato 1 volta in totale.

MarcoG
Utente
Utente
Messaggi: 90
Iscritto il: 13/01/2011, 22:56
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL(i) 5.1.58

Re: "Auguri" nella Welcome Mod

Messaggio da MarcoG » 24/10/2011, 12:10

ko, ve la rendo più facile...

stando alla mod del compleanno (nel viewtopic) devo aggiungere in viewtopic.php questo:

Codice: Seleziona tutto

// viewtopic birthday
				'viewtopic_birthday'	=> false,

Codice: Seleziona tutto

// viewtopic birthday
			$user_cache[$poster_id]['viewtopic_birthday'] = false;
			if ($config['allow_birthdays'] && !empty($row['user_birthday']))
			{
				list($bday_day, $bday_month) = array_map('intval', explode('-', $row['user_birthday']));

				if ($bday_day === (int) $now['mday'] && $bday_month === (int) $now['mon'])
				{
					$user_cache[$poster_id]['viewtopic_birthday'] = true;
				}
			}

Codice: Seleziona tutto

// viewtopic birthday
		'BIRTHDAY_IMG'		=> $user_cache[$poster_id]['viewtopic_birthday'] ? $user->img('icon_birthday', 'VIEWTOPIC_BIRTHDAY') : false,
il tutto in posti determinati naturalmente... quindi devo aggiungere al template:

Codice: Seleziona tutto

<!-- IF postrow.BIRTHDAY_IMG -->
		<dd>&nbsp;</dd>
		<dd>{postrow.BIRTHDAY_IMG}</dd>
		<!-- ENDIF -->
tutto il resto è già fatto in quanto ho la mod installata...

ora, ho provato a inserire nel funcions.php quello che andava nel viewtopic.php e nel template il resto, ma continuo a non vedere niente... dove sto sbagliando?

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: "Auguri" nella Welcome Mod

Messaggio da Micogian » 24/10/2011, 12:27

BIRTHDAY di chi ? e perchè nel viewtopic ?
Il viewtopic serve a visualizzare Topic e relativi Posts. Al limite ci potrebbe essere il controllo del compleanno degli utenti legati al Topic, non degli altri.
Non capisco.

MarcoG
Utente
Utente
Messaggi: 90
Iscritto il: 13/01/2011, 22:56
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL(i) 5.1.58

Re: "Auguri" nella Welcome Mod

Messaggio da MarcoG » 24/10/2011, 15:26

scusa ma mi devo essere spiegato male...

praticamente ho installato la mod sul compleanno che ho linkato sopra... praticamente mostra nei topic (con i dati dell'utente sulla destra) anche una torta di compleanno se è il suo compleanno, così che gli altri utenti lo sappiano.

Volevo inserire anche nel pannello di benvenuto questa funzione. Cioè volevo che apparisse una torta (che poi avrei cambiato con un "tanti auguri") nella welcome mod agli utenti che compiono il compleanno.
Ho così preso il codice della prima modifica tentando di adattarlo alla welcome mod.

ho preso ciò che la prima mod inseriva nel viewtopic.php e l'ho copiato nel functions.php (per averlo a disposizione nell'index) e quindi ho preso il codice del file html e l'ho messo con la welcome mod nell'indexbody (dove ho inserito la welcome mod).
Non ho nessun errore, ma non viene visualizzato il messaggio nella welcome anche se l'utente fa il compleanno quel giorno...invece si vede correttamente nei vari topic...
quindi sbaglio qualcosa con il codice della funzione (non nell'html perché se metto un qualsiasi testo - al posto della funzione if - si vede), ma non ho capito cosa...

In sostanza mi serve sapere cosa fare per far apparire un Tanti Auguri nella welcome mod quando qualcuno fa il compleanno...

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: "Auguri" nella Welcome Mod

Messaggio da Micogian » 24/10/2011, 18:21

Non si può portare un codice da un file ad un altro senza sapere che dati elabora.

La Welcome Mod viene inserita nel file index, vero ?
C'è già il controllo del compleanno nel file index.php, senza scomodare altre Mod si potrebbe intervenire nella elaborazione della Lista Compleanni.
Questo codice predispone la Lista degli utenti che compiono gli anni:

Codice: Seleziona tutto

// Generate birthday list if required ...
$birthday_list = '';
if ($config['load_birthdays'] && $config['allow_birthdays'])
{
	$now = getdate(time() + $user->timezone + $user->dst - date('Z'));
	$sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday
		FROM ' . USERS_TABLE . ' u
		LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)
		WHERE (b.ban_id IS NULL
			OR b.ban_exclude = 1)
			AND u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%'
			AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
	$result = $db->sql_query($sql);

	while ($row = $db->sql_fetchrow($result))
	{
		$birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);

		if ($age = (int) substr($row['user_birthday'], -4))
		{
			$birthday_list .= ' (' . ($now['year'] - $age) . ')';
		}
	}
	$db->sql_freeresult($result);
}
A questo punto basterebbe controllare se l'utente connesso è presente in questa lista e creare una variabile da utilizzare nel template:
trova la parte di codice

Codice: Seleziona tutto

$birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
Inserisci prima (o dopo, non cambia nulla)

Codice: Seleziona tutto

if ($user_data['user_id'] == $row['user_id'])
{
$template->assign_var('USER_BIRTHDAY', 'true');
}
Se l'utente compie gli anni la variabile USER_BIRTHDAY sara 'true' e nel template ci metti

Codice: Seleziona tutto

<!-- IF USER_BIRTHDAY -->il codice che visualizza la torta<!-- ENDIF -->
Non ho provato ma mi sembra plausibile.

MarcoG
Utente
Utente
Messaggi: 90
Iscritto il: 13/01/2011, 22:56
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL(i) 5.1.58

Re: "Auguri" nella Welcome Mod

Messaggio da MarcoG » 24/10/2011, 19:06

ok.. ho capito...e provato, ma qualcosa non funziona...

ecco il mio index - nella parte relativa - aggiungendo la modifica che mi hai indicato:
// Generate birthday list if required ...
$birthday_list = '';
if ($config['load_birthdays'] && $config['allow_birthdays'])
{
$now = getdate(time() + $user->timezone + $user->dst - date('Z'));
$sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday
FROM ' . USERS_TABLE . ' u
LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)
WHERE (b.ban_id IS NULL
OR b.ban_exclude = 1)
AND u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%'
AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')';
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
$birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
if ($user_data['user_id'] == $row['user_id'])
{
$template->assign_var('USER_BIRTHDAY', 'true');
}

if ($age = (int) substr($row['user_birthday'], -4))
{
$birthday_list .= ' (' . ($now['year'] - $age) . ')';
}
}
$db->sql_freeresult($result);
}
Ora... se io tolgo l'if e assegno solo il valore alla variabile, vedo ciò che devo vedere sul template (naturalmente di tutti), quindi nel template non ho sbagliato niente. L'errore sta nell'if che per qualche ragione non risulta verificato e quindi non assegna il valore true alla variabile se è il giorno del compleanno..

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: "Auguri" nella Welcome Mod

Messaggio da Micogian » 24/10/2011, 20:04

E' un errore stupido che a volte mi scappa, la variabile che stabilisce l'utente connesso è $user->data['user_id'], non $user_data

Quindi $user->data['user_id'] è l'utente connesso mentre $row['user_id'] è l'utente che viene aggiunto alla Lista dei Compleanni. Se i due user_id combaciano la Variabile è "true"

MarcoG
Utente
Utente
Messaggi: 90
Iscritto il: 13/01/2011, 22:56
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL(i) 5.1.58

Re: "Auguri" nella Welcome Mod

Messaggio da MarcoG » 24/10/2011, 21:46

Perfetto, funziona alla grande ;)

sei grande :ugeek:

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: "Auguri" nella Welcome Mod

Messaggio da Micogian » 24/10/2011, 21:50

Sono contento.
Come hai visto con due righette hai risolto.
A volte non serve installare Mod complicate e che soprattutto non si capiscono.
Basta un pò di conoscenza di come funziona il Forum e un pò di fantasia e il gioco è fatto.

Il consiglio che vi posso dare è che quando si fa una Modifica bisognerebbe cercare di capire quello che fa, inserire dei codici solo copiandoli non serve a nulla.

MarcoG
Utente
Utente
Messaggi: 90
Iscritto il: 13/01/2011, 22:56
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQL(i) 5.1.58

Re: [RISOLTO] "Auguri" nella Welcome Mod

Messaggio da MarcoG » 24/10/2011, 22:32

lo so.. ma purtroppo, come puoi immaginare, spesso il tempo che si può dedicare ad un sito è molto limitato.. fra lavoro e altro mi ritrovo a fare mille modifiche tutte insieme..

comunque grazie ancora, negli ultimi giorni mi hai risolto tantissimi problemi, e se hai bisogno di qualcosa non esitare a contattarmi ;)

Rispondi

Torna a “Supporto MODs”

Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti