سوالف اندرويد




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو فعال جدا
#1  
[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}

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






محمود حسين is offline   قديم 26-11-2011, 04:04 AM
الرد مع إقتباس
عضو نشيط جدا
#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
اخر اعمالي tejarh.com
سكربت اليوتيوب
سكربت ” مجلة ” لإدارة مواقع التحميل
Abgad مدونتي PlusCSS
assyrian-php is offline   قديم 27-11-2011, 04:58 AM
الرد مع إقتباس
عضو فعال جدا
#3  

اهلا اخي assyrian-php

إقتباس:
المشاركة الأصلية بواسطة 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 هنا تعبر عن عدد مرات تكرار الحلقة وليس الحد الأقصى للحلقة

تحياتي






محمود حسين is offline   قديم 27-11-2011, 12:31 PM
الرد مع إقتباس
عضو سوبر نشيط
#4  

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






moh_elferg is offline   قديم 27-11-2011, 11:09 PM
الرد مع إقتباس
عضو فعال جدا
#5  

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

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

تحياتي






محمود حسين is offline   قديم 28-11-2011, 03:02 AM
الرد مع إقتباس
الرد على الموضوع



أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
دالة while في smarty Al7aRbi PHP 3 29-07-2009 05:19 PM
سؤال في قوالب smarty gaser PHP 3 05-11-2008 05:01 PM
إلى خبراء smarty Globic PHP 5 17-10-2008 12:56 PM
تركيب smarttemplate او smarty ابو مشعل PHP 10 31-12-2005 09:28 AM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 10:17 PM.