مقدمة للتعبيرات الديناميكية
إنشاء محتوى مخصص وقائم على البيانات باستخدام التعبيرات الديناميكية.
تتيح التعبيرات الديناميكية لك إنشاء محتوى مخصص ومستند إلى البيانات في مساحة العمل الخاصة بك. من خلال الجمع بين متغيرات البيانات والترجمات المخصصة والصيغ، يمكنك جعل المحتوى الخاص بك أكثر ديناميكية ومصممة خصيصًا لجمهورك.
على سبيل المثال، يمكنك عرض رسالة مخصصة عن طريق الكتابة:
"مرحبًا بعودتك، {{ sessionUser.name }}!"
هذا يسحب اسم المستخدم مباشرة إلى الرسالة.
للسماح لنظامنا بملء البيانات ولتمييزها بصريًا عن المحتوى الآخر، تُحاط التعبيرات الديناميكية دائمًا بقوسين معقوفين مزدوجين: {{ ... }}.
كتابة تعبيرك الديناميكي الأول

- انتقل إلى حقل نصي حيث يُسمح بالتعبيرات (على سبيل المثال، سؤال في جمع الأفكار).
- اكتب { لإظهار قائمة بالمتغيرات والوظائف المتاحة.
- حدد اقتراحًا أو اكتب تعبيرك الخاص.
- أضف عوامل التشغيل والوظائف حسب الحاجة.
- انقر بعيدًا لترى تعبيرك الديناميكي قيد العمل.
ستقوم العديد من حقول النص على الفور بحساب وعرض النتيجة لتقييم جميع التعبيرات الديناميكية بداخلها، المتعلقة بك وبياناتك الخاصة، بعد أن تفقد التركيز. تحقق مما إذا كنت تحصل على النتيجة التي تتوقعها. ولا تقلق، لم تفقد أي شيء كتبته - إذا نقرت على حقل النص مرة أخرى، فسترى تعبيراتك الديناميكية تظهر مرة أخرى، ويمكنك متابعة تحريرها.
أنواع التعبيرات الديناميكية
تتكون التعبيرات الديناميكية من مكونات مختلفة تعمل معًا لعرض نتائج مخصصة أو محسوبة.
متغيرات البيانات
متغيرات البيانات تمثل بيانات خاصة بمساحة العمل الخاصة بك، مثل أسماء المستخدمين، أعداد الأفكار، أو قيم النماذج.
- مثال:
{{sessionUser.name}}قد يظهر على هيئة "John Doe."
متغيرات الترجمة المخصصة
متغيرات الترجمة المخصصة هي مفاتيح توطين قابلة للتخصيص يمكنك إنشاؤها واستخدامها عبر منصتك لعرض المحتوى الخاص بك بلغات مختلفة. عند الاستخدام، بناءً على اللغة التي حددها المستخدم الزائر في ملفه الشخصي، ستعرض المحتوى بلغة المستخدم إذا قمت بتحديد ترجمة لتلك اللغة.
- مثال:
{{translate:custom.greeting}}يعرض نسخة مترجمة من نص التحية.
الوظائف
الوظائف تؤدي إجراءات مثل تحويل البيانات أو إجراء العمليات الحسابية. في القائمة، ستظهر توقيعًا لما هي الوسائط التي يجب تمريرها إليها، بالإضافة إلى أنواع البيانات المتوقعة لها. على سبيل المثال، تتوقع دالة UPPERCASE() تلقي نص. بعد ذلك، ستعرض وصفًا لما تفعله الوظيفة، بالإضافة إلى مثال على كيفية استخدامها.
- مثال:
{{ UPPERCASE(sessionUser.name) }}يحوّل اسم المستخدم إلى أحرف كبيرة.
عوامل التشغيل
عوامل التشغيل تُستخدم للعمليات الحسابية والمقارنات.
- الحسابية:
+،-،*،/ - المنطقية:
&&(AND)،||(OR) - المقارنة:
==،!=،>،< - الشرطية:
? - مثال:
{{ sessionUser.stats.likes > 10 ? "Top Contributor" : "Newbie" }}تعرض «أعلى مساهم» إذا تجاوز عدد الإعجابات 10، وإلا تعرض «مبتدئًا».
القيم الحرفية
القيم الحرفية أو "القيم الخام"، مثل الأرقام أو النصوص أو القيم المنطقية، يمكن استخدامها بحرية داخل التعبير الديناميكي أيضًا.
- مثال:
{{ 5 }}أو{{ "Hello, world!" }}أو{{ true }}
معالجة الأخطاء
نظرًا لأن التعبيرات الديناميكية مرنة للغاية وتمنحك الكثير من الحرية، يمكن أن تتعطل بسهولة أيضًا، وأحيانًا بطرق قد لا تتوقعها. على سبيل المثال، قد ينتهي بك الأمر إلى:
- قسمة عدد على صفر.
- نسيان قوس إغلاق في مكان ما في تعبيرك.
- الإشارة إلى متغير ترجمة مخصص غير موجود (أو محذوف).
- محاولة تحويل قيمة غير نصية، مثل رقم، إلى أحرف كبيرة عن طريق الخطأ.
لحسن الحظ، إذا وجدت نفسك في مثل هذه المواقف، فإن التعبيرات الديناميكية التي لم يتم حسابها بشكل صحيح يسهل التعرف عليها، وستعرض لك بالضبط أين وما هي المشكلة، عند التمرير فوقها.
إليك بعض الأمور التي يجب مراعاتها أثناء كتابة التعبيرات الديناميكية لتقليل احتمالية الوقوع في الأخطاء:
- تأكد من عد عدد الأقواس التي تستخدمها، خاصة عندما تجمع بين وظائف متعددة.
- عند إجراء عملية قسمة، وخصوصًا عندما يكون المقسوم عليه مستندًا إلى متغير بيانات، احرص على مراعاة الحالات التي قد يكون فيها المقسوم عليه صفرًا. يمكنك استخدام الدالة MAX() لضمان ألا تقل القيمة عن 1 أبدًا. على سبيل المثال، لضمان حد أدنى قدره 1، استخدم:
{{ 2 / MAX(sessionUser.stats.likes, 1) }}.
تأكد من التحقق المزدوج من الأنواع المتوقعة للوسائط للوظائف التي تستخدمها، بالإضافة إلى الترتيب الذي تتوقعه بها.
على سبيل المثال، {{ UPPERCASE(2) }} سيفشل، لأن UPPERCASE() تتوقع نصًا، لكنها تلقت رقمًا.
أمثلة بسيطة للتعبيرات الديناميكية
- عملية حسابية بسيطة:
{{ 2 + 3 }}تعرض 5. - رسالة مخصصة: مرحبًا
{{sessionUser.name }}يعرض تحية مخصصة. - عرض شرطي:
{{ ideaCollection.stats.ideas.total > 50 ? "We've reached our goal!" : "Needs more ideas!" }}يتكيف بناءً على التفاعل مع الفكرة.
من خلال الجمع بين هذه المكونات، يمكنك إنشاء تجارب قوية ومخصصة لمستخدمي مساحة العمل الخاصة بك.