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.O
La 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 pattern
nmenu[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!
The Coven ↗
Raja Dunia ↗
Neverness to Everness ↗
World of Tanks ↗