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

الموضوع: أولى دروس الـ CMS ... أصنع نظام أخبار خاص بك مدعوم بنظام التعلقيات

  1. #1

    أولى دروس الـ CMS ... أصنع نظام أخبار خاص بك مدعوم بنظام التعلقيات



    السلام عليكم ورحمه الله
    كنت قد نوهت من قبل
    على دروس فى نظام الـ CMS على هذا الرابط

    واليوم سنشرح كيفيه عمل نظام أخبار متطور جداً ..
    به تعليقات
    ومعه ملف config
    وصفحه لإضافه الأخبار أيضاً..

    نبدأ ..
    فى البدايه يجب ان نكون 3 صفحات فقط وهم :
    • config.php
    • news.php
    • addnews.php

    نبدأ أولاً يزرع بعض المدخلات فى قاعده البيانات
    كود:
    CREATE TABLE news ( 
      id int(11) NOT NULL auto_increment, 
      title varchar(50) default NULL, 
      author varchar(30) default NULL, 
      content text, 
      postdate varchar(100) default NULL, 
      PRIMARY KEY  (id) 
    ) ENGINE=MyISAM; 
    
    CREATE TABLE comments ( 
      id int(10) NOT NULL auto_increment, 
      nid int(10) default NULL, 
      author varchar(30) default NULL, 
      `comment` text, 
      PRIMARY KEY  (id) 
    ) ENGINE=MyISAM;
    وهذه الخطوة لعمل الجداول داخل قاعده البيانات
    نأتى للملفات
    أنسخ الكود التالى وضعه فى ملف وقم بتسميته config.php
    كود:
    <?php 
    $db_name = "database"; 
    $db_user = "username";  
    $db_pass = "password";  
    $db_host = "localhost"; 
    
    mysql_connect("$db_host", "$db_user", "$db_pass")or die(mysql_error()); 
    mysql_select_db("$db_name") or die(mysql_error()); 
    
    $news_displaymax = "10";
    ?>
    طبعا بتعدل مدخلات المتغيرات الأولى .. إلى معلومات قواعد البيانات
    الكود اللى بعد المتغيرات هو الكود الخاص بالإتصال بقاعده البيانات عن طريق mysql_connect
    والمتغير news_displaymax هو عدد الأخبار المتاح له بالظهور

    نأتى الآن لصفحه الأخبار .. وهى صفحه معقده تقريبا
    انا وضعت الشرح داخل الكود
    كود:
    <?php 
    include "config.php"; 
    
    switch($_GET['act']){ 
    
    case 'view': 
    
    $id = $_GET['id'];
    $sql = "SELECT * FROM news WHERE id=$id";
    $sql2 = "SELECT * FROM comments where nid=$id ORDER by id ASC"; 
    
    $getone = mysql_query($sql) 
    or die(mysql_error()); 
    $getcomments = mysql_query($sql2); 
    
    
    if (mysql_num_rows($getone) == "0") { 
    
    echo 'لا يمكننا العثور على أى مقالات تمت كتابتها فى قاعده البيانات'; 
    
    exit();
    } 
    
    $row = mysql_fetch_array($getone) 
    or die(mysql_error()); 
    
    //هنا وضعناهم فى متغيرات .. أسهل على ما أظن. 
    $nid = $row['id']; 
    $ntitle = $row['title']; 
    $ncontent = $row['content']; 
    $nauthor = $row['author']; 
    $postdate = $row['postdate']; 
    
    //هذا هو التصميم ... 
    echo ("<TABLE width=400>\n 
    <TR><TD><b>$ntitle<b></TD>\n</tr> 
    <TR><TD>تمت كتابته بواسطه $nauthor فى $postdate<br>\n 
    -------------------------------------------------------------------------------</td></tr>\n 
    <tr><td>$ncontent</td></tr>\n 
    <tr><td><hr color=\"#820000\"></td></tr>\n 
    <tr><td><br><hr color=\"#820000\"></td></tr>\n 
    <tr><td><b>التعليقات:</b></td></tr>"); 
    
    while($rowc= mysql_fetch_array($getcomments)) 
    { 
    //مرة أخرى نضع البيانات فى متغيرات 
    $cauthor = $rowc['author']; 
    $cdata = $rowc['comment']; 
    $plink = ""; 
    $pend = ""; 
    
    //هنا نقوم بطباعه التعليقات
    echo ("<div class=\"comments\">"); 
    echo ("<tr><td>التعليق بواسطه: $plink $cauthor $pend</td></tr>\n 
    <tr><td>-------------------------------------------------------------------------------</tr></td>\n 
    <tr><td>$cdata</td></tr>\n 
    <tr><td>-------------------------------------------------------------------------------<br><br><br><br></td></tr>"); 
    echo ("</div>"); 
    } 
    
    //هنا نكون الفورم لإدراج العليقات 
    echo ("<tr><td><b>التعليق:</b></td></tr>\n 
    <tr><td><form method=\"POST\" action=\"?act=comment&nid=$nid\">\n 
    <textarea name=comment rows=\"7\" cols=\"30\"></textarea><br>\n 
    <input type=\"submit\" name=\"addcomment\" value=\"أضف تعليقى\"></td></tr> 
    <tr><td><a href=\"index.php\">إذهب بى إلى الرئيسيه</a></td></tr>"); //ضع لنك خاص بك أو حررة كما تريد
    
    echo "</TABLE>"; 
    
    
    break; // نغلق
    
    case 'comment': //نسوى سويتش جديد
    
    if (!$_POST['addcomment']) //لو حاول الزائر الوصول للصفحه دون عمل تعليق .. يظهر الإيرور
    { 
    echo "حدث خطأ..ّ يجب ان تكتب شيئا وتقوم بإعتماده"; 
    exit(); 
    }else{ //إلا إذا 
    $nid = $_GET['nid']; //get $nid 
    $commentor = "Guest";
    
    $ccontent= nl2br( strip_tags($_POST['comment'],"<b><i><u><a><font>"));
    $sql = "INSERT INTO comments (nid,author,comment) VALUES('$nid','$commentor','$ccontent')"; //تكوين الـ SQL 
    
    $addedcomments = mysql_query($sql) //نضع المدخلات داخل متغيرات
    or die(mysql_error()); 
    echo "شكرا لك .. لقد تم إضافه تعليقك ,, نرجو الإنتظار حتى يتم نقلك";
    echo "<meta http-equiv=\"Refresh\" content=\"0; URL=?act=view&id=$nid\"/>"; //كود التحويل
    } 
    
    break; 
    
    default: 
    
    $sql = "SELECT * FROM news order by id desc LIMIT $news_displaymax";
    $getnews = mysql_query($sql) //query the sql 
    or die(mysql_error()); 
    
    if (mysql_num_rows($getnews) == "0")  
    { 
    echo '<center>لا يوجد أخبار فى الوقت الحالى .. يمكنك زيارتنا لاحقاً</center>'; // إذا لم يجد اى معلومات مخزنه .. يطبع هذه الرساله
    } 
    
    while($news = mysql_fetch_array($getnews)){ 
    
    //وضع البيانات فى متغيرات
    $nid = $news['id']; 
    $ntitle = $news['title']; 
    $ncontent = $news['content']; 
    $nauthor = $news['author']; 
    $postdate = $news['postdate']; 
    
    $csql = "SELECT * FROM comments WHERE nid=$nid"; //SQL
    
    $count = mysql_query($csql); //إدخال 
    
    $cnum = mysql_num_rows($count); //عدد الجداول
    
    
    //تكوين تصميم الأخبار
    
    echo ("<TABLE width=400>\n 
    <TR><TD><hr color=\"#820000\"><br><b><a href=\"?act=view&id=$nid\">$ntitle<b></a></TD>\n</tr> 
    <TR><TD>تمت كتابته بواسطه $nauthor فى  $postdate<br>\n 
    -------------------------------------------------------------------------------</td></tr>\n 
    <tr><td>$ncontent<br>\n 
    ------------------------------------------------------------------------------- 
    <align=right><a href=\"?act=view&id=$nid\">تعليق($cnum)</a><br><br><hr color=\"#820000\"></td></tr> 
    </TABLE>\n"); 
    }
    break;
    } 
    ?>
    أحفظ هذا الملف بإسم news.php

    الآن صفحه إضافه الأخبار
    كود:
    <?php 
    include "config.php";
    
    if (!$_POST['submit']) { 
    	echo (" <table> 
    	<form method=\"post\"> 
       <tr><td> 
    	<strong>العنوان:</strong> 
       </td><td> 
       <input type=\"text\" name=\"title\" value=\"Title\"> 
       </td></tr> 
       <tr><td> 
    	<strong>صاحب المقال:</strong> 
       </td><td> 
       <input type=\"text\" name=\"author\" value=\"Author\"> 
       </td></tr> 
       <tr><td colspan=\"2\"> 
    	<textarea rows=14 cols=70 name=\"news\">الخبر أو المقال</textarea> 
       </td></tr> 
       <tr><td colspan=\"2\"> 
    	<input type=\"submit\" name=\"submit\" Value=\"أعتمد الخبر\"> 
       </td></tr> 
    	</form></table>"); 
    	}else{ 
    	$author = $_POST['author'];	  
    	$news = $_POST['news'];	  
    	$title = $_POST['title']; 
    	$postdate = date("g:i A, l F j");
    
    	$addsql = "INSERT into news (author,content,title,postdate) VALUES('$author','$news','$title','$postdate')"; 
    	$addnews = mysql_query($addsql) 
    	or die(mysql_error()); 
    	echo "تم إضافه الخبر .. شكرا لك لإستعمال نظام الأخبار المقدم من مدرسة بكسلز.<br><a href=\"http://www.pxllz.com\">الدخول إلى المدرسه</a>"; 
    	} 
    ?>
    كود سهل وخفيف ويشرح نفسه ..
    احفظ هذا المف بإسم addnews.php
    وألف مبروك عليك
    لإضافه صفحه الاخبار وإدراجها بأى صفحه
    ضع الكود التالى فقط
    كود:
    <?php 
    include("news.php"); 
    ?>
    وتحياتى لكم
    وأتمنى يكون الدرس مفيد .. منتظر التطبيقات :nice:





    __________________
    Romida - Private Vision
    http://www.romida-eg.com
    شركة روميدا للبرمجيات وخدمات التصميم


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Jul 2003
    المشاركات
    240


    السلام عليكم.....

    أخوي اسامه جزاك الله ألف خير.... لكن لي تعليق بسيط لو سمحت... CMS أي Content Management System.. وترجمتها الحرفيه (نظام ادارة المحتوى) هو ذو أبعاد أكبر بكثيييير من السكربت الذي وضعته في هذا الدرس...

    يمكن أن نقول ان هذا السكربت هو سكربت أخبار... لكن لا أعتقد أن هنالك صله بينه وبين نظام CMS... أنظمه CMS (مثل النيوك و المامبو وغيرها) تمكنك من ادارة محتوى الموقع بكل ما فيه... من منتدى، مكتبة ملفات، إدارة الأخبار.. مقالات.. صفحات... الخ...

    لا شك لدي بأنك تعلم عن هذا الفرق الواضح.. لكن فقط أحببت أن أوضح لمن لا يعلم حتى لا تلتبس عليه الامور... وشكراً لك لتقبلك تعليقي بسعة صدر...

    أخوك / بوجــــــبر





    __________________
    بوجبر

    http://www.ba7reny.com
    بحريني دوت كوم (موقع صديق)

  3. #3


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





    __________________
    Romida - Private Vision
    http://www.romida-eg.com
    شركة روميدا للبرمجيات وخدمات التصميم

  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2004
    المشاركات
    678


    مشكور اخوي

    لو شرحت الكود يكون افضل

    اعتقد نحتاج الى اكثر من كيفية التركيب ...





    __________________
    سبحان الله وبحمده ..... سبحان الله العظيم

    اول موقع متخصص في جمع البرامج المعربة
    الريان نت للبرامج المعربة
    www.ar1ar.com

  5. #5


    الكود شرحه معه ..
    تجد اما كل متغير او صيغه كود شرح للعمل الخاص بها
    ومشكور على مرورك يا غالى





    __________________
    Romida - Private Vision
    http://www.romida-eg.com
    شركة روميدا للبرمجيات وخدمات التصميم

  6. #6


    الله يجزاك الف خير أخي اسامة

    درس جميل ورائع وواضح جداً وفعلاً هو بداية لتعلم CMS

    فلك كل الشكر والتقدير

    بانتظار مثل هذه الدروس المفيدة والله لا يحرمنا منك

    تحاتي لك






  7. #7


    مشكوور على المرور والتشجيع
    ومنتظر رأى بقيه الأعضاء





    __________________
    Romida - Private Vision
    http://www.romida-eg.com
    شركة روميدا للبرمجيات وخدمات التصميم

  8. #8


    موضوع رائع ويستحق التطبيق
    جزاك الله خيراً وبارك الله فيك





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074



  9. جيت اسجل اعجابي بدرسك الرائع وفقك الله وجزاك الله عن كل كلمه بحسنه






  10. #10
    عضو فعال
    تاريخ التسجيل
    Apr 2004
    المشاركات
    1,479


    درس جميل اخ اسامة
    اسجل اعجابي بأسلوب شرحك ايضا

    جزاك الله كل خير





    __________________
    سبحان الله وبحمده .. سبحان الله العظيم
    المستضيفون العرب لخدمات ادارة السيرفرات

  11. #11


    tohamy
    مشكوور على مرورك وكلماتك الجميله





    __________________
    Romida - Private Vision
    http://www.romida-eg.com
    شركة روميدا للبرمجيات وخدمات التصميم

  12. #12


    الاخ اسامة الهادى
    دعنى اقف اولاً احتراما لشخصك وتقديرا لها
    واود هنا ان اثنى عليك وان ارجوك ان تكمل بقية ما بداته
    حقيقة مثل هذه المواضيع هام جدا وعلى قولك
    بشويش بشويش
    فهل اعطيتنا الجرعة الثانية من فضلك





    __________________
    جنوبية نت
    من ظن انه قد تعلم فقد بدا جهله
    ولا خير فى كاتم العلم

  13. #13

    تطبيق



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

    ولكن اخى لدى طلب اخر
    هل يمكننى تطوير هذا السكربت الخاص بك على حسب الافكار التى تجول براسى

    ارجو ردك قريبا





    __________________
    جنوبية نت
    من ظن انه قد تعلم فقد بدا جهله
    ولا خير فى كاتم العلم

  14. #14


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

    مزحه ولا يهمك
    بالنسبه لتطوير الإسكربت فهذا من حقك
    انا فقط بشرح فكرة عشان توصل للجميع
    لإنى بتمنى انى كل اللى اعرفه اوصله للجميع عشان نتقدم ويكون عندنا مواقع كتير مفيده ونلغى او نقلل مواقع الشات والدردشه التى إحتلت الإنترنت العربى
    وأى إستفسارات , تأكد انى لن أبخل بأى شئ اعرفه





    __________________
    Romida - Private Vision
    http://www.romida-eg.com
    شركة روميدا للبرمجيات وخدمات التصميم

  15. #15


    الاخ اسامة اسعدنى ردك اخى الكريم وفرحنى موافقتك على تطوير هذه العمل وانشالله سوف اعمل على بعض الاضافات وعرضها هنا وانشالله يا استاذنا العزيز اذا غلبنى شئ سالجاء اليك انشالله
    مع خالص تحياتى





    __________________
    جنوبية نت
    من ظن انه قد تعلم فقد بدا جهله
    ولا خير فى كاتم العلم





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

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

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