Simple Machines Community Forum

SMF Support => Language Specific Support => Italiano (Italian) => Topic started by: ivanom. on January 06, 2013, 02:43:49 AM

Title: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 06, 2013, 02:43:49 AM
Si può impedire ad un utente di scegliere un avatar già utilizzato da qualcun altro, per evitare doppioni? Nel mio forum vedo che questa scelta si può fare anche se l'avatar è utilizzato già da qualcun altro... ???
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 06, 2013, 04:22:48 AM
Non esiste alcun modo (di default).
Se dai la possibilità di caricarli o di usare url esterne è sostanzialmente impossibile.
Se permetti solo avatar dalle gallerie si potrebbe fare qualcosa.
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 06, 2013, 04:43:50 AM
Sì in effetti mi interessa solo dalla galleria; cosa si può?
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 06, 2013, 05:03:05 AM
Ehhh...mah...potrebbe essere facile.

In Profile-Modify.php, cerca:
Code (find) Select
if ($value == 'none')
{

appena prima aggiungi:
Code (add before) Select
elseif ($value == 'server_stored' && allowedTo('profile_server_avatar'))
{
$profile_vars_avatar = strtr(empty($_POST['file']) ? (empty($_POST['cat']) ? '' : $_POST['cat']) : $_POST['file'], array('&' => '&'));
$profile_vars_avatar = preg_match('~^([\w _!@%*=\-#()\[\]&.,]+/)?[\w _!@%*=\-#()\[\]&.,]+$~', $profile_vars['avatar']) != 0 && preg_match('/\.\./', $profile_vars['avatar']) == 0 && file_exists($modSettings['avatar_directory'] . '/' . $profile_vars['avatar']) ? ($profile_vars['avatar'] == 'blank.gif' ? '' : $profile_vars['avatar']) : '';

$avatar_request = $smcFunc['db_query']('', '
SELECT COUNT(*)
FROM {db_prefix}members
WHERE avatar = {string:avatar_name}',
array(
'avatar_name' => $profile_vars_avatar,
)
);
if ($smcFunc['db_num_rows']($avatar_request) != 0)
fatal_lang_error('attachments_duplicate', 'critical');
}


Quindi in Errors.english.php aggiungi:
$txt['attachments_duplicate'] = 'Sorry, you cannot select this avatar because someone else is already using it.';
e relativa traduzione in Errors.italian.php e/o Errors.italian-utf8.php.

Codice non provato, quindi potrebbe anche non funzionare...
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 06, 2013, 01:31:31 PM
Perfetto :D come sempre. funziona! Grazie!
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 14, 2013, 02:41:39 AM
Scusa Emanuele ma non funziona più. quando cambio la scelta dell'avatar mi da sempre "si è verificatouner...." anche se l'avatr non è in uso da nessuno. Tra l'altro ho notato che non trovo più i file Errors.english.php  Errors.italian.php e Errors.italian-utf8.php.ma in che cartella sono, in /httpdocs/forum/Sources giusto?
Non è che sti problemi son dovuti a qualche mod che ho installato ultimam. (ho installato Ad Managment, Advanced Contact Form e Copyright and Footer Links)? ::)
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 14, 2013, 05:03:21 AM
Il messaggio d'errore completo sarebbe forse più utile. ;)

Quando tu cambi il tuo avatar ti da l'errore?
Nel log degli errori c'è per caso una descrizione più completa dell'errore stesso?

I file di lingua sono in Themes/default/languages.
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 14, 2013, 05:14:14 AM
Il log errori dà:
Tipo di errore: Critico
Applica filtro: Mostra solo i messaggi di errore di questo URL
http://psicologaonlinesalerno.it/forum/index.php?action=profile;area=forumprofile;u=1;save
Applica filtro: Mostra solo gli errori con lo stesso messaggio
Spiacenti, ma l'avatar scelto è utilizzato da un altro utente

il messaggio che esce (quando tento di cambiare avatar qualsiasi) è:
Si è verificato un errore!
Spiacenti, ma l'avatar scelto è utilizzato da un altro utente(la mia traduzione).
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 14, 2013, 05:44:29 AM
Ed invece quell'avatar non è in uso?
Sicuro?
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 14, 2013, 05:51:24 AM
Prova con:
elseif ($value == 'server_stored' && allowedTo('profile_server_avatar'))
{
$profile_vars_avatar = strtr(empty($_POST['file']) ? (empty($_POST['cat']) ? '' : $_POST['cat']) : $_POST['file'], array('&' => '&'));
$profile_vars_avatar = preg_match('~^([\w _!@%*=\-#()\[\]&.,]+/)?[\w _!@%*=\-#()\[\]&.,]+$~', $profile_vars['avatar']) != 0 && preg_match('/\.\./', $profile_vars['avatar']) == 0 && file_exists($modSettings['avatar_directory'] . '/' . $profile_vars['avatar']) ? ($profile_vars['avatar'] == 'blank.gif' ? '' : $profile_vars['avatar']) : '';

$avatar_request = $smcFunc['db_query']('', '
SELECT id_member
FROM {db_prefix}members
WHERE avatar = {string:avatar_name}',
array(
'avatar_name' => $profile_vars_avatar,
)
);
if ($smcFunc['db_num_rows']($avatar_request) != 0)
{
list($user_avat) = $smcFunc['db_fetch_row']($avatar_request);
if (allowedTo('admin_forum'))
fatal_lang_error('attachments_duplicate_admin', 'critical', array($user_avat));
fatal_lang_error('attachments_duplicate', 'critical');
}
}


ed aggiungi a Error.english:

$txt['attachments_duplicate'] = 'Sorry, you cannot select this avatar because is already in use by %1$s.';


Dovrebbe dirti chi sta usando l'avatar...spero (se sei admin).
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 14, 2013, 11:59:09 AM
Purtroppo non va, ho seguito alla lettera: ho sosituito i codici che mi hai dato ora con quelli della risposta precedente a questa  che mi hai inviato.
esce: si è verificato un errore e non appare più "Spiacenti, ma l'avatar scelto è utilizzato da un altro utente"(la mia traduzione). appare campo vuoto e un link "indietro" :'(
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 14, 2013, 12:35:44 PM
Sorry, sbagliato una riga... :-[

$txt['attachments_duplicate'] = 'Sorry, you cannot select this avatar because is already in use by %1$s.';

Cambiala in:
$txt['attachments_duplicate_admin'] = 'Sorry, you cannot select this avatar because is already in use by %1$s.';

Se traduci questa stringa, ricordati di mettere il %1$s, è importante. ;)

Ma lascia anche il precedente:
$txt['attachments_duplicate'] = 'Sorry, you cannot select this avatar because someone else is already using it.';
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 14, 2013, 01:54:36 PM
Scusami di nuovo ma mi dà lo stesso errore e mi dice in uso da utente 1 che sarei io admin (Sorry, you cannot select this avatar because is already in use by 1.). Se invece mi loggo con un fake 8) mi ridà lo stesso errore di prima "Spiacenti, ma l'avatar scelto è utilizzato da un altro utente". Però se da admin carico una mia immagine me la fa mettere...
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 14, 2013, 02:05:39 PM
AHHHH....ops...ovviamente tu stai cambiando qualcosa nel tuo profilo ed ogni volta che salvi quello di dice picche...
elseif ($value == 'server_stored' && allowedTo('profile_server_avatar'))
{
$profile_vars_avatar = strtr(empty($_POST['file']) ? (empty($_POST['cat']) ? '' : $_POST['cat']) : $_POST['file'], array('&' => '&'));
$profile_vars_avatar = preg_match('~^([\w _!@%*=\-#()\[\]&.,]+/)?[\w _!@%*=\-#()\[\]&.,]+$~', $profile_vars['avatar']) != 0 && preg_match('/\.\./', $profile_vars['avatar']) == 0 && file_exists($modSettings['avatar_directory'] . '/' . $profile_vars['avatar']) ? ($profile_vars['avatar'] == 'blank.gif' ? '' : $profile_vars['avatar']) : '';

$avatar_request = $smcFunc['db_query']('', '
SELECT id_member
FROM {db_prefix}members
WHERE avatar = {string:avatar_name}',
array(
'avatar_name' => $profile_vars_avatar,
)
);
list($user_avat) = $smcFunc['db_fetch_row']($request);
$smcFunc['db_free_result']($request);
if ($smcFunc['db_num_rows']($avatar_request) != 0 && $user_avat != $memID)
fatal_lang_error('attachments_duplicate', 'critical');
}
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 14, 2013, 02:23:07 PM
Niente da fare..non riesco a capire forse sbaglio qualcosa, adesso mi ritrovo questo in profile.modify:
      }
}
elseif ($value == 'server_stored' && allowedTo('profile_server_avatar'))
{
$profile_vars_avatar = strtr(empty($_POST['file']) ? (empty($_POST['cat']) ? '' : $_POST['cat']) : $_POST['file'], array('&' => '&'));
$profile_vars_avatar = preg_match('~^([\w _!@%*=\-#()\[\]&.,]+/)?[\w _!@%*=\-#()\[\]&.,]+$~', $profile_vars['avatar']) != 0 && preg_match('/\.\./', $profile_vars['avatar']) == 0 && file_exists($modSettings['avatar_directory'] . '/' . $profile_vars['avatar']) ? ($profile_vars['avatar'] == 'blank.gif' ? '' : $profile_vars['avatar']) : '';

$avatar_request = $smcFunc['db_query']('', '
SELECT id_member
FROM {db_prefix}members
WHERE avatar = {string:avatar_name}',
array(
'avatar_name' => $profile_vars_avatar,
)
);
list($user_avat) = $smcFunc['db_fetch_row']($request);
$smcFunc['db_free_result']($request);
if ($smcFunc['db_num_rows']($avatar_request) != 0 && $user_avat != $memID)
fatal_lang_error('attachments_duplicate', 'critical');
}
if ($value == 'none')
{


e in error.english questo:
<?php
// Version: 2.0; Errors

global $scripturl$modSettings;

$txt['attachments_duplicate'] = 'Sorry, you cannot select this avatar because someone else is already using it.';
$txt['attachments_duplicate_admin'] = 'Sorry, you cannot select this avatar because is already in use by %1$s.';
$txt['no_access'] = 'You are not allowed to access this section';

cosa non va?
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 15, 2013, 02:01:00 PM
P.s. questa volta il messaggio di errore è     Spiacenti, ma l'avatar scelto è utilizzato da un altro utente.( la mia traduzione)
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 15, 2013, 02:28:01 PM
elseif ($value == 'server_stored' && allowedTo('profile_server_avatar'))
{
$profile_vars_avatar = strtr(empty($_POST['file']) ? (empty($_POST['cat']) ? '' : $_POST['cat']) : $_POST['file'], array('&amp;' => '&'));
$profile_vars_avatar = preg_match('~^([\w _!@%*=\-#()\[\]&.,]+/)?[\w _!@%*=\-#()\[\]&.,]+$~', $profile_vars_avatar) != 0 && preg_match('/\.\./', $profile_vars_avatar) == 0 && file_exists($modSettings['avatar_directory'] . '/' . $profile_vars_avatar) ? ($profile_vars_avatar == 'blank.gif' ? '' : $profile_vars_avatar) : '';

$avatar_request = $smcFunc['db_query']('', '
SELECT id_member
FROM {db_prefix}members
WHERE avatar = {string:avatar_name}',
array(
'avatar_name' => $profile_vars_avatar,
)
);
list($user_avat) = $smcFunc['db_fetch_row']($request);
$smcFunc['db_free_result']($request);
if ($smcFunc['db_num_rows']($avatar_request) != 0 && $user_avat != $memID)
fatal_lang_error('attachments_duplicate', 'critical');
}

Testato in un posto, suggerito di usarlo in un altro... ::)
Sorry.
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: ivanom. on January 15, 2013, 02:42:29 PM
Ok funziona grazie!
Title: Re: Curiosità sulla scelta dell'avatar...
Post by: emanuele on January 15, 2013, 03:53:46 PM
ehm...no, non funziona...c'è ancora un errore (scusa, ma tra il fuoco di fila di cose che devo fare sto lasciando scadere il supporto...)
elseif ($value == 'server_stored' && allowedTo('profile_server_avatar'))
{
$profile_vars_avatar = strtr(empty($_POST['file']) ? (empty($_POST['cat']) ? '' : $_POST['cat']) : $_POST['file'], array('&amp;' => '&'));
$profile_vars_avatar = preg_match('~^([\w _!@%*=\-#()\[\]&.,]+/)?[\w _!@%*=\-#()\[\]&.,]+$~', $profile_vars_avatar) != 0 && preg_match('/\.\./', $profile_vars_avatar) == 0 && file_exists($modSettings['avatar_directory'] . '/' . $profile_vars_avatar) ? ($profile_vars_avatar == 'blank.gif' ? '' : $profile_vars_avatar) : '';

$avatar_request = $smcFunc['db_query']('', '
SELECT id_member
FROM {db_prefix}members
WHERE avatar = {string:avatar_name}',
array(
'avatar_name' => $profile_vars_avatar,
)
);
list($user_avat) = $smcFunc['db_fetch_row']($avatar_request);
if ($smcFunc['db_num_rows']($avatar_request) != 0 && $user_avat != $memID)
fatal_lang_error('attachments_duplicate', 'critical');
$smcFunc['db_free_result']($avatar_request);
}