Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
| Baris 1.325: |
Baris 1.325: |
| }); | | }); |
| }); | | }); |
|
| |
| /* ==========================================================
| |
| 🧠 MIPPEDIA SMART-SEARCH PREVIEW (Contextual Suggestions)
| |
| Fungsi: Menampilkan saran otomatis berdasarkan artikel yang sedang dibaca
| |
| ========================================================== */
| |
| (function() {
| |
| $(document).ready(function() {
| |
| // 1. Fungsi ambil data artikel terkait dari halaman saat ini
| |
| function getContextualSuggestions() {
| |
| var suggestions = [];
| |
| // Ambil link internal dari paragraf pertama atau kategori
| |
| $('#mw-content-text p a').slice(0, 5).each(function() {
| |
| var title = $(this).attr('title');
| |
| var href = $(this).attr('href');
| |
| if (title && href && !href.includes(':')) {
| |
| suggestions.push({ title: title, url: href });
| |
| }
| |
| });
| |
| return suggestions;
| |
| }
| |
|
| |
| // 2. CSS untuk Styling Kotak Saran "Pintar"
| |
| $('<style>').text(`
| |
| .mip-smart-suggestion-box {
| |
| padding: 15px;
| |
| background: #fff;
| |
| }
| |
| .mip-suggest-item {
| |
| display: flex;
| |
| align-items: center;
| |
| padding: 10px;
| |
| border-bottom: 1px solid #eee;
| |
| cursor: pointer;
| |
| }
| |
| .mip-suggest-item:before {
| |
| content: '📄';
| |
| margin-right: 10px;
| |
| font-size: 16px;
| |
| }
| |
| .mip-suggest-title {
| |
| font-size: 14px;
| |
| color: #3498db;
| |
| font-weight: bold;
| |
| }
| |
| .mip-suggest-label {
| |
| font-size: 11px;
| |
| color: #777;
| |
| margin-bottom: 8px;
| |
| display: block;
| |
| text-transform: uppercase;
| |
| letter-spacing: 1px;
| |
| }
| |
| `).appendTo('head');
| |
|
| |
| // 3. Monitor pembukaan Overlay Pencarian (Mobile)
| |
| $(document).on('click', '.search-box, #searchIcon, .mw-ui-icon-minerva-search', function() {
| |
| // Tunggu sebentar sampai overlay pencarian mobile muncul
| |
| setTimeout(function() {
| |
| var $overlay = $('.search-content, .results');
| |
| var currentInput = $('.mw-ui-input:visible').val();
| |
|
| |
| // Cek jika kolom pencarian masih kosong (seperti di gambar lo)
| |
| if ($overlay.length && (!currentInput || currentInput.trim() === "")) {
| |
| var items = getContextualSuggestions();
| |
|
| |
| if (items.length > 0) {
| |
| var html = '<div id="mip-smart-results" class="mip-smart-suggestion-box">';
| |
| html += '<span class="mip-suggest-label">Mungkin Anda ingin lanjut membaca:</span>';
| |
|
| |
| items.forEach(function(item) {
| |
| html += `
| |
| <div class="mip-suggest-item" onclick="window.location.href='${item.url}'">
| |
| <div class="mip-suggest-title">${item.title}</div>
| |
| </div>
| |
| `;
| |
| });
| |
|
| |
| html += '</div>';
| |
|
| |
| // Masukkan saran ke dalam overlay yang tadinya kosong
| |
| $overlay.html(html);
| |
| }
| |
| }
| |
| }, 300);
| |
| });
| |
|
| |
| // 4. Hapus saran pintar jika user mulai mengetik (biar balik ke pencarian asli)
| |
| $(document).on('input', '.mw-ui-input', function() {
| |
| if ($(this).val().length > 0) {
| |
| // Biarkan MediaWiki menjalankan pencarian aslinya
| |
| } else {
| |
| // Jika dihapus sampai kosong, munculkan lagi saran pintarnya
| |
| $('.mw-ui-icon-minerva-search').click();
| |
| }
| |
| });
| |
| });
| |
| })();
| |