Avatar di scheda e mini avatar
Avatar di scheda e mini avatar postato il 23/02/2023 09:53:15 nel forum programmazione, open source e hosting
Buonsalve a tutti, sono sempre io che mi ingarbuglio in errori piuttosto banali da cui non riesco a venirne a capo. Come sempre preciso che utilizzo l'ultima versione di GDRCD, ovvero la 5.6.
Detto ciò, ho un piccolo problema in cui sbatto la fronte fin dall'inizio e che a questo punto devo risolvere perchè buona parte del lavoro è stata fatta. Dunque, come da titolo, riguarda l'avatar e il mini avatar di scheda che vorrei impostare con un'immagine default.
Ho già cambiato dal database il predefinito con tanto di immagine che offre la land base, giusto per fare una prova, ovvero empty.png
Risultato: nel modifica di scheda, in entrambi i form appare empty.png di default ma a conti fatti, l'immagine in scheda o del mini avatar non viene "presa".
Quindi ho ben pensato che servisse un richiamo nella pagina scheda proprio all'altezza del ritratto immagine e qui riporto la parte di codice che ho provato a modificare.
<div class="ritratto_avatar">
<?php
if (empty($record['url_img']) === false) {
$immagine_avatar = $record['url_img'];
} else {
$immagine_avatar = 'empty.png';
}
?>
<img src="imgs/<?php echo gdrcd_filter('fullurl', $personaggio['url_img']); ?>/imgs/avatars/<?php echo $immagine_avatar ?>" class="ritratto_avatar_immagine" />
</div>
Sono piuttosto sicura che l'inghippo sia qui o che servano altri richiami in altre parti della pagina probabilmente. Ma appunto, modificando solo il database non è cambiato niente.
Confido in qualche anima pia che sia così gentile da darmi qualche dritta. Ricordo sempre che mi arrangio da sola con tutti gli aiuti del forum e che non sono, ahimè, una programmatrice.
Ringrazio fin da subito chi avrà voglia di aiutare questa povera anima in pena XD
Pagine → 1
23/02/2023 10:37:41
Ciao Londonstar,
se mi mandi, in qualche modo, il file cerco di sistemarlo. Solo con un estratto di codice, faccio fatica.
hai effettuato modifiche al file originale della versione di GDRCD?
23/02/2023 10:57:09
Hai ragionissima, ti incollo tutta la prima parte di codice anche se non ho modificato nulla del codice originale, ad eccezione delle abilità che ho spostato in un'altra categoria della scheda del personaggio. Per il resto è rimasto uguale.
<div class="pagina_scheda">
<?php
/* HELP: E' possibile modificare la scheda agendo su scheda.css nel tema scelto,
* oppure sostituendo il codice che segue la voce "Scheda del personaggio"
*/
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
if(isset($_REQUEST['pg']) === false) {
echo '<div class="error">'.gdrcd_filter('out', $MESSAGE['error']['unknown_character_sheet']).'</div>';
exit();
}
$query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5
FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza
WHERE personaggio.nome = '".gdrcd_filter('in', $_REQUEST['pg'])."'";
$personaggi = gdrcd_query($query, 'result');
//Se il personaggio non esiste
if(gdrcd_query($personaggi, 'num_rows') == 0) {
echo '<div class="error">'.gdrcd_filter('out', $MESSAGE['error']['unknown_character_sheet']).'</div>';
exit();
}
$personaggio = gdrcd_query($personaggi, 'fetch');
$bonus_oggetti = gdrcd_query("SELECT SUM(oggetto.bonus_car0) AS BO0, SUM(oggetto.bonus_car1) AS BO1, SUM(oggetto.bonus_car2) AS BO2, SUM(oggetto.bonus_car3) AS BO3, SUM(oggetto.bonus_car4) AS BO4, SUM(oggetto.bonus_car5) AS BO5
FROM oggetto JOIN clgpersonaggiooggetto ON oggetto.id_oggetto = clgpersonaggiooggetto.id_oggetto
WHERE clgpersonaggiooggetto.nome = '".gdrcd_filter('in', $_REQUEST['pg'])."' AND clgpersonaggiooggetto.posizione > ".ZAINO."");
//Controllo esilio, se esiliato non visualizzo la scheda
if($personaggio['esilio'] > strftime('%Y-%m-%d')) {
echo '<div class="warning">'.gdrcd_filter('out', $personaggio['nome']).' '.gdrcd_filter('out', $personaggio['cognome']).' '.gdrcd_filter('out', $MESSAGE['warning']['character_exiled']).' '.gdrcd_format_date($personaggio['esilio']).' ('.$personaggio['motivo_esilio'].' - '.$personaggio['autore_esilio'].')</div>';
if($_SESSION['permessi'] >= GAMEMASTER) { ?>
<div class="panels_box">
<div class="form_gioco">
<form action="main.php?page=scheda_modifica&pg=<?php echo gdrcd_filter('url', $_REQUEST['pg']) ?>" method="post">
<input type="hidden" value="<?php echo strftime('%Y'); ?>" name="year" />
<input type="hidden" value="<?php echo strftime('%m'); ?>" name="month" />
<input type="hidden" value="<?php echo strftime('%d'); ?>" name="day" />
<input type="hidden" value="<?php gdrcd_filter('out', $MESSAGE['interface']['sheet']['modify_form']['unexile']); ?>" name="causale" />
<input type="hidden" value="exile" name="op" />
<div class="form_label">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['sheet']['modify_form']['unexile']); ?>
</div>
<div class="form_submit">
<input type="submit" value="<?php echo gdrcd_filter('out', $MESSAGE['interface']['forms']['submit']); ?>" />
</div>
</form>
</div>
</div>
<?php
}
exit();
}
?>
<div class="page_title">
<h2><?php echo gdrcd_filter('out', $MESSAGE['interface']['sheet']['page_name']); ?></h2>
</div>
<div class="page_body">
<?php
/** * Controllo e avviso che è ora di cambiare password
* @author Blancks
*/
if($PARAMETERS['mode']['alert_password_change'] == 'ON') {
$six_months = 15552000;
$ts_signup = strtotime($personaggio['data_iscrizione']);
$ts_lastpass = (int) strtotime($personaggio['ultimo_cambiopass']);
if($ts_lastpass + $six_months < time() && $personaggio['nome'] == $_SESSION['login']) {
$message = ($ts_signup + $six_months < time()) ? $MESSAGE['warning']['changepass'] : $MESSAGE['warning']['changepass_signup'];
echo '<div class="warning">'.$message.'</div>';
}
}
?>
<div class="menu_scheda"><!-- Menu scheda -->
<?php include ('scheda/menu.inc.php'); ?>
</div>
<div class="page_body">
<div class="ritratto_nome">
<span class="ritratto_nome_nome">
<?php echo gdrcd_filter('out', $personaggio['nome']); ?>
<!--Immagine/descrizione -->
</span>
<span class="ritratto_nome_cognome">
<?php echo gdrcd_filter('out', $personaggio['cognome']); ?>
</span>
</div>
<div class="doppio-box">
<div class="ritratto"><!-- nome, ritratto, ultimo ingresso -->
<!--<div class="titolo_box">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['sheet']['box_title']['portrait']); ?>
</div>-->
<div class="ritratto_avatar">
<?php
if (empty($record['url_img']) === false) {
$immagine_avatar = $record['url_img'];
} else {
$immagine_avatar = 'empty.png';
}
?>
<img src="imgs/<?php echo gdrcd_filter('fullurl', $personaggio['url_img']); ?>/imgs/avatars/<?php echo $immagine_avatar ?>" class="ritratto_avatar_immagine" />
</div>
</div>
<!-- nome, ritratto, ultimo ingresso, abiti portati -->
Oltretutto, ho anche capito che il codice inserito da me, ovvero quello che ho postato di sopra è sbagliato perchè non permettono la "cattura" nemmeno delle immagini personalizzate in scheda. Mi spiego meglio: le immagini esterne che dovrebbero sostituire l'avatar di default, quelle che dovrebbero inserire gli utenti una volta registrati in maniera personalizzata, non vengono riconosciute.
23/02/2023 11:14:58
Ciao!
prova così, mi pare ci sia un errore quando nell'if(empty)
ho fatto un paio di correzioni, vedi se va..
<div class="pagina_scheda">
<?php
/* HELP: E' possibile modificare la scheda agendo su scheda.css nel tema scelto,
* oppure sostituendo il codice che segue la voce "Scheda del personaggio"
*/
/********* CARICAMENTO PERSONAGGIO ***********/
//Se non e' stato specificato il nome del pg
if(isset($_REQUEST['pg']) === false) {
echo '<div class="error">'.gdrcd_filter('out', $MESSAGE['error']['unknown_character_sheet']).'</div>';
exit();
}
$query = "SELECT personaggio.*, razza.sing_m, razza.sing_f, razza.id_razza, razza.bonus_car0, razza.bonus_car1, razza.bonus_car2, razza.bonus_car3, razza.bonus_car4, razza.bonus_car5
FROM personaggio LEFT JOIN razza ON personaggio.id_razza=razza.id_razza
WHERE personaggio.nome = '".gdrcd_filter('in', $_REQUEST['pg'])."'";
$personaggi = gdrcd_query($query, 'result');
//Se il personaggio non esiste
if(gdrcd_query($personaggi, 'num_rows') == 0) {
echo '<div class="error">'.gdrcd_filter('out', $MESSAGE['error']['unknown_character_sheet']).'</div>';
exit();
}
$personaggio = gdrcd_query($personaggi, 'fetch');
$bonus_oggetti = gdrcd_query("SELECT SUM(oggetto.bonus_car0) AS BO0, SUM(oggetto.bonus_car1) AS BO1, SUM(oggetto.bonus_car2) AS BO2, SUM(oggetto.bonus_car3) AS BO3, SUM(oggetto.bonus_car4) AS BO4, SUM(oggetto.bonus_car5) AS BO5
FROM oggetto JOIN clgpersonaggiooggetto ON oggetto.id_oggetto = clgpersonaggiooggetto.id_oggetto
WHERE clgpersonaggiooggetto.nome = '".gdrcd_filter('in', $_REQUEST['pg'])."' AND clgpersonaggiooggetto.posizione > ".ZAINO."");
//Controllo esilio, se esiliato non visualizzo la scheda
if($personaggio['esilio'] > strftime('%Y-%m-%d')) {
echo '<div class="warning">'.gdrcd_filter('out', $personaggio['nome']).' '.gdrcd_filter('out', $personaggio['cognome']).' '.gdrcd_filter('out', $MESSAGE['warning']['character_exiled']).' '.gdrcd_format_date($personaggio['esilio']).' ('.$personaggio['motivo_esilio'].' - '.$personaggio['autore_esilio'].')</div>';
if($_SESSION['permessi'] >= GAMEMASTER) { ?>
<div class="panels_box">
<div class="form_gioco">
<form action="main.php?page=scheda_modifica&pg=<?php echo gdrcd_filter('url', $_REQUEST['pg']) ?>" method="post">
<input type="hidden" value="<?php echo strftime('%Y'); ?>" name="year" />
<input type="hidden" value="<?php echo strftime('%m'); ?>" name="month" />
<input type="hidden" value="<?php echo strftime('%d'); ?>" name="day" />
<input type="hidden" value="<?php gdrcd_filter('out', $MESSAGE['interface']['sheet']['modify_form']['unexile']); ?>" name="causale" />
<input type="hidden" value="exile" name="op" />
<div class="form_label">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['sheet']['modify_form']['unexile']); ?>
</div>
<div class="form_submit">
<input type="submit" value="<?php echo gdrcd_filter('out', $MESSAGE['interface']['forms']['submit']); ?>" />
</div>
</form>
</div>
</div>
<?php
}
exit();
}
?>
<div class="page_title">
<h2><?php echo gdrcd_filter('out', $MESSAGE['interface']['sheet']['page_name']); ?></h2>
</div>
<div class="page_body">
<?php
/** * Controllo e avviso che è ora di cambiare password
* @author Blancks
*/
if($PARAMETERS['mode']['alert_password_change'] == 'ON') {
$six_months = 15552000;
$ts_signup = strtotime($personaggio['data_iscrizione']);
$ts_lastpass = (int) strtotime($personaggio['ultimo_cambiopass']);
if($ts_lastpass + $six_months < time() && $personaggio['nome'] == $_SESSION['login']) {
$message = ($ts_signup + $six_months < time()) ? $MESSAGE['warning']['changepass'] : $MESSAGE['warning']['changepass_signup'];
echo '<div class="warning">'.$message.'</div>';
}
}
?>
<div class="menu_scheda"><!-- Menu scheda -->
<?php include ('scheda/menu.inc.php'); ?>
</div>
<div class="page_body">
<div class="ritratto_nome">
<span class="ritratto_nome_nome">
<?php echo gdrcd_filter('out', $personaggio['nome']); ?>
<!--Immagine/descrizione -->
</span>
<span class="ritratto_nome_cognome">
<?php echo gdrcd_filter('out', $personaggio['cognome']); ?>
</span>
</div>
<div class="doppio-box">
<div class="ritratto"><!-- nome, ritratto, ultimo ingresso -->
<!--<div class="titolo_box">
<?php echo gdrcd_filter('out', $MESSAGE['interface']['sheet']['box_title']['portrait']); ?>
</div>-->
<div class="ritratto_avatar">
<?php
if (!empty($personaggio['url_img'])) {
$immagine_avatar = $personaggio['url_img'];
} else {
$immagine_avatar = 'empty.png';
}
?>
<img src="imgs/<?php echo gdrcd_filter('fullurl', $personaggio['url_img']); ?>/imgs/avatars/<?php echo $immagine_avatar ?>" class="ritratto_avatar_immagine" />
</div>
</div>
<!-- nome, ritratto, ultimo ingresso, abiti portati -->
23/02/2023 11:34:27
Niente da fare ç_ç persiste lo stesso errore, ovvero non solo non riconosce empty.png di default da database ma spariscono anche le eventuali immagini di avatar in scheda già modificate dai possibili utenti. Ma ti ringrazio tantissimo per il tentativo!
23/02/2023 11:52:43
credo che allora il problema sia qui.
proprio nel tag img.
prova.. chiaramente, dipende molto da dove sono inserite le immagini, in quali cartelle
if (!empty($personaggio['url_img'])) {
$immagine_avatar = $personaggio['url_img'];
} else {
$immagine_avatar = 'imgs/empty.png'; //qui sono dubbioso che questo path sia corretto.
}
echo '<img src=".$immagine_avatar." class="ritratto_avatar_immagine" />';
?>
23/02/2023 12:26:06
Ho provato e riprovato anche con il percorso... ç_ç non so, voi dopo aver cambiato direttamente dal database come avete fatto?
23/02/2023 13:02:36
A quanto pare, come avevo già preventivato, era un'aggiunta più semplice di quel che in realtà ho pescato io ahahahaha XD adesso funziona! Mi sono complicata la vita con il richiamo quando bastava aggiungere una sciocchezza che però mi ha fatto impazzire. Grazie carissima, adesso funziona la parte del richiamo in scheda. Per l'avatar piccolo, invece, ci smanetterò un po' e vediamo se riesco ad implementare qualche richiamo. Sicuramente sono interessata a quello dei presenti estesi, per il resto, ci si arrangia XD
Grazie a tutti di cuore per l'aiuto!
23/02/2023 15:26:42
Gentilissima come sempre! So dell'esistenza di quella discussione in forum e infatti l'inserimento del mini avatar tra i presenti l'ho fatto proprio seguendo passo passo quel post. Non ho ancora risolto purtroppo perchè il codice è molto simile a quello postato da te.
Ho anche sostituito il nome del png con empty. Il richiamo ad inizio pagina con personaggio.url_img_chat era già stato fatto quindi ho solo dato una ricontrollata ed effettivamente è presente. Ma ancora niente, forse devo andare nelle impostazioni dell'avatar di chat in un'altra pagina di codice? Il mistero si infittisce u.u
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
CRSED: F.O.A.D. ↗
Project Entropy ↗
Seconda Era ↗
World of the Sea Battle ↗
Foundation Galactic Frontier ↗
Fallen Gods ↗
Tiles Survive ↗
Storie di Agarthi ↗
Hero Wars ↗