لم يعد هذا المكون الإضافي CRAFT CMS 2.x مدعومًا ، لكنه يعمل بالكامل ، وقد تستمر في استخدامه كما تراه مناسبًا. يتيح لك الترخيص أيضًا أن تتفوق عليه وإجراء تغييرات حسب الحاجة لأسباب الدعم القديم.
يمكن العثور على إصدار Craft CMS 3.x من هذا البرنامج المساعد هنا: Craft-Disqus ويمكن أيضًا تثبيته عبر متجر Craft Plugin في Craft CP.
قم بدمج نظام التعليق Disqus في مواقع Craft CMS ، بما في ذلك تسجيل الدخول المفرد (SSO) وعنوان URL المخصصة لتسجيل الدخول/تسجيل الدخول.
ذات الصلة: Disqus for Craft 3.x
تثبيت
disqus
في دليل craft/plugins
الخاص بكgit clone https://github.com/nystudio107/disqus.git
مباشرة في مجلد craft/plugins
. يمكنك بعد ذلك تحديثه git pull
composer require nystudio107/disqus
disqus
لـ Craft لرؤيته. بدأت Github مؤخرًا Applending -master
(اسم الفرع) إلى اسم المجلد لتنزيل ملف zip. أولاً ، تأكد من إعداد حساب Disqus.
التالي في Craft Admin CP ، انتقل إلى الإعدادات-> المكونات الإضافية-> Disqus وأدخل الاسم القصير لموقع Disqus الخاص بك. هذا هو الإعداد الوحيد المطلوب لمكوهرات Disqus.
جميع الإعدادات قابلة للتكوين أيضًا عبر ملف config.php
، وهو وسيلة صديقة متعددة البيئة لتخزين الإعدادات الافتراضية. لا تقم بتحرير هذا الملف ، بدلاً من ذلك ، قم بنسخه إلى craft/config
كـ disqus.php
وقم بإجراء تغييراتك هناك.
تتمثل الفائدة الحقيقية لمكون الإضافي Disqus في أنه يعتني بتكامل الإشارة الفردية (SSO) مع موقعك الحرفي.
قبل أن تتمكن من استخدام هذا ، ستحتاج إلى إعداد واجهة برمجة تطبيقات Disqus SSO كما هو موضح في صفحة Web Sign-On Signaling المدمجة.
ثم قم بنسخ ولصق مفتاح API و Secret API في إعدادات Disqus Plugin ، وقم بتشغيل "Lightswitch".
سيهتم المكون الإضافي Disqus أيضًا بعناوين URL المخصصة لتسجيل الدخول/تسجيل الدخول ، إذا كنت ترغب في استخدامها. يرجى الاطلاع على إضافة روابط تسجيل الدخول إلى SSO الخاصة بك وروابط تسجيل الدخول للحصول على التفاصيل.
تحتاج فقط إلى هذا هو أنك تريد عرض زر تسجيل الدخول المخصص في واجهة المستخدم Disqus نفسها.
يجب أن يكون url
هو عنوان صفحة تسجيل الدخول الخاصة بك. سيتم فتح الصفحة في نافذة جديدة ويجب أن تغلق نفسها بعد الانتهاء من المصادقة. هكذا نعرف متى يتم ذلك وإعادة تحميل الصفحة.
يجب تعيين logout
على http://example.com/actions/disqus/logoutRedirect
للضغط على وحدة تحكم Disqus التي تتولى تسجيل الدخول وإعادة التوجيه.
كل هذه الأساليب تنجز نفس الشيء:
{# Output the Disqus embed code using the 'disqusEmbed' function #}
{{ disqusEmbed( DISQUS_IDENTIFIER, DISQUS_TITLE, DISQUS_URL, DISQUS_CATEGORY_ID, DISQUS_LANGUAGE) }}
{# Output the Disqus embed code using the 'disqusEmbed' filter #}
{{ DISQUS_IDENTIFIER | disqusEmbed(DISQUS_TITLE, DISQUS_URL, DISQUS_CATEGORY_ID, DISQUS_LANGUAGE) }}
{# Output the Disqus embed code using the 'disqusEmbed' variable #}
{{ craft.disqus.disqusEmbed( DISQUS_IDENTIFIER, DISQUS_TITLE, DISQUS_URL, DISQUS_CATEGORY_ID, DISQUS_LANGUAGE) }}
جميع المعلمات باستثناء DISQUS_IDENTIFIER
اختياري. لمزيد من المعلومات حول ماهية هذه المعلمات ، يرجى الاطلاع على متغيرات تكوين JavaScript
Disqus يتجاهل أي إعدادات هي سلاسل فارغة ، على سبيل المثال: ''
ستبدو علامة الغصين النموذجية التي ستستخدمها على هذا النحو:
{{ disqusEmbed(entry.slug, entry.title, entry.url) }}
... مما سيؤدي إلى تعليقات فريدة من نوعها على أساس دخول.
في حالة أساسية ، سيؤدي ذلك إلى الإخراج إلى قالب الحرفي الذي يبدو مثل هذا:
<div id="disqus_thread"></div>
<script data-cfasync="false" type="text/javascript">
/**
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
*/
if (typeof disqus_config !== 'undefined') {
var _old_disqus_config = disqus_config;
}
var disqus_config = function() {
if (typeof _old_disqus_config !== 'undefined') {
_old_disqus_config.apply(this);
}
this.page.url = 'DISQUS_URL';
this.page.identifier = 'DISQUS_IDENTIFIER';
this.page.title = 'DISQUS_TITLE';
this.page.category_id = 'DISQUS_CATEGORY_ID';
this.language = 'DISQUS_LANGUAGE';
};
(function() { // REQUIRED CONFIGURATION VARIABLE: EDIT THE SHORTNAME BELOW
var d = document, s = d.createElement('script');
s.src = '//DISQUS_SHORTNAME.disqus.com/embed.js'; // IMPORTANT: Replace EXAMPLE with your forum shortname!
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
يتم أخذ إعداد DISQUS_SHORTNAME
من إعدادات المسؤول CP أو config.php
، ويتم تمرير بقية إعدادات DISQUS_*
كمتغيرات من مرشح/وظيفة twig disqusEmbed
.
إذا كنت قد قمت بتشغيل "علامة مستخدمية واحدة" ، فسوف يقوم أيضًا بإخراج شيء من هذا القبيل داخل العلامة أعلاه:
this.page.remote_auth_s3 = "eyJpZCI6IjEiLCJ1c2VybmFtZSI6IkFkbWluIiwiZW1haWwiOiJhbmRyZXdAbWVnYWxvbWFuaWFjLmNvbSJ9 c0e4b8f2eca3c0e995cdd64ba2dedd720820ab5b 1431214361";
this.page.api_key = "GTX1r1JBbiJah3hzZkBO06hI71VxjyWxgdurckHYBWLiELkHDidVmnDkBW0XeROe";
والتي ، على افتراض أنك قمت بإعداد Disqus SSO بشكل صحيح ، ستسمح لتسجيل المستخدمين في Craft Disqus باستخدام بيانات اعتماد موقع الويب الخاص بك.
إذا كان لديك "استخدام عناوين URL/تسجيل الدخول إلى تسجيل الدخول المخصص" ، فسيقوم أيضًا بإنشاء إعدادات this.sso
لك ، كما هو موضح هنا
بشكل افتراضي ، ستستخدم Disqus اللغة التي حددتها في Disqus Admin > Setup > Appearance
، ومع ذلك يمكنك استخدامه على مواقع الويب متعددة اللغات أيضًا.
تتيح لك المعلمة DISQUS_LANGUAGE
التي يمكنك توفيرها إلى {{ disqusEmbed() }}
التحكم في اللغة التي يتم عرض Disqus in. ومع ذلك ، فإن التعليقات ستظل هي نفسها بالنسبة لجميع اللغات.
إذا كنت ترغب في أن تكون التعليقات نفسها مختلفة لكل لغة ، فيمكنك أن تفعل شيئًا مثل:
{{ disqusEmbed(entry.slug ~ "_" ~ entry.locale, entry.title, entry.url, '', entry.locale ) }}
سيؤدي ذلك إلى تعليقات مختلفة لكل لغة ، وسيتم عرض Disqus Inmbed بنفس لغة التعليقات.
أحضرها لك من قبل Nystudio107