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

Welcome MOD

Supporto MODs generale.
Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: Welcome MOD

Messaggio da Haku » 21/08/2010, 21:18

Evvai,grande bingo!
Allora posso aspettare un'aggiornamento?
Ma pensa te se bisogna diventare matti...

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: Welcome MOD

Messaggio da Micogian » 21/08/2010, 21:34

Trovato.

apri il file includes/functions.php
trova il codice:

Codice: Seleziona tutto

	// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
Aggiungi dopo

Codice: Seleziona tutto

		'AVATAR_COR'			=> $user->data['user_avatar'],
A questo punto hai la variabile AVATAR_COR che contiene il nome del file avatar. Se l'utente non ha l'avatar la variabile è vuota.
Partendo da questo dato hai la possibilità di creare questa condizione:

Codice: Seleziona tutto

<!-- IF AVATAR_COR == '' --><img src="{T_THEME_PATH}/images/Guest.gif" alt="" /><!-- ELSE -->{USER_AVATAR}<!-- ENDIF -->
Che vuol dire: "se la variabile AVATAR_COR è vuota inserisci l'avatar Guest.gif, altrimenti metti quello di default."

Attenzione che {T_THEME_PATH} è la cartella del "tema" dello stile che usi, non la cartella degli avatar, quindi Guest.gif deve stare lì dentro.

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: Welcome MOD

Messaggio da Haku » 22/08/2010, 1:46

Hai fatto centro!
Piccola modifica che funziona alla grande!
In gamba come al solito e non finirò mai di ringraziarvi ;)

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: Welcome MOD

Messaggio da Haku » 15/02/2011, 1:05

Per non aprire un topic inutile, riesumo questo thread per chiedere alcune delucidazioni.
Con xir stavamo lavorando sull'autoridimensionamento nel caso gli avatar fossero più grandi della tabella e quindi sbordavano.
Infatti abbiamo aggiunto questo file alla welcome mod:

Codice: Seleziona tutto

       
    // funzione autoriduzione avatar - sir xiradorn
    $my_avatar = $user->data['user_avatar'];
    $my_avatar_type = $user->data['user_avatar_type'];
    $my_avatar_width = $user->data['user_avatar_width'];
    $my_avatar_height = $user->data['user_avatar_height'];

    if ($my_avatar_width > 100 || $my_avatar_height > 100)
    {
       if ($my_avatar_width > $my_avatar_height)
       {
          $my_avatar_height = ($my_avatar_height * 100) / $my_avatar_width;
          $my_avatar_width = 100;
       }
       elseif ($my_avatar_height > $my_avatar_width)
       {
          $my_avatar_width = ($my_avatar_width * 100) / $my_avatar_height;
          $my_avatar_height = 100;
       }
    }
    // funzione autoriduzione avatar - sir xiradorn

    //END Welcome Mod
E poi abbiamo sotituito questo:

Codice: Seleziona tutto

    'USER_AVATAR'               => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
Con questo:

Codice: Seleziona tutto

            //'USER_AVATAR'               => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
          'USER_AVATAR'               => get_user_avatar($my_avatar, $my_avatar_type, $my_avatar_width, $my_avatar_height),
La cosa, funziona:
Immagine
Questo avatar, di grosse dimensioni, viene ridimensionato, però, se un'altro utente ne usa di 150x150 (dimensioine massima impostata da me), non si ridimensiona (vedi immagine):
Immagine

Per caso voi, avete idea su come poter correggere questa cosa?
Io ho modifica un pò variando i parametri in php, ma non ne ho tratto alcuna conclusione.
Scrivo qui perchè magari se va in conflitto qualcosa, e avendo lavorato con bingo alla variante dell'avatar, potevo ricevere un aiuto o qualche delucidazione in merito ^^

Grazie ;)

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: Welcome MOD

Messaggio da Haku » 20/02/2011, 20:16

Volevo fare un UP perchè è abbastanza urgente ^^

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: Welcome MOD

Messaggio da Haku » 19/08/2011, 14:11

Ragazzi, nulla?

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: Welcome MOD

Messaggio da Micogian » 19/08/2011, 14:21

Non so che modifica agli Avatar tu abbia fatto, non ricordo se era una modifica alla Mod oppure ai file di sistema.
L'ultima modifica che ho fatto nel mio sito riguarda gli Avatar dei Topics e quelli degli MP che avendo meno spazio a disposizione debordavano dalla colonna profilo.
Le modifiche sono queste (ovviamente le dimensioni le puoi modificare), ma non so se influiscono sulla Mod Welcome, io non la uso:

1) Ridimensionare nei Topics gli Avatar superiori a 140 pixel.
Aprire il file viewtopic.php

Trova la parte di codice:

Codice: Seleziona tutto

// Posts are stored in the $rowset array while $attach_list, $user_cache
// and the global bbcode_bitfield are built
while ($row = $db->sql_fetchrow($result))
{
Aggiungere la seguente parte di codice:

Codice: Seleziona tutto

	// Ridimensiona Avatar se superiore di 140 px
	if ($row['user_avatar_width'] > 140 )
	{
	$row['user_avatar_height'] = ($row['user_avatar_height'] * '140' /  $row['user_avatar_width']);
	$row['user_avatar_width'] = 140 ;   
	}
	// fine ridimensiona Avatar
2) Ridimensionare nei Messaggi Privati gli Avatar superiori a 100 pixel.
Aprire il file includes/ucp/ucp_pm_viewmessage.php

Trova la parte di codice:

Codice: Seleziona tutto

	if (!function_exists('get_user_avatar'))
	{
		include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
	}
Aggiungi la seguente parte che fissa in 100pixel la larghezza dell'Avatar:

Codice: Seleziona tutto

	// Ridimensiona avatar MP
	if ($user_row['user_avatar_width'] > 100 )
	{
	$user_row['user_avatar_height'] = ($user_row['user_avatar_height'] * '100' /  $user_row['user_avatar_width']);
	$user_row['user_avatar_width'] = 100 ;	
	}
	// fine ridimensiona avatar MP
Nei Messaggi Privati, se l'Avatar supera la larghezza di 100 pixel viene ridimensionato.

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: Welcome MOD

Messaggio da Haku » 19/08/2011, 17:45

Intanto grazie dei codici, sono davvero molti utili e li metterò in atto sicuramente =D

Allora, le modifiche da me fatte per la welcome MOD, sono queste:
file index.php
trova

Codice: Seleziona tutto

    // Assign index specific vars
e dopo ho aggiunto:

Codice: Seleziona tutto

    // BEGIN Welcome Mod
    //--Welcome_Mod--get the hour number-->
    $date = $user->format_date(time(), 'H');

    if ($user->data['is_registered'])
    {
        $u_user_name = get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']);
    }
    else
    {
        $u_user_name = $user->lang['WELCOME_GUEST'];
    }   

    switch (true)
    {
            case ($date < 1):
                // if the hour is 6pm-11pm (18-23)
                $s_welcome = sprintf($user->lang['GOOD_NIGHT'], $u_user_name);;
            break;
         
          case ($date < 4):
                // if the hour is 1-3 am
                $s_welcome = sprintf($user->lang['UP_LATE'], $u_user_name);
            break;
           
            case ($date < 8):
                // if the hour is 4-7 am
                $s_welcome = sprintf($user->lang['UP_EARLY'], $u_user_name);
            break;
           
            case ($date < 12):
                // if the hour is 8-11 am
                $s_welcome = sprintf($user->lang['GOOD_MORNING'], $u_user_name);
            break;
           
            case ($date < 18):
                // if the hour is 12-5pm (12-17)
                $s_welcome = sprintf($user->lang['GOOD_AFTERNOON'], $u_user_name);
            break;
           
            case ($date < 24):
                // if the hour is 6pm-11pm (18-23_
                $s_welcome = sprintf($user->lang['GOOD_EVENING'], $u_user_name);;
            break;
    }

    // how long a member for
    $member_for = '';
    if ($user->data['is_registered'] && !$user->data['is_bot'])
    {
        $member_length = time() - $user->data['user_regdate'];
        $years = $months = $days = 0;
        $member_for = '';
        if ($member_length)
        {   
            if ($member_length >= 31536000)
            {
                $years = floor($member_length / 31536000);
                $member_length = $member_length - ($years * 31536000);
                $member_for .= $years > 1 ? ($years . '&nbsp;' . $user->lang['WELCOME_YEARS'] . ', ') : ($years . '&nbsp;' . $user->lang['WELCOME_YEAR'] . ', ');
            }
            $months = floor($member_length / 2628000);
            if ($months)
            {
                $months = $months > 1 ? ($months . '&nbsp;' . $user->lang['WELCOME_MONTHS'] . ', ') : ($months . '&nbsp;' . $user->lang['WELCOME_MONTHS'] . ', ');
                $member_length = $member_length - ($months * 2628000);
                $member_for .= $months;
            }
            $days = floor($member_length / 86400);
            if ($days)
            {
                $days = $days > 1 ? ($days . '&nbsp;' . $user->lang['WELCOME_DAYS']) : ($days . '&nbsp;' . $user->lang['WELCOME_DAY']);
                $member_for .= $days;
            }       
        }
    }
    //END Welcome Mod
trova:

Codice: Seleziona tutto

    'LEGEND'      => $legend,
e dopo ho aggiunto:

Codice: Seleziona tutto

        // BEGIN Welcome Mod   
            'S_WELCOME'                   => $s_welcome,
            'S_JOINED_DATE'               => $user->lang['JOINED'] . ':&nbsp;' . $user->format_date($user->data['user_regdate']),
            'USER_AVATAR'               => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
            'MEMBER_FOR'               => (!empty($member_for)) ? $user->lang['MEMBER_FOR'] . '&nbsp;' . $member_for : '',
           // END Welcome Mod 
language/it/common.php
prima di:

Codice: Seleziona tutto

    ?>
ho aggiunto:

Codice: Seleziona tutto

        // BEGIN Welcome Mod
        $lang = array_merge($lang, array(
            'UP_LATE'             => 'Sei in ritardo %1$s, Dove ti eri addormentato?!',
            'UP_EARLY'             => 'Buon Giorno %1$s, Venuto presto stamattina eh?!',
            'GOOD_MORNING'           => 'Buon Giorno %1$s, Che mattina meravigliosa!',
            'GOOD_AFTERNOON'       => 'Buon Pomeriggio %1$s, Finalmente sei qui',
            'GOOD_EVENING'           => 'Buona Sera %1$s, E\' un piacere vederti qui',
           'GOOD_NIGHT'           => 'Buona Notte %1$s, E\' ora di andare a letto',
            'MEMBER_FOR'           => 'Iscritto da:',
            'WELCOME_GUEST'           => 'Ospite',
            'WELCOME_HOUR'           => 'Ora',
            'WELCOME_HOURS'           => 'Ore',
           'WELCOME_DAY'           => 'Giorno',
            'WELCOME_DAYS'           => 'Giorni',
            'WELCOME_MONTH'           => 'Mese',
            'WELCOME_MONTHS'       => 'Mesi',
           'WELCOME_YEAR'           => 'Anno',
            'WELCOME_YEARS'           => 'Anni',
        ));
        // END Welcome Mod
styles/prosilver/template/index_body.html
dopo:

Codice: Seleziona tutto

    <!-- INCLUDE overall_header.html -->
ho aggiunto:

Codice: Seleziona tutto

    <!-- IF not S_IS_BOT -->
    <div class="forabg">
             <div class="inner"><span class="corners-top"><span></span></span>
             <ul class="topiclist">
                <li class="header">
                   <dl class="icon">
                      <dt>Benvenuti in {SITENAME}</dt>
                                                  </dl>
                </li>
             </ul>
             <ul class="topiclist forums">
             <li>
                <dl>
                   <dd style="padding:5px; text-align: center; border:none;">
                   <!-- IF USER_AVATAR -->{USER_AVATAR}<!-- ELSE --><img src="{T_THEME_PATH}/images/no_avatar.gif"/><!-- ENDIF -->
                   </dd>
                   <dd class="lastpost" style="padding:5px; width:40%;">
                   <p>{S_WELCOME}</p>
                   <span><!-- IF S_USER_LOGGED_IN -->{LAST_VISIT_DATE}<br />{CURRENT_TIME}<!-- ELSE -->{CURRENT_TIME}<!-- ENDIF --><!-- IF S_USER_LOGGED_IN --><br /><br />{S_JOINED_DATE}<br />{MEMBER_FOR}<!-- ENDIF --></span>
                   </dd>
                   <dd class="lastpost" style="padding:5px; width:36%;"><span>{TOTAL_POSTS} &bull; {TOTAL_TOPICS}<br />{TOTAL_USERS}<br />{NEWEST_USER}
                   <!-- IF S_DISPLAY_ONLINE_LIST --><br /><br />{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<!-- ENDIF --></span>
                   </dd>
                </dl>
             </li>
             </ul>
    <span class="corners-bottom"><span></span></span></div></div>
    <!-- ENDIF -->
Sostituito poi questo:

Codice: Seleziona tutto

    <p class="{S_CONTENT_FLOW_END}<!-- IF S_USER_LOGGED_IN --> rightside<!-- ENDIF -->"><!-- IF S_USER_LOGGED_IN -->{LAST_VISIT_DATE}<!-- ELSE -->{CURRENT_TIME}<!-- ENDIF --></p>
        <!-- IF U_MCP --><p>{CURRENT_TIME} <br />[&nbsp;<a href="{U_MCP}">{L_MCP}</a>&nbsp;]</p><!-- ELSEIF S_USER_LOGGED_IN --><p>{CURRENT_TIME}</p><!-- ENDIF -->
Con questo:

Codice: Seleziona tutto

    <!-- IF U_MCP --><p>[&nbsp;<a href="{U_MCP}">{L_MCP}</a>&nbsp;]</p><!-- ENDIF -->
Fin qui la MOD è strutturata in questo modo, niente di più.
La modifica dell'autoresize abbiamo fatto così:
In index.php ho sostituito:

Codice: Seleziona tutto

    //END Welcome Mod
con:

Codice: Seleziona tutto

       
    // funzione autoriduzione avatar
    $my_avatar = $user->data['user_avatar'];
    $my_avatar_type = $user->data['user_avatar_type'];
    $my_avatar_width = $user->data['user_avatar_width'];
    $my_avatar_height = $user->data['user_avatar_height'];

    if ($my_avatar_width > 100 || $my_avatar_height > 100)
    {
       if ($my_avatar_width > $my_avatar_height)
       {
          $my_avatar_height = ($my_avatar_height * 100) / $my_avatar_width;
          $my_avatar_width = 100;
       }
       elseif ($my_avatar_height > $my_avatar_width)
       {
          $my_avatar_width = ($my_avatar_width * 100) / $my_avatar_height;
          $my_avatar_height = 100;
       }
    }
    // funzione autoriduzione avatar

    //END Welcome Mod
Trova:

Codice: Seleziona tutto

    'USER_AVATAR'               => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
sostituito con:

Codice: Seleziona tutto

            //'USER_AVATAR'               => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
          'USER_AVATAR'               => get_user_avatar($my_avatar, $my_avatar_type, $my_avatar_width, $my_avatar_height),
Se non sbaglio poi c'era la piccola modifichina effettuata da te per avere due avatar differenti, uno di benvenuto, e dopo il login quello standard per chi ha nessun avatar...si trova topic dietro comunque.
Se mi dai una mano te ne sarei gratissimo bingo (anche agli altri)...perchè fino adesso non ho ricavato un ragno dal buco °_°

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: Welcome MOD

Messaggio da Micogian » 19/08/2011, 18:33

Secondo me, senza bisogno di creare un valore $my_avatar_width si potrebbe modificare il valore di default $user->data['avatar_width'] prima della creazione della variabile.
Il codice da me postato va bene ma va messo nel file index.php con una piccola modifica, al posto di $row usare $user->data:

Codice: Seleziona tutto

   // Ridimensiona Avatar se superiore di 140 px
   if ($user->data['user_avatar_width'] > 140 )
   {
   $user->data[user_avatar_height'] = ($user->data['user_avatar_height'] * 140 /  $user->data['user_avatar_width']);
   $user->data['user_avatar_width'] = 140 ;   
   }
   // fine ridimensiona Avatar
Adesso non ricordo se la variabile sia $user->data['avatar_width'] oppure $user->data['user_avatar_width']
Attenzione, è importante che venga prima modificato il valore "height" che viene calcolato in percentiale del valore "width" e poi stabilire la dimensione di "width".
Con questa modifica fatta prima della creazione delle variabili la variabile USER_AVATAR non ha bisogno di essere modificata perchè prende le nuove dimensioni.

Codice: Seleziona tutto

    'USER_AVATAR'               => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
In sostanza, se le dimensioni le modifichi prima la Variabile resta quella originale.

Avatar utente
Haku
Utente
Utente
Messaggi: 2529
Iscritto il: 22/09/2009, 22:36
Sesso: Maschio
Versione: 3.0.9
Server: UNIX/Linux
Contatta:

Re: Welcome MOD

Messaggio da Haku » 20/08/2011, 14:18

Quindi fammi capire...in index.php al posto di:

Codice: Seleziona tutto

           
        // funzione autoriduzione avatar
        $my_avatar = $user->data['user_avatar'];
        $my_avatar_type = $user->data['user_avatar_type'];
        $my_avatar_width = $user->data['user_avatar_width'];
        $my_avatar_height = $user->data['user_avatar_height'];

        if ($my_avatar_width > 100 || $my_avatar_height > 100)
        {
           if ($my_avatar_width > $my_avatar_height)
           {
              $my_avatar_height = ($my_avatar_height * 100) / $my_avatar_width;
              $my_avatar_width = 100;
           }
           elseif ($my_avatar_height > $my_avatar_width)
           {
              $my_avatar_width = ($my_avatar_width * 100) / $my_avatar_height;
              $my_avatar_height = 100;
           }
        }
        // funzione autoriduzione avatar

        //END Welcome Mod
devo inserire il tuo:

Codice: Seleziona tutto

       // Ridimensiona Avatar se superiore di 140 px
       if ($user->data['user_avatar_width'] > 140 )
       {
       $user->data[user_avatar_height'] = ($user->data['user_avatar_height'] * 140 /  $user->data['user_avatar_width']);
       $user->data['user_avatar_width'] = 140 ;   
       }
       // fine ridimensiona Avatar
e poi al posto di:

Codice: Seleziona tutto

                //'USER_AVATAR'               => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
              'USER_AVATAR'               => get_user_avatar($my_avatar, $my_avatar_type, $my_avatar_width, $my_avatar_height),
questo?

Codice: Seleziona tutto

        'USER_AVATAR'               => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),

Rispondi

Torna a “Supporto MODs”

Chi c’è in linea

Visitano il forum: Nessuno e 108 ospiti