ظƒظ„ط§ط³ط§طھ ط§ظ„php: ط§ظ„ط¯ط±ط³ ط§ظ„ط®ط§ظ…ط³: ط§ط³طھط؛ظ„ط§ظ„ ظƒظ„ط§ط³ ظƒطھط§ط¨ط© ظˆط¹ط±ط¶ ط§ظ„ظ…ظ‚ط§ظ„ط§طھ










بسم الله الرحمن الرحيم



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



اولا: حمل ملفات الدرس مفصل من هــــنـــــا

ملاحظه: هذه الكلاس خاصة بعمل مقالات على هيئة ملفات فى مجلدات , وليست كمقالات مخزنه
فى قاعدة البيانات , وهذا كنوع من التسهيل وتقليل تعقيد الكود code للسهوله

ثانيا: دعونا نعرف فهرس الدرس مفصل:

1-شرح طريقة كلاس كتابة وعرض المقالات
2-كيفية استغلال الكلاس بمثال عملى



اولا: شرح طريقة كلاس كتابة وعرض المقالات :



نشوف هذا المخطط لنفهم تركيب installة الكلاس:





كما نلاحظ فى المخطط, ان هذه الكلاس عبارة عن 5 فانكشنز مقسمة ل:

اولا:- 3 فانكشنز خاصة بعرض المقال وهم:

1-getNewsList:لعمل لست بملفات المقالات داخل مجلد
2-getNewsCount: لعد الملفات الموجوده داخل المجلد
3-displayNews:لاظهار المقالات


وفى المخطط وظيفة كل فانكشنز

وهذا هو كود codeهم:


رمز Code:
function getNewsList(){ $this->newsList = array(); // Open the actual directory if ($handle = @opendir($this->newsDir)) { // Read all file from the actual directory while ($file = readdir($handle)) { if (!is_dir($file)) { $this->newsList[] = $file; } } } rsort($this->newsList); return $this->newsList; } function getNewsCount(){ if ($this->newsCount == -1) $this->getNewsList(); $this->newsCount = sizeof($this->newsList); return $this->newsCount; } function displayNews(){ $list = $this->getNewsList(); echo &quot;<table class='newsList'>&quot;; foreach ($list as $value) { $newsData = file($this->newsDir.DIRECTORY_SEPARATOR.$value); $newsTitle = $newsData[0]; $submitDate = $newsData[1]; unset ($newsData['0']); unset ($newsData['1']); $newsContent = &quot;&quot;; foreach ($newsData as $value) { $newsContent .= $value; } echo &quot;<tr> <th align='left'>$newsTitle</th> <th class='right'>$submitDate</th> </tr>&quot;; echo &quot;<tr><td colspan='2'>&quot;.$newsContent.&quot;<br/></td></tr>&quot;; } echo &quot;</table>&quot;; if (sizeof($list) == 0){ echo &quot;<center><p>No news at the moment!</p><p>&nbsp;</p></center>&quot;; } }


ثانيا: 2 فانكشنز للتحكم بالمقال:



1-displayAddForm:لاظهار فورم كتابة المقال
2-insertNews: لادارج المقال كملف فى المجلد
وهذا هو كود codeهم:


رمز Code:
function displayAddForm(){ ?> <script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;js/tiny_mce.js&quot;></script> <script language=&quot;javascript&quot; type=&quot;text/javascript&quot;> tinyMCE.init({ mode : &quot;textareas&quot;, theme : &quot;advanced&quot;, theme_advanced_buttons3 : &quot;&quot;, theme_advanced_toolbar_align : &quot;center&quot;, theme_advanced_toolbar_location : &quot;top&quot;, }); </script> <form class=&quot;iform&quot; action=&quot;<?php echo $_SERVER['PHP_SELF']; ?>&quot; method=&quot;post&quot;> News title:<br/> <input type=&quot;text&quot; name=&quot;title&quot; size=&quot;40&quot;/><br/><br/> Content:<br/> <textarea name=&quot;newstext&quot; rows=&quot;15&quot; cols=&quot;67&quot;></textarea><br/> <center><input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;Save&quot; /></center> </form> <?php } function insertNews(){ $newsTitel = isset($_POST['title']) ? $_POST['title'] : 'Untitled'; $submitDate = date('Y-m-d g:i:s A'); $newsContent = isset($_POST['newstext']) ? $_POST['newstext'] : 'No content'; $filename = date('YmdHis'); if (!file_exists($this->newsDir)){ mkdir($this->newsDir); } $f = fopen($this->newsDir.DIRECTORY_SEPARATOR.$filename.&quot;.txt& quot;,&quot;w+&quot; fwrite($f,$newsTitel.&quot;\n&quot; fwrite($f,$submitDate.&quot;\n&quot; fwrite($f,$newsContent.&quot;\n&quot; fclose($f); header('Location:index.php'); }

وهذه صورة لوحة التحكم البسيطة لاظهار فورم كتابة المقال






بحيث يكون كامل الكلاس كما هو مرفق بالملفات الخاصة بالدرس مفصل






ثانيا:كيفية استغلال الكلاس بمثال عملى

استغلال هذه الكلاس من أسهل الاشياء, فمع لمسة جمالية , فقط سنستدعى فانكشنز اظهار المقالات
displayNews


رمز Code:
<?php require_once(&quot;maxNews.class.php&quot; $newsHandler = new maxNews(); ?> <!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;> <html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;> <head> <meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /> <title>Max's News</title> <link href=&quot;style/style.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /> </head> <body> <div id=&quot;container&quot;> <div id=&quot;header&quot;><div id=&quot;header_left&quot;></div> <div id=&quot;header_main&quot;>Max's News</div><div id=&quot;header_right&quot;></div></div> <div id=&quot;content&quot;> <?php $newsHandler->displayNews(); ?> </div> <div id=&quot;footer&quot;><a href=&quot;http://www.phpf1.com&quot; target=&quot;_blank&quot;>Powered by PHP F1</a></div> </div>


وهذه صورة للمقالات المخزنه فى مجلد news:



















©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©