<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>مدونة مصعب الزيني</title>
	<atom:link href="http://www.mossab.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mossab.com</link>
	<description>مدونة شخصية عامة.</description>
	<lastBuildDate>Sat, 26 Dec 2009 20:28:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>عودة بعد إنقطاع طويل ..</title>
		<link>http://www.mossab.com/146/%d8%b9%d9%88%d8%af%d8%a9-%d8%a8%d8%b9%d8%af-%d8%a5%d9%86%d9%82%d8%b7%d8%a7%d8%b9-%d8%b7%d9%88%d9%8a%d9%84</link>
		<comments>http://www.mossab.com/146/%d8%b9%d9%88%d8%af%d8%a9-%d8%a8%d8%b9%d8%af-%d8%a5%d9%86%d9%82%d8%b7%d8%a7%d8%b9-%d8%b7%d9%88%d9%8a%d9%84#comments</comments>
		<pubDate>Tue, 08 Dec 2009 21:32:09 +0000</pubDate>
		<dc:creator>مصعب الزيني</dc:creator>
				<category><![CDATA[عام]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[الجزء الثاني]]></category>
		<category><![CDATA[الجزء الخامس]]></category>
		<category><![CDATA[قصة]]></category>
		<category><![CDATA[مشروع]]></category>
		<category><![CDATA[ناجح]]></category>

		<guid isPermaLink="false">http://www.mossab.com/146/%d8%b9%d9%88%d8%af%d8%a9-%d8%a8%d8%b9%d8%af-%d8%a5%d9%86%d9%82%d8%b7%d8%a7%d8%b9-%d8%b7%d9%88%d9%8a%d9%84</guid>
		<description><![CDATA[السلام عليكم ورحمة الله وبركاته …
الاخوة الأفاضل…   
 اعتذر أشد الاعتذار عن انقطاعي الذي دام لقرابة الشهرين والناتج عن انشغالي كالعادة في عدة اعمال ربما سوف اطلعكم عليها لاحقاً ان شاء الله … ولكن الاهم من هذا اود ان اشكركم على تفاعلكم الجميل وعلى إعادة نشركم لتدويناتي المتواضعة وسعيكم في نشر العلم في [...]]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم ورحمة الله وبركاته …</p>
<p>الاخوة الأفاضل…   <br />
 اعتذر أشد الاعتذار عن انقطاعي الذي دام لقرابة الشهرين والناتج عن انشغالي كالعادة في عدة اعمال ربما سوف اطلعكم عليها لاحقاً ان شاء الله … ولكن الاهم من هذا اود ان اشكركم على تفاعلكم الجميل وعلى إعادة نشركم لتدويناتي المتواضعة وسعيكم في نشر العلم في كل مكان    <br />
 بصراحة اردت ان اضع هذه التدوينة فقط لأخبركم بما سوف يأتي ان شاء الله في الايام القليلة القادمة … :</p>
<ol>
<li>الجزء الخامس من سلسلة تعلم <a title="Codeigniter" href="http://www.mossab.com/tag/codeigniter/" target="_blank"><strong>Codeigniter</strong></a> والذي سوف يكون بمثابة جزء واحد ولكن مقسم إلى 3 اجزاء .. فقط لكي لا تشعروا بالملل من كثرة الكلام في هذا الجزء خصوصاً <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  – <strong><span style="text-decoration: line-through;">في تاريخ </span><span style="text-decoration: line-through;">15-12</span> <span style="color: #ff0000;">قريباً ان شاء الله</span></strong></li>
<li>الجزء الثاني من قصة مشروع ناجح وبإذن الله سوف اتحدث فيه عن اهم الخطوات التي يجب ان نتبعها خلال رحلة تنفيذ مشروعنا .. إبتداء من كتابة الافكار وحتى إطلاق الموقع .. – <strong><span style="text-decoration: underline;">في تاريخ 25-12</span> <span style="color: #ff0000;">قريباً ان شاء الله</span></strong></li>
<li>مع بعض الاخوة جزاهم الله خيراً سوف نقوم بعمل مجموعة وموقع خاص يتم فيه نشر دروس ومقالات بجودة عالية جدا, اتمنى ان شاء الله ان نبدأ في هذا المشروع مع بداية السنة .. ولكن هذا بكل تأكيد لن يجعلني انقطع عن مدونتي <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>اعتقد بأنني سوف اقوم بعمل قسم جديد يختص بالأجهزة المحمولة وآخر الموديلات ومميزاتها ومقارناتها … لا اعلم ولكن الموضوع يحتاج إلى تجهيز متقن ..</li>
<li>والبقية تأتي ان شاء الله …</li>
</ol>
<p>مع خالص التحية.   <br />
 اخوكم    <br />
 مصعب</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mossab.com/146/%d8%b9%d9%88%d8%af%d8%a9-%d8%a8%d8%b9%d8%af-%d8%a5%d9%86%d9%82%d8%b7%d8%a7%d8%b9-%d8%b7%d9%88%d9%8a%d9%84/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>خدمة Meme من ياهو! ( تقرير ووجهة نظر )</title>
		<link>http://www.mossab.com/142/yahoo-meme-%d8%aa%d9%82%d8%b1%d9%8a%d8%b1-%d9%88%d8%ac%d9%87%d8%a9-%d9%86%d8%b8%d8%b1</link>
		<comments>http://www.mossab.com/142/yahoo-meme-%d8%aa%d9%82%d8%b1%d9%8a%d8%b1-%d9%88%d8%ac%d9%87%d8%a9-%d9%86%d8%b8%d8%b1#comments</comments>
		<pubDate>Mon, 19 Oct 2009 07:38:51 +0000</pubDate>
		<dc:creator>مصعب الزيني</dc:creator>
				<category><![CDATA[وجهات نظر]]></category>
		<category><![CDATA[Meme]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[تقرير]]></category>
		<category><![CDATA[تويتر]]></category>
		<category><![CDATA[نظر]]></category>
		<category><![CDATA[وجهة]]></category>
		<category><![CDATA[ياهو]]></category>

		<guid isPermaLink="false">http://www.mossab.com/142/%d8%ae%d8%af%d9%85%d8%a9-meme-%d9%85%d9%86-%d9%8a%d8%a7%d9%87%d9%88-%d8%aa%d9%82%d8%b1%d9%8a%d8%b1-%d9%88%d9%88%d8%ac%d9%87%d8%a9-%d9%86%d8%b8%d8%b1</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم 
 


منذ فترة سمعت عن خدمة Meme من ياهو وكانت ماتزال تحت الإنشاء ولكنني في ذلك الوقت لم اعرها اهتماماً كبيراً ولكن شدني جداً ان هناك منافس قوي ( وهو الياهو ) يريد ان يدخل في ساحة الـ Microblogging وينافس تويتر.   
بعدها بشهر تقريباً, شاهدت خبر إدخال اللغة الانجليزية [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><strong>بسم الله الرحمن الرحيم </strong></p>
<p><strong> </strong></p>
<p><a href="http://meme.yahoo.com"><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Meme" src="http://www.mossab.com/wp-content/uploads/memelogo_thumb.jpg" border="0" alt="meme-logo" width="215" height="75" /></a></p>
<p><br class="spacer_" /></p>
<p>منذ فترة سمعت عن خدمة <a rel="nofollow" href="http://meme.yahoo.com" target="_blank">Meme</a> من ياهو وكانت ماتزال تحت الإنشاء ولكنني في ذلك الوقت لم اعرها اهتماماً كبيراً ولكن شدني جداً ان هناك منافس قوي ( وهو الياهو ) يريد ان يدخل في ساحة الـ <a title="Microblogging" rel="nofollow" href="http://en.wikipedia.org/wiki/Microblogging" target="_blank">Microblogging</a> وينافس <a rel="nofollow" href="http://www.twitter.com" target="_blank">تويتر</a>.   <br />
بعدها بشهر تقريباً, شاهدت خبر إدخال اللغة الانجليزية لهذه الخدمة .. حيث انه في السابق كانت هذه الخدمة متوفرة بلغتين فقط ( الاسبانية والبرتغالية – بصراحة لا ادري ما هو السبب لإختيار هاتين اللغتين بالذات! – ), ثم بعد ذلك سارعت للتسجيل في الموقع ولكن وجدت ان الموقع يقبل التسجيل بنظام الدعوات فقط! … يجب ان يدعوك احد من اعضاء الموقع للتسجيل, وهذا لأن الموقع كان في مرحلة Alpha وهي مرحلة يتم فيها تطوير الموقع ومميزاته وإصلاح الاخطاء الموجودة به وخلاف ذلك من الخطوات التطويرية.. ثم بطريقة ما حصلت على دعوة من احد الاشخاص مشكوراً …</p>
<p>اليوم انتبهت ان الموقع اخيراً انتقل إلى مرحلة Beta <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />    <br />
والتسجيل مسموح للجميع على شرط ان تقوم بتسجيل حساب <a title="Yahoo!" rel="nofollow" href="http://www.yahoo.com" target="_blank">Yahoo!</a></p>
<p><span id="more-142"></span></p>
<p align="center"><a href="http://www.twitter.com"><img style="border: 0pt none; display: inline;" title="Twitter" src="http://www.mossab.com/wp-content/uploads/twitterlogo_thumb.jpg" border="0" alt="twitter-logo" width="218" height="75" /></a></p>
<p align="right"><strong>أولاً</strong> انا من محبي خدمة تويتر وبشدة <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ولكن وبكل صراحة اخبركم بأنه هناك في تويتر بعض المشاكل التي تنغص علي استمتاعي بهذه الخدمة.. أولها هي مشكلة ان تصميم الموقع نوعها ما .. بشع! نعم .. لا يوجد اي فن في التصميم من الداخل ( قد تكون الصفحة الاولى جميلة خصوصاً بعد التطوير <a href="http://blog.twitter.com/2009/07/new-front-page.html" target="_blank">الاخير</a> ) ولكن التصميم عموماً يفتقر إلى الجمالية التي تجدها في معظم المواقع التي تخص الشبكات الاجتماعية ( كمثال الفيسبوك – بالرغم من اني لا استخدم هذا الموقع كثيراً .. ولكن انظر إلى التقنية القوية المستخدمة وجمالية وبساطة التصميم ) .. نعم تويتر يتسم بالبساطة ولكن يفتقر إلى جمالية التصميم واستخدام التقنيات التي تساعد على ظهور الموقع بشكل جميل ( سأريكم ما اقصده عند استعراض بعض المشاهد من Meme <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )     <br />
بل ان هناك الكثير من السكربتات الخاصة بإضافة <a title="Greasemonkey" rel="nofollow" href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank">Greasemonkey</a> على الفايرفوكس, وظيفتها انها تقوم بتغيير تصميم تويتر إلى شكل افضل لوناً وشكلاً وإضافة بعض المميزات المساعدة والضرورية لإستخدام تويتر عبر المتصفح     <br />
* شخصياً لا افضل هذا النوع من الاضافات .. احب ان يكون جمال التصميم من اصحاب موقع نفسه وليس من مستخدمين للموقع, بغض النظر عن ما اذا كانت هذه الاضافة جميلة ام لا <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="right"><strong>ثانياً</strong> طريقة عرض التويتات&#8230; ( تويتات ؟ لا ادري اذا كان المصطلح صحيح ام لا ولكنه مفرد Tweets <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ),     <br />
هذه نقطة لا يوجد عليها خلاف ابداً صدقوني .. طريقة عرض التويترات تعتبر طريقة متخلفة! نعم متخلفة بدون ادنى شك .. مما كان السبب الأكبر في ان استخدام تويتر عن طريق المتصفح يعتبر قليل جداً. واغلبية المستخدمين يلجئون في النهاية إلى استخدام برامج مساعدة مثل إضافة <a title="Echofon" rel="nofollow" href="https://addons.mozilla.org/en-US/firefox/addon/5081" target="_blank">Echofon</a> ( سابقا كانت تعرف بأسم TwitterFox ) وأيضاً برنامج <a title="TweetDeck" rel="nofollow" href="http://tweetdeck.com/beta/" target="_blank">TweetDeck</a> والكثير من البرامج والاضافات الاخرى للكمبيوتر والاجهزة المحمولة.</p>
<p align="right">ما اعنيه هنا. جميعنا نعلم مثلاً ان هناك برامج ايضاً للفيس بوك على الهواتف المحمولة والكمبيوتر اليس كذلك ؟    <br />
ولكن استخدامها يقتصر فقط على ان يكون المستخدم يريد ان يضع تحديث معين او صورة عن طريق الهاتف وبسرعة..     <br />
وهذا لأن استخدام الفيسبوك اساساً يتم عن طريق الموقع لأن واجهة المستخدم صحية 100% <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .. وتعتبر بكل بساطة Friendly User-Interface</p>
<p>على كل حال … هذا الموضوع ليس للمقارنة بين الموقعين لأن الاول مازال تحت التطوير ولم يتم الانتهاء منه إلى الآن, ولكن ما يعجبني حتى الآن هو طريقة العرض والتي سوف اريكم اياها واحكموا انتم بأنفسكم <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="right">دعونا نعود مرة اخرى إلى Meme ونستعرض بعض الصور من الداخل :</p>
<p><strong>الواجهة الرئيسية الخاصة بك كمستخدم :      <br />
</strong><a href="http://www.mossab.com/wp-content/uploads/dashboard.jpg"><img style="border-right-width: 0px; margin: 15px auto 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="الواجهة الرئيسية الخاصة بالمستخدم" src="http://www.mossab.com/wp-content/uploads/dashboard_thumb.jpg" border="0" alt="الواجهة الرئيسية الخاصة بالمستخدم" width="549" height="768" /></a></p>
<p>نشاهد في الأعلى الجزء باللون الرصاصي الداكن هو المكان الذي من خلاله تستطيع ان ترسل تدويناتك الصغيرة .. ونلاحظ هنا ان هناك 3 مزايا جديدة بالإضافة إلى التدوينات النصية فقط .. يمكنك الآن :</p>
<ol>
<li><strong>إرسال تدوينة عبارة عن صورة فقط ( تقوم برفعها من جهازك مباشرة او عن طريق رابط للصورة )</strong> </li>
<li><strong>إرسال تدوينة فيديو يتم تشغيله في نفس الصفحة ( يدعم </strong><a title="YouTube" rel="nofollow" href="http://www.youtube.com" target="_blank"><strong>YouTube</strong></a><strong> و </strong><a title="Vimeo" rel="nofollow" href="http://www.vimeo.com" target="_blank"><strong>Vimeo</strong></a><strong> فقط )        <br />
</strong>تعتبر ميزة رائعة جداً فهناك بعض الاشخاص يقومون بالتدوين عبر YouTube بالفيديو مباشرة .. ففي هذه الحالة يمكنك القيام بنفس الأمر عبر Meme وسوف يستطيع الاشخاص المتبعون لك ان يشاهدو الفيديو مباشرة بدون الخروج من الصفحة </li>
<li><strong>إرسال تدوينة ملف صوتي تنسيق MP3 يتم تشغيله في نفس الصفحة ايضاً        <br />
</strong>نفس الأمر مع الفيديو ولكن التدوينة ستكون صوتية! </li>
</ol>
<p><strong>ميزات جديدة في التدوينات النصية :</strong> <br />
<a href="http://www.mossab.com/wp-content/uploads/blogging.gif"><img style="margin: 15px auto 0px; display: block; float: none" title="blogging" src="http://www.mossab.com/wp-content/uploads/blogging_thumb.gif" alt="blogging" width="580" height="188" /></a> <br />
يمكنك ان تستخدم الوسوم :</p>
<ol>
<li>&lt;b&gt; </li>
<li>&lt;i&gt; </li>
<li>&lt;blockquote&gt; لوضع إقتباس في تدوينتك </li>
<li>&lt;a&gt; </li>
</ol>
<p><strong>طريقة عرض التدوينات التي تم نشرها من قبلك او من قبل اشخاص اتبعتهم :</strong> <br />
نلاحظ في المثال أعلاه ان التدوينات تظهر بتصميم رائع جداً .. حيث انه على اليسار يظهر لك صورة كاتب التدوينة .. وعلى اقصى اليمين تظهر لك أزرار مساعدة وهي لإعادة ارسال نفس التدوينة ومشاهدة عدد الذين اعادوا ارسالها ( Repost )     <br />
وفي الوسط تظهر لك التدوينة نفسها وأسفل التدوينة يظهر لك التاريخ وزر للتعليق على هذه التدوينة</p>
<p><strong>طريقة عرض الردود التي ارسلتها انت او ارسلها احد الاشخاص الذين اتبعتهم :</strong> <br />
حالة كانت التدوينة عبارة عن رد ( من قبلي انا او من قبل اي شخص قمت بإتباعه .. ستظهر بالشكل الموجود في التدوينة الثالثة من الأعلى ) .. بحيث يظهر الكلام بطريقة مختلفة تماماً عن التدوينات العادية ويوضح لك بان هذه التدوينة ما هي إلا رد فقط .. حسناً .. ولكن رد على ماذا ؟ في هذه الحالة تقوم بالضغط على السهم السفلي بجانب نفس التدوينة ليظهر لك التدوينة الاصلية التي تم الرد عليها وفي نفس الصفحة .. لا داعي لأن يرسلك إلى صفحة جديدة تماماً!!     <br />
ما أجمل Meme <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><br class="spacer_" /></p>
<p><strong>لوحة التحكم :      <br />
<a href="http://www.mossab.com/wp-content/uploads/control_panel.jpg"><img style="border-right-width: 0px; margin: 15px auto 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="control_panel" src="http://www.mossab.com/wp-content/uploads/control_panel_thumb.jpg" border="0" alt="control_panel" width="491" height="480" /></a> </strong></p>
<p><strong>الـ API :      <br />
</strong>يتوفر نظام API خاص بـ Meme من خلال <a rel="nofollow" href="http://developer.yahoo.com/meme/guide/" target="_blank">هذا الرابط</a>, ويتم استخدام الاوامر عن طريق تقنية <a rel="nofollow" href="http://developer.yahoo.com/yql/" target="_blank">YQL</a> الخاصة بـ ياهو</p>
<p>بصراحة كرأي عام اجد ان بداية Meme تعتبر بداية رائعة جداً وتبشرنا بأنه سيكون هناك تطويرات عديدة ايضاً لانه وكما ذكرت في البداية الموقع مازال في مرحلة الـ Beta والقائمين عليه يرحبون بأي اقتراح او شكوى …</p>
<p>ولكن .. لحين الانتهاء من <a title="Meme" rel="nofollow" href="http://meme.yahoo.com/" target="_blank">Meme</a> تماماً .. سأستخدم تويتر مجبراً <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>أرق التحية    <br />
اخوكم.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mossab.com/142/yahoo-meme-%d8%aa%d9%82%d8%b1%d9%8a%d8%b1-%d9%88%d8%ac%d9%87%d8%a9-%d9%86%d8%b8%d8%b1/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>قصة مشروع ناجح &#8211; الجزء الأول</title>
		<link>http://www.mossab.com/105/%d9%82%d8%b5%d8%a9-%d9%85%d8%b4%d8%b1%d9%88%d8%b9-%d9%86%d8%a7%d8%ac%d8%ad-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%a3%d9%88%d9%84</link>
		<comments>http://www.mossab.com/105/%d9%82%d8%b5%d8%a9-%d9%85%d8%b4%d8%b1%d9%88%d8%b9-%d9%86%d8%a7%d8%ac%d8%ad-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%a3%d9%88%d9%84#comments</comments>
		<pubDate>Sun, 30 Aug 2009 08:50:30 +0000</pubDate>
		<dc:creator>مصعب الزيني</dc:creator>
				<category><![CDATA[بناء وإدارة المواقع]]></category>
		<category><![CDATA[أفكار]]></category>
		<category><![CDATA[إنشاء]]></category>
		<category><![CDATA[سلسلة]]></category>
		<category><![CDATA[فكرة]]></category>
		<category><![CDATA[قصة]]></category>
		<category><![CDATA[كيفية]]></category>
		<category><![CDATA[مشاريع]]></category>
		<category><![CDATA[مشروع]]></category>
		<category><![CDATA[ناجح]]></category>

		<guid isPermaLink="false">http://www.mossab.com/?p=105</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم
الأخوة الأعزاء. أتمنى أن تكونوا بأفضل حال &#8230;
بداية &#8230; كل عام وانتم بخير وأسأل الله أن يجعل هذا الشهر, شهر مغفرة وطاعات وان يعيننا على صيامه وان يعتق رقابنا من النار, اللهم آمين..
أود أن اعتذر عن تأخري في تجديد المدونة وذلك بسبب مرضي في الفترة السابقة وتلاه بعد ذلك انشغالي الكبير في [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><strong>بسم الله الرحمن الرحيم</strong></p>
<p>الأخوة الأعزاء. أتمنى أن تكونوا بأفضل حال &#8230;</p>
<p>بداية &#8230; كل عام وانتم بخير وأسأل الله أن يجعل هذا الشهر, شهر مغفرة وطاعات وان يعيننا على صيامه وان يعتق رقابنا من النار, اللهم آمين..</p>
<p>أود أن اعتذر عن تأخري في تجديد المدونة وذلك بسبب مرضي في الفترة السابقة وتلاه بعد ذلك انشغالي الكبير في عدة مشاريع, من ضمنها مشروع <a title="فريق الزيني" href="http://www.zeenyteam.com">كنا</a> نعمل عليه منذ اكثر من سنة تقريباً وبإذن الله أتمنى أن يرى النور خلال هذا الشهر الكريم &#8230;</p>
<p align="center"><img class="aligncenter size-full wp-image-107" title="a-story-of-a-successful-project" src="http://www.mossab.com/wp-content/uploads/a-story-of-a-successful-project.jpg" alt="a-story-of-a-successful-project" width="595" height="366" /></p>
<p><span id="more-105"></span><br />
الكثير منا يعتقد أن عملية إنشاء موقع ناجح تعتبر نوعا ما بسيطة .. فكل ما عليك فعله هو أن تأتي بفكرة جيدة<br />
( سواء كانت جديدة او مستهلكة من قبل ) ثم تقوم بتنفيذ الموقع عن طريق تركيب بعض السكربتات المجانية ( أو منزوعة الكود ) ثم تبدأ بنشره عن طريق عمل سبام (Spam) في المنتديات وعن طريق القوائم البريدية وإزعاج الأصدقاء أيضاً برابط الموقع !!!</p>
<p>بدأت هذه السلسلة لكي أشارك في تغيير هذه النظرة السطحية عن الموقع الناجح عند الكثير بإذن الله &#8230; وأنوه أيضاً بأن هذه السلسلة تحتوي على معلومات كثيرة ولكن أكثرها بإذن الله سيكون لفائدتكم التامة&#8230; لذلك إذا كنت ممن يملون من القراءة سريعاً &#8230; قم بحفظ هذه الصفحة في المفضلة وعد إليها في وقت آخر وجهز عدة العمل ( فنجان القهوة أو الشاي أو أياً كان .. بالنسبة لي أفضل الباربيكان بنكهة التوت <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p><strong>بسم الله</strong> &#8230;. جميعنا نعلم بأن أهم خطوة في بداية أي مشروع (موقع) جديد هي اختيار <span style="text-decoration: underline;">الفكرة.</span><span style="text-decoration: underline;"><br />
</span>حسناً لو افترضنا انك تمتلك الفكرة مسبقاً!<br />
وفي اعتقادك أن الفكرة تعتبر ناجحة جداً وينقصك فقط التنفيذ ( وأنت من سيقوم بتنفيذها أو ستقوم بالتعاون مع مبرمج أو شركة لتنفيذها )</p>
<p>فعلياً .. الموضوع ليس بهذه السهولة, كلمة &#8220;التنفيذ&#8221; لا تعني انك ستستيقظ يوماً ما وتجد موقعك قد تم الانتهاء منه وتم تشغيله وقد بدأ الزوار بالفعل بالتهافت عليه! بل وبعضهم بالفعل يطلب منك عمل حملة إعلانية ضخمة في موقعك وبمقابل الكثير من الـ $$ !! لا عزيزي<br />
تنفيذ موقعك ( مهما كان تخصصه ) يمر بعدة نقاط تتفرع منها عدة نقاط أخرى, وببساطة هي :</p>
<ul>
<li><strong>اختيار الفكرة<br />
</strong>الفكرة هي من أهم عوامل نجاح موقعك      ( بإذن الله ).<br />
حسناً طبيعي جدا أن تسأل. لماذا ؟<br />
سأجيب وأقول لك , أنا كزائر. ما الذي يهمني في موقعك سوى فكرته ؟  لا يعني ذلك بأنه يجب أن تكون فكرة الموقع      خلابة وجذابة, الفكرة هنا تعني التخصص + أسلوب طرح التخصص.<br />
لذلك فمن الطبيعي أن تكون المعادلة : الفكرة = اهتمام الزوار بموقعك</p>
<p><img class="aligncenter size-full wp-image-108" title="الفكرة" src="http://www.mossab.com/wp-content/uploads/idea.jpg" alt="idea" width="536" height="329" /></p>
<p>قبل أن تختار الفكرة. هناك نقاط أخرى يجب أن تراعيها لكي تخرج بالفكرة      الناجحة إن شاء الله. وهي:</p>
<ul>
<li><strong>التخصص<br />
</strong>اختر تخصص مميز لموقعك, التخصص الذي       تجد فيه تميزك عن غيرك, التخصص الذي تعتقد بأنك ستقدمه بطريقة أفضل عن من       سبقوك.</li>
<li><strong>ماذا يريد الزائر من موقعي ؟</strong><br />
بغض النظر عن تخصص موقعك. حتما يجب ان يكون هناك أشياء يريدها الزائر.</p>
<p>لنأخذ محرك بحث <a href="http://www.google.com/"><strong>جوجل</strong></a> كمثال :<br />
لو أراد شخص ملياردير ان ينشئ محرك بحث منافس بمعنى الكلمة .. بل محرك بحث       سيطيح بجوجل من على قمة النجاح. لو دفع الملايين والملايين على إنشاء هذا       المشروع وقام بعمل حملات دعائية لم يقم بعملها جوجل في حياته ( الانترنتية       <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) بأكملها.<br />
وخرج في نهاية المطاف بمحرك بحث طبق الأصل من جوجل ( أعني في قوة محرك البحث       )<br />
في النهاية, انت كزائر. ماذا تريد من محرك البحث هذا ؟<br />
هل قدم لك شيء جديد ؟ هنا مربط الفرس.<br />
لو كان محرك البحث هذا طِبق الأصل من جوجل. فأنا كزائر لن يفيدني في شيء&#8230;       فبما ان جوجل قد سبق بطرح محرك بحث بهذه الجودة. ما الذي سأستفيده من جوجل       رقم 2 ؟ <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
ولكن لو قدم هذا الملياردير محرك بحث عبارة عن جوجل + ما يفتقده جوجل <span style="color: #ff0000;">ويحتاجه الزائر</span>, في هذه الحالة النتيجة هي نجاح       محرك البحث.</p>
<p><img class="aligncenter size-full wp-image-109" title="جوجل رقم 2" src="http://www.mossab.com/wp-content/uploads/new-google.jpg" alt="new-google" width="482" height="274" /></p>
<p>لذلك قِس فكرتك على هذا المقياس &#8230; لو كان موقعك متخصص في أخبار الرياضة       مثلاً &#8230; ينبغي عليك أن تفكر فيما لم يفكر فيه من قام بتنفيذ نفس الفكرة       سابقاً, وان تبحث عن ما يريده زوار مواقع الأخبار الرياضية, لن يكفيك فقط أن       تبحث عن أفكار جديدة .. بل يجب أيضاً أن تركز على ما يريده الزائر كما سبق       وذكرت ..</li>
<li><strong>طريقة الطرح</strong><strong><br />
</strong>إن طريقة طرحك للفكرة تعتبر أيضاً       من العوامل المهمة لنجاح الفكرة<strong>,</strong> لا يوجد أي مشكلة أبداً أن تكون       فكرتك هي طبق الأصل من فكرة منتشرة سابقاً .. ولكن في هذه الحالة<strong> </strong>يجب       عليك أن تطرح هذه الفكرة بأسلوب جديد, ( لا يعني ذلك أن تضع صورة ميكي ماوس       في مقدمة الموقع ).<br />
كمثال , كنا نسمع عن مواقع التواصل الاجتماعي منذ فترة طويلة جدا ولكن بعدها       خرج <a href="http://www.facebook.com/">الفيسبوك</a> وأبهر الكثير وانهالت عليه الزيارات, ولكن ما الذي جد في       هذا الموقع ؟ إنها طريقة طرح مفهوم موقع التواصل الاجتماعي .. الموقع يحمل نفس       الفكرة المكررة منذ سنوات , ولكن بأسلوب طرح جديد ومميزات جديدة.</p>
<p>حسناً دعني أشرح الموضوع بعملية أكثر .. طريقة الطرح تكمن في نقطتين تتفرعان       من الفكرة كأساس لهما :</p>
<p><strong> </strong><strong><img class="aligncenter size-full wp-image-110" title="المميزات واسلوب التقديم يتفرعان من الفكرة." src="http://www.mossab.com/wp-content/uploads/idea-structure.jpg" alt="idea-structure" width="500" height="297" /></strong></p>
<p><strong>1- المميزات<br />
</strong>لكل موقع مميزات معينة, بغض       النظر عن فكرته وتخصصه.</p>
<p>لو أخذنا تخصص الموقع في الأعلى       كمثال .. كموقع للأخبار الرياضية يمكنك أن تختار بعض المميزات التي تجعل       موقعك متميز عن غيره .. مثلاً ماذا لو كان هناك ميزة أن يتم تنبيهك       بالمباريات القادمة بإرسال رسالة قصيرة (SMS) إليك ؟ ,       أو غيرها من المميزات الفريدة من نوعها.</p>
<p>أيضاً يجب عليك أن تراعي المفهوم الأساسي الذي اتبعته عند اختيارك للفكرة       عموماً .. وهو أن تختار المميزات التي يحتاجها الزائر فعلاً والتي تفيده<strong>,</strong> كمثال خاطئ يمكنك أن تضع ميزة أن يتم إرسال نتيجة المباراة       إليك عبر الـ (SMS) أيضاً       ولكن مهلاً! &#8230; قد يقوم بعض الزوار بالاشتراك في هذه الخدمة ولكن تأكد بأن       الأغلبية سترفض هذه الفكرة .. حيث انك في المثال الأول تقول للزائر بأنني       سأقوم بتنبيهك لكي لا تفوتك المباراة. ولكن في المثال الثاني &#8230; أنت تقول       للزائر انك ستضيع عليك المباراة حتماً وسأقوم أنا بإرسال النتيجة فقط إليك! ( طبعاً لا يمكن أن يقوم شخص       سيتابع المباراة حتماً بالاشتراك في هذه الخدمة, فمن البديهي ان يكون قد       شاهد النتيجة قبل أن ترسلها أنت إليه )</p>
<p>لذلك .. مرة أخرى .. المميزات + ما يحتاجه الزائر وما يفيده = مميزات ناجحة<strong> </strong></p>
<p><strong>2- أسلوب التقديم ( التصميم )<br />
</strong>أسلوب تقديمك لفكرة موقعك يعتبر من أهم عوامل نجاح هذه الفكرة, بغض       النظر عن مجال موقعك فهناك عدة طرق لتقديم فكرة الموقع بأساليب متنوعة &#8230;       قد تدخل إلى موقع لأخبار البورصة وتجده أشبه بمواقع الأخبار! حسناً قد يقول       البعض بأن المجالين متقاربين .. ولكن ماذا لو قمت بعمل أسلوب عام في الموقع       يوحي بأنك في صالة تداول مثلاً! ( من ناحية التصميم وطريقة تقسيم الموقع       والعبارات المستخدمة ),<br />
في هذه الحالة أصبح زائر الموقع يشعر بأنه في بيئة أقرب إلى الحقيقة وليست خيالية</p>
<p>بل من أكبر قصص نجاح الأفكار بسبب أسلوب الطرح. موقع <a href="http://www.twitter.com/">تويتر</a>,       عندما تسمع هذا الاسم يأتيك الشعور بأنك تتحدث عن أسطورة المواقع! الموقع       الذي أتى بفكرة لم يأتي بها الأسبقون.<strong> </strong></p>
<p><strong> </strong>حسناً لا يمكن أن ننكر النجاح       الباهر الذي حققه موقع تويتر, ولكن دعني اشرح لك أساس فكرة تويتر..</p>
<p>فكرة تويتر عامةً هي تقريباً نفس فكرة موقع <a href="http://www.blogger.com/">Blogger</a> .. يمكن لأي شخص أن ينشئ لنفسه مدونة .. ويمكن لأي شخص أن       يبحث في هذه المدونات عن أي شيء<strong><br />
</strong>ولكن كل ما يميز تويتر عن غيره       من المواقع .. هو طريقة تقديمه لمفهوم التدوين بطريقة جديدة .. وهي ما يسمى       بـالـ micro-blogging أي (       التدوين المصغر جداً ) .. ويسمح لك تويتر بكتابة 140 حرف فقط , دعك من عبارة       &#8221; What are you doing? &#8221;       الموجودة في أول الموقع لأنه تقريباً 95% من مستخدمين تويتر لا يستخدمون       الموقع وفقاً لهذا السؤال, أيضاً تجول في أنحاء الموقع<strong> </strong>وشاهد طريقة       كتابة العبارات و أسلوب تخاطب الموقع معك كمستخدم, مفهوم الـ Tweets وإدخال صور العصافير في أنحاء الموقع..<br />
كل هذا يندرج تحت أسلوب تقديم الفكرة إليك &#8230;<br />
قد تذهب إلى مطعم وتطلب وجبة لحم مشوي, وبعدها بيومين تذهب إلى مطعم آخر       وتطلب نفس الوجبة وتجد أن المطعم الثاني أفضل بكثير .. حسناً الوجبة لم       تختلف .. ولكن طريقة تقديمها حتماً اختلفت <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <strong> </strong></li>
</ul>
</li>
</ul>
<p>إلى هنا أتوقف &#8230;. تناولنا في هذا الجزء &#8230; أهمية اختيار الفكرة المناسبة لكي ينجح مشروعك بمشيئة الله &#8230; وبإذن الله تبقى جزئين آخرين سأشرح فيهما :</p>
<p><strong>1- التنفيذ</strong><strong><br />
2- ماذا بعد التنفيذ ؟</strong><strong> </strong></p>
<p><strong> </strong>وأيضاً أود أن انوه على نقطة مهمة جداً تأتي قبل كل شيء &#8230; أتمنى قبل أن تختار فكرة معينة أن تراعي أن تكون فكرتك ذات فائدة للزوار في الدنيا والآخرة &#8230; فبعد كل شيء, كل ما يهم هو ما قدمته انت لنفسك في آخرتك &#8230; فيا حبذا ان تتحرى الحلال والحرام في فكرتك لكي يكتمل مشروعك على خير ان شاء الله &#8230; <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
ولا يجب عليك ان تركز على الربح فقط من خلال هذه الفكرة سواء عن طريق الإعلانات او غيرها &#8230; نعم لا مانع ان تربح من موقعك ولكن ليكن هدفك الأول هو إرضاء الله عز وجل وإنشاء عمل ذو فائدة.</p>
<p>الأخوة الأفاضل .. إن جميع ما تم كتابته في هذه التدوينة هو من جهدي الشخصي &#8230; فإن أصبت فمن الله وحده &#8230; وإن أخطأت فمن نفسي والشيطان &#8230; وكل ما ارجوه منكم هو الدعاء لي ولوالدي وللمسلمين &#8230;<br />
ويمكنكم نقل هذا الموضوع إلى أي مكان ولكن مع شرط وضع الرابط الأصلي للموضوع وهو من خلال مدونتي الشخصية.</p>
<p>وكل عام وانتم بخير</p>
<p>سبحانك اللهم وبحمدك نشهد أن لا إله إلا الله وأن محمد رسول الله</p>
<p>اخوكم<br />
<strong>مصعب الزيني</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mossab.com/105/%d9%82%d8%b5%d8%a9-%d9%85%d8%b4%d8%b1%d9%88%d8%b9-%d9%86%d8%a7%d8%ac%d8%ad-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%a3%d9%88%d9%84/feed</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Codeigniter.. عندما تكون البرمجة .. متعة بحق (2)</title>
		<link>http://www.mossab.com/88/%d8%aa%d8%b9%d9%84%d9%85-codeigniter-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a</link>
		<comments>http://www.mossab.com/88/%d8%aa%d8%b9%d9%84%d9%85-codeigniter-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a#comments</comments>
		<pubDate>Sat, 25 Jul 2009 15:24:37 +0000</pubDate>
		<dc:creator>مصعب الزيني</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[إطار عمل]]></category>
		<category><![CDATA[الجزء الثاني]]></category>
		<category><![CDATA[برمجة]]></category>
		<category><![CDATA[تعلم]]></category>
		<category><![CDATA[دروس]]></category>

		<guid isPermaLink="false">http://www.mossab.com/?p=88</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اخوتي الأفاضل .. اعود إليكم بتكملة لموضوعي السابق بخصوص Codeigniter
اكتفيت في موضوعي السابق فقط بتوضيح تجربتي &#8220;المتواضعة&#8221; قبل Codeigniter
قبل ان ابدأ في إستكمال الموضوع .. اريد ان اوضح فقط بعض النقاط التي اعتقد بأنني سأسعد جداً بتوضيحها لكم .. وستسهل علينا جميعاً الأمر ايضاً .. فقط لنعرف لماذا [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><b>بسم الله الرحمن الرحيم</b></p>
<p>السلام عليكم ورحمة الله وبركاته</p>
<p>اخوتي الأفاضل .. اعود إليكم بتكملة <a href="http://www.mossab.com/33/php/%d8%aa%d8%b9%d9%84%d9%85-codeigniter-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%a3%d9%88%d9%84/">لموضوعي السابق</a> بخصوص Codeigniter</p>
<p>اكتفيت في <a href="http://www.mossab.com/33/php/%d8%aa%d8%b9%d9%84%d9%85-codeigniter-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%a3%d9%88%d9%84/">موضوعي السابق</a> فقط بتوضيح تجربتي &#8220;المتواضعة&#8221; قبل Codeigniter</p>
<p>قبل ان ابدأ في إستكمال الموضوع .. اريد ان اوضح فقط بعض النقاط التي اعتقد بأنني سأسعد جداً بتوضيحها لكم .. وستسهل علينا جميعاً الأمر ايضاً .. فقط لنعرف لماذا نحن موجودين في هذا الموضوع &#8230; بسم الله :</p>
<ul>
<li><b>هذا الموضوع ليس لتحديد فيما إذا كان استخدام أطر العمل مهم ام لا . لذا ارجوا عدم الخوض في النقاش بخصوص هذه النقطة</b></li>
<li><b>هذا الموضوع ليس لتحديد فيما إذا كان إطار العمل Codeigniter اقوى من غيره ام لاً .. انا هنا لأريكم الأسباب التي ستجعلكم تستخدمونه بإذن الله</b></li>
<li><b>هذا الموضوع ليس لتعليم طريقة التعامل الكامل مع الكائنات البرمجية Class . هنا موضوع مخصص بهذا الشأن من إنشاء اخي عبدالله عيد<br />
	<a href="http://www.swalif.net/softs/swalif45/softs180086/" target="_blank">دورة في : مفهوم OOP</a></b></li>
<li><b>نظراً لأنني لا احب تعريب المصطلحات الانجليزية لأنها تفقد معناها . سأقوم بإستخدام المصطلحات الانجليزية في الشرح .. والتي يعرفها جميعكم اعتقد..</b></li>
<li><b>ارجوا ان نبقي الحوار في إطار التعامل مع Codeigniter فقط .. المشاكل .. الحلول .. التنصيب .. الإعدادات .. إلخ</b></li>
</ul>
<p><span id="more-88"></span><br />
مصطلحات :<br />
CI = Codeigniter<br />
Library = مكتبة<br />
Libraries = مكتبات<br />
Plugin = إضافة<br />
Plugins = إضافات<br />
Hook = خطاف<br />
Hooks = خطاطيف<br />
Controller = ملف التحكم<br />
Controllers = ملفات التحكم<br />
Model = موديل<br />
Models = موديلات<br />
View = ملف العرض<br />
Views = ملفات العرض<br />
Core = اللُب<br />
Extending = تمديد</p>
<p>لتحميل آخر نسخة من CI <a rel="nofollow" href="http://codeigniter.com/downloads/" target="_blank">من هنا</a><br />
<a rel="nofollow" href="http://codeigniter.com/user_guide/" target="_blank">دليل الاستخدام</a><br />
<a rel="nofollow" href="http://codeigniter.com/forums/" target="_blank">منتدى CI</a><br />
<a rel="nofollow" href="http://codeigniter.com/wiki/" target="_blank">الـWiki</a> ( يمكنك البحث عن إضافات بداخله )</p>
<p><span style="text-decoration: underline;">كيفية التنصيب : </span><br />
قم بفك ضغط الملف .. وقم برفع ما بداخل مجلد System إلى موقعك ليصبح الوصول لملف الـ index.php بهذه الطريقة :<br />
<a rel="nofollow" href="http://www.example.com/index.php" target="_blank">http://www.example.com/index.php</a><br />
او قم برفع مجلد system نفسه إلى الموقع ليصبح الوصول إلى ملف index.php بهذه الطريقة :<br />
<a rel="nofollow" href="http://www.example.com/system" target="_blank">http://www.example.com/system</a><br />
ومن ثم ادخل إلى :<br />
system\application\config\config.php<br />
وقم بتعديل عنوان الموقع ( ضع سلاش في آخر الرابط ) :<br />
[php]<br />
  $config['base_url']    = &quot;http://your-site.com/&quot;;<br />
[/php]</p>
<p>وتحكم في باقي الإعدادات حسب إحتياجك ..</p>
<p><span style="text-decoration: underline;"><b>أولاً : لماذا علي ان استخدم CI ؟</b></span></p>
<p>الأسباب النظرية :</p>
<ul>
<li><b>لأنك تريد ان تنظم أعمالك جيداً</b></li>
<li><b>لأنك لا تريد ان تبرمج بطريقة بدائية مما ينتج عنها تأخر في التنفيذ وتأخر في تطوير المهارات البرمجية</b></li>
<li><b>لأنك لا تريد ان تمتلك كمية ملفات كبيرة وفي النهاية تكتشف ان تقريباً 50% منها كان مجرد تكرار ملفات</b></li>
<li><b>لأنك تريد ان تقدم لعملائك برمجة بجودة عالية وسرعة فائقة مما سيبهرهم ويعود عليك بالنفع ( السمعة , التكلفة )</b></li>
<li><b>لأنك تريد ان تطور مهاراتك وتدخل في درجة إحترافية من اساليب البرمجة . ولكنك تريد ايضاً ان تبقى الأمور بسيطة بحيث ان تنفذ الأكواد بطريقتك الخاصة ( بمعنى انك لن تشعر وكأنك تبرمج بلغة اخرى )</b></li>
</ul>
<p>الأسباب العملية :</p>
<ul>
<li><b>لأنك تريد إطار عمل خفيف الحجم ولا يأخذ مساحة كبيرة بدون داعي</b></li>
<li><b>لأنك تريد ان تتعامل مع إطار عمل إحترافي لإختصار الأوامر الكثيرة في أسطر متعددة فقط</b></li>
<li><b>لأنك تريد ان تتعامل مع نظام MVC لتسهيل البرمجة وإختصار الوقت عند التعديل وتطبيق إضافات</b></li>
<li><b>لأنك تريد حماية كاملة وبالطريقة التي تفضلها</b></li>
<li><b>لأنك تريد التركيز على إنتاج المشروع. ولن تضيع وقتك في إنشاء إطار العمل الخاص بك اولاً ومن ثم ستأخذ وقت أكثر من ذلك لتنفيذ المشروع.</b></li>
<li><b>لأنك تريد إطار عمل يمتلك دليل إستخدام بسيط وشامل جميع النقاط التي قد تفكر بها في بدايتك وحتى لاحقاً إذا نسيت نقطة معينة</b></li>
</ul>
<p>*بكل تأكيد هناك نقاط اكثر بكثير مما ذكرت. ولكني حاولت التركيز على المهم</p>
<p><span style="text-decoration: underline;">ثانياً : ما هي المميزات التي يقدمها لي CI ؟</span></p>
<ul>
<li><b>حجم خفيف ( 1 ميجا بايت )</b></li>
<li><b>نظام MVC</b></li>
<li><b>سرعة فائقة في تنفيذ الأكواد ( بل ان Rasmus Lerdorf مخترع لغة الـ PHP  قد ابدى إعجابه بهذه السرعة في مؤتمر frOSCon أغسطس 2008 , <a rel="nofollow" href="http://en.wikipedia.org/wiki/CodeIgniter" target="_blank">شاهد هنا</a>)</b><br />
<blockquote style="text-align:left"><p>liked CodeIgniter because it is faster, lighter and the least like a framework</p></blockquote>
<p>وكان CI قد تفوق على أشهر أطر العمل مثل CakePHP و Symfony و Zend Framework في إختبار قام به مخترع لغة الـ PHP<br />
حيث كانت سرعة CI في الاختبار : 0.03 ثانية<br />
وكانت سرعة CakePHP في الاختبار : 0.19 ثانية<br />
وكانت سرعة Zend Framework في الاختبار : 0.04 ثانية<br />
وكانت سرعة Symfony في الاختبار : 0.05 ثانية<br />
&#8230; نعود مرة اخرى</p>
</li>
<li><b>يعمل على PHP4 و PHP5</b></li>
<li><b>روابط نظيفة ( Friendly URLs ) وآمنة من SQL injection و XSS</b></li>
<li><b>CI يحتوي على مجموع كبيرة من أهم الـ Libraries التي قد تحتاجها اثناء برمجتك, مثال :</b></li>
<li><b>Database, Email, File Uploading, FTP, Image Manipulation, Session, Zip Encoding .. <a rel="nofollow" href="http://codeigniter.com/user_guide/overview/features.html" target="_blank">وغيرها الكثير</a></b></li>
<li><b>تعدد اللغات بسهولة</b></li>
<li><b>لا يتطلب ان يكون لديك خبرة في التعامل مع Template Engine فيمكنك عرض المحتوى بالطريقة التي تريدها ( سواء التعامل مع Template Engine او لا )</b></li>
<li><b>يدعم التعامل مع قواعد بيانات اخرى غير Mysql فقط</b></li>
<li><b>يمتلك نظام Logs يمكنك من خلاله متابعة الأخطاء التي قد تظهر للزوار ويظهر ايضا عمليات الـ Debug ومعلومات اخرى عند تنفيذ الاوامر</b></li>
<li><b>نظام Cache سلس جدا</b></li>
<li><b>نظام URI Routing ( اعادة توجيه للروابط حسب طلبك و دعم Regex كذلك )</b></li>
</ul>
<p>*أيضاً هناك مميزات اكثر من هذه بكثير ولكنني ذكرت ما يحضرني فقط .. يمكنكم مشاهدة المميزات كلها من <a rel="nofollow" href="http://codeigniter.com/user_guide" target="_blank">دليل الاستخدام</a> .. ولكنه باللغة الانجليزية ( سأعمل على تعريبه بإذن الله لاحقاً )</p>
<p><span style="text-decoration: underline; font-weight:700">ثالثا: طريقة عمل CI</span><br />
كما نعلم أن CI يعمل تحت نظام MVC &#8230; ولكن ماهو نظام MVC اصلاً ؟<br />
MVC اي اختصار لـ <span style="text-decoration: underline;">M</span>odel-<span style="text-decoration: underline;">V</span>iew-<span style="text-decoration: underline;">C</span>ontroller<br />
ببساطة &#8230;:<br />
Model : ملف تقوم من خلاله بتنفيذ عمليات قواعد البيانات ( سواء نداء او حذف او تحديث او إدراج )<br />
بالطبع يمكنك ان تنشئ ملفات Models كما تريد .. ولكن يفضل ان تجعل ملف واحد فقط لكل صفحة ( Controller )<br />
View : هو ملف العرض . أي الـ Template للصفحة ويمكنك ادراج معلومات بداخله تأتي بها عن طريق الـ Controller<br />
Controller : هي الصفحة التي تقوم فيها بتنفيذ كل الأوامر التي تريدها .. يتضمن ذلك دمج Model مع View وإدخال معلومات اخرى إلى View وإدراج الـ Libraries والـ Plugins والـ Helpers<br />
وأسم الـ Controller سيكون هو اسم الصفحة في الرابط<br />
بإختصار .. الـController هو الأساس .. و View و Model هم الإضافة للـ Controller &#8230;</p>
<p><span style="text-decoration: underline; font-weight:700">رابعاً : ماذا عن الـ Library والـ Helper والـ Plugin والـ Hooks ؟</span><br />
سريعاً &#8230;</p>
<p><b>Library :</b><br />
مكتبة إضافية تقوم بتنفيذ مهمة معينة .. لنقل مثلاً مكتبة FTP.. عندما تريدها ستقوم بإستدعائها .. وتستخدم خواصها في الـ Controller وننتهي .. لن تقوم بصناعة أكواد الـ FTP كلها في الـ Controller وتستخدم functions و و و &#8230; <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
تعتمد الـ Library على Class<br />
كيفية الاستدعاء :<br />
[php]<br />
$this-&gt;load-&gt;library(&#8216;library_name&#8217;);<br />
[/php]</p>
<p><b>Helper :</b><br />
يعتبر مثل المكتبة .. ولكنه اصغر بقليل .. بمعنى ان الـ Helper يقوم بعمليات بسيطة وصغيرة .. مثلاً هناك Cookie Helper وظيفته العامل مع الكوكيز .. إنشاء , إستدعاء , مسح.<br />
بخلاف الـ Library .. يعتمد الـ Helper على الـ Functions فقط<br />
كيفية الاستدعاء :<br />
[php]<br />
$this-&gt;load-&gt;helper(&#8216;helper_name&#8217;);<br />
[/php]</p>
<p><b>Plugin :</b><br />
وظيفة الـ Plugin هي تقريباً مشابهة للـ Helper ولكن الفرق ان الـ Plugin يستخدم Function واحد فقط يقوم بالمهمة .. ولا يعتمد على Functions متعددة ..<br />
كيفية الاستدعاء :<br />
[php]<br />
$this-&gt;load-&gt;plugin(&#8216;plugin_name&#8217;);<br />
[/php]</p>
<p><b>Hook :</b><br />
سوف اتحدث عنه لاحقاً بإذن الله نظراً لأن وظيفته مرتبطة بعمليات الـ Core Extending وتنفيذ الاضافات على نظام الـ CI .. وبصراحة اريد ان اتعمق معكم في هذا الموضوع بإذن الله .. لكي لا يأتي احد ويقول : CI لا يحتوي على كذا &#8230; حسناً لقد جهزوا لك العدة لتقوم انت بتطوير الـ CI بنفسك اذا لم يعجبك <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>طبعاً يمكنك وضع اياً من هذه الاضافات في مجلدات فرعية .. مثال :<br />
نريد ان نصنع مكتبة مثلاً للتعامل مع منطقة الاعضاء في الموقع .. سنضعها في مجلد فرعي بإسم user .. ليصبح الوصول إليها عن طريق هذا الرابط :<br />
application/libraries/user<br />
لذى .. عند استدعاءها .. سوف نضع اسم المكتبة بهذا الشكل :<br />
[php]<br />
$this-&gt;load-&gt;library(&#8216;user/library_name&#8217;);<br />
[/php]</p>
<p>حسناً<br />
بعد ان أخذنا نظرة عامة على طريقة العامل مع CI .. ما رأيكم في ان نصنع اول تجربة لنا ؟</p>
<p>اولاً دعوني أوضح طريقة التعامل مع المجلدات بداخل مجلد System ..</p>
<p>كل ما بداخل مجلد System يعتبر مجلدات تخص الـ Core الخاص بـ CI &#8230; بإستثناء مجلد application</p>
<p>مجلد application هو مساحة العمل الخاصة بالموقع نفسه ( وليس CI ) ..</p>
<p>بمعنى .. اذا قمت مثلاً بعملية Core Extending فإنك ستضع ملف الـ Library الخاصة بك في مجلد System/libraries &#8230;</p>
<p>ولكن اذا كنت تمتلك Library وظيفتها التعامل مع نقطة معينة في الموقع .. فإنك ستضيعها في مجلد application/libraries &#8230;</p>
<p>كذلك نفس الموضوع بالنسبة للـ Plugins والـ Helpers</p>
<p>حسناً الآن نحن بداخل مجلد Application ..</p>
<p>لدينا هذه المجلدات .. سأشرحها سريعاً :</p>
<ul>
<li><strong>config</strong>
<p>يحتوي على إعدادات الموقع . ويمكنك وضع إعداداتك الخاصة في ملف منفصل بالداخل لتستخدمها وقتما تشاء مع Library مثلاً او Plugin<br />
أهم 4 ملفات سنتعامل معهم طوال الوقت هم :</p>
<ul>
<li><strong>config.php </strong>يحتوي على إعدادات عامة</li>
<li><strong>database.php </strong>يحتوي على الإعدادات الخاصة بالتعامل مع قواعد البيانات</li>
<li><strong>routes.php </strong>يحتوي على الخصائص الخاصة بك للتحويل بين الروابط , مثال :<br />
[php]<br />
// index.php/welcome -&gt; index.php/home<br />
$route['welcome'] = &quot;home&quot;;<br />
[/php]</li>
<li><strong>autoload.php </strong>ملف تقوم فيه بتحديد الإضافات التي تريد ان يتم تحميلها تلقائياً بدون ان تكتب أمر التحميل :<br />
[php]<br />
$this-&gt;load-&gt;library(&#8216;library_name&#8217;);<br />
[/php]</li>
</ul>
</li>
</ul>
<ul>
<li><strong>controllers </strong>يحتوي على صفحات الموقع بإختصار</li>
<li><strong>errors </strong>يحتوي على صفحات الأخطاء ( Templates ) يمكنك التعديل عليها بطريقتك الخاصة مثلاً</li>
<li><strong>helpers </strong>يحتوي على جميع الـ Helpers</li>
<li><strong>hooks </strong>يحتوي على جميع الـ Hooks</li>
<li><strong>language </strong>يحتوي على جميع ملفات اللغة</li>
<li><strong>libraries </strong>يحتوي على جميع الـ Libraries</li>
<li><strong>models </strong>يحتوي على جميع الـ Models</li>
<li><strong>views </strong>يحتوي على جميع ملفات الـ View أي الـ ( Templates )</li>
</ul>
<p>كل ملف جديد في مجلد controllers يساوي صفحة جديدة &#8230;. مثال :<br />
test.php يساوي <a rel="nofollow" href="http://www.example.com/index.php/test" target="_blank">http://www.example.com/index.php/test</a><br />
روابط CI تعمل بهذه الطريقة :<br />
[html]</p>
<p>http://www.example.com/index.php/class/function/variable</p>
<p>[/html]</p>
<p>سأوضح هذه النقطة اكثر بعد قليل ان شاء الله ..</p>
<p>إذا دخلت إلى <a rel="nofollow" href="http://www.example.com/index.php" target="_blank">http://www.example.com/index.php</a> ستجد ان هناك صفحة ترحيب أولية &#8230; ولكن اذا دخلت إلى مجلد controllers ستجد ان اسم الصفحة الترحيبية هو welcome.php .. كيف اذاً اصبحت الصفحة تظهر عند الدخول إلى index.php فقط وليس index.php/welcome ( بالرغم من انك اذا ذهبت ايضاً إلى index.php/welcome ستظهر نفس الصفحة بالتأكيد )</p>
<p>حسناً .. هناك إختيار في ملف config/routes.php يحدد لك الـ Controller الإفتراضي الذي تريده ان يظهر عند الدخول إلى index.php فقط :<br />
[php]<br />
$route['default_controller'] = &quot;welcome&quot;;<br />
[/php]</p>
<p>لا تحتاج إلى إضافة تنسيق الملف .. فقط ضع اسم الـ Controller ..</p>
<p>حسناً اعتقد بأننا جاهزون ان شاء الله لإنشاء أول ملف تجربة لنا &#8230; بسم الله :</p>
<p>نذهب إلى مجلد application/controller ونحذف اولاً ملف welcome.php .. ثم نصنع ملف جديد خاص بنا اسمه مثلاً home.php &#8230;<br />
افتح الملف وضع بداخله الآتي</p>
<p>[php]<br />
&lt;?php</p>
<p>class Home extends Controller {</p>
<p>    function index()<br />
    {</p>
<p>    }<br />
}</p>
<p>?&gt;<br />
[/php]</p>
<p>لاحظ هذه النقاط المهمة :<br />
يجب ان يكون اسم الكلاس بالضبط نفس اسم ملف ( بدون التنسيق طبعاً )<br />
يجب ان يكون مورث من الكلاس Controller ليعمل حسب نظام CI ( <a rel="nofollow" href="http://oophp.info/?page_id=122" target="_blank">مزيد </a>حول فائدة Extends )<br />
يجب ان يحتوي على function بأسم index .. مما يعني ان محتوى هذا function سيظهر بمجرد الدخول إلى index.php/home وكذلك بالتأكيد index.php/home/index</p>
<p>حسناً .. اذا دخلنا إلى index.php/home بالطبع لن يظهر اي شيء امامك .. لأن الصفحة فارغة ..<br />
سوف نضع عبارة أولية للتجربة :<br />
[php]<br />
&lt;?php</p>
<p>class Home extends Controller {</p>
<p>    function index()<br />
    {<br />
        echo &#8216;Hello World!&#8217;;<br />
    }<br />
}</p>
<p>?&gt;<br />
[/php]</p>
<p>ادخل مرة اخرى إلى index.php/home وسوف تجد عبارة &#8221; Hello World! &#8221; مطبوعة <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>الآن اعتقد بأن الأمر واضح .. الـ function بأسم index .. يساوي صفحة الـ index لقسم Home</p>
<p>دعوني اوضح الفكرة أكثر .. اذا قمنا بعمل function جديد مثلاً بأسم Test داخل كلاس Home .. :<br />
[php]<br />
&lt;?php</p>
<p>class Home extends Controller {</p>
<p>    function index()<br />
    {<br />
        echo &#8216;Hello World!&#8217;;<br />
    }</p>
<p>    function test()<br />
    {<br />
        echo &#8216;Page Test.. &#8216;;<br />
    }<br />
}</p>
<p>?&gt;<br />
[/php]<br />
الآن ادخل إلى index.php/home/test سوف ترى ما أعنيه ..<br />
وهو كما ذكرت في السابق :<br />
[html]</p>
<p>http://www.example.com/index.php/class/function/variable</p>
<p>[/html]<br />
اسم الـ Class يأتي اولاً .. ثم الـ Function ثم الـ Variables بعدها بأي كمية كانت .. لا يوجد عدد محدود وسوف اتطرق للـ Variables بعد قليل إن شاء الله</p>
<p>الآن طبعاً من الخطأ تماماً ان نطبع الكلام عن طريق echo وإلا .. فقد عادت ريما لعادتها القديمة&#8230;<br />
كما تعلمنا سابقاً .. فإن لكل Controller ملف View أي ( Template ) &#8230; دعونا ننشئ ملف View بداخل مجلد views ونسميه كذلك home.php</p>
<p>هذا الملف الآن يتعامل كلياً بأكواد HTML .. لذلك ضع ما تريد .. ولكني افضل :<br />
[html]<br />
&lt;h1&gt;Hello World!&lt;/h1&gt;<br />
[/html]<br />
الآن إذا ذهبت إلى صفحة index.php/home بالتأكيد سوف تجد الصفحة كما هي في البداية .. لاننا مازلنا نقوم بطباعة الكلمة عن طريق echo .. حسناً دعونا الآن نرى كيف نحضر ملف view إلى الـ Controller ..<br />
[php]<br />
&lt;?php</p>
<p>class Home extends Controller {</p>
<p>    function index()<br />
    {<br />
        $this-&gt;load-&gt;view(&#8216;home&#8217;);<br />
    }</p>
<p>    function test()<br />
    {<br />
        echo &#8216;Page Test.. &#8216;;<br />
    }<br />
}</p>
<p>?&gt;<br />
[/php]<br />
لنذهب مرة اخرى إلى index.php/home  .. نعم لقد تم إدراج ملف الـ view بنجاح <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
مزيد للمعلومات حول <a rel="nofollow" href="http://codeigniter.com/user_guide/general/views.html" target="_blank">View</a> من دليل الاستخدام ( بالإنجليزية )</p>
<p>حسناً بالتأكيد انكم لاحظتم ان طريقة كتابة امر الإدراج متشابهة في أغلب الأحوال . مثال :<br />
[php]<br />
$this-&gt;load-&gt;view(&#8221;);<br />
$this-&gt;load-&gt;library(&#8221;);<br />
$this-&gt;load-&gt;helper(&#8221;);<br />
$this-&gt;load-&gt;plugin(&#8221;);<br />
[/php]<br />
فقط لأنك من الطبيعي لاحقاً سوف تخمن ان الجزء المطلوب تغييره هو الجزء الاخير فقط .. <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
وهذا من اكبر الاسباب التي تعجبني في CI .. يعطيك بالضبط ما تفكر به ..</p>
<p>حسناً .. نمتلك الآن ملف الـ View ويعمل بنجاح ..</p>
<p>ماذا إذا اردنا إدخال متغير من الـ Controller إلى ملف الـ View  ؟</p>
<p>بسيطة &#8230;<br />
[php]<br />
&lt;?php</p>
<p>class Home extends Controller {</p>
<p>    function index()<br />
    {<br />
        $data['text'] = &#8216;Hello World!&#8217;;<br />
        $this-&gt;load-&gt;view(&#8216;home&#8217;,$data);<br />
    }</p>
<p>    function test()<br />
    {<br />
        echo &#8216;Page Test.. &#8216;;<br />
    }<br />
}</p>
<p>?&gt;<br />
[/php]<br />
داخل ملف الـ View<br />
[html]<br />
&lt;h1&gt;&lt;?=$text?&gt;&lt;/h1&gt;<br />
[/html]<br />
اذا الأمر واضح الآن .. الـ Key في المصفوفة بداخل الـ Controller يصبح متغير داخل الـ View .. مثال آخر</p>
<p>الـ Controller :<br />
[php]<br />
&lt;?php</p>
<p>class Home extends Controller {</p>
<p>    function index()<br />
    {<br />
        $data['text'] = &#8216;Hello World!&#8217;;<br />
        $data['how'] = &#8216;How are you ?&#8217;;<br />
        $data['thanks'] = &#8216;Thanks &#8216;;<br />
        $this-&gt;load-&gt;view(&#8216;home&#8217;, $data);<br />
    }<br />
}</p>
<p>?&gt;<br />
[/php]<br />
بداخل ملف الـ View :<br />
[html]<br />
&lt;h1&gt;&lt;?=$text?&gt;&lt;/h1&gt; &lt;h2&gt;&lt;?=$how?&gt;&lt;/h2&gt; &lt;h3&gt;&lt;?=$thanks?&gt;&lt;/h3&gt;<br />
[/html]<br />
حسناً دعونا نتعمق اكثر &#8230; ماذا إذا اردت ان اربط متغير بملف view ؟ مثلاً ..<br />
لدي ملف View بأسم Header .. اريد ان ادرجه بداخل الـ View الرئيسي &#8230;</p>
<p>سهلة <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>قم بعمل ملف جديد في مجلد application/views بأسم header.php .. مثلاً سنضع داخله :<br />
[html]<br />
&lt;h1&gt;Header here&lt;/h1&gt;<br />
[/html]<br />
اذهب إلى الـ Controller مرة اخرى .. الآن سنعرف متغير بداخل المصفوفة data .. ليحتوي على ملف الـ view الخاص بالـ Header &#8230; ولكن سيكون الوضع مختلف قليلاً &#8230;<br />
[php]<br />
&lt;?php</p>
<p>class Home extends Controller {</p>
<p>    function index()<br />
    {<br />
        $data['header'] = $this-&gt;load-&gt;view(&#8216;header&#8217;, &#8221;, TRUE);<br />
        $data['how'] = &#8216;How are you ?&#8217;;<br />
        $data['thanks'] = &#8216;Thanks &#8216;;<br />
        $this-&gt;load-&gt;view(&#8216;home&#8217;, $data);<br />
    }<br />
}</p>
<p>?&gt;<br />
[/php]<br />
ملف الـ View :<br />
[html]<br />
&lt;?=$header?&gt; &lt;h2&gt;&lt;?=$how?&gt;&lt;/h2&gt; &lt;h3&gt;&lt;?=$thanks?&gt;&lt;/h3&gt;<br />
[/html]<br />
الآن الـ function بأسم view يأخذ 3 مدخلات .. وهم :<br />
1- اسم ملف الـ view وهو header في هذه الحالة<br />
2- تمرير بعض المتغيرات إلى ملف الـ view ( كما شاهدنا في السابق ). وفي هذه الحالة نحن لا نريد ان نضع اي شيء فيه لذلك سنجعله فارغ<br />
3- يقبل فقط TRUE او FALSE .. ووظيفتة هذا المدخل او ان يجعل معلومات ملف الـ View هذا قابلة لأن تكون بداخل متغير لإستخدامها في اي مكان آخر &#8230; إذا قمت بجعله FALSE .. ستجد ان الـ View يتم طباعته تلقائياً بدون حتى وجود المتغير $header في ملف الـ view الرئيسي &#8230;<br />
* تنبيه.. طبعا اذا كنت تريد طباعة ملف view بدون تمرير متغيرات او جعله قابل ليكون بداخل متغير .. ستستخدم مدخل واحد فقط وهو لأسم ملف الـ view كما كتبناه في الأعلى ..</p>
<p>حسناً .. مازال هناك بعض النقاط الاخرى &#8230; شاهد المثال :</p>
<p>الـ Controller :<br />
[php]<br />
&lt;?php</p>
<p>class Home extends Controller {</p>
<p>    function index()<br />
    {</p>
<p>        $data['how'] = &#8216;How are you ?&#8217;;</p>
<p>        $data['items'] = array (<br />
                                &#8216;item1&#8242;    =&gt; &#8216;This is item 1&#8242;,<br />
                                &#8216;item2&#8242;    =&gt; &#8216;This is item 2&#8242;<br />
                                );</p>
<p>        $this-&gt;load-&gt;view(&#8216;home&#8217;, $data);<br />
    }<br />
}</p>
<p>?&gt;<br />
[/php]<br />
ملف الـ View :<br />
[html]<br />
&lt;h1&gt;&lt;?=$how?&gt;&lt;/h1&gt; &lt;ul&gt; &lt;li&gt;&lt;?=$items['item1']?&gt;&lt;/li&gt; &lt;li&gt;&lt;?=$items['item2']?&gt;&lt;/li&gt; &lt;/ul&gt;<br />
[/html]<br />
نستنتج من هذا انه يمكننا ايضاً تمرير مصفوفة إلى ملف الـ view</p>
<p>بل يمكنك حتى استخدام foreach لإستخراج محتوى المصفوفة</p>
<p>ملف الـ View :<br />
[html]<br />
&lt;h1&gt;&lt;?=$how?&gt;&lt;/h1&gt;</p>
<p>&lt;ul&gt;<br />
&lt;?php foreach ($items as $item) { ?&gt;<br />
&lt;li&gt;&lt;?=$item?&gt;&lt;/li&gt;<br />
&lt;?php } ?&gt;<br />
&lt;/ul&gt;<br />
[/html]</p>
<p>حسناً هذه كانت فقط البداية للتعريف بجزء بسيط من اسلوب عمل CI &#8230;</p>
<p>اتمنى ان تكون الفكرة وصلتكم وسوف انتظر منكم ان تخبروني هل نجحت التجارب معكم ام لا .. اتمنى ان قد وفقت في الشرح ..</p>
<p>ودائماً انصح بالرجوع إلى <a rel="nofollow" href="http://localhost/codeigniter/user_guide/" target="_blank">دليل الإستخدام</a> لإحتوائه على جميع التفاصيل التي قد تتسائل عنها</p>
<p>ومازلت عند وعدي إن شاء الله سوف اقوم بتعريب دليل الإستخدام ولكن في وقت فراغي بإذن الله .. واتمنى اذا كان هناك احد يريد مساعدتي في ذلك سوف أسعد جدا جدا &#8230;</p>
<p>هذا الشرح هو كاملاً ( والكمال لله وحده ) من جهدي الشخصي .. كل ما ارجوه منكم اخوتي هو الدعاء لي ولوالدي وللمسلمين &#8230;</p>
<p>كما اذكر مرة اخرى .. ارجوا ان نبقى النقاش فقط فيما يتمحور حول CI والتعامل معه &#8230;</p>
<p>سبحانك اللهم وبحمدك .. اشهد ان لا إله إلا انت .. استغفرك وأتوب إليك &#8230;</p>
<p>اخوكم في الله ..<br />
مصعب الزيني</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mossab.com/88/%d8%aa%d8%b9%d9%84%d9%85-codeigniter-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Codeigniter.. عندما تكون البرمجة .. متعة بحق</title>
		<link>http://www.mossab.com/33/%d8%aa%d8%b9%d9%84%d9%85-codeigniter-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%a3%d9%88%d9%84</link>
		<comments>http://www.mossab.com/33/%d8%aa%d8%b9%d9%84%d9%85-codeigniter-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%a3%d9%88%d9%84#comments</comments>
		<pubDate>Thu, 23 Jul 2009 19:49:53 +0000</pubDate>
		<dc:creator>مصعب الزيني</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[إطار عمل]]></category>
		<category><![CDATA[برمجة]]></category>

		<guid isPermaLink="false">http://www.mossab.com/?p=33</guid>
		<description><![CDATA[بسم الله الرحمن الرحيم
اخوتي الأعزاء .. السلام عليكم ورحمة الله وبركاته
سأحكي لكم قصتي بإختصار &#8230;
طلب مني احد الاخوة مشروع برمجة موقع كامل  .. نظراً لطريقة برمجتي ( السابقة ) .. كان الأمر بالنسبة لي اشبه بتحدي لنفسي .. وفي نفس الوقت .. لقد تورطت !
فقد أعطاني تفاصيل المشروع وفوجئت بأن العمل ضخم &#8230; قبل [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>بسم الله الرحمن الرحيم</strong></p>
<p>اخوتي الأعزاء .. السلام عليكم ورحمة الله وبركاته</p>
<p>سأحكي لكم قصتي بإختصار &#8230;<br />
طلب مني احد الاخوة مشروع برمجة موقع كامل  .. نظراً لطريقة برمجتي ( السابقة ) .. كان الأمر بالنسبة لي اشبه بتحدي لنفسي .. وفي نفس الوقت .. لقد تورطت !</p>
<p>فقد أعطاني تفاصيل المشروع وفوجئت بأن العمل ضخم &#8230; قبل ذلك بعدة ايام &#8230; كنت قد تعرفت على التحفة الفنية .. Codeigniter .. وألهمني هذا الـFramework إلهاماً شديدة .. وكنت اريد اي فكرة لأقوم بتنفيذها عن طريق منصة العمل هذه ( Codeigniter ) .. ولكن لم اتوقع ان تكون اول تجربة لي بهذا الحجم الكبير &#8230;<br />
<span id="more-33"></span></p>
<p>طريقتي السابقة في البرمجة .. استطيع بكل صراحة ان اقول &#8230; بــــــدائية &#8230; بسبب :</p>
<ul>
<li><strong>دمج أكواد php و html في نفس الملف !!</strong><br />
من أبشع الأخطاء التي قمت بها في برمجياتي &#8230; وانا متأكد انه هناك بعض الاخوة ايضاً يقوم بنفس الموضوع .. لسهولة كتابة الكود .. ولكن الكثير ايضاً لا يعلم انه عندما تحتاج ان تعود وتفحص اكوادك مرة اخرى لإضافة نقطة معينة او تعديلها .. ستنـــــــــــدم وتتمنى انك لم تتعرف على هذه اللغة &#8230; بل من الممكن ان تشك ان هذا الملف تمت برمجته بلغة PHP اصلاً <img src='http://www.mossab.com/wp-includes/images/smilies/icon_surprised.gif' alt=':eek:' class='wp-smiley' />  .. ( قد تكون مبالغة بعض الشيء )</li>
<li><strong>لا استخدم الـ Comments بين الأكواد ابداً</strong><br />
كنت اعتبرهاً مضيعة للوقت وبدون فائدة &#8230; تقريباً الأضرار نفسها في النقطة السابقة .. بل وأكثر من ذلك</li>
<li><strong>أقوم بكتابة نفس الأكواد مراراً وتكراراً</strong><br />
أوامر الـmysql .. كنت استخدم تقريباً نفس الاكواد بالضبط لكن مع تعديلات بسيطة جدا جدا جدا &#8230;</li>
<li><strong>كانت لدي عقدة فقط عند سماع اسم Framework او كلمة منصة عمل</strong><br />
بسبب انه تقريباً كلما حاولت الدخول لهذا العالم .. وجدت ان الـ Example او المثال الذي يضعه الموقع الخاص بمنصة العمل هذه .. هو مثال سيء بمعـــــنى الكلمة .. فيأتيني الشعور بأن طريقتي الحالية هي الأصح ولا يوجد اي طريقة اخرى افضل منها &#8230;<br />
- كذلك دليل الإستخدام ( User Guide ) دائماً ما يكون اشبه بمتاهة وتحتاج ان تنظر إليها من الأعلى اولاً لتعبرها &#8230; ( يجب ان تكون اساساً محتــــــرف في الـ PHP لتستخدمها )</li>
<li><strong>كنت اعتبر التعامل مع الـOOP هو امر مستحيل تماماً</strong><br />
استطيع ان اقول بأنه لم يقوم احد بتبسيط الأمور كما ينبغي ( حتى جاء الفارس المغوار .. اخي عبدالله عيد وطرح موضوعه الرائع )<br />
وأيضاً لأنه لم اعتقد بأنه هناك فائدة من استخدام الكلاسات ( Classes ) في برمجياتي</li>
</ul>
<p>لا اريد ان اطيل عليكم &#8230; ولكن ما علاقة هذا الكلام كله بـ Codeigniter ؟&#8230;</p>
<p>بعد دخولي رويداً رويداً إلى عالم Codeigniter .. وجدت ان الحياة اسهل بكثير مما تخيلت &#8230;<br />
الأمر ممتع !!! كتابة الأكواد اصبحت متعة بالنسبة لي .. أتلذذ عند إستخدام الكلاسات !! بل وأصبحت اتعامل مع نظام الـ MVC ( لم اكن على دراية كاملة به حتى دخلت عالم Codeigniter )</p>
<p>بل وبكل صراحة وصدق سأخبركم .. بانه في خلال شهر واحد فقط &#8230; اصبحت اكتب الأكواد بسرعة خيالية ( حسب تقديري المتواضع البسيط وبالمقارنة بمستواي السابق ) وقمت بإجناز نسبة كبيرة جدا جدا من المشروع الذي كنت اعمل عليه ( الموقع ) في فترة قياسية جداً &#8230; هنا انتبهت لعدة نقاط مهمة جدا جدا جدا &#8230;</p>
<ul>
<li><strong>إذا كنت لا تحب القراءة .. فمكانك ليس هنا</strong><br />
قد تبحث عن موضوع مهم جداً تريد التعرف عليه ( لنفترض .. الـ MVC ) فتجد امامك صفحة مليئة بالكلام الغير منسق الكـثيــــــــــــــــــر الـجـاف( اسلوب الطرح ليس جيداً ) &#8230; فتقول لا .. شكراً .. لا اريد &#8230;<br />
ولكن مهلاً &#8230;. لا تستطيع ان تقول ان  الشخص الذي ظل لساعات يكتب ويشرح في هذه النقطة .. هو شخص أبله ! ولا يفقه شيئاً ! ولن تستفيد إطلاقاً منه.. بل الواجب والمفروض هو ان تتحمل الاسلوب وكثرة الكلام .. وتأخذ الموضوع رويداً رويداً .. ستجد ان بعض الأبواب تفتحت إليك &#8230; ياه ! لم اكن ادري ان الموضوع بهذه السلاسة .. وفي النهاية ستخرج أنت بالفائدة التي كنت تبحث عنها ..<br />
طبعاً انا من معــــــــــــــارضي الأسلوب السيء في الطرح .. قد تكون شخص ذو خبرة عظيمة .. قد تكون انت الملاذ ( بعد الله سبحانه وتعالى ) لشخص ضائع في نقطة معينة &#8230; دائماً اكتب بطريقة مشوقة &#8230; لتُكمل الطبخة</li>
<li><strong>افتح عقلك للأفكار الجديدة والغريب منها</strong><br />
قد تبدو فكرة غريبة بعض الشيء .. قد تبدو خارج نطاق الأفكار!! ولكن دائماً تأكد ان كل فكرة .. يجب ان تمر ( كلياً ) على عقلك .. ثم بعدها قم بالحكم عليها &#8230; عفواً ولكن لا تكن سطحياً <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  !</li>
<li><strong>بيئة العمل .. وما ادراك ما بيئة العمل <img src='http://www.mossab.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </strong><br />
إذا كنت تعمل كـFreelancer ( عمل حر ) ستعرف ما اعنيه &#8230; قد تأتي عليك بعض الأيام ولا تجنز فيها ولو سطر واحد فقط .. بسبب إنزعاجك من موضوع معين حدث ( خلاف مع شخص او ما شابه ) .. او بسبب الطقس .. او بسبب بعض الأحداث في العالم أجمع &#8230;<br />
هنا يجب عليك ان تحضر البيئة المناسبة تماماً للعمل &#8230; غرفة العمل .. هي لك انت فقـــــط !! ممنوع الإقتراب ..اذا كنت تعمل كموظف .. فبالتأكيد كل هذا لن ينفع فأنت مجبر على العمل ( غصباً عنك :1power: )<br />
وإلا &#8230;&#8230;. انت مطرود !!!</li>
</ul>
<p>نقاط برمجية هامة جداً اتبعها :</p>
<ul>
<li><strong>استخدم الـComments ( التعليقات ) بين كل سطر وسطر ..</strong></li>
<li><strong>دائماً اجعل اكوادك نظيفة ومفهومة ( أسماء المتغيرات والـ Functions واستخدم Tab لإبعاد الأسطر وتنسيقها)</strong></li>
<li><strong>استخدم Template Engine إذا كنت لا تعمل تحت منصة عمل معينة</strong></li>
<li><strong>رتب مجلدات برمجياتك</strong></li>
<li><strong>الشفرة المصدرية ثم الشفرة المصدرية ( Source )</strong></li>
<li><strong>برغم كرهي <span style="text-decoration: line-through;">الشديد </span>لهم .. ولكن .. احصل على الضوء الأخضر من W3C حتى تكتمل الصورة</strong></li>
<li><strong>لا تستخدم منصات الـ JS إذا كنت لا تنوي إستخدامها كاملة</strong></li>
<li><strong>ضع اكواد الـ CSS والـ JS في ملفات منفصلة دائما ..</strong></li>
<li><strong>واخيراً وليس آخراً .. استخدم منصة عملCodeigniter <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </strong></li>
</ul>
<p>وإن شاء الله, إلى اللقاء في الجزء الثاني من سلسلة تعلم إطار عمل CI</p>
<p>سبحانك اللهم وبحمدك .. اشهد ان لا إله إلا انت .. استغفرك وأتوب إليك ..</p>
<p>لكم ارقى التحية &#8230;<br />
اخوكم..<br />
مصعب الزيني</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mossab.com/33/%d8%aa%d8%b9%d9%84%d9%85-codeigniter-%d8%a7%d9%84%d8%ac%d8%b2%d8%a1-%d8%a7%d9%84%d8%a3%d9%88%d9%84/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>بسم الله &#8230;</title>
		<link>http://www.mossab.com/14/%d8%a8%d8%b3%d9%85-%d8%a7%d9%84%d9%84%d9%87</link>
		<comments>http://www.mossab.com/14/%d8%a8%d8%b3%d9%85-%d8%a7%d9%84%d9%84%d9%87#comments</comments>
		<pubDate>Sat, 18 Jul 2009 13:55:19 +0000</pubDate>
		<dc:creator>مصعب الزيني</dc:creator>
				<category><![CDATA[عام]]></category>

		<guid isPermaLink="false">http://www.mossab.com/?p=14</guid>
		<description><![CDATA[السلام عليكم ورحمة الله وبركاته
اولاً اود ان اذكر بأن خطوة إنشاء هذه المدونة جائت بعد تردد كثير, فبصراحة وجدت ان مشاركتي في المنتديات لن تكون كما لو كان لدي مكان حر اطرح به كل ما يجول بخاطري .. سواء كان في الجانب التقني ام في الحياة العامة &#8230;
لا اريد ان اتحدث كثيرا عن نفسي في [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>السلام عليكم ورحمة الله وبركاته</strong></p>
<p>اولاً اود ان اذكر بأن خطوة إنشاء هذه المدونة جائت بعد تردد كثير, فبصراحة وجدت ان مشاركتي في المنتديات لن تكون كما لو كان لدي مكان حر اطرح به كل ما يجول بخاطري .. سواء كان في الجانب التقني ام في الحياة العامة &#8230;<br />
لا اريد ان اتحدث كثيرا عن نفسي في هذه المدونة . فأنا شخصياً لا احبذ فكرة ان ينشئ احدهم مدونة ويسدل في الحديث عن نفسه وعن شخصيته ويجعل من نفسه محور الكون &#8230;.</p>
<p>أنشئت هذه المدونة لكي اشارككم اخواني المعرفة والعلم واتبادل معكم الآراء ووجهات النظر &#8230; وكما انني اطمح بأن اقدم مادة فريدة بإذن الله خصوصاً في مجال البرمجة وتطوير المواقع عامة والتصميم ثلاثي الأبعاد (3D)</p>
<p>كما اود ان انوه بأن التعليقات حاليا في وضع ( الموافقة اولاً من الإدارة ). وبإذن الله سأقوم بالموافقة عليها فور إستلامها . ولكنني اود ان ابقيها بهذا الشكل إلى ان ارى كيف هي الاحوال <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>في الأيام القليلة القادمة ان شاء الله سأقوم بـ :<br />
1- نقل سلسلة دروس <a title="Codeigniter PHP Framework" href="http://www.codeigniter.com">CI</a> كاملة مع إضافة بعض التحسينات عليها وإنهاء الجزء الخامس<br />
2- البدء في سلسلة &#8221; المشروع الناجح &#8221; &#8211; سلسلة تهتم بكل نقطة صغيرة وكبيرة حول كيفية بناء مشروع ناجح . ابتداء بالفكرة وحتى نشر الموقع على الويب وإستقبال الزوار -<br />
3- طرح بعض الموارد والاكواد المميزة والتي من الممكن الاستفادة منها في بناء المواقع عامة.</p>
<p>إلى اللقاء &#8230; <img src='http://www.mossab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mossab.com/14/%d8%a8%d8%b3%d9%85-%d8%a7%d9%84%d9%84%d9%87/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

