Avatar di scheda e mini avatar postato il 23/02/2023 09:53:15 nel forum programmazione, gdrcd e open source
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>
Pagine → 1 2
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?
Claudio
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 -->
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 -->
Claudio
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" />';
?>
Claudio
23/02/2023 12:18:29
Ciao! Io credo sia sbagliato il percorso per richiamare l'immagine!
Io ce l'ho in: imgs/avatars/empty.png
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 12:40:53
Ti copio il mio pezzetto di codice che ho dentro scheda.inc.php alla riga dell'avatar:
<div class="ritratto_avatar">
<img src="<?php echo !empty(gdrcd_filter('fullurl', $personaggio['url_img']))? $personaggio['url_img'] : 'imgs/avatars/avatar-standard.png' ?>" class="ritratto_avatar_immagine" />
</div>
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 13:58:33
Figurati! Poi se non hai risolto, appena torno a casa ti passo anche quello 😉❤️
Discussione seguita da
Pagine → 1 2
Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
Star Trek: Equilibrium: MQ6: Fronte di liberazione
✋😟
Abbiamo rilevato che stai usando un software per bloccare la pubblicità!
L'utilizzo di GDR-online.com è gratuito da oltre 18 anni ma è necessario coprire i costi per mantenerlo online... ti chiediamo di aiutarci disabilitando il blocco dei banner pubblicitari.
Togliere il blocco significa fare in modo che GDR-online.com possa continuare a far conoscere piccoli giochi amatoriali gratuitamente e offrire un servizio sempre migliore e adatto alle esigenze dei suoi giocatori!
Se questo avviso continua ad apparire nonostante tu abbia autorizzato il portale:
- Verifica nelle opzioni che venga disattivato AdBlock in tutto il dominio gdr-online.com e non solo in una pagina
- Controlla di non avere fra le estensioni installate altre analoghe ad AdBlock, come AdBlock Plusbr, ublock origin, ecc.
- Probabilmente sul tuo PC è installato un Antivirus che ha anche funzioni di blocco pubblicità
- Se usi Firefox impostare il "Blocco Contenuti" su "Normale" e non su "Restrittivo". Per farlo clicca sull'icona dello scudo vicino all'URL e clicca su "Disattiva Blocco per questo sito"
- Prova a premere CTRL + F5, riloggarti e vedi se il problema persiste