مرحباً.
سأريك بالصور.
كنت أواجه هذا الخطأ قبل التحديث الأخير.
بعد تثبيت التحديث، ما زلت أواجه هذا الخطأ.
(الحالي)
![]()
وقمت بإزالة كل الكود من الموقع وحاولت مرة أخرى، ما زلت أواجه الخطأ.
ترجمة
خطأ
حدث خطأ ما.
مرحباً.
سأريك بالصور.
كنت أواجه هذا الخطأ قبل التحديث الأخير.
بعد تثبيت التحديث، ما زلت أواجه هذا الخطأ.
(الحالي)
![]()
وقمت بإزالة كل الكود من الموقع وحاولت مرة أخرى، ما زلت أواجه الخطأ.
ترجمة
خطأ
حدث خطأ ما.
هل يحدث هذا أيضًا في الوضع الآمن؟ هل يمكنك أيضًا التحقق من وحدة تحكم المتصفح بحثًا عن أخطاء عند النقر عليها، بالإضافة إلى البحث في /logs لمعرفة ما إذا كان هناك أي تفاصيل إضافية.
الوضع الآمن نشط ولا يوجد خطأ ظاهر في صفحة السجلات. ربما لا أفهم.
آخر السجلات.
![]()
لقد حاولت إيقاف تشغيل الوضع الآمن. ما زلت أتلقى نفس الخطأ.
بالمناسبة، عندما أنقر عليه للمرة الثانية، يختفي الخطأ وتظهر الصفحة الرئيسية.
أرى بعض الأخطاء عند تحميل مكونات السمة وإلغاء تحميل الإضافات.
قد ترغب في إلقاء نظرة على تخصيصاتك الأخيرة.
هل لديك أي تخصيصات JavaScript خارج المكونات البعيدة؟
سأحاول تعطيل جميع المكونات وتمكينها واحدًا تلو الآخر حتى يحدث الخطأ.
<script>
function moveTagsToTitle() {
const mainLinks = document.querySelectorAll('.main-link');
mainLinks.forEach(mainLink => {
const discourseTags = mainLink.querySelector('.discourse-tags');
const titleElement = mainLink.querySelector('.title');
if (discourseTags && titleElement) {
const tags = discourseTags.querySelectorAll('.discourse-tag');
tags.forEach(tag => {
const tagSpan = document.createElement('span');
tagSpan.className = 'discourse-tag box';
tagSpan.textContent = tag.textContent;
tagSpan.style.fontSize = 'var(--font-down-2)';
tagSpan.style.borderRadius = '10px';
tagSpan.style.border = '1px solid #444460';
tagSpan.style.backgroundColor = '#1f1f33';
tagSpan.style.margin = '2px';
tagSpan.style.display = 'inline-block';
tagSpan.style.overflow = 'hidden';
tagSpan.style.whiteSpace = 'nowrap';
tagSpan.style.textOverflow = 'ellipsis';
tagSpan.style.verticalAlign = 'middle';
tagSpan.style.marginRight = '5px';
tagSpan.style.marginLeft = '-6px';
titleElement.insertBefore(tagSpan, titleElement.firstChild);
});
if (discourseTags.parentNode) {
discourseTags.parentNode.removeChild(discourseTags);
}
}
});
const topicHeaderExtras = document.querySelectorAll('.topic-header-extra');
topicHeaderExtras.forEach(topicHeaderExtra => {
const discourseTags = topicHeaderExtra.querySelector('.discourse-tags');
const tags = discourseTags.querySelectorAll('.discourse-tag');
tags.forEach(tag => {
tag.className = 'discourse-tag box';
tag.style.borderRadius = '10px';
tag.style.border = '1px solid #444460';
tag.style.backgroundColor = '#1f1f33';
tag.style.margin = '1px';
tag.style.padding = '2px 8px';
tag.style.display = 'inline-block';
tag.style.overflow = 'hidden';
tag.style.whiteSpace = 'nowrap';
tag.style.textOverflow = 'ellipsis';
tag.style.verticalAlign = 'middle';
tag.style.marginRight = '5px';
tag.style.marginBottom = '5px';
});
});
}
window.addEventListener('load', moveTagsToTitle);
const observer = new MutationObserver(moveTagsToTitle);
const targetNode = document.body;
const observerOptions = {
childList: true,
subtree: true
};
observer.observe(targetNode, observerOptions);
</script>
تتسبب هذه الأكواد في هذا الخطأ.
لا أعرف كيف يمكنني إصلاحها.
أحتاج هذه الأكواد ![]()
أنت تقوم بنقل العناصر التي تحتوي على مكونات Emberjs (هنا قائمة العلامات)، والتي أعتقد أنها من المحتمل أن تعطل دورة حياة المكون.
أفضل رهان لك هنا هو استخدام واجهة برمجة التطبيقات (API).
في حالتك، إما:
استخدام منافذ الإضافات (plugin outlets) كما أظهرت في موضوعك الأخير. ومع ذلك، نظرًا لعدم وجودها لأحدث المواضيع في صفحة الفئة، ستحتاج إلى طلبها.
الكتابة فوق القالب. هذا ليس حلاً جيدًا لأسباب التوافق، ولكنه يمكن أن يكون بديلاً فوريًا.
لقد وجدت هذه الرموز.
هذا ليس ما أردته، ولكنه سيفي بالغرض في الوقت الحالي.
var pElement = document.getElementById('site-logo').parentNode;
//var pElement = document.createElement('a');
//pElement.innerHTML = aElement.innerHTML;
//aElement.replaceWith(pElement);
pElement.href = '#';
pElement.style.cursor = 'pointer';
pElement.onclick = function() {
window.location.href = '/';
};
//document.getElementById('site-logo').parentNode.href = '/';
إذا كان بإمكان أي شخص المساعدة، فأنا أنتظر. شكراً لك ![]()
أوصي بشدة بعدم اتباع هذا المسار. إنه مثل وضع ضمادة على عرض جانبي بدلاً من معالجة السبب الجذري للمشكلة. ستؤدي إلى المزيد من المشاكل (مثل آخر موضوع لك بسبب الكود أعلاه)
يمكنك جعل جافاسكريبت الخاص بك أكثر ملاءمة لـ discourse (أفضل طريقة هي استخدام منفذ الإضافة عندما تستطيع).
إليك مثال. يستخدم واجهة برمجة التطبيقات عند تغيير الصفحة، ويشغل الكود في مسار معين، وينسخ HTML قبل الرابط (حتى تتمكن من النقر على العلامة):
<script type="text/discourse-plugin" version="0.8">
const { next } = require("@ember/runloop");
function moveTags() {
const mainLinks = document.querySelectorAll(".main-link:not(.tags-moved)");
mainLinks.forEach((mainLink) => {
const discourseTags = mainLink.querySelector(".discourse-tags");
const titleElement = mainLink.querySelector("a[data-topic-id]");
if (discourseTags && titleElement) {
titleElement.insertAdjacentHTML("beforebegin", discourseTags.outerHTML);
mainLink.classList.add('tags-moved');
}
});
}
api.registerModelTransformer("topic", async (topics) => {
next(() => {
moveTags();
})
});
api.onPageChange((url) => {
if (url.startsWith("/categories")) {
moveTags();
}
});
</script>
.top-row,
.link-top-line {
.discourse-tag {
font-size: var(--font-down-2) !important;
padding: 2px 8px;
margin: 2px 5px 2px -6px;
border-radius: 10px;
border: 1px solid #444460;
background-color: #1f1f33;
}
.discourse-tag::after {
content: '' !important;
margin-left: 0 !important;
}
}
.bottom-row,
.link-bottom-line {
.discourse-tags {
display: none;
}
}
مرحباً @Arkshine
تغيير رابط الشعار لم يساعد، لقد حذفت هذه الأكواد.
لكن لا توجد طريقة أخرى. أحتاج إلى وضع العلامات بهذا الشكل.
https://pvpfarm.com
إذا دفعت لشخص ما، هل يمكنه كتابة أكواد لائقة تعمل؟
ومن أين تجد هذه الأكواد؟ (JS) من https://github.com/discourse/discourse؟
يمكنك إنشاء موضوع في Marketplace إذا كنت بحاجة/ترغب في بعض المساعدة مدفوعة الأجر. ![]()
لقد قدمت الرمز لذلك في #11.
مرحباً مرة أخرى @Arkshine
لقد أضفت الرموز التي قدمتها بعد حذف هذه الرموز، لكنها لا تعمل. هل أرتكب خطأ؟
إنها تعمل لدي:
تأكد من الاحتفاظ بـ <script type="text/discourse-plugin" version="0.8">. ، لن تعمل بخلاف ذلك.
لقد قمت بتحديث الكود الخاص بي أعلاه.
لا أعرف كيف أشكرك. شكراً جزيلاً!
![]()
@Arkshine آسف على إحياء الموضوع مرة أخرى.
شكراً لك مرة أخرى. لقد وجدت خطأ في الأكواد التي قدمتها.
هل يمكنك مساعدتي من فضلك؟
لقد حاولت تصحيح الأكواد ولكنني لم أستطع.
في قسم “الأحدث”، يظهر الوسم فقط في أحدث موضوع موسوم تم فتحه.
وعند دخول فئة، لا تظهر الوسوم.
@ogulcan1787 لقد قمت بتحديث الكود أعلاه.