كرافت CMS
تُدمج إضافة Wink لكرافت CMS مخزون السفر من Wink في كرافت 5 عبر دوال Twig للقوالب ونوع حقل مخصص لمحرر المحتوى. يمكن للمحررين اختيار تخطيط Wink محدد من قائمة منسدلة مباشرة في محرر الإدخال.
wink-travel/wink-craft-plugin على GitHub كود المصدر، دليل إعداد المطور، وتعليمات المساهمة.
المتطلبات
Section titled “المتطلبات”- كرافت CMS 5.x
- PHP 8.1+
- Composer
التثبيت
Section titled “التثبيت”- التثبيت عبر Composer:
Terminal window composer require wink2travel/craft-wink - تفعيل الإضافة في لوحة التحكم ضمن الإعدادات → الإضافات، أو عبر سطر الأوامر:
Terminal window php craft plugin/install wink - اذهب إلى الإعدادات → Wink في لوحة التحكم.
- أدخل معرّف العميل والسر السري للعميل، اختر بيئتك، ثم اضغط حفظ. اذهب إلى التطبيقات لاسترجاع بيانات الاعتماد الخاصة بك.
الاستخدام في قوالب Twig
Section titled “الاستخدام في قوالب Twig”بعد الإعداد، استدعِ دوال Wink Twig في أي مكان في قوالبك:
{# عرض شبكة فنادق #}{{ winkContent('HOTEL', entry.winkLayoutId) }}
{# شريط بحث الوجهات #}{{ winkLookup() }}
{# زر اختيار خط سير الرحلة #}{{ winkSearch() }}
{# زر حساب المستخدم #}{{ winkAccount() }}تقوم دالة winkContent() تلقائيًا بحقن <wink-app-loader> في المرة الأولى التي تُستدعى فيها على الصفحة.
دوال Twig المتاحة
Section titled “دوال Twig المتاحة”| الدالة | المخرجات | الوصف |
|---|---|---|
winkContent(layout, id) | <wink-content-loader> | بطاقات الفنادق، الشبكات، الخرائط |
winkLookup() | <wink-lookup> | شريط بحث الوجهات |
winkSearch() | <wink-search-button> | زر اختيار خط سير الرحلة |
winkAccount() | <wink-account-button> | تسجيل الدخول / حساب المستخدم |
winkItinerary() | <wink-itinerary-button> | زر حالة خط سير الرحلة |
winkShoppingCart() | <wink-shopping-cart-button> | زر عربة التسوق |
نوع حقل تخطيط Wink
Section titled “نوع حقل تخطيط Wink”أضف حقل تخطيط Wink لأي قسم ليتمكن المحررون من اختيار تخطيط منسدِل لجميع التخطيطات المتاحة في حساب Wink الخاص بك:
- اذهب إلى الإعدادات → الحقول → حقل جديد.
- اضبط نوع الحقل على تخطيط Wink.
- أضف الحقل إلى تخطيط حقول نوع الإدخال الخاص بك.
- يمكن للمحررين الآن اختيار التخطيط مباشرة في محرر الإدخال — دون الحاجة لنسخ ولصق المعرفات.
في قالبك، مرر قيمة الحقل إلى winkContent():
{{ winkContent(entry.winkLayout.type, entry.winkLayout.id) }}