Tartışma

XenDev Staff Manager – Yönetim Ekibini Modern ve Dinamik Şekilde Gösterin!

Başlatan Guest · 09 Tem 2026 01:18 · 17 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Musapekel Kullanıcımız yeni bir kaynak oluşturdu:

XenDev Staff Manager – Yönetim Ekibini Modern ve Dinamik Şekilde Gösterin! - XenDev Staff Manager – Yönetim Ekibini Modern ve Dinamik Şekilde Gösterin!







Bu eklentiyi sağlıklı kullanabilmek için mutlaka XenDev Update Manager eklentisini kurmalısınız:

https://xendev.net/kaynaklar/xendev-update-manager.4/

XenDev Staff Manager – Yönetim Ekibini Modern ve Dinamik Şekilde Gösterin!

Forumunuzda...

(function() {
'use strict';

function initDualTabs() {
var sources = document.querySelectorAll('.dual-tabs-source:not(.processed)');

sources.forEach(function(source) {
source.classList.add('processed');

var rawHtml = source.innerHTML.trim();
var parts = rawHtml.split(/(?:)?\s*====\s*(?:)?/i);

if (parts.length < 2) {
console.warn('Dual Tab: ==== ayırıcı bulunamadı');
return;
}

// ilk içerik TR, ikinci içerik EN
var trContent = parts[0].trim();
var enContent = parts[1].trim();

var uniqueId = 'dual-' + Math.random().toString(36).substr(2, 9);

var placeholder = document.createElement('div');
placeholder.className = 'xendev-modern-container';
placeholder.innerHTML =
'' +
'' +
'
' +
'' +
'Türkçe' +
'
' +
'' +
'English' +
'
' +
'
' +
'
' +
'' +
'' +
'
' +
'
' +
'' +
'
' +
'
' +
'
';

source.parentNode.insertBefore(placeholder, source);

var trContainer = placeholder.querySelector('[data-content="tr"]');
var enContainer = placeholder.querySelector('[data-content="en"]');

// İçerik zaten HTML/render edilmiş haldeyse direkt bas
trContainer.innerHTML = trContent;
enContainer.innerHTML = enContent;

// Orijinal ham metni gizle (Sorunu çözen kısım burası)
source.style.display = 'none';

if (typeof XF !== 'undefined' && XF.activate) {
XF.activate(trContainer);
XF.activate(enContainer);
}

var bg = placeholder.querySelector('.xendev-active-bg');
var btns = placeholder.querySelectorAll('.xendev-tab-btn');
var panes = placeholder.querySelectorAll('.xendev-tab-pane');

function updateBackground(targetBtn) {
if (!targetBtn) return;
bg.style.width = targetBtn.offsetWidth + 'px';
bg.style.transform = 'translate3d(' + targetBtn.offsetLeft + 'px, 0, 0)';
}

setTimeout(function() {
updateBackground(placeholder.querySelector('.xendev-tab-btn.is-active'));
}, 50);

btns.forEach(function(btn) {
btn.addEventListener('click', function(e) {
e.preventDefault();

btns.forEach(function(b) {
b.classList.remove('is-active');
});

panes.forEach(function(p) {
p.classList.remove('is-active');
});

this.classList.add('is-active');
updateBackground(this);

var targetId = this.getAttribute('data-target');
var targetPane = placeholder.querySelector('#' + targetId);

if (targetPane) {
targetPane.classList.add('is-active');
if (typeof XF !== 'undefined' && XF.activate) {
XF.activate(targetPane);
}
}
});
});

var resizeTimer;
window.addEventListener('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
updateBackground(placeholder.querySelector('.xendev-tab-btn.is-active'));
}, 100);
});
});
}

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initDualTabs);
} else {
setTimeout(initDualTabs, 100);
}

if (typeof XF !== 'undefined') {
XF.on(document, 'xf:reinit', initDualTabs);
}

var observer = new MutationObserver(function() {
setTimeout(initDualTabs, 100);
});

observer.observe(document.body, { childList: true, subtree: true });
})();



Genişletmek için tıkla ...



Devamını Oku

Okumaya devam et...

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi