MediaWiki:Common.js
From MalveraWiki
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
mw.hook('wikipage.content').add(function ($content) {
$content.find('.tooltip-wrapper[data-tooltip-tables]').each(function () {
var $wrapper = $(this);
var tablesStr = $wrapper.data('tooltip-tables');
if (!tablesStr) return;
var $tooltip = $wrapper.find('.custom-tooltip').empty();
// --- Obrazek i nazwa z parametrów ---
var imageWiki = $wrapper.data('tooltip-image');
var nameText = $wrapper.data('tooltip-name');
if (imageWiki) {
// Tworzymy kontener obrazka
var $imgContainer = $('<div class="tooltip-item-image" style="text-align:center; margin-bottom:3px;"></div>');
// Wstawiamy raw wiki-link jako HTML, MediaWiki go zrenderuje
$imgContainer.html(imageWiki);
$tooltip.append($imgContainer);
}
if (nameText) {
$tooltip.append('<div class="tooltip-item-name" style="text-align:center; font-weight:bold; margin-bottom:3px;">'+nameText+'</div>');
}
// --- Tutaj generujemy tabele ---
var tables = tablesStr.split('##');
tables.forEach(function(tableDef) {
var parts = tableDef.split('{{!}}');
if (parts.length < 2) return;
var header = parts[0].trim();
var rowsStr = parts[1].trim();
if (!rowsStr) return;
var rows = rowsStr.split(';');
var $tableContainer = $('<div class="tooltip-table-container"></div>');
if (header) {
$tableContainer.append('<div class="tooltip-table-header">'+header+'</div>');
}
var $table = $('<table class="wikitable sortable"></table>');
$table.append('<thead><tr><th>Amount</th><th>Chance</th></tr></thead>');
var $tbody = $('<tbody></tbody>');
rows.forEach(function(row) {
var cols = row.split(',');
if (cols.length < 2) return;
var $tr = $('<tr></tr>');
cols.forEach(function(c){ $tr.append('<td>'+c.trim()+'</td>'); });
$tbody.append($tr);
});
$table.append($tbody);
$tableContainer.append($table);
$tooltip.append($tableContainer);
});
});
});
