ملف كامل - العلامات الشرطية الجديدة على منصة البلوجر [2017]

 يقدم لنا فريق تطوير منصة بلوجر بعض العلامات الشرطية الجديدة Conditional Tags التي تم إدراج جميع خصائصها في مجموعة العرض.
هنا لن أشرح ذلك بإسهاب لأن العلامة الشرطية هي في الواقع من السهل جدا أن نفهمها كما أننا في الموضوع السابق شرحنا بالتفصيل والذي كان موضوعه عبارة عن برنامج تعليمي لــ ملف كامل حول العلامات الشرطية على منصة بلوجر  لذلك سنركز على الجديد ليسهل القياس عليه في مابعد وتوظيفها خلال تكويدك للقالب أو تضمين الإضافات.



ماهو الجديد في العلامة الشرطية؟

الجديد في العلامة الشرطية هو قاعدة الشرط <data:view/> رمز شرطي عالمي يمكن إستخدامه في أي مكان على قالب xml.، ;وهنا  لقد جمعتها لكم في جداول وفقا لنوع المعلومات التي تضعها كما أننا سنضيفها بالترتيب إلى أداة Conditional Tags  حتى يسهل إستعمالها مع مثيلاتها .

الفرق بين الجديد والقديم

الفرق واضح وبسيط مكان القاعدة الشرطية القديمة <data:blog/> سنجد الجديدة <data:view/> طبعا مع بعض التعديلات الطفيفة والتي ستلاحظها بعد مقارنة علامة شرطية قديمة واخرى جديدة وإليك بعض الامثلة

علامة شرطية خاصة بالصفحة الرئيسية

  • العلامة القديمة
    
    <b:if cond='data:blog.url == data:blog.homepageUrl'> … </b:if>
    
  • العلامة الجديدة
    
    <b:if cond='data:view.isHomepage'> … </b:if> 
    

علامة شرطية خاصة بصفحة التدوينات

  • العلامة القديمة
    
    <b:if cond='data:blog.pageType == "item"'> … </b:if>
    
  • العلامة الجديدة
    
    <b:if cond='data:view.isPost'> … </b:if>
    

علامة شرطية خاصة بالصفحة الثابتة

  • العلامة القديمة
    
    <b:if cond='data:blog.pageType == "static_page"'> … </b:if>
    
  • العلامة الجديدة
    
    <b:if cond='data:view.isPage'> … </b:if>
    

علامة شرطية خاصة بصفحات التدوين و الثابتة معا

  • العلامة القديمة
    
    <b:if cond='data:blog.pageType in {"item", "static_page"}'> … </b:if>
    
  • العلامة الجديدة
    
    <b:if cond='data:view.isSingleItem'> … </b:if>
    

علامة شرطية خاصة بصفحات القوائم(فهرس الصفحات فهرس العلامات)

  • العلامة القديمة
    
    <b:if cond='data:blog.pageType == "index"'> … </b:if>
    
  • العلامة الجديدة
    
    <b:if cond='data:view.isMultipleItems'> … </b:if>
    

علامة شرطية خاصة بصفحة البحث بالتسميات

  • العلامة القديمة
    
    <b:if cond='data:blog.searchLabel'> … </b:if>
    
  • العلامة الجديدة
    
    <b:if cond='data:view.isLabelSearch'> … </b:if>
    

علامة شرطية خاصة بصفحة الأرشيف (فهرس المدونة)

  • العلامة القديمة
    
    <b:if cond='data:blog.pageType == "archive"'> … </b:if>
    
  • العلامة الجديدة
    
    <b:if cond='data:view.isArchive'> … </b:if>
    

علامة شرطية خاصة بصفحة البحث عموما

  • العلامة القديمة
    
    <b:if cond='data:blog.searchQuery'> … </b:if>
    
  • العلامة الجديدة
    
    <!-- يظهر المحتوى عند البحث سواء بالكلمات أو التسميات -->
    <b:if cond='data:view.isSearch'> … </b:if>
    أو
    <!--يظهر المحتوى عند البحث بالكلمات فقط والإخفاء في التسميات -->
    <b:if cond='data:view.isSearch and !data:view.isLabelSearch'> … </b:if>
    أو
    <b:if cond='data:view.search.query'> … </b:if>
    

علامة شرطية خاصة بصفحة الخطأ (404)

  • العلامة القديمة
    
    <b:if cond='data:blog.pageType == "error_page"'> … </b:if>
    
  • العلامة الجديدة
    
    <b:if cond='data:view.isError'> … </b:if>
    

مميزات العلامات الجديدة

العلامة الشرطية الجديدة مختصرة ومفهومة وعملية ولاتحتوي على أي تعقيد نوعي أو من علامات التنصيص في أغلب الأكواد التي نحتاجها..والجميل في الأمر أن علامة الشرط is بين القاعدة الشرطية و الإشارة للصفحة لاتتغير بل نضيف فقط كلمة not أو علامة التعجب ! للإخفاء المحتوى وإليك كيف تتم العملية كمثال للصفحة الرئيسية

<!-- علامة إظهار المحتوى في الصفحة الرئيسية فقط -->
<b:if cond='data:view.isHomepage'> … </b:if> 
<!-- علامة إظهار المحتوى في جميع الصفحات ما عدى الصفحة الرئيسية -->
<b:if cond='not data:view.isHomepage'> … </b:if>

كما تلاحظ أضفنا فقط الكلمة not أمام not data:vie (مع مراعات ترك مسافة) أو نستطيع إستعمال بديلا للكلمة not علامة الإستفهام ! هكذا!data:view
نفس المثال نطبقه مع جميع العلامات الشرطية الجديدة..كذلك يمكننا إستعمالها بالشكل التالي مع تغيير فقط إسم الصفحة

<b:if cond='data:view.isHomepage in {&quot;&quot;,no}'> … </b:if>

الميزة الثانية وهي التحكم في صفحتين في نفس العلامة الشرطية وذلك بإستعمال فقط كلمة or بين الإشارتين ( مثلا نريد إظهار الأداة في صفحات التدوينات والصفحة الرئيسية ) نقوم بالتالي

<b:if cond='data:view.isPost or data:view.isHomepage'>
<!-- نضع المحتوى في هذا المكان مثلا أداة أو نمط أو كود -->
</b:if>

لاحظ أننا أضفنا or بين قاعدتي العلامة الشرطية للصفحتين (بما معناه أضهر المحتوى في صفحة التدوينات أو الصفحة الرئيسية فقط) وقس على بقية الشروط
كما أنه من بين مميزات العلامة الشرطية الجديدة هناك علامات لم تكن موجود مسبقا ومثال ذلك علامة شرطية خاصة بالمعاينة وهي data:view.isPreview وانا شخصيا أحببت هذه العلامة كونها تسمح لك بتخصيص القالب عند الضغط على معاينة الموضوع قبل نشره (فأحيانا نجد إضافات تحجب أو تشوه الرؤية) فما نقوم به هو إضافة المحتوى المراد ضبطه داخل هذه العلامة الشرطية :

<b:if cond='data:view.isPreview'>
<!-- نضع المحتوى في هذا المكان مثلا أداة أو نمط أو كود -->
</b:if>

علامة أخرى مفيدة وجدا رائعة وهي data:view.isLayoutMode تعمل على إظهار أو إخفاء الأداة من على صفحة التخطيط (ومن هو ملم بتصميم قوالب بلوجر يدرك اهمية هذه العلامة الشرطية) لأن هناك أدوات أساسية يضعها المبرمج في قسم منفرد لتعمل في نطاق خارج التعديل فتلاحظ أنه يكتب (لاتقم بحذف او التعديل على هذه الاداة) إذا لما لانخفي القسم كامل ونستريح :) وذلك بإستعمال العلامة الشرطية الجديدة وهذا مثالك العملي:

<b:if cond='data:view.isLayoutMode'>
  <b:section>
<!-- يبقى محتوى الأداة في هذا المكان -->
  </b:section>
</b:if>

كما تلاحظ نقوم بوضع القسم <b:section></b:section> كامل داخل العلامة الشرطية بهذا الشكل ستقوم العلامة بإخفاء القسم جملتا بالإضافة للادوات التي بداخله من على جميع الصفحات الخارجية وإظهاره فقط في التخطيط ولتطبيق العكس وهذا ما نريده نضع الإشارة not لتكون النتيجة كالتالي:

<b:if cond='not data:view.isLayoutMode'>
  <b:section>
<!-- يبقى محتوى الأداة في هذا المكان -->
  </b:section>
</b:if>
ملاحظة:
للعلم!!..ما قمنا بإحتوائه في هذا البرنامج هو عكس لوضائف العلامات الشرطية الأشهر والأكثر إستعمالا أي من الأساسيات التي لامحيد عنها لتعلم أن  ليس كل ماتطرقنا له يشمل اسرار ومزايا هذه العلامات فهناك أمور أعقد وفي نفس الوقت هي رائعة ومفيدة جدا وسنعرفها تدريجيا في مواضيع مماثلة :)

جدول بياني يضم أشهر العلامة الجديدة

نوع الصفحة:
 يتحقق الشرط من نوع الصفحة ويعرض قيمة بين الصواب والخطأ. مفيدة جدا لضبط المحتوى ومع إمكانيات أكثر وأشمل من الشروط المستندة إلى القاعدة الشرطية <data:pageType/>
العلامة الشرطية نوع الشرط المعلومات الأساسية
<b:if cond='data:view.isHomepage'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية هي الصفحة الرئيسية، وإلا كاذبة.
<b:if cond='data:view.isPost'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية تدوينة، خلاف ذلك كاذبة.
<b:if cond='data:view.isPage'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية هي صفحة ثابتة، وإلا كاذبة.
<b:if cond='data:view.isArchive'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية هي فهرس المدونة، وإلا كاذبة.
<b:if cond='data:view.isError'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية صفحة الخطأ 404، وإلا كاذبة.
<b:if cond='data:view.isSearch'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية هي صفحة البحث، وإلا كاذبة.
<b:if cond='data:view.isLabelSearch'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية هي البحث عن طريق التسميات، وإلا كاذبة.
<b:if cond='data:view.isMultipleItems'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية يمكن أن تحتوي على صفحات متعددة(القوائم)، وإلا كاذبة.
<b:if cond='data:view.isSingleItem'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية مقال (التدوينات والصفحات الثابتة)، وإلا كاذبة.
<b:if cond='data:view.isPreview'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية هي معاينة المحرر للصفحات، وإلا كاذبة
<b:if cond='data:view.isLayoutMode'> … </b:if> [boolean] صحيح إذا كانت الصفحة الحالية هي طريقة عرض التصميم (صفحة التخطيط)، وإلا كاذبة

صفحة البحث:
هذه العلامات الشرطية تمكننا من العمل عندما تكون الصفحة الحالية هي البحث وتوفر لنا بيانات محددة جدا.
العلامة الشرطية نوع الشرط المعلومات الأساسية
<b:if cond='data:view.search.query'> … </b:if> [string] إظهار فقط في حالة البحث عن أية كلمات ولايظهر عند الضغط على التسميات.
<b:if cond='data:view.search.query == "الكلمة"'> … </b:if> [string] إظهار فقط في حالة البحث عن أية كلمة رئيسية محددة نضعها مكان "الكلمة"
<b:if cond='data:view.search.label'> … </b:if> [string] إظهار فقط في حالة البحث عن أية تسميات.
<b:if cond='data:view.search.label == "التسمية"'> [string] إظهار فقط في حالة البحث عن تسمية محددة نضعها مكان "التسمية"
<b:if cond='data:view.search.resultsMessage'> … </b:if> [string] إظهار في حالة البحث مع إمكانية التحكم في الناتج
<b:if cond='data:view.search.resultsMessageHtml'> … </b:if> [string] إظهار في حالة البحث مع إمكانية التحكم في الناتج، يرافقه html.




تعليقات

إرسال تعليق

قد يهمك ايضا

  • إنشاء صفحة الإتصال على بلوجر متعددة الإستخدامات | نموذج طلب الإنضمام للمدونة

  • سكريبت إضافة صفحة إعادة توجيه الروابط لمدونتك | Custom Redirects In Blogger

  • مجانا - سكريبت إضافة أداة عربة التسوق إلى المدونة بإستخدام مكتبة simpleCart (js)

  • إضافة خاصية تقييم المحتوى على شكل نجوم 🌟 بإستخدام تطبيق Firebase

  • قالب فلامينغو - Flamingo - قالب مجلة عصري بـ 10$ - الإصدار v2.0.0

  • سكريبت إضافة صندوق لعرض الإشعارات مع شارة الترقيم | notification badge