صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 19

الموضوع: دروس: طريقة استخدام القوالب مع SmarTemplates

  1. #1
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137

    دروس: طريقة استخدام القوالب مع SmarTemplates



    الدرس الأول – المتغيرات:

    تمهيد:
    تعتبر هذه الدروس أن لديك خلفية معقولة عن كل من برمجة PHP و توصيف HTML، قم بالحصول على ملف محرك القوالب المتوفر مجاناً في الموقع http://smartemplates.php4arab.info، ضع الملف SmarTemplates.php داخل نفس المجلد الذي تعتزم كتابة برامجك فيه حتى يكون بالإمكان الوصول إليه من خلال الدالة include، استخدم المفكرة أو برنامجك المفضل لتحرير كل من ملفات php و ملفات القوالب على الشكل HTML.

    تمثيل المتغيرات:
    لنفترض أنه لديك المتغيرات التالية:
    كود PHP:
     $a "هذا البرنامج هو تجربة";
     
    $b 24500;
     
    $c time();

    include 
    "SmarTemplates.php";
    print 
    $ST->STTransFile("template.html"compact('a''b''c')); 
    حيث يمثل $a متغيراً نصياً، ويمثل $b متغيراً عددياً، كما يمثل $c الوقت والتاريخ، فإن ملف القالب سيكون بالشكل التالي:

    كود:
    <html>
      <body>
        a =  <st-echo>$a</st-echo> 
        <br>
        b = <st-echo>$b</st-echo>  
         <br>
        c = <st-echo format="d-m-Y h:ia">$c</st-echo>
       </body>
    </html>
    حيث تستخدم الواصفة st-echo لتمثل قيم المتغيرات، يمكنك وضع الواصفة st-echo في أي مكان تريد، كما يمكنك تخصيص صفة خاصة لطريقة كتابة المتغير كما استخدمنا في المثال الصفة format لتحديد شكل ظهور الوقت والتاريخ، حيث تعني d-m-Y h:ia أن التاريخ سيظهر على الشكل يوم-شهر-سنة ثم الساعة:الدقيقة وصباحاً أو مساءً.
    لاحظ أن بإمكانك تغيير ملف القالب في أي وقت من خلال أي برنامج تصميم صفحات ويب، كما يمكنك نقل الواصفة من مكان إلى آخر وتكرارها وتغيير خصائصها، دون الحاجة إلى الرجوع إلى ملف البرمجة مرة أخرى.

    خصائص تمثيل المتغيرات:
    يمكنك استخدام العديد من خصائص الواصفة st-echo للحصول على إمكانية أخرى دون العودة إلى ملف البرمجة، تخيل مثلاً أنك تحتاج إلى عرض جزء من قيمة المتغير النصي إذا زاد عن طول معين فإنك عندئذ لا تحتاج إلا إلى إضافة الخاصية limit إلى الواصفة كما في المثال التالي:
    كود:
    <st-echo limit="15">$a</st-echo>
    حيث ستقوم الواصفة تلقائياً بعرض 15 حرفاً فقط من قيمة المتغير $a
    توجد العديد من الخصائص للواصفة st-echo تعطيك إمكانيات عديدة يمكنك مراجعتها في الموقع http://smartemplates.php4arab.info/d...hp?lang=arabic

    الدعم للغة العربية:
    يمكن للخاصية format أن تجعل الواصفة st-echo تقوم بعرض تاريخ مترجم باللغة العربية، أو محول للتقويم الهجري تلقائياً بمجرد استخدام الرمز ar: أو hj: في بداية الخاصية كما في الأمثلة التالية:
    كود:
    <st-echo format="ar:l, d-F-Y">$c</st-echo>
    <st-echo format="hj:l, d-F-Y">$c</st-echo>
    كما يمكن وبسهولة استخدام خاصية الكميات المعدودة لضبط التمثيل الصحيح للقيم المعدودة باللغة العربية، فبدلاً من الطريقة المستهجنة التي تجدها في العديد من المواقع العربية للعد على الشكل (2 عضو/عضواً) أو على الشكل (24 ملفات) والتي تبدو وكأنها لغة مكسرة، يمكنك باستخدام الخاصية countable جعل محرك القوالب يضبط الشكل الصحيح للكمية المعدودة كما في المثال التالي:
    كود:
    عدد الأعضاء المتواجدين الآن: 
    <st-echo countable="ar:لا أحد,عضو واحد,عضوان,أعضاء,عضواً">$X</st-echo>
    حيث يقوم المحرك وبناءً على القيمة العددية للمتغير $X في انتقاء الكلمة المناسبة من بين الكلمات التي ذكرتها.

    تمثيل قيم المصفوفات:
    يمكن بسهولة أيضاً تمثيل قيمة ضمن مصفوفة، فإذا كان المتغير $Y عبارة عن مصفوفة على الشكل:
    كود:
    $Y = Array ('name'=>'Ahmad', 'telephone'=> 42399122);
    فإنك تستطيع عرض القيم بالشكل التالي:
    كود:
    <st-echo>$Y[name]</st-echo>
    الاختصارات:
    يمكن أيضاً استخدام الشكل المختصر:
    كود:
    <$Y>
    بدلاً من
    <st-echo>$Y</st-echo>
    وذلك للاختصار أثناء الكتابة، كما يمكن أيضاً استخدام الشكل الثانوي للواصفات، عندما يحتاج الأمر إلى ذلك، ففي بعض الأحيان قد تحتاج إلى وضع قيمة متغير داخل واصفة HTML اعتيادية كما في المثال التالي:
    كود:
    <font color="<$color>">
    </font>
    حيث لا تتقبل المحررات هذا الشكل وتعتبره خللاً في الهيكل لذلك يمكنك استخدام هذا الشكل:
    كود:
    <font color="{$color}">
    </font>
    فالمحرك يعتبر أن الواصفات يمكنها أن تستخدم الأقواس { و } بدلاً من < و > إذا ما كانت داخل واصفة أخرى وذلك للتوافق مع محررات صفحات الويب.

    حمل تطبيقات الأمثلة هنا بالترتيب:
    تمثيل المتغيرات
    دعم اللغة العربية
    تمثيل قيم المصفوفات
    الاختصارات





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً


  2. #2
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137


    الدرس الثاني – المقاطع الشرطية:

    تمهيد:
    تعتبر هذه الدروس أن لديك خلفية معقولة عن كل من برمجة PHP و توصيف HTML، قم بالحصول على ملف محرك القوالب المتوفر مجاناً في الموقع http://smartemplates.php4arab.info، ضع الملف SmarTemplates.php داخل نفس المجلد الذي تعتزم كتابة برامجك فيه حتى يكون بالإمكان الوصول إليه من خلال الدالة include، استخدم المفكرة أو برنامج المفضل لتحرير كل من ملفات php و ملفات القوالب على الشكل HTML، قم بالاطلاع على الدروس السابقة إذا لم تكن قد فعلت ذلك مسبقا.

    لماذا المقاطع الشرطية:
    تحتاج أحياناً لأن تضع إمكانية لظهور عبارة معينة أو جزءاً معيناً من الصفحة بناء على نتيجة ما، وهذا غالباً ما يعتمد في برمجة PHP على عبارة التحكم الشرطي IF والتي تعتمد على تعبير منطقي يتم احتسابه بحيث يعود بإحدى القيمتين true أو false فإن كانت نتيجة التعبير صحيحة true فسيتم تنفيذ الجزء المحدد، وفيما يلي مثال على نموذج إرسال رسائل بريدية بسيط، يعتمد على القوالب :

    ملف mail.php:
    كود PHP:
    <?php
       $sent 
    0$errors = array(); $error=0;
       
    // استقبال المدخلات إن وجدت
       
    If (isset($HTTP_POST_VARS['send'])) {
            @
    $subject=trim($HTTP_POST_VARS['subject']);
            @
    $to=trim($HTTP_POST_VARS['to']);
            @
    $msg=trim($HTTP_POST_VARS['msg']);
           
    // التأكد من المدخلات
            
    if (!$subject$errors['subject']=true;
            if (!
    $to$errors['to']=true;
            if (!
    $msg$errors['msg']=true;
          
    // إن لم توجد أخطاء يتم إرسال الرسالة
            
    $error count($errors);
            if (!
    $error) {
                   
    $sent mail($to$subject$msg"From: test@test\n\n");
            }
       }
     
    // عرض القالب
     
    Include "SmarTemplates.php";
     Print 
    $ST->STTransFile("mailTemplate.html"compact('sent''errors''error'));
    ?>
    ملف القالب mailTemplate.html:
    كود PHP:
    <html>
      <
    body dir="rtl">
        <
    st-if expression="$sent">
             <
    div align="center">لقد تم إرسال الرسالة</div>
        </
    st-if>
        <
    st-else>
           <
    st-if expression="$error">
             <
    div align="center">لم يتم إرسال الرسالة </div>
           </
    st-if>
           <
    st-if expression="$errors[subject]=true">
              <
    font color="red">عنوان الرسالة غير محدد</font><hr>
           </
    st-if>
           <
    st-if expression="$errors[to]=true">
              <
    font color="red">عنوان البريد غير محدد</font><hr>
           </
    st-if>
           <
    st-if expression="$errors[msg]=true">
              <
    font color="red">الرسالة لم تكتب</font><hr>
           </
    st-if>
           <
    form action="mail.php" method="post">
            
    عنوان الرسالة <input type="text" name="subject"><br>
            
    إلى عنوان بريد <input type="text" name="to"><br>
            
    الرسالة <textarea cols="30" rows="10"></textarea><br>
            <
    input type="submit" name="send" value="أرسل">
          </
    form>
        </
    st-else>
      </
    body>
    </
    html
    رموز الشروط:
    كما هو واضح في المثال السابق أمكننا استخدام مقاطع شرطية بحيث يمكن عرض جزء من الصفحة بدلالة قيمة متغير ما، حيث أن الواصفة st-if هنا:
    كود:
    <st-if expression="$errors[subject]=true">
    </st-if>
    تماثل تلك في لغة PHP بهذا الشكل:
    كود:
     If ($errors[subject]==true) {
     }
    كما يمكن استخدام الواصفة st-else لتمثل العبارة else بالنسبة للغة php.
    حيث يمكن استخدام رموز الشروط المعروفة = للمساواة، و!= لعدم المساواة، إلا أن الأمر يختلف بالنسبة لشرط أكبر من واصغر من، لذلك يجب أن يتم استخدام الرمز < بدلاً من > كما في المثال التالي:
    كود:
    <st-if expression="$X›$Y ">
    وذلك بسبب وجود قصور في دالة تفصيل الواصفات، والذي يتم البحث عن بديل لها حالياً.

    الشروط المركبة:
    في بعض الأحيان قد تحتاج إلى استخدام مجموعة من الشروط مربوطة ببعضها البعض عن طريق إشارات الربط المنطقية (و) و (أو) ولتمثيل ذلك مع واصفة st-if يجب تقسيم الشروط بحسب علاقة الربط بينها كما في المثال التالي:
    كود:
    <st-if expression="$X=$Y" and="$Y=$Z">

    أو
    كود:
    <st-if expression="$X=$Y" or="$Y=$Z" or2="$X=$Z">
    لمزيد من المعلومات حول كيفية استخدام الشروط المركبة راجع في الموقع http://smartemplates.php4arab.info/document.php?lang=arabic

    حمل تطبيقات الأمثلة هنا بالترتيب:
    نموذج إرسال رسائل بريدية
    الشروط المركبة

    ستتم إضافة المزيد من الأمثلة والدروس قريباً إن شاء الله، هنا:
    http://www.php4web.com/phpbb/viewtopic.php?t=502





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2000
    المشاركات
    2,697


    جزاك الله خيراً أستاذنا .. سأقوم إن شاءالله بمحاولة التطبيق ..





    رضا غير متواجد حالياً

  4. #4
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137


    شكراً للإدارة لتثبيت الموضوع، وشكراً لك يا رضا لاهتمامك أرجو كتابة الاستفسارات إن وجدت هنا

    ____________
    موضوع جانبي: هناك شخص لم أتمكن من معرفة عنوان بريده جيداً لأني فقدت الرسالة بالخطأ، أرسل لي رسالة يقول أنه قرأ في سوالف موضوعاً لي وسأل ما إذا كنت في مدينة الرياض، أود أن أعتذر عن فقدان الرسالة بالخطأ وأرد بأنني في مدينة مكة المكرمة.





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً



  5. الله يوفقك يا صلاح و يجزاك خير على هالموضوع القيم .
    درس جميل جداً . ابحاول ان شاء الله اطبقه .

    تقبل خالص التحية و التقدير
    اخوك ابو مشعل





    __________________
    أخوكم ابو مشعل
    ملاحظات لتنظيم المنتدى:
    http://www.swalif.net/softs/showthread.php?s=&threadid=42612
    ---------------
    ابو مشعل غير متواجد حالياً

  6. #6
    __________________
    ArabBB ... SoooooN!
    Al Mobarmeg المبرمج غير متواجد حالياً

  7. #7
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137


    أبو مشعل، شكراً لك..
    Al Mobarmeg المبرمج، الموضوع هنا مختلف قليلاً، فأن أشرح طريقة استخدام القولب مع محرك SmarTemplates الذي قمت ببرمجته منذ وقت طويل ولم أتمكن من شرح استخدامه، لمعرف مزايا هذا المحرك اقرأ هنا http://smartemplates.php4arab.info/?lang=arabic





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً

  8. #8
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137


    الدرس الثالث – الحلقات التكرارية:

    تمهيد:
    تعتبر هذه الدروس أن لديك خلفية معقولة عن كل من برمجة PHP و توصيف HTML، قم بالحصول على ملف محرك القوالب المتوفر مجاناً في الموقع http://smartemplates.php4arab.info، ضع الملف SmarTemplates.php داخل نفس المجلد الذي تعتزم كتابة برامجك فيه حتى يكون بالإمكان الوصول إليه من خلال الدالة include، استخدم المفكرة أو برنامج المفضل لتحرير كل من ملفات php و ملفات القوالب على الشكل HTML، قم بالاطلاع على الدروس السابقة إذا لم تكن قد فعلت ذلك مسبقا.

    مفهوم الحلقات التكرارية:
    من المعروف لمبرمجي PHP أنه بالإمكان تمثيل مجموعة القيم من مصفوفة أو من مدى رقمي معين أو من جدول آت من قاعدة بيانات باستخدام بلاغات الحلقات for، foreach، while و غيرها، وغالباً ما تحتاج إلى استخدام دخول وخروج متكرر من نمط php إلى HTML والعكس بشكل متكرر مع هذه الحلقات داخل ملفات php، لكن الوضع مختلف بالنسبة لمحرك القوالب SmarTemplates فالواصفة st-data معدة لعمل هذا التكرار وبشكل متميز دون الحاجة إلى بناء حلقة تكرارية داخل البرنامج، فكل ما هو مطلوب هو تحديد مصدر البيانات بشكل معين وستقوم الواصفة بتوليد حلقة التكرار بالشكل المناسب، سيشرح هذا الدرس طريقة استخدام st-data لتمثيل قيم المصفوفات، والمدى الرقمي، وقراءة الملفات النصية بينما سيتم شرح طريقة استخدامها في جلب البيانات من قاعدة بيانات في درس آخر.

    تمثيل قيم من مدى رقمي:
    عندما تحتاج عرض بيانات من مدى رقمي، على سبيل المثال من 1 إلى 20 فإنك ستقوم باستخدام برنامج php بهذا الشكل:
    كود PHP:
    <?php
       
    for($i=1$i<=20$i++) {
          echo 
    "$i <br>";
    }
    ?>
    لكنك لن تعود في حاجة إلى ذلك مع محرك القوالب SmarTemplates حيث يمكنك عمل ذلك بالواصفة st-data كما في المثال التالي:
    كود:
    <st-data name="X" mode="1" range="1,20">
      <$X_STDVal><br>
    </st-data>
    لاحظ أننا استخدمنا الخاصية mode=1 و الخاصية range=1,20 والتي تحدد أن المطلوب هو مدى رقمي يبدأ من الرقم 1 ويصل إلى الرقم 20، ثم عرفنا هذا المقطع بالاسم X، فيقوم المحرك تلقائياً بتعريف متغير خاص بالاسم X_STDVal والذي يمثل القيمة العددية للرقم المتزايد، ولاحظ أنه بإمكانك وضع أي واصفات HTML داخل المقطع حيث أنها ستتكرر بنفس العدد المرات خلال العد من رقم بداية المدى إلى نهايته.
    مثال عملي:
    كود PHP:
    <html>
    السنة <select name="Year">
      <
    st-data name="Y" mode="1" range="1950,2003">
         <
    option><$Y_STDVal></option>
      </
    st-data>
    </
    select>
    </
    html
    تمثيل قيم من مصفوفة:
    إذا كانت لديك مجموعة من القيم في مصفوفة وتريد عرضها فكل ما عليك هو تمثيل المصفوفة كما في المثال التالي:
    كود PHP:
    <?php
      $A 
    = array(
                array(
    'name'=>'Ahmad''number'=>3847272),
                array(
    'name'=>'Ali''number'=>2777622),
                array(
    'name'=>'Manal''number'=>9928222)
              );
     
    $A serialize($A);
     include 
    "SmarTemplates.php";
     print 
    $ST->STTransFile("arraysTemplate.html"compact('A'));
    ?>
    بحيث يكون ملف القالب arraysTemplate.html بهذا الشكل:
    كود PHP:
    <html>
     <
    table border="1">
      <
    st-data name="DATA" mode="4" var="$A">
        <
    tr>
             <
    td><$DATA_Serial></td>
             <
    td><$DATA[name]></td>
             <
    td><$DATA[number]></td>
        </
    tr>
       </
    st-data>
     </
    table>
    </
    html
    لاحظ أن المصفوفة يجب أن تكون ذات بعدين، حيث يمثل البعد الأول مصفوفة البيانات الأفقية (صفوف) ويمثل البعد الثاني مصفوفة البيانات العمودية (حقول)، ثم يتم حزمها بالدالة serialize، نفذ المثال السابق وستجد أن المحرك قد قام بتكرار شكل صف الجدول كما هو لكل بيانات المصفوفة ووضع القيم في مكانها الصحيح، دون الحاجة لاستخدام أي من عبارات التكرار في برنامج php.

    تمثيل قيم يتم قراءتها من ملف نصي:
    بالإمكان أيضاً استخدام الواصفة st-data لقراءة ملف نصي، سطراً سطراً أو دفعة واحدة، كما في المثال التالي:
    كود PHP:
    <html>
      
    قراءة الملف النصي   
       Readme
    .txt <hr>
      <
    st-data name="FILE" mode="3" file="Readme.txt" format="SEQ">
         <
    $FILE_Line><br>
       </
    st-data>
    <
    hr>
    </
    html
    عملية القراءة هنا تجاوزت كل تعقيدات عملية القراءة المعتادة، وأصبح بالإمكان عرض ملفات نصية داخل القوالب بسهولة والوصول إلى أي جزء منها، لاحظ أننا استخدمنا المتغير $FILE_Rows لنمثل قيمة عدد الأسطر التي تمت قراءتها،

    للمزيد من المعلومات التقنية حول الواصفة st-data يرجى مراجعة الموقع: http://smartemplates.php4arab.info/d...hp?lang=arabic

    يمكن تحميل الأمثلة المشروحة هنا بالترتيب:
    المدى الرقمي
    عرض قيم المصفوفات
    عرض محتويات الملفات النصية





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً

  9. #9
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137


    تعقيب: بالنسبة لواصفة الحلقات الكرارية st-data يمكن بسهولة جعل محتوياتها تظهر بألوان مختلفة مثلاً، كأن تجعل كل صف بلون مختلف عما يليه ولأي عدد من الألوان وذلك باستخدام الواصفة ST-ALT أو ST-BNC، والتي سيتم شرحها في درس لاحق إن شاء الله، أرجو مراجعة الموقع لمعرفة طريقة استخدامها.





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً

  10. #10
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137


    قمت بوضع إصدار جديد من المحرك 2.4.3 يمكن معرفة التغييرات هنا:
    http://smartemplates.php4arab.info/updates
    وللحصول على النسخة الأخيرة راجع صفحة التحميل في موقع SourceForge للبرنامج:
    http://sourceforge.net/project/showf...group_id=69260





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً

  11. #11
    عضو سوبر نشيط
    تاريخ التسجيل
    Mar 2002
    المشاركات
    693


    شكرا أخى VisualMind على هذا الشرح المتميز
    وألف مبروك على النسخة الجديدة من محرك SmarTemplates ونتتظر التقدم له دائما
    وتحياتى لك بالتوفيق





    php master غير متواجد حالياً

  12. #12
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137


    الله يبارك فيك أخي php master..
    بالمناسبة، لست أدري إن كان هناك شخص ما قام باستخدام محرك القوالب أم لا، فمع عدم وجود أي أسئلة عليه يبدو لي إما أنه لم يقم أحد باستخدامه أو أن الشرح كان واضحاً جداً!
    عموماً سوف أنتقل إلى عرض مجموعة من الدروس المتقدمة بعد ايام لأعرض بقية ميزات البرنامج وخصوصاً فيما يتعلق بقواعد البيانات لعل ذلك يساهم في تشجيع استخدامه.





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Apr 2003
    المشاركات
    283


    اخوي VisualMind البرنامج انت كاتبه ؟

    توني عرفت من هذا الموضوع

    بصدق عمل مميز للغاية اقصد البرنامج ليس الشرح

    والشرح ايضا مميز لكن للان ما خلصته ولا صلحت تجارب

    بس حبيت اشكرك على انشاء البرنامج لاني الان عرفت انك المبرمج


    بتوفيق اخي





    __________________
    مجموعة بي اتش بي العربية www.php4arab.org
    البوابة العربية www.arabportal.net
    rafia غير متواجد حالياً

  14. #14
    عضو نشيط
    تاريخ التسجيل
    May 2002
    المشاركات
    137


    شكراً لك أخي rafia، وأتمنى أن يعجبك البرنامج بعد تجربته





    __________________
    visualmind (at) php.net
    أعتذر كثيراً عن غيابي من المشاركات والذي لن يطول أكثر إن شاء الله.
    VisualMind غير متواجد حالياً

  15. #15
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2003
    المشاركات
    530


    انا متحمس للدروس الي عن طريقة استخدامه مع mysql

    ارجو وضعها بسرعة





    the hak غير متواجد حالياً





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

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

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