النتائج 1 إلى 5 من 5

الموضوع: [smarty] درس برمجة الـ modifiers

  1. #1
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046

    [smarty] درس برمجة الـ modifiers



    السلام عليكم ورحمة الله وبركاته

    في محرك القوالب سمارتي
    كثيرا ما أحتاج الى برمجة modifier يقوم بعمل معين أحتاج الى تنفيذه على مستوى القالب، لا على مستوى كود php

    كبداية وللتعريف بالـ modifier فهو دالة نقوم بكتابتها بعد المتغير داخل قالب السمارتي، لكي تقوم بتنفذ عملية معينة على قيمة هذا المتغير
    مثلا وبفرض وجود متغير باسم $title يحمل قيمة ما هي عبارة عن نص
    في حالة رغبتنا بعرض مايحتويه هذا المتغير بعد تحويله للحروف الكبيرة Uppercase فيمكننا استخدام الموديفاير upper كالتالي:
    كود:
    {$title|upper}
    وفي حالة رغبتنا في اظهار تاريخ اليوم عن طريق سمارتي نستخدم الكود التالي:
    كود PHP:
    {$smarty.now|date_format:"%Y/%m/%d"
    لاحظ هنا ان الموديفاير او الدالة هي: date_format وقد سبقناها بالعلامة |
    وحتى نمرر لها أول باراميتر وهو الطريقة التي نريد أن يظهر بها التاريخ استخدمنا العلامة : وتبعناها بالفورمات المطلوب

    الآن نرجع لموضوع درسنا وهو طريقة برمجة موديفاير modifier خاص بنا يقوم بوظيفة معينة
    1- قم بانشاء ملف بالاسم: modifier.arabic_date.php
    2- احفظ هذا الملف داخل المجلد: smarty/plugins
    3- انسخ هذا الكود الى داخل الملف:
    كود PHP:
    <?php
    function smarty_modifier_arabic_date($dateline$short=false)
    {
        if(
    $short)
        {
            
    $date date("l j/n/Y م"$dateline);
            
    $date str_replace(array("Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"), array("السبت","الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة"), $date);
        }
        else
        {
            
    $date date("l j/n/Yم الساعة h:i:s A"$dateline);
            
    $date str_replace(array("Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"), array("السبت","الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة"), $date);
            
    $date str_replace(array("AM","PM"), array("صباحاً","مساءاً"), $date);
        }
        return 
    $date;
    }
    ?>
    لاحظ هنا ان اسم الدالة يجب أن يبدأ بـ smarty_modifier_ ويتبعه اسم الدالة الذي يجب أن يكون مطابق للمقطع الثاني من اسم الملف "arabic_date"

    الآن وعند الرغبة في اظهار التاريخ باللغة العربية في اي مكان في قوالب سمارتي ، نستخدم الموديفاير الجديد كالتالي:

    عند الرغبة في اظهار التاريخ في صورته الطويلة، لا نحتاج لتمرير اي باراميترز
    كود:
    {$smarty.now|arabic_date}
    عند الرغبة في اظهار التاريخ بالصورة القصيرة يجب أن نمرر الباراميتر short الى الدالة
    كود:
    {$smarty.now|arabic_date:true}

    أتمنى ان يكون الدرس قد افادكم
    وبانتظار اي استفسارات





    __________________
    مدونتي


  2. #2


    محمود شكراً لك على الدرس ..

    البارحة واجهتني صعوبة في شيء معين بالسمارتي

    و هو حلقة التكرار for

    {section name=foo loop=31}
    {$smarty.section.foo.iteration}
    {/section}

    المثال فوق هو لحلقة تكرار تبدأ من 1 و تنتهي عند 31

    ماذا لو أردنا ان تبدأ من 1950 و تنتهي في 2011 مثلاً
    علماً انني استعملت
    {section name=foo start=1950 max=2010}

    و لم تعمل بالشكل المطلوب مع اني اعتقد ان الحل يجب ان يكون بسيطاً لكنني بحثت في موقع الدعم الفني لسمارتي و لم اتمكن من العثور على اي افادة .

    شكراً لك مجدداً .





    __________________
    مبرمج php للتواصل : roudyhermez(at)hotmail(dot)com
    مدونتي PlusCSS

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    اهلا اخي assyrian-php

    ماذا لو أردنا ان تبدأ من 1950 و تنتهي في 2011 مثلاً
    علماً انني استعملت
    {section name=foo start=1950 max=2010}
    تبدأ من 1950 وتنتهي في 2011 إذن سنستخدم section مع تمرير الباراميترين:
    start = 1950
    max = 61 (الفرق بين 2011 و 1950)
    لتصبح كالتالي:
    كود:
    {section name=foo start=1950 max=61}
    لاحظ ان max هنا تعبر عن عدد مرات تكرار الحلقة وليس الحد الأقصى للحلقة

    تحياتي





    __________________
    مدونتي

  4. #4
    عضو فعال
    تاريخ التسجيل
    Feb 2008
    المشاركات
    1,589


    السلام عليكم ورحمة الله وبركاته
    شكرا جزيلا علي الشرح
    وساقوم بالمتابعه لهذا الشرح لاحقا لاني لسه جديد بالبي اتش بي
    واجهتني مشكلة البارحه بموقع بي اتش بي وهي كل الاقسام خاص للزوار
    لايمكنهم مشاهده المحتوي






  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    السلام عليكم ورحمة الله وبركاته
    شكرا جزيلا علي الشرح
    وساقوم بالمتابعه لهذا الشرح لاحقا لاني لسه جديد بالبي اتش بي
    واجهتني مشكلة البارحه بموقع بي اتش بي وهي كل الاقسام خاص للزوار
    لايمكنهم مشاهده المحتوي
    وعليكم السلام ورحمة الله وبركاته

    ليست مشكلة أخي محمد ولكن تعديل لسياسة المنتدى، حيث يمكن تصفح المواضيع فقط من قبل الاعضاء

    تحياتي





    __________________
    مدونتي





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض