- Nov 22, 2022
- 10,043
- 1
- 38
بسم الله الرحمن الرحيم
اقدم لكم هذا الكود الجديد الذي يعمل على تحديد محتوى صندوق الاكواد لتسهيل عملية النسخ والنقل على المستخدم. بإضافة زر في الزاوية العليا للصندوق وعند الضغط عليه يقوم بتحديد المحتوى و زر أخر للنسخ. خاصية بسيطة ولكن مهمة خصيصًا للمنتديات التطويرية مثل المنتدى هنا. تم انشاء هذا الكود من قبل منتدى نقطة إبداع
تركيب الكود
توجه نحو لوحة الادارة - المظهر - البحث في القوالب، وابحث عن القالب التالي: bb_code_tag_code
ومن ثم استبدل محتواه بالكود التالي
ومن ثم استبدل محتواه بالكود التالي
كود:
<xf:macro template="prism_macros" name="setup" />[/B][/SIZE][/CENTER][/B][/SIZE][/CENTER][/B][/SIZE][/CENTER]
[SIZE=6][B][CENTER][SIZE=6][B][CENTER][SIZE=6][B][CENTER]
<div class="bbCodeBlock bbCodeBlock--screenLimited bbCodeBlock--code">
<div class="bbCodeBlock-title">
<button class="selectCodeButton" style="padding: 5px;background: #ffa500;border:none;float:left;">تحديد المحتوى</button>
<button class="copyCodeButton" style="padding: 5px;background: #4CAF50;color: white;border:none;float:left;margin-left: 10px;">نسخ الكود</button>
{{ $config.phrase ?: phrase('code') }}{$xf.language.label_separator}
</div>
<div class="bbCodeBlock-content" dir="ltr">
<pre class="bbCodeCode" dir="ltr" data-xf-init="code-block" data-lang="{{ $language ?: '' }}">
<code>{$content}</code>
</pre>
</div>
</div>
<script>
// كود تحديد المحتوى من منتدى نقطة إبداع
var selectButtons = document.querySelectorAll('.selectCodeButton');
selectButtons.forEach(function(button) {
button.addEventListener('click', function() {
selectCode(this);
});
});
// وظيفة تحديد المحتوى
function selectCode(button) {
var codeBlock = button.parentElement.nextElementSibling.querySelector('.bbCodeBlock-content pre');
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(codeBlock);
selection.removeAllRanges();
selection.addRange(range);
}
// إضافة وظيفة النسخ
var copyButtons = document.querySelectorAll('.copyCodeButton');
copyButtons.forEach(function(button) {
button.addEventListener('click', function() {
copyCode(this);
});
});
// وظيفة نسخ المحتوى
function copyCode(button) {
var codeBlock = button.parentElement.nextElementSibling.querySelector('.bbCodeBlock-content pre code');
// نسخ النص إلى الحافظة
var range = document.createRange();
range.selectNodeContents(codeBlock);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
try {
// تنفيذ النسخ
document.execCommand('copy');
alert("تم نسخ الكود بنجاح!"); // إظهار رسالة تأكيد
} catch (err) {
alert("لم يتمكن من نسخ الكود.");
}
}
</script>
<style>
/* إضافة بعض التحسينات على حجم الصفحة */
body, html {
margin: 0;
padding: 0;
overflow-x: hidden; /* إخفاء التمرير الأفقي */
}
.wrapper {
max-width: 100%;
height: 100px;
position: relative;
background: linear-gradient(135deg, #14ffe9, #ffeb3b, #ff00e0);
border-radius: 10px;
cursor: default;
animation: animate 1.5s linear infinite;
padding: 10px;
}
.bbCodeBlock-content {
max-width: 100%;
overflow-x: auto;
}
.bbCodeCode {
white-space: pre-wrap; /* لف النص تلقائيًا */
word-wrap: break-word; /* تقسيم الكلمات الطويلة */
margin: 0;
padding: 10px;
}
* {
box-sizing: border-box;
}
</style>