بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته اقدم لكم درس في كيفية عمل فلاشة عرض اخر الاخبار وربطها بال PHP
اولاً قبل ان نبدأ: فكرة هذا الدرس هي كيفية جعل ملف فلاش (.swf) ديناميكي وليس استاتيكي اي النصوص مثلا او الصور المعروضة داخل ملف الفلاش يمكن تغييرها من قبل لوحة تحكم ولا يجب اعادة استخراج ملف الفلاش من قبل Flash MX مرة اخرى.
لبرمجة هذا الامر يجب اشتخدام لغتين برمجة على الاقل, لغة البي اتش بي او اي لغة مشابهة مثل ال ASP.NET ولغة ال Action Script .
في هذا الدرس لن اشرح اكواد Action Script على الاطلاق لان انا سأشرح على ملف فلاش (.swf) جاهز وسيكون تركيزي على الشق الخاص ببرمجة الphp.
في هذا المشروع نقوم بارسال النصوص والصور الى ملف الفلاش من لوحة تحكمنا (المبرمجة بالphp) عن طريق ملف (.xml) اي ان داخل ملف الفلاش يوجد كود action script يقوم بقرائة هذه النصوص والصور وعرضها ومن الناحية الاخرى نقوم بتحرير ملف ال (.xml)
فاذا كان هذا هو الكود الموجود في ملف ال .xml
كود هتمل:
<FlashRotator> <FlashNews> <line> <image image="flashNews/imgs/aa_20100101110813.jpg"/> <title title="الخبر الاول"/> <brief brief="الخبر الاول "/> <link link="http://localhost/flashNews/?p=1"/> </line> <line> <image image="flashNews/imgs/c_20091228231552.jpg"/> <title title="الخبر الثاني"/> <brief brief="الخبر الثاني الخبر الثاني الخبر الثاني الخبر الثاني الخبر الثاني الخبر الثاني"/> <link link="http://localhost/flashNews/?p=2"/> </line> <line> <image image="flashNews/imgs/aa.jpg"/> <title title="الخبر الثالث"/> <brief brief="الخبر الثالث الخبر الثالث الخبر الثالث الخبر الثالث الخبر الثالث الخبر الثالث"/> <link link="http://localhost/flashNews/?p=3"/> </line> <line> <image image="flashNews/imgs/q.jpg"/> <title title="الخبر الرابع"/> <brief brief="الخبر الرابع الخبر الرابع الخبر الرابع الخبر الرابع الخبر الرابع الخبر الرابع الخبر الرابع الخبر الرابع الخبر الرابع"/> <link link="http://localhost/flashNews/?p=4"/> </line> </FlashNews> </FlashRotator>
فان الهدف هو تحرير هذا الملف باكواد php
وهذا هو كود ال php المسئول عن قراءة ملف ال xml
كود PHP:
$menu = array();
$doc = new DOMDocument();
$doc->load('xml/NewsClipHome.xml');
$lines = $doc->getElementsByTagName("line");
foreach( $lines as $line )
{
$images = $line->getElementsByTagName("image");
$image = $images->item(0)->getAttribute("image");
$titles = $line->getElementsByTagName("title");
$title = $titles->item(0)->getAttribute("title");
$briefs = $line->getElementsByTagName("brief");
$brief = $briefs->item(0)->getAttribute("brief");
$links = $line->getElementsByTagName("link");
$link = $links->item(0)->getAttribute("link");
array_push($menu, array($image, $title, $brief, $link));
}
$_SESSION["menu"] = $menu;
نلاحظ هنا اننا نقوم بقراءة كل صفوف ملف ال xml ثم نخزنها في ال $_SESSION["menu"]
بعد ذللك تأتي مرحلة التحرير . الان اصبح معنا جميع الصفوف مخزنة داخل ال $_SESSION["menu"]
أما في هذا الكود
كود PHP:
$_SESSION["menu"][$_POST["id"]][0] = "flashNews/imgs/" . $_SESSION["fileName"];
$_SESSION["menu"][$_POST["id"]][1] = $_POST["title"];
$_SESSION["menu"][$_POST["id"]][3] = $_POST["brief"];
$_SESSION["menu"][$_POST["id"]][2] = $_POST["cDetails"];
$menu = $_SESSION["menu"];
$myFile = "xml/NewsClipHome.xml";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, "<FlashRotator>\n");
fwrite($fh, "<FlashNews>\n");
$id = 0;
foreach ($menu as $rows){
fwrite($fh, "<line>\n");
fwrite($fh, "<image image=\"{$rows[0]}\"/>\n");
fwrite($fh, "<title title=\"{$rows[1]}\"/>\n");
fwrite($fh, "<brief brief=\"{$rows[2]}\"/>\n");
fwrite($fh, "<link link=\"{$rows[3]}\"/>\n");
fwrite($fh, "</line>\n");
$id++;
}
fwrite($fh, "</FlashNews>\n");
fwrite($fh, "</FlashRotator>\n");
fclose($fh);
فاننا نقوم بجلب محتويات الحقول <form>
ووتخزينها مرة اخرى في المتغير $_SESSION["menu"] ولكن هذه المره نقول
$_SESSION["menu"][$_POST["id"]][رقم الحقل]
ثم نجلب كل محتويات ال $_SESSION["menu"] ونكتبها في ملف ال xml
اقدم لكم ايضاً عرض المشروع بالصوت والصورة + رابط تحميل السكربت كامل
داخل هذا الرابط:
http://3lemni.madpage.com/site/index.php?pid=22
ارجو ان اكون وفقت في الشرح
والسلام عليكم ورحمة الله وبركاته