Witam, dziś wróciłem do skryptu MyBB i zacząłem pisać aplikacje. Zrobiłem ajax:modal wg. tego "poradnika":
https://github.com/kylefox/jquery-modal
Szablon panel_playersonline:
Kod:
<table border="0" cellspacing="0" cellpadding="5" class="tborder">
<thead>
<tr>
<td class="thead" colspan="4">
<div><strong>Gracze Online ({$aInformation['players']})</strong></div>
</td>
</tr>
</thead>
<tbody>
<tr>
<td class="tcat" align="center">ID</td>
<td class="tcat" align="center">Nick</td>
<td class="tcat" align="center">Punktów</td>
<td class="tcat" align="center">Poziom</td>
</tr>
{$panel_playersonline_row}
</tbody>
</table>
<script>$('a[rel="ajax:modal"]').click(function(event) {
$.ajax({
url: $(this).attr('href'),
success: function(newHTML, textStatus, jqXHR) {
$(newHTML).appendTo('body').modal();
},
error: function(jqXHR, textStatus, errorThrown) {
}
});
return false;
});</script>
panel_playersonline_row:
Kod:
<tr>
<td class="trow1" align="center">{$player['playerid']}</td>
<td class="trow1" align="center"><a href="{$mybb->settings['bburl']}/panel.php?module=main&controller=player&nick={$player['nickname']}" rel="ajax:modal">{$player['nickname']}</td>
<td class="trow1" align="center">{$player['score']}</td>
<td class="trow1" align="center">XXX</td>
</tr>
Oraz zawartość tej podstrony z hrefa:
Kod:
<div class='modal'>fsdfdsafds</div>
Proszę o pomoc
Nie korzystałem z tego liba, więc nie wypowiem się z czego może to wynikać, ale jeżeli chcesz je robić w ramach linków, to warto zastanowić się nad użyciem fancyboxa - też można i też się dobrze spisuje.
(16.07.2016, 22:44)Łukasz Tkacz napisał(a): [ -> ]Nie korzystałem z tego liba, więc nie wypowiem się z czego może to wynikać, ale jeżeli chcesz je robić w ramach linków, to warto zastanowić się nad użyciem fancyboxa - też można i też się dobrze spisuje.
Tutaj było napisane:
https://webboard.pl/thread-67696.html
Że MyBB korzysta z tego natywnie ;v
A konsola js cokolwiek wypluwa?
Ale po co kombinować? Skoro MyBB już robi coś takiego to wzoruj się na tym. Okienko dostrzeżeń, reputacji, gotowe rozwiązania, kopiuj - wklej.
No to zrobiłem kopiuj wklej,
panel.js
Kod:
var panel = {
init: function()
{
$(document).ready(function(){
});
},
show_stats: function(pid)
{
MyBB.popupWindow("/panel.php?module=main&controller=player&nick="+pid);
}
};
panel.init();
Kod:
<a href="javascript:panel.show_stats({$player['nickname']});">{$player['nickname']}</a>
Muszę przekazać nick gracza ale czasem mają w nicku
[] itp a przez to jest error
Kod:
SyntaxError: Unexpected identifier 'DRivER'. Expected ')' to end a argument list.
Kod:
<a href="javascript:panel.show_stats('{$player['nickname']}');">{$player['nickname']}</a>
Bo to ciąg znaków a nie wartość liczbowa.
No i tak samo jak z tamtym Ajax-modalem.
Kod:
<?php
/* MyBB 1.8 */
define("IN_MYBB", 1);
define('THIS_SCRIPT', 'panel.php');
require_once "./global.php";
add_breadcrumb('Panel Gracza', "panel.php");
/* Active Menu */
$controller = $_GET['controller'];
if (empty($controller)) {
$controller = "main";
}
$do = $_GET['do'];
if (empty($do)) {
$do = "main";
}
$panel = '<script>$( "#game_'.$controller.'" ).addClass( "active" );</script><script>$( "#do_'.$do.'" ).addClass( "active" );</script>';
/* Panel */
switch ($controller) {
case 'player':
eval("\$popup = \"".$templates->get("panel_modalplayer")."\";");
echo $popup;
break;
case 'groups':
$menu_bok = '<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=main" id="do_main">
<i class="fa fa-users"></i> Lista Gangów
</a>
</li>
<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=stats" id="do_stats">
<i class="fa fa-area-chart"></i> Statystyki Gangów
</a>
</li>';
break;
case 'players':
$menu_bok = '<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=main" id="do_main">
<i class="fa fa-users"></i> Szukaj gracza
</a>
</li>
<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=lists" id="do_lists">
<i class="fa fa-male"></i> Toplisty
</a>
</li>
<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=arena" id="do_arena">
<i class="fa fa-ship"></i> Areny DM
</a>
</li>
<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=bans" id="do_bans">
<i class="fa fa-ban"></i> Lista banów
</a>
</li>';
break;
default:
$menu_bok = '<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=main" id="do_main">
<i class="fa fa-users"></i> Gracze Online
</a>
</li>
<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=areachart" id="do_areachart">
<i class="fa fa-area-chart"></i> Statystyki Serwera
</a>
</li>
<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=globe" id="do_globe">
<i class="fa fa-globe"></i> Mapa Świata
</a>
</li>
<li>
<a href="'.$mybb->settings['bburl'].'/panel.php?module=main&controller='.$controller.'&do=chart" id="do_chart">
<i class="fa fa-line-chart"></i> Wykres Graczy
</a>
</li>';
switch ($do) {
case 'chart':
$panel .= 'xdddggffsdfgfgd';
break;
case 'globe':
$panel .= 'xdfsdasdffgddfsddd';
break;
case 'areachart':
$panel .= 'dfsfadssdaf';
break;
default:
require MYBB_ROOT."/panel/libs/SampQueryAPI.php";
$query = new SampQueryAPI('185.73.228.158', '7756');
if ($query->isOnline()) {
$aInformation = $query->getInfo();
$aPlayers = $query->getDetailedPlayers();
if (!is_array($aPlayers) || count($aPlayers) == 0) {
$error_code .= 'Brak graczy na serwerze.';
eval("\$panel .= \"".$templates->get("panel_error")."\";");
} else {
foreach($aPlayers as $player) {
eval("\$panel_playersonline_row .= \"".$templates->get("panel_playersonline_row")."\";");
}
eval("\$panel .= \"".$templates->get("panel_playersonline")."\";");
}
} else {
$error_code .= 'Brak odpowiedzi od serwera.';
eval("\$panel .= \"".$templates->get("panel_error")."\";");
}
break;
}
break;
}
/* Output */
eval("\$page = \"".$templates->get("panel_index")."\";");
output_page($page);
?>
.modal jest tam ale atrybut stylu go ukrywa
no i wlasnie dlatego mosisz miec to w innym ifie z
Kod:
eval("\$page = \"".$templates->get("panel_index")."\";");
output_page($page);
No to mam teraz tak:
Kod:
case 'player':
eval("\$popup = \"".$templates->get("panel_modalplayer")."\";");
break;
Kod:
if ($controller != 'player') {
eval("\$page = \"".$templates->get("panel_index")."\";");
output_page($page);
} else {
output_page($popup);
}
Ale modal nadal się nie pojawia