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

الموضوع: فكره لإنشاء محرك قوالب عن طريق قواعد البيانات mysql

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

    فكره لإنشاء محرك قوالب عن طريق قواعد البيانات mysql



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

    ليس لي خبرة كبيره في انشاء محركات القوالب ولكن أحببت ان اطرح هذه الفكره لعل وعسى ان تنفع او يتم تطويرها الى الأفضل

    وهي بإختصار شديد يتم اضافة جدول في قاعدة البيانات يحتوي على عدة حقول وكل حقل له دور خاص فيه .

    تقريبا الفكره مقاربه لقوالب المنتديات vb من حيث الفكره فقط وليست البرمجه :

    نعتمد على هذا الجدول في عملنا لمحرك القوالب :

    كود:
    CREATE TABLE `style` (
      `idstyle` int(10) NOT NULL auto_increment,
      `name` varchar(100) NOT NULL default '',
      `htmldir` text,
      `css` text,
      `body` text,
      `header` text,
      `footer` text,
      `frame` text,
      `menu` text,
      PRIMARY KEY  (`idstyle`)
    );
    الحقل idstyle هو الرقم التسلسلي لكل قالب .
    الحقل name هو إسم للقالب .
    الحقل htmldir لإضافة كود اتجاه الصفحه والميتا والعنوان title للقالب .
    الحقل css لإضافة اكواد الأنماط css .
    الحقل body لإضافة كود الجسم والذي يشمل لون الصفحه والهوامش .
    الحقل header هو لإضافة تصميم الصفحه العلوي .
    الحقل footer لإضافة تصميم الصفحة السفلي .
    الحقل frame لإضافة تصميم الإطارات .
    الحقل menu لإضافة تصميم القوائم الجانبيه .


    سنضرب أمثله للحقول أولا بأول :

    الحقل htmldir سيكون الكود تبعه هكذا :

    كود HTML:
    <html dir="rtl">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <title>{title}</title>
    </head>
    حيث ان المتغير {title} سيتم استبداله بإسم الصفحه .

    الحقل css سيكون به الكود التالي :

    كود HTML:
    <style>
    <!--
    BODY {
    scrollbar-base-color: #E8F3F9;
    scrollbar-arrow-color: #72A5C0;
    scrollbar-track-color: #D4E1E9;
    FONT-SIZE: 12px; FONT-FAMILY: tahoma
    }
    
    TD {
    FONT-SIZE: 12px;
    FONT-FAMILY: tahoma
    }
    
    P {
    FONT-SIZE: 12px;
    FONT-FAMILY: tahoma
    }
    
    DIV {
    FONT-SIZE: 12px;
    FONT-FAMILY: tahoma
    }
    -->
    </style>
    والحقل body سيكون به الكود التالي :

    كود HTML:
    <body topmargin="0" leftmargin="0" bgcolor="#E8E8E8">
    والآن قبل وضع اكواد الهيدر والفوتر يجب عليك ان تعمل تصميم للصقحة وتقصصه وتركبه كيفما تشاء وتنسقه وتعمله على جزئين فقط >>> كما بالمثال التالي :

    فل نفرض ان هذا هو كود تصميم الصفحه كاملا :

    كود HTML:
    <div align="center">
      <center>
      <table border="1" cellpadding="2" style="border-collapse: collapse; border-style: double; border-width: 3" bordercolor="#000000" width="90%" id="AutoNumber1" dir="rtl" bgcolor="#C0C0C0">
        <tr>
          <td width="100%">xxxxxxxx</td>
        </tr>
      </table>
      </center>
    </div>
    يتم فصل الكود كما يلي >> ما فوق xxxxxxxx فهذا للهيدر وما تحته للفوتر

    كود header :

    كود HTML:
    <div align="center">
      <center>
      <table border="1" cellpadding="2" style="border-collapse: collapse; border-style: double; border-width: 3" bordercolor="#000000" width="90%" id="AutoNumber1" dir="rtl" bgcolor="#C0C0C0">
        <tr>
          <td width="100%">
    كود footer :

    كود HTML:
    </td>
        </tr>
      </table>
      </center>
    </div>
    وطبعا اسفل كود الفوتر سيتم إضافة كود إغلاق وسم الجسم والصفحه وهذا هو :

    كود HTML:
    </body>
    
    </html>
    كود الحقل frame :

    كود HTML:
    <div align="center">
      <center>
      <table border="1" cellpadding="2" style="border-collapse: collapse" bordercolor="#111111" width="60%" id="AutoNumber2" dir="rtl" bgcolor="#C0C0C0">
        <tr>
          <td width="100%">
          <p align="center">{frame_title}</td>
        </tr>
        <tr>
          <td width="100%">{frame_rows}</td>
        </tr>
      </table>
      </center>
    </div>
    سيتم استبدال المتغير {frame_title} بإسم القسم أو إسم المقال أو إسم الصفحه ...
    سيتم استبدال المتغير {frame_rows} إما بدالة تكرار أو المقال كاملا وحسب نوعية البيانات ...

    كود الحقل menu تقريبا مشابه لطريقة كود الحقل frame .

    =============

    والآن كيف نجلب البيانات ونستخدمها ؟

    إليكم بهذه الداله في تجمع كود اتجاه الصفحه وكود الانماط وكود الجسم والهيدر :
    كود PHP:
    function tpl_header($name_title)
    {
    global 
    $defultstyle,$name_site;
    $sql = @mysql_query("SELECT idstyle,htmldir,body,header,css,name FROM style where idstyle='$defultstyle'") or die ("Query failed");
    $tpl= @mysql_fetch_array($sql);
    $templates_name    $tpl['name'];
    $templates_htmldir stripslashes($tpl['htmldir']);
    $templates_body    stripslashes($tpl['body']);
    $templates_css     stripslashes($tpl['css']);
    $templates_header  stripslashes($tpl['header']);

    $templates_htmldir eregi_replace("{title}","$name_title",$templates_htmldir);
    $templates_header  eregi_replace("{title}","$name_site",$templates_header);

    echo 
    "$templates_htmldir";
    echo 
    "$templates_css";
    echo 
    "$templates_body";
    echo 
    "$templates_header";
    echo 
    "<br>";
    @
    mysql_free_result($sql);

    تم السماح لمتغيرين في الداله
    كود PHP:
    global $defultstyle,$name_site
    المتغير $defultstyle هو رقم id القالب الذي يتم استخدامه للصفحات .
    المتغير $name_site هو اسم الصفحة .
    والمتغير $name_title هو البارميتر الوحيد في الداله وهو اسم للصفحه بحيث سيتغير بتغير اسم الصفحه التي بها الداله .

    طريقة الاستدعاء :

    كود PHP:
    $name_title "ابوليالي";
    tpl_header($name_title); 

    وهنا دالة الفوتر :

    كود PHP:
    function tpl_footer()
    {
    global 
    $defultstyle;
    $sql = @mysql_query("SELECT idstyle,footer FROM style where idstyle='$defultstyle'") or die ("Query failed");
    $tpl= @mysql_fetch_array($sql);
    $footer stripslashes($tpl['footer']);
    echo 
    "$footer";
    @
    mysql_free_result($sql);

    طريقة الاستدعاء دائما تكون في آخر الصفحة تماما :
    كود PHP:
    tpl_footer(); 

    لا يسعني الوقت لإكمال البقيه وان شاء الله سيتم الإكمال في وقت لاحق

    وانتظر الاقتراحات والتعديلات من اصحاب الخبرات المتقدمه .

    والله ولي التوفيق







  2. #2
    عضو جديد
    تاريخ التسجيل
    Sep 2007
    المشاركات
    5


    فكرة جميلة اخي
    لكن لدي سؤال لماذا موقع بوادي لا يعمل





    __________________
    ابو ليل
    نسهر الليالي لنصل الى الأعالي

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    424


    الله يجزاك خير اخوي ابو ليل وحياك الله

    لكن لدي سؤال لماذا موقع بوادي لا يعمل
    بصراحه ياغالي المشكله من السيرفر نفسه وللاسف لا املك باك اب جديد ولا صاحب السيرفر راضي يفتح الموقع ولاحتى راضي يعطينا بك اب جديد !!

    وعساها خيره ان شاء الله






  4. #4


    أكمل بارك الله فيك أنا من أشد المتابعين لمثل هذه المواضيع ... بارك الله فيك وعلى هذا الموضوع القيم






  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    أكمل بارك الله فيك أنا من أشد المتابعين لمثل هذه المواضيع ... بارك الله فيك وعلى هذا الموضوع القيم
    اضم صوتي الى صوت الاخ هكرز المنتديات ..





    التعديل الأخير تم بواسطة dev11 ; 18-09-2007 الساعة 04:08 PM
    __________________
    مدونة؟

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    424


    اخوي هكرز المنتديات
    اخوي asaamas

    ابشروا ان شاء الله

    وحياكم الله

    يتم برمجة المحرك ان شاء الله وسيتم عرضه للجميع مع عدة امثله

    والله ولي التوفيق






  7. #7


    طيب عندي أسألة سلمك الله :

    1/لماذا استخدمت مرة stripslashes ومرة eregi_replace

    وايش فائدة الثانية لأني أول مرة أشوفها بصراحة

    stripslashes($tpl[menu]);
    $tpl[menu] = eregi_replace("{menu_title}","$menu_title",$tpl[menu]);


    هل تقصد أن eregi_replace هي لإظهار قيمة المتغير في القوالب


    2/ طيب لو القالب يحتوي على متغيرة $titel فهل سيظهر قيمته أم ماذا ? وكيف ؟ وهل بنفس الطريقة ؟

    معليش أسألة واحد ملخبط شوي


    وشكرا










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

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

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