GDRCD 5.4 - Problema pulsanti menù di gioco [RISOLTO!]
GDRCD 5.4 - Problema pulsanti menù di gioco [RISOLTO!] postato il 31/03/2017 18:50:20 nel forum programmazione, open source e hosting e modificato da total fantasy il 02/04/2017 23:47:55
Buongiorno. premettendo che nelle precedenti versioni non è mai stato un problema, stavolta stranamente al passaggio del mouse l'immagine che dovrebbe cambiare non funziona, facendo rimanere quella di base. Nel file config.inc.php:
$PARAMETERS['menu']['forum']['text'] = 'Bacheca';$PARAMETERS['menu']['forum']['url'] = 'main.php?page=forum';$PARAMETERS['menu']['forum']['image_file'] = 'p_bacheca.png';$PARAMETERS['menu']['forum']['image_file_onclick'] = 'p_bacheca1.png';
L'immagine p_bacheca1.png NON APPARE, mentre rimane visibile p_bacheca.png.Perchè? O.OLa pagina link_menu.inc.php NON E' STATA ALTERATA:<div class="pagina_link_menu"> <?php if ($PARAMETERS['mode']['gotomap_list'] == 'ON' && empty($params['no_gotomap_list'])) { $gotomap_list = array(); $result = gdrcd_query(" SELECT mappa_click.id_click, mappa_click.nome, mappa.id, mappa.nome AS nome_chat, mappa.chat, mappa.pagina, mappa.id_mappa_collegata FROM mappa_click LEFT JOIN mappa ON mappa.id_mappa = mappa_click.id_click", 'result'); if (gdrcd_query($result, 'num_rows') > 0) { while ($row = gdrcd_query($result, 'fetch')) { $gotomap_list[$row['nome'] . '|@|' . $row['id_click']][$row['id']] = array( 'nome' => $row['nome_chat'], 'chat' => $row['chat'], 'pagina' => $row['pagina'], 'mappa_collegata' => $row['id_mappa_collegata'] ); } gdrcd_query($result, 'free'); ?> <select id="gotomap" onchange="self.location.href=this.value;"> <?php foreach ($gotomap_list as $infoMap => $infoLocation) { $splitInfoMap = explode('|@|', $infoMap); ?> <option value="main.php?page=mappaclick&map_id=<?php echo $splitInfoMap[1]; ?>"<?php echo ($_SESSION['mappa'] == $splitInfoMap[1] && $_SESSION['luogo'] == -1) ? ' selected="selected"' : ''; ?> class="map"><?php echo $splitInfoMap[0]; ?></option> <?php if (is_array($infoLocation)) { foreach ($infoLocation as $idLoc => $infoLoc) { if (!empty($infoLoc['nome'])) { if ($infoLoc['chat'] != 0) { $valueLoc = 'dir=' . $idLoc . '&map_id=' . $splitInfoMap[1]; } else { if ($infoLoc['mappa_collegata'] != 0) { $valueLoc = 'page=mappaclick&map_id=' . $infoLoc['mappa_collegata']; } else { $valueLoc = 'page=' . $infoLoc['pagina']; } } ?> <option value="main.php?<?php echo $valueLoc; ?>"<?php echo ($_SESSION['luogo'] == $idLoc && $_SESSION['luogo'] != -1) ? ' selected="selected"' : ''; ?>>» <?php echo $infoLoc['nome']; ?></option> <?php $valueLoc = ''; } } } } ?> </select> <?php unset($gotomap_list); } } $mkey='menu'; if(!empty($params['menu_key'])){ $mkey=$params['menu_key']; } if(!empty($PARAMETERS['names']['gamemenu'][$mkey])) { ?> <!-- <div class="page_title"> <h2><?php/* echo gdrcd_filter('out', $PARAMETERS['names']['gamemenu'][$mkey]); */?></h2> </div> --> <?php } ?> <div class="page_body"><?php$raw_counter=0; foreach ($PARAMETERS[$mkey] as $key => $link_menu) { if (!empty($link_menu['url'])) { $content = ''; if (empty($link_menu['image_file'])) { if (!empty($link_menu['text'])) { $content .= '>' . gdrcd_filter('out', $link_menu['text']); } } elseif (!empty($link_menu['sprite'])) { $link_menu['class'] = (empty($link_menu['class']) ? 'sprite' : $link_menu['class'] . ' sprite'); $content = 'style="background-image: url(themes/' . $PARAMETERS['themes']['current_theme'] . '/imgs/' . $mkey . '/' . $link_menu['image_file'] . ')" alt="' . gdrcd_filter('out', $link_menu['text']) . '" title="' . gdrcd_filter('out', $link_menu['text']) . '">'; } else { if (empty($link_menu['image_file_onclick'])) { $img_up = $link_menu['image_file']; $img_down = $link_menu['image_file']; } else { $img_up = $link_menu['image_file']; $img_down = $link_menu['image_file_onclick']; } $content = ' onMouseOver="n' . $mkey . $raw_counter . '_over_button()" onMouseOut="n' . $mkey . $raw_counter . '_up_button()"><img src= "themes/' . $PARAMETERS['themes']['current_theme'] . '/imgs/' . $mkey . '/' . $link_menu['image_file'] . '" alt="' . gdrcd_filter('out', $link_menu['text']) . '" title="' . gdrcd_filter('out', $link_menu['text']) . '" name="n' . $raw_counter . '_buttonOne" />'; echo '<SCRIPT LANGUAGE="JavaScript"> if (document.images) { var n' . $mkey . $raw_counter . '_button1_up = new Image(); n' . $mkey . $raw_counter . '_button1_up.src = "themes/' . $PARAMETERS['themes']['current_theme'] . '/imgs/' . $mkey . '/' . $img_up . '"; var n' . $mkey . $raw_counter . '_button1_over = new Image(); n' . $mkey . $raw_counter . '_button1_over.src = "themes/' . $PARAMETERS['themes']['current_theme'] . '/imgs/' . $mkey . '/' . $img_down . '";} function n' . $mkey . $raw_counter . '_over_button() { if (document.images) { document["n' . $mkey . $raw_counter . '_buttonOne"].src = n' . $mkey . $raw_counter . '_button1_over.src;}} function n' . $mkey . $raw_counter . '_up_button() { if (document.images) { document["n' . $mkey . $raw_counter . '_buttonOne"].src = n' . $mkey . $raw_counter . '_button1_up.src}}</SCRIPT>'; } echo '<div class="link_menu"><a href="' . $link_menu['url'] . '" id="link_' . $mkey . '_' . $key . '"'; foreach ($link_menu as $k => $v) { if (!in_array($k, array('text', 'image_file', 'url', 'image_file_onclick', 'sprite'))) { echo $k . '="' . $v . '"'; } } echo $content . '</a></div>'; } $raw_counter++; }/*HELP: Il menu viene generato automaticamente attingendo dalle informazioni contenute in config.inc.php. Tutte le istruzioni su come usare e configurare i menù sono riportate nel file config.inc.php */ ?></div></div>
Sto impazzendo per una cosa che da sempre ha funzionato senza problemi (sulle vecchie versioni andava tutto bene).Davvero: ma n'do cavolo sta l'errore? O.O
Pagine → 1
31/03/2017 20:39:03
Ciao, apri la console del tuo browser e vedi se da qualche warning o/e error inerente a quella parte di javascript
01/04/2017 11:34:35 e modificato da total fantasy il 01/04/2017 11:35:25
Non mi segna errori o perlomeno nella mia ignoranza su javascript (su java sono uno ZERO totale lo ammetto). Questo è il codice riguardante uno dei tasti
<script language="JavaScript"> if (document.images) { var nmenu0_button1_up = new Image(); nmenu0_button1_up.src = "themes/advanced/imgs/menu/p_aggiorna.png"; var nmenu0_button1_over = new Image(); nmenu0_button1_over.src = "themes/advanced/imgs/menu/p_aggiorna1.png";} function nmenu0_over_button() { if (document.images) { document["nmenu0_buttonOne"].src = nmenu0_button1_over.src;}} function nmenu0_up_button() { if (document.images) { document["nmenu0_buttonOne"].src = nmenu0_button1_up.src}}</script>
02/04/2017 10:30:33
Ho testato personalmente lo script nel gdrcd 5.4 e devo dire che non funziona nemmeno a me. Più precisamente ho inserito entrambe le immagini della voce di menu nella cartella themes/tema/imgs/menu - ho impostato e verificato che root è corretta quindi l'immagine senza passaggio si vede, al passaggio del mouse sopra ho un errore nella console.
Questo perché è sbagliato il name del div il mio personale gdrcd 5.4 chiama i name dell'immagini con questo pattern
n[0-9]_buttonOne
la parte in grassetto corrisponde all'ordine della voce di menu. Ora nel javascript, generato ad ogni iterazione,viene richiesto di cambiare l'attributo src all'elemento del DOM che ha questo patternnmenu[0-9]_buttonOne
ovvio che non troverà mai riscontro.--Per risolvere apri il file link_menu.inc.php e cerca questa riga (circa 107)$link_menu['text']) . '" name="n' . $raw_counter . '_buttonOne" />';
e sostituiscila con$link_menu['text']) . '" name="nmenu' . $raw_counter . '_buttonOne" />';
ora dovrebbe andare
02/04/2017 23:47:40
Si, ora va bene, e ti ringrazio anche per come con chiarezza hai spiegato da cosa derivi l'errore.Sei stato gentilissimo buono a rendere! ^_^
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!