No, I have said it is not a valud option for us.
But it is the most effective way to elude image stealing completly, may be the unique.
This is technically doable in a theme component, should not be to expensive to build maybe a few hundred dollars, open up a topic in marketplace
حتى الآن كنا نحاول منع تنزيل الصور عن طريق منع ظهور القائمة السياقية باستخدام البرنامج النصي الذي قدمه @awesomerobot أعلاه
<script type="text/discourse-plugin" version="0.8">
const TopicRoute = require("discourse/routes/topic").default;
TopicRoute.reopen({ activate: function() { this._super(); Em.run.next(function() { $('body').on('contextmenu', '.cooked img, .mfp-img', function(e){ return false; }); }); } });
</script>
لقد قمنا بتخصيص سمة discourse وأضفنا البرنامج النصي إلى رأس كل صفحة.
ولكن منذ الترقية الأخيرة إلى 3.2.0.beta5-dev (67244a2318) كنا نواجه أخطاء من discourse عند محاولة فتح موضوع، وكان علينا حذف البرنامج النصي.
يبدو أنه كانت هناك بعض التغييرات في discourse تمنع عمله.
لقد قمت بتحديث الإصدار الذي تمكنت من إصلاحه!
<script type="text/discourse-plugin" version="0.8">
api.onPageChange((url, title) => {
$("img").on("contextmenu", function(e) {
e.preventDefault();
});
});
</script>
<script type="text/discourse-plugin" version="0.8">
api.onPageChange((url, title) => {
$("body").on("contextmenu", ".cooked img, .mfp-img", function(e) {
e.preventDefault();
});
});
</script>
هذا متوقع بسبب تحديثات Ember، مقتطف الكود هذا قديم إلى حد ما في هذه المرحلة وسيحتاج إلى إعادة كتابة.
شكراً لك، سأجرب البرنامج النصي الجديد.
يبدو أنه يعمل، على الأقل الآن لا يظهر قائمة السياق عند استخدام مربع الضوء.
لا يزال بإمكانك تنزيل الصورة من الصور المصغرة المضمنة في المنشور.
مرحباً، @davidkingham
إذا فهمت النص البرمجي الذي كتبته بشكل صحيح، فإن النص البرمجي الثاني يمنع فتح قائمة السياق عند النقر بزر الماوس الأيمن على صورة تم فتحها في صندوق الإضاءة.
يجب أن يقوم الأول بنفس الشيء عند النقر بزر الماوس الأيمن على أي صورة، الصورة المصغرة في المنشور، على سبيل المثال.
لكنه لا يعمل، لا يزال بإمكاني فتح القائمة الثانوية وفتح الصورة الكاملة في نافذة أخرى.
لقد حاولت وضع هذا في CSS:
img {
pointer-events: none;
}
يمنع فتح قائمة السياق، ولكنه يمنع أيضًا النقر على الصورة لفتح صندوق الإضاءة.
ما الخطأ؟
سيكون من الرائع إخفاء روابط التنزيل أسفل صندوق الإضاءة.
كان لدي سابقًا هذا الإدخال في CSS:
.image-source-link
{
display: none;
}
لكنه الآن لا يبدو أنه يعمل أيضًا، حيث تظهر روابط التنزيل والصورة الأصلية على أي حال أسفل صورة صندوق الإضاءة.
تحديث:
لقد قمت بتعديل النص البرمجي الثاني ليشمل أيضًا .lightbox-wrapper، ويبدو أنه يعمل الآن ولا يتم عرض قائمة السياق عند النقر بزر الماوس الأيمن على صورة في منشور، ويفتح صندوق الإضاءة بشكل صحيح عند النقر على الصورة.
<script type="text/discourse-plugin" version="0.8">
api.onPageChange((url, title) => {
$("body").on("contextmenu", ".cooked img, .mfp-img, .lightbox-wrapper", function(e) {
e.preventDefault();
});
});
</script>
هل يجب أن أحذف النص البرمجي الأول الذي يحاول فعل الشيء نفسه على كائن img عام؟
إذا استبدلت CSS لـ .img-source-link بـ .mfp-title، فإنه يعمل، والآن لا تظهر روابط التنزيل، ولكن العنوان مخفي أيضًا. لا أفهم لماذا لا يعمل إخفاء الروابط فقط ويعمل عند إخفاء شريط العنوان بالكامل.
.mfp-title
{
display: none;
}
لست متأكدًا بشأن العنصر الأول لأنني لا أرى هذا السلوك. ولكن بالنسبة لرابط الصورة، يمكنك استخدام هذا:
.image-source-link {
display: none !important;
}
يترك وراءه بعض الـ · · الإضافية، ولكن هذه هي الطريقة الوحيدة التي تمكنت بها من إخفاء رابط التنزيل فقط (وعرض رابط الحجم الكامل)
شكراً جزيلاً.
لا أعرف ما هي !important ولكنها تعمل، ويبدو أن النقاط اللاحقة ليست مهمة جداً ![]()
هذه هي الطريقة التي تبدو بها CSS والبرامج النصية الآن ونحصل على السلوك المرغوب: لا يمكن تنزيل أي من الصور في الموقع باستخدام النقر بزر الماوس الأيمن عليها، وروابط التنزيل في الضوء مخفية.
شكراً لتوجيهاتك.
CSS
.image-source-link
{
display: none !important;
}
نصوص الرأس البرمجية:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange((url, title) => {
$("img").on("contextmenu", function(e) {
e.preventDefault();
});
});
</script>
<script type="text/discourse-plugin" version="0.8">
api.onPageChange((url, title) => {
$("body").on("contextmenu", ".cooked img, .mfp-figure, .lightbox-wrapper", function(e) {
e.preventDefault();
});
});
</script>
يبدو أن الأول يعطل قائمة السياق على الصور الأخرى في الموقع مثل الأيقونات أو صور الرموز الشخصية المصغرة.
يعمل الثاني للصور في منشور والضوء.
