كيفية إضافة روبوت الدردشة Asyntai AI إلى ProcessWire
دليل خطوة بخطوة لمواقع ProcessWire CMS
الخطوة 1: احصل على كود التضمين
أولاً، انتقل إلى لوحة تحكم Asyntai وانتقل لأسفل إلى قسم "Embed Code". انسخ كود التضمين الفريد الذي سيبدو هكذا:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
ملاحظة: الكود أعلاه مجرد مثال. يجب عليك نسخ كود التضمين الفريد الخاص بك من لوحة التحكم لأنه يحتوي على معرف الأداة الشخصي الخاص بك.
الخطوة 2: الإضافة إلى ملف القالب (موصى به)
يستخدم ProcessWire ملفات قوالب PHP الموجودة في دليل site/templates/. أسهل طريقة هي إضافة كود التضمين مباشرة إلى ملف القالب الرئيسي:
- الوصول إلى ملفات تثبيت ProcessWire عبر FTP أو SSH أو مدير الملفات
- انتقل إلى
site/templates/ - افتح ملف القالب الرئيسي — وهو غالباً _main.php أو basic-page.php حسب ملف تعريف موقعك
- إذا كنت تستخدم استراتيجية الإخراج المؤجل (الافتراضية لمعظم ملفات تعريف المواقع)، افتح _main.php
- ابحث عن وسم الإغلاق
</body> - الصق كود تضمين Asyntai مباشرة قبله:
<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>
</body>
نصيحة: وضع الكود مباشرة قبل وسم الإغلاق </body> يضمن تحميل روبوت الدردشة بعد محتوى الصفحة، وهو ما يُنصح به للأداء الأمثل ولن يبطئ عرض صفحتك.
الطريقة البديلة 1: استخدام _foot.inc أو ملف الإلحاق _main.php
إذا كان موقع ProcessWire الخاص بك يستخدم نهج ملف الإلحاق (شائع في العديد من ملفات تعريف المواقع)، يمكنك إضافة كود التضمين إلى تضمين التذييل المشترك:
- انتقل إلى
site/templates/ - افتح _foot.inc (أو ملف تضمين التذييل المكافئ)
- الصق كود التضمين الخاص بـ Asyntai قبل وسم الإغلاق
</body>مباشرة - احفظ الملف
تعمل استراتيجية الإخراج المؤجل في ProcessWire عادةً مع ثلاثة ملفات رئيسية:
- _init.php — يعمل قبل كل قالب، ويهيئ المتغيرات
- ملف القالب الخاص بك (مثل
basic-page.php) — يملأ متغيرات المحتوى - _main.php — يُخرج ترميز HTML النهائي باستخدام تلك المتغيرات
إذا كان موقعك يستخدم هذا النهج، فإن إضافة الكود إلى _main.php قبل </body> يضمن ظهوره في كل صفحة.
ملاحظة: أسماء الملفات _init.php و_main.php مُعدّة في site/config.php عبر إعدادات $config->prependTemplateFile و$config->appendTemplateFile. تحقق من إعداداتك إذا كانت ملفاتك بأسماء مختلفة.
الطريقة البديلة 2: استخدام مصفوفة $config->scripts
يوفر ProcessWire مصفوفة $config->scripts من نوع FilenameArray يمكنك استخدامها لإدارة ملفات JavaScript. في _init.php أو ملف القالب الفردي، أضف:
<?php
$config->scripts->add('https://asyntai.com/static/js/chat-widget.js');
?>
ثم في _main.php (أو تضمين التذييل)، قم بالتكرار عبر مصفوفة الأكواد لإخراجها:
<?php foreach($config->scripts as $file): ?>
<script src="<?php echo $file; ?>"></script>
<?php endforeach; ?>
مهم: نهج $config->scripts يتعامل مع سمة src للكود، لكن سمة data-asyntai-id تحتاج إلى معالجة منفصلة. ستحتاج إما إلى إضافة سمة البيانات يدوياً في مخرجات الحلقة، أو استخدام طريقة وسم الكود المباشرة من الخطوة 2 بدلاً من ذلك للإعداد الأبسط.
الطريقة البديلة 3: استخدام خطاف (ready.php)
لنهج أكثر تقدماً، يمكنك استخدام نظام الخطافات في ProcessWire لحقن كود روبوت الدردشة تلقائياً في كل صفحة. أضف ما يلي إلى ملف site/ready.php:
<?php
$wire->addHookAfter('Page::render', function(HookEvent $event) {
$html = $event->return;
$script = '<script async src="https://asyntai.com/static/js/chat-widget.js" data-asyntai-id="YOUR_WIDGET_ID"></script>';
$html = str_replace('</body>', $script . '</body>', $html);
$event->return = $html;
});
?>
يعترض هذا الخطاف مخرجات HTML المُعالجة لكل صفحة ويحقن كود Asyntai تلقائياً مباشرة قبل وسم الإغلاق </body>.
نصيحة: نهج خطاف ready.php مثالي إذا كنت تريد روبوت الدردشة في كل صفحة دون تعديل أي ملفات قوالب. كما أنه يبقى بعد تغييرات القوالب وتحديثات القالب لأنه موجود خارج ملفات القوالب.
الخطوة 3: التحقق من التثبيت
بعد حفظ التغييرات، قم بزيارة موقع ProcessWire الخاص بك في علامة تبويب جديدة أو نافذة تصفح خاص. يجب أن ترى زر أداة الدردشة في الزاوية السفلية اليمنى. انقر عليه للتأكد من أنه يفتح ويعمل بشكل صحيح.
لا ترى الأداة؟ تأكد من حفظ جميع الملفات المعدلة. جرب مسح ذاكرة التخزين المؤقت للمتصفح أو العرض في نافذة تصفح خاص. إذا كان التخزين المؤقت لقوالب ProcessWire مفعلاً، فقد تحتاج إلى مسحه بالانتقال إلى Modules → Core → Template Engine Cache أو بإضافة ?nocache=1 إلى عنوان URL. تحقق أيضاً من أن ملف القالب يُستخدم فعلياً بواسطة الصفحات التي تعرضها.
Weebly