<?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>PlusCSS</title>
	<atom:link href="http://www.pluscss.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pluscss.com/blog</link>
	<description>مدونة تهتم بالبرمجة و تطبيقات الويب و الويب 2</description>
	<lastBuildDate>Mon, 10 Oct 2011 12:59:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>سكربت اليوتيوب &#8221; أنشئ موقعك خلال دقائق &#8220;</title>
		<link>http://www.pluscss.com/blog/index.php/2011/10/09/plustube-script/</link>
		<comments>http://www.pluscss.com/blog/index.php/2011/10/09/plustube-script/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 15:05:20 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[أنظمة إدارة المحتوى]]></category>
		<category><![CDATA[سكربتات]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=349</guid>
		<description><![CDATA[اقسام السكربت التصنيفات الفيديو الأعضاء الصفحات الإعلانات ( صور – فلاش – ادسنس ) ميزات السكربت امكانية اضافة عدد لا نهائي من التصنيفات إمكانية إضافة عدد غير محدود من مقاطع اليوتيوب . امكانية البحث عن كلمة ضن اليوتيوب و ادراج كل المقاطع المتعلقة بها . رفع صورة الفيديو إلى سيرفر الموقع مباشرة امكانية التحكم بالستايلات [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-351" title="youtube" src="http://www.pluscss.com/blog/wp-content/uploads/2011/10/youtube.jpg" alt="" width="640" height="200" /></p>
<h3>
اقسام السكربت<br />
</h3>
<ul>
<li>
التصنيفات
</li>
<li>
الفيديو
</li>
<li>
الأعضاء
</li>
<li>
الصفحات
</li>
<li>
الإعلانات ( صور – فلاش – ادسنس )
</li>
</ul>
<h3>
ميزات السكربت<br />
</h3>
<ul>
<li>
امكانية اضافة عدد لا نهائي من التصنيفات
</li>
<li>
إمكانية إضافة عدد غير محدود من مقاطع اليوتيوب .
</li>
<li>
امكانية البحث عن كلمة ضن اليوتيوب و ادراج كل المقاطع المتعلقة بها .
</li>
<li>
رفع صورة الفيديو إلى سيرفر الموقع مباشرة
</li>
<li>
امكانية التحكم بالستايلات ( البرمجة مفصولة عن التصميم باستخدام Smarty ) مع اضافة محرر لتعديل الثيمات من لوحة التحكم
</li>
<li>
امكانية التحكم بالسلايدر ( تحديد من أي التصنيفات يعرض )
</li>
<li>
اعتماد نظام Cache للصور و المحتوى لتسريع عرض الصفحة
</li>
<li>
نظام بحث متقدم ضمن المشاركات
</li>
<li>
نظام أرشفة قوي و مطابق لمعايير محركات البحث من حيث العنوان و الوصف و الكلمات المفتاحية (  google – yahoo – buing )
</li>
<li>
توليد خريطة الموقع مع ارسالها إلى محركات البحث (  google – yahoo – buing )
</li>
<li>
تصميم افتراضي مميز و خفيف Web2
</li>
<li>
نظام عضويات يسمح للعضو بإضافة المقاطع و انشاء مفضلته من المقاطع و مشاهدتها متى يشاء
</li>
<li>
نظام تعليقات خاص بالسكربت بالإضافة إلى تعليقات الفيسبوك مع امكانية تعطيل و ايقاف التعليقات و كثير من الخيارات الأخرى
</li>
<li>
روابط نظيفة و محسنة لكسب صداقة محركات البحث
</li>
<li>
نظام تغذية rss للموقع
</li>
<h3>
ميزات المشغل و صفحة عرض الفيديو<br />
</h3>
<ul>
<li>
مشغل فيديو خاص بالموقع مع 16 ثيم
</li>
<li>
امكانية وضع شعار الموقع كعلامة مائية فوق المشغل مع تحديد مكان عرضها
</li>
<li>
نظام تقييم المقطع بالنجوم ( أجاكس )
</li>
<li>
نشر المقطع في المفضلات و الشبكات الاجتماعية Twitter &#8211; Facebook &#8211; Google Plus &#8211; Digg
</li>
<li>
إضافة المقطع إلى المفضلة و حذفه من المفضلة ( أجاكس )
</li>
<li>
عرض مقاطع مرتبطة بالفيديو من خلال الكلمات الدلالية للمقطع
</li>
<li>
كود لنشر المقطع في المنتديات
</li>
<li>
و ميزات أخرى كثيرة يمكنك أن تعاينها من خلال النسخة التجريبية للسكربت
</li>
</ul>
<p class="tip"><a href="http://www.pluscss.com/plustube" target="_blank">رابط تجربة السكربت</a><br />
اسم المستخدم : user<br />
كلمة المرور : 123123</p>
<p class="tip"><a href="http://www.pluscss.com/plustube/admin/" target="_blank">رابط تجربة لوحة تحكم الإدارة</a><br />
اسم المستخدم : admin<br />
كلمة المرور : 123123</p>
<p class="note">تم تعطيل كل خواص الإدارة في النسخة التجريبية عدا خيار طريقة العرض الموجود في لوحة التحكم &#8211; الإعدادات</p>
<p></p>
<p class="tip">سعر النسخة <b>300 ريال </b> أو ما يعادلها بالعملات الأخرى </p>
<h3>
طرق الدفع :<br />
</h3>
<ul>
<li>
ويسترن يونيون
</li>
<li>
باي بال
</li>
</ul>
<p class="note">
للاستفسار أو الشراء : pluscss@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2011/10/09/plustube-script/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>سكربت &#8221; مجلة &#8221; لإدارة مواقع التحميل</title>
		<link>http://www.pluscss.com/blog/index.php/2011/08/11/mjla-script/</link>
		<comments>http://www.pluscss.com/blog/index.php/2011/08/11/mjla-script/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 02:26:15 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[أنظمة إدارة المحتوى]]></category>
		<category><![CDATA[سكربتات]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=317</guid>
		<description><![CDATA[اقسام السكربت التصنيفات المشاركات الصفحات الروابط الداخلية و الخارجية الإعلانات ( صور &#8211; فلاش &#8211; ادسنس ) الاستفتاء ( أجاكس ) ميزات السكربت : امكانية إضافة عدد غير محدود من التصنيفات و المشاركات امكانية التحكم بالاعلانات و طرق عرضها امكانية التحكم بالستايلات ( البرمجة مفصولة عن التصميم باستخدام Smarty امكانية التحكم بالسلايدر ( تحديد من [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-327" title="mjla-promotion" src="http://www.pluscss.com/blog/wp-content/uploads/2011/08/mjla-promotion1.png" alt="" width="640" height="200" /></p>
<h3>اقسام السكربت</h3>
<ul>
<li>التصنيفات</li>
<li>المشاركات</li>
<li>الصفحات</li>
<li>الروابط الداخلية و الخارجية</li>
<li>الإعلانات ( صور &#8211; فلاش &#8211; ادسنس )</li>
<li>الاستفتاء ( أجاكس )</li>
</ul>
<h3>ميزات السكربت :</h3>
<ul>
<li>امكانية إضافة عدد غير محدود من التصنيفات و المشاركات</li>
<li>امكانية التحكم بالاعلانات و طرق عرضها</li>
<li>امكانية التحكم بالستايلات ( البرمجة مفصولة عن التصميم باستخدام Smarty</li>
<li>امكانية التحكم بالسلايدر ( تحديد من أي التصنيفات يعرض )</li>
<li>امكانية اضافة و تعديل و حذف الاستفتاء و تعيين أي استفتاء يظهر بالرئيسية</li>
<li>التحكم بطريقة عرض المشاركات في الصفحة الرئيسية و صفحات التصنيفات</li>
<li>اعتماد نظام Cache للصور و المحتوى لتسريع عرض الصفحة</li>
<li>نظام بحث متقدم ضمن المشاركات</li>
<li>نظام تعيين مشرفين مع تحديد صلاحية كل مشرف</li>
<li>نظام أرشفة قوي و مطابق لمعايير محركات البحث من حيث العنوان و الوصف و الكلمات المفتاحية (  google &#8211; yahoo &#8211; buing )</li>
<li>توليد خريطة الموقع مع ارسالها إلى محركات البحث (  google &#8211; yahoo &#8211; buing )</li>
<li>تصميم افتراضي مميز  Web2 ( اربعة ألوان )</li>
<li>روابط نظيفة و محسنة لكسب صداقة محركات البحث</li>
<li>نظام تغذية rss لكل الموقع أو لتصنيف محدد</li>
</ul>
<h3>ميزات المشاركات :</h3>
<ul>
<li>محرر نصي متطور لإضافة محتويات المشاركة</li>
<li>امكانية رفع صورة لكل مشاركة</li>
<li>اضافة وسوم لكل مشاركة ( أجاكس )</li>
<li>امكانية ( تعطيل &#8211; تفعيل ) عرض الإعلانات ضمن صفحة المشاركة</li>
<li>نظام تقييم المشاركة بالنجوم ( أجاكس )</li>
<li>نشر المشاركة في المفضلات و الشبكات الاجتماعية ( Twitter &#8211; Facebook &#8211; Digg &#8211; Delicious )</li>
</ul>
<p><strong>و العديد من الميزات الأخرى ..</strong></p>
<p class="tip"><a href="http://www.pluscss.com/mjla-demo/admin/" target="_blank">رابط تجربة لوحة تحكم الإدارة</a><br />
اسم المستخدم : admin<br />
كلمة المرور : 123123</p>
<p>صورة للصفحة الرئيسية للسكربت :</p>
<p><img class="alignnone size-full wp-image-334" title="mjla-index-screenshot" src="http://www.pluscss.com/blog/wp-content/uploads/2011/08/mjla-index-screenshot.jpg" alt="" width="648" height="980" /></p>
<p class="note">تم تعطيل كل خواص الإدارة في النسخة التجريبية عدا خيار طريقة العرض الموجود في لوحة التحكم &#8211; الإعدادات</p>
<p></p>
<p class="tip">سعر النسخة <b>250 ريال </b> أو ما يعادلها بالعملات الأخرى </p>
<h3>
طرق الدفع :<br />
</h3>
<ul>
<li>
ويسترن يونيون
</li>
<li>
باي بال
</li>
</ul>
<p class="note">
للاستفسار أو الشراء : pluscss@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2011/08/11/mjla-script/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>كاش قواعد البيانات &#8211; درس متقدم</title>
		<link>http://www.pluscss.com/blog/index.php/2011/03/28/advanced-course-mysql-database-cache/</link>
		<comments>http://www.pluscss.com/blog/index.php/2011/03/28/advanced-course-mysql-database-cache/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 05:30:43 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=296</guid>
		<description><![CDATA[ما هي عملية الكاش Cache ؟ هي عملية حفظ ملفات الانترنت ( صفحات المواقع عبارة عن مجموعة من الملفات ) أو أجزاء منها على السيرفر لعدم استدعائها من الانترنت عند طلبها للمرات القادمة .. هذا هو التعريف المتداول لعملية الكاش Cache .. بالنسبة لقواعد البيانات فإن الكاش يعتبر أحياناً أمراً ضروريا و خاصة إذا كان [...]]]></description>
			<content:encoded><![CDATA[<p><strong>ما هي عملية الكاش Cache ؟</strong></p>
<p>هي عملية حفظ ملفات الانترنت ( صفحات المواقع عبارة عن مجموعة من الملفات ) أو أجزاء منها على السيرفر لعدم استدعائها من الانترنت عند طلبها للمرات القادمة ..<br />
هذا هو التعريف المتداول لعملية الكاش Cache ..<br />
بالنسبة لقواعد البيانات فإن الكاش يعتبر أحياناً أمراً ضروريا و خاصة إذا كان الجدول الذي نتعامل معه يحتوي على 10 آلاف مدخل أو أكثر على سبيل المثال ..</p>
<p>عملية الكاش بالنسبة لقواعد البيانات تعتمد على تخزين البيانات المطلوبة في ملف ثم جلبها من الملف طالما أنها ثابتة .. و عند قيامنا بأي تعديل على الملف يتوجب علينا حذف ملف الكاش و انشاءه من جديد ..</p>
<p>العملية تصبح كالتالي :</p>
<p>- جلب البيانات من جدول في قاعدة البيانات ( المرة الأولى ) و تستغرق وقتاً طويلاً في حال كنا نجلب 60 مدخلاً من اصل 100000 مدخل قد تستغرق العملية ثانيتان ( قد يبدو الزمن قليلاً لكن مقارنة بالزمن الذي يستغرقه جلب البيانات من ملف الكاش سيبدو هذا الرقم هائلاً )<br />
- تخزين البيانات التي قمنا بجلبها في ملف مهما كان امتداده ( في المثال الملف سيكون باللاحقة tmp )<br />
- عند تكرار الدخول للصفحة فإن المتصفح سيقوم بالبحث عن ملف الكاش و في حال تواجده سيتم جلب البيانات منه و إن لم يكن موجوداً فيتم جلب البيانات من جدول بقاعدة البيانات ثم انشاء ملف الكاش .<br />
- عند اجراء أي تعديل على قاعدة البيانات في القسم المتعلق بما قمنا بتخزينه في ملف الكاش يجب علينا حذف ملف الكاش .</p>
<p>سنقوم بتعيين مجلد الكاش و الذي يجب أن يكون قابلاً للكتابة</p>
<pre class="brush: php;">
$dir = 'cache/';
$file = $dir.'cachefile.tmp';
</pre>
<p>في الكود السابق قمنا بتحديد مجلد الكاش و سميناه cache  ثم قمنا بتحديد مسار ملف الكاش و أسندناه إلى متغير .</p>
<h3>الخطوة الأولى</h3>
<pre class="brush: php;">
if (!file_exists($file)) {
// جلب البيانات من قاعدة البيانات
}
</pre>
<p>قمنا بعمل شرط .. باستخدام دالة <em><strong>file_exists</strong></em> و مهمتها التأكد من وجود ملف الكاش في المسار المحدد لها وقد وضعنا قبلها اشارة ( ! ) و التي تعني ( إذا لم يكن ) أي أنه في حال لم يكن الملف موجوداً سيتم تنفيذ الشرط و هو جلب البيانات من قاعدة البيانات و تخزينها في ملف الكاش .</p>
<pre class="brush: php;">
if (!file_exists($file)) {
$SQL = mysql_query(&quot;SELECT id,title FROM news ORDER BY id DESC&quot;);
while ($row = mysql_fetch_array($SQL)) {
$data[]= $row;
echo $row['title'].'
'
}
$cached_data = base64_encode(serialize($data));
$openfile = fopen($file,&quot;w&quot;);
fputs($openfile, $cached_data);
fclose($openfile);
}
</pre>
<p>قمنا ضمن الكود السابق بجلب المدخلات من قاعدة البيانات بافتراض ان اسم الجدول هو <strong>news</strong> ، ثم قمنا بادخال البيانات ضمن مصفوفة و قمنا بطباعة الناتج و هو عنوان كل خبر ( مدخل ) ضمن جدول الأخبار ( news ) و التي سنفترض أن عددها 5000 خبر ( مدخل ) .<br />
بعد أن انهينا طباعة الناتج .. نقوم بتحويل البيانات إلى مصادر قابلة للتخزين عن طريق الدالة <em><strong>serialize</strong></em> . هناك أمر اختياري لكنني اعتقد بأنه مفيد و هو تشفير البيانات المخزنة عن طريق الدالة  <em><strong>base64_encode</strong></em> و ذلك ليس لحمايتها من العبث إذ أن الدالة <em><strong>base64_encode</strong></em> سهلة الفك و هناك دالة معاكسة لها وظيفتها فك تشفير البيانات المشفرة بهذه الدالة و انما استخدامنا لها يعتبر احتياطاً لمشاكل قد تحدث نتيجة علامة اقتباس او اي شيء من هذا القبيل ..<br />
بعد أن نقوم بتهيئة البيانات و تشفيرها نقوم بفتح ملف الكاش مع اعطاءه صلاحية الكتابة عن طريق الدالة  <em><strong>fopen</strong></em> و التي حددنا فيها مسار الملف ثم حددنا لها الإجراء المتخذ و هو الكتابة في الملف (<strong>w</strong>).<br />
نقوم بالكتابة في الملف عن طريق الدالة <em><strong>fputs</strong></em> و التي حددنا لها الملف المراد الكتابة فيه ثم مررنا إليها البيانات التي نريد ادخالها في الملف .<br />
نقوم باغلاق الاتصال مع الملف عن طريق الدالة <em><strong>fclose</strong></em> مع تحديد الملف المراد اغلاقه .<br />
و بهذا نكون قد انجزنا الجزء الأول من الكود و هو انشاء ملف الكاش .</p>
<h3>الخطوة الثانية</h3>
<p>الآن لقراءة ملف الكاش و الذي هو الشرط البديل للشرط الأول أي :</p>
<pre class="brush: php;">
if (!file_exists($file)) {
// الجلب من قاعدة البيانات و انشاء ملف الكاش
} else {
// الجلب من ملف الكاش
}
</pre>
<p>نقوم بجلب ملف الكاش عن طريق الدالة <em><strong>file_get_contents</strong></em> ثم نقوم بفك تشفير البيانات عن طريق الدالة <em><strong>base64_decode</strong></em> ثم نقوم بإعادة البيانات إلى مصفوفة لكي نتمكن من التعامل معها .</p>
<pre class="brush: php;">
$cached_data = unserialize(base64_decode(file_get_contents($file)));
</pre>
<p>الآن نتج لدينا مصفوفة نقوم بتجزئتها ضمن حلقة تكرار لكي نقوم بطباعة البيانات التي نريدها</p>
<pre class="brush: php;">
foreach ($records as $id=&gt;$row) {
echo $row['title'].'
';
}
</pre>
<p><span style="text-decoration: underline;"><strong>و بهذا نكون قد انهينا كتابة الكود ليصبح كاملاً كالتالي :</strong></span></p>
<pre class="brush: php;">
$dir = 'cache/';
$file = $dir.'cachefile.tmp';
if (!file_exists($file)) {
$SQL = mysql_query(&quot;SELECT id,title FROM news ORDER BY id DESC&quot;);
while ($row = mysql_fetch_array($SQL)) {
$data[]= $row;
echo $row['title'].'
'
}
$cached_data = base64_encode(serialize($data));
$openfile = fopen($file,&quot;w&quot;);
fputs($openfile, $cached_data);
fclose($openfile);
} else {
$cached_data = unserialize(base64_decode(file_get_contents($file)));
foreach ($records as $id=&gt;$row) {
echo $row['title'].'
';
}
}
</pre>
<p>ملاحظة : عند قيامنا بأي أمر ( إدخال &#8211; تحديث &#8211; حذف ) ضمن الجدول news يجب علينا أن نقوم بحذف ملف الكاش عن طريق دالة <em><strong>unlink</strong></em></p>
<pre class="brush: php;">
mysql_query('UPDATE news SET ... .... ..');
unlink($file);
</pre>
<h3>الدوال التي قمنا باستخدامها في المثال و هي :</h3>
<p><strong>file_exists</strong><br />
و ظيفة هذه الدالة هي التأكد من وجود الملف الممرر لها و تعود بالقيمة true في حال كان موجوداً و القيمة false في حال لم يكن موجوداً .<br />
<strong> base64_encode</strong><br />
وظيفة الدالة هي تشفير النص الممرر لها .<br />
<strong> base64_decode</strong><br />
وظيفة الدالة هي فك تشفير النص المشفر عن طريق <em><strong>base64_encode</strong></em><br />
<strong> serialize</strong><br />
وظيفة الدالة هي تحويل المصفوفة إلى بيانات قابلة للتخزين .<br />
<strong>unserialize</strong><br />
وظيفتها عكس الدالة السابقة أي إعادة البيانات المخزنة إلى مصفوفة .<br />
<strong>fopen</strong><br />
وظيفة الدالة هي فتح اتصال مع ملف مع تحديد الإجراء الذي سنقوم به ضمن ذلك الملف و في مثالنا كان الإجراء هو الكتابة ( w ) .<br />
<strong>fputs</strong><br />
وظيفة الدالة هي نقل أو كتابة البيانات إلى ملف محدد حيث أن البارامتر ( العامل ) الأول هو الملف الذي نتعامل معه و البارامتر ( العامل ) الثاني هو البيانات التي سننقلها أو نكتبها فيه .<br />
<strong>fclose</strong><br />
وظيفة الدالة هي غلق الاتصال مع الملف .<br />
<strong> file_get_contents</strong><br />
وظيفة الدالة هي جلب محتويات الملف الممرر لها .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2011/03/28/advanced-course-mysql-database-cache/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>5 تطبيقات للآي باد تفيد مطوري الويب</title>
		<link>http://www.pluscss.com/blog/index.php/2010/07/23/five-ipad-apps-for-web-developers/</link>
		<comments>http://www.pluscss.com/blog/index.php/2010/07/23/five-ipad-apps-for-web-developers/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 12:19:58 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[IPad]]></category>
		<category><![CDATA[Analytics]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Gusto]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[iWebmasterHD]]></category>
		<category><![CDATA[PHPMan]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=262</guid>
		<description><![CDATA[WordPress تطبيق ووردبريس من شركة Automattic و هي الشركة نفسها التي انتجب سكربت التدوين الشهير WordPress . يتيح هذا التطبيق إدارة المدونات ( المستضافة على wordpress.com ) و المستقلة ( مثل هذه المدونة ) . عن طريق بروتوكول النشر Xml-Rpc . و يوفر واجهة غنية لإدارة المدونة حيث يسمح للمستخدم برفع الصور للتدوينة و تحرير [...]]]></description>
			<content:encoded><![CDATA[<h3>WordPress</h3>
<p><img class="alignnone size-full wp-image-270" title="IMG_0027" src="http://www.pluscss.com/blog/wp-content/uploads/2010/07/IMG_0027.jpg" alt="" width="648" height="486" /></p>
<p>تطبيق ووردبريس من شركة Automattic و هي الشركة نفسها التي انتجب سكربت التدوين الشهير WordPress  . يتيح هذا التطبيق إدارة المدونات  ( المستضافة على wordpress.com ) و المستقلة ( مثل هذه المدونة ) . عن طريق بروتوكول النشر Xml-Rpc . و يوفر واجهة غنية لإدارة المدونة حيث يسمح للمستخدم برفع الصور للتدوينة و تحرير التدوينات و إضافة تصنيفات و أوسمة كما يمكنك من نشر التدوينة أو حفظها كمسودة ..</p>
<p><a title="Wordpress For IPad" href="http://itunes.apple.com/us/app/wordpress/id335703880?mt=8#" target="_blank">التطبيق <strong>مجاني</strong> </a>.</p>
<h3>Analytics HD</h3>
<p><img class="alignnone size-full wp-image-273" title="IMG_0036" src="http://www.pluscss.com/blog/wp-content/uploads/2010/07/IMG_0036.jpg" alt="Analytics For IPad" width="648" height="486" /></p>
<p>يمكنك من خلال هذا التطبيق متابعة احصائيات مواقعك المشتركة في خدمة احصائيات غوغل ( Google Analytics ) من حيث الزوار و الزيارات ، مصدر الزوار ، الاستهلاك ، كلمات البحث الدالة على موقعك ، و الكثير من الميزات التي يقدمها Google Analytics من خلال الموقع .</p>
<p><a title="Analytics HD For IPad" href="http://itunes.apple.com/us/app/analytics-hd/id364894285?mt=8" target="_blank">التطبيق <strong>غير مجاني</strong> سعره في متجر البرامج 6.99 $</a> لكن تتوفر منه نسخة خفيفة مجانية</p>
<h3>PHPMan</h3>
<p><img class="alignnone size-full wp-image-275" title="IMG_0039" src="http://www.pluscss.com/blog/wp-content/uploads/2010/07/IMG_00391.jpg" alt="PHPMan For IPad" width="648" height="437" /></p>
<p>التطبيق عبارة عن قائمة بكل دوال PHP المضمنة ( الأساسية ) مرتبة حسب الترتيب الأبجدي و كل دالة تحتوي على شرح لاستخدامها مع مثال بسيط يوضح آلية عمل الدالة .. بالإضافة إلى خاصية البحث ضمن الدوال الموجودة .</p>
<p><a title="PHPMan For IPad" href="http://itunes.apple.com/us/app/phpman/id352977755?mt=8" target="_blank">التطبيق <strong>غير مجاني</strong> سعره في متجر التطبيقات 0.99 $</a></p>
<h3>iWebmasterHD</h3>
<p><img class="alignnone size-full wp-image-277" title="IMG_0026" src="http://www.pluscss.com/blog/wp-content/uploads/2010/07/IMG_00261.jpg" alt="iWebmasterHD For IPad" width="648" height="486" /></p>
<p>تطبيق خفيف و مرن يقوم بعرض بيانات موقع من حيث ترتيب الموقع في اليكسا ، البيج رانك للموقع ، الروابط المورشفة في محركات البحث كما يقوم أيضاً بعرض معلومات الدومين ( whois ) و عنوان الأي بي الخاص بالموقع معلومات DNS  و معلومات أخرى ..</p>
<p><a title="iWebmasterHD For IPad" href="http://itunes.apple.com/us/app/iwebmaster/id375656442?mt=8" target="_blank">التطبيق <strong>غير مجاني</strong> سعره في متجر التطبيقات 0.99 $</a></p>
<h3>Gusto</h3>
<p><img class="alignnone size-full wp-image-278" title="IMG_0029" src="http://www.pluscss.com/blog/wp-content/uploads/2010/07/IMG_0029.jpg" alt="Gusto For IPad" width="648" height="486" /></p>
<p>تطبيق رائع و مفيد جداً لأصحاب و مطوري المواقع ، يوفر التطبيق استعراض ملفات الموقع عن طريق اتصال FTP ، كما يمكِّنك من رفع و تنزيل الملفات من و إلى الموقع بسهولة ، بالإضافة إلى محرر نصوص للملفات لكي تقوم بتعديل ملفاتك و رفعها إلى الموقع مجدداً ..</p>
<p><a title="Gusto For IPad" href="http://itunes.apple.com/us/app/gusto/id364906873?mt=8" target="_blank">التطبيق <strong>غير مجاني</strong> سعره في متجر التطبيقات 6.99 $</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2010/07/23/five-ipad-apps-for-web-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>نظرة شاملة : الوقت و التاريخ في PHP ( الجزء الأول )</title>
		<link>http://www.pluscss.com/blog/index.php/2010/07/18/comprehensive-glance-at-php-date-and-time-1/</link>
		<comments>http://www.pluscss.com/blog/index.php/2010/07/18/comprehensive-glance-at-php-date-and-time-1/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 04:43:36 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=221</guid>
		<description><![CDATA[يعتبر الوقت و التاريخ عاملاً هاماً في بناء أي مشروع برمجي لا بل إن هناك مشاريع قائمة بأكملها على مبدأ التاريخ و الوقت ، إن لغة البرمجة PHP تمنحك تحكماً كاملاً بعمليات الوقت و التاريخ لما تتضمنه من دوال مضمنة غايتها تسهيل التحكم و الوصول إلى عمليات الوقت و التاريخ . سأقدم في هذه السلسلة [...]]]></description>
			<content:encoded><![CDATA[<p>يعتبر الوقت و التاريخ عاملاً هاماً في بناء أي مشروع برمجي لا بل إن هناك مشاريع قائمة بأكملها على مبدأ التاريخ و الوقت ، إن لغة البرمجة <strong>PHP </strong>تمنحك تحكماً كاملاً بعمليات الوقت و التاريخ لما تتضمنه من دوال مضمنة غايتها تسهيل التحكم و الوصول إلى عمليات الوقت و التاريخ .</p>
<p>سأقدم في هذه السلسلة من التدوينات و التي يجب ألا تتعدى الثلاثة شرحاً مفصلاً لكل ما يتعلق بالوقت و التاريخ ضمن لغة <strong>PHP</strong> مدعماً بالأمثلة و الملاحظات لتتمكن أخي القارئ من تطويع أي عملية تستلزم استخدام الوقت و التاريخ بشكل ميسر و بسيط .</p>
<h3>الدالة time</h3>
<p>تعطينا الدالة <em>time </em> قيمة دقيقة للوقت بصيغة رقم يعبر عن عدد الثواني من الثانية الأولى من تاريخ 1\1\1970 و حتى هذه اللحظة أو ما يسمى بـ <em>current Unix timestamp</em> .</p>
<pre class="brush: php;">
time(); // 1278645812 = 8 jul 2010 7:22
</pre>
<p>الرقم الناتج من طباعة الدالة ، مثلاً : 1278645812  هو عدد الثواني منذالساعة 00 و 00 دقيقة و 00 ثانية من تاريخ 1\1\1970 و حتى الساعة 7 و 22 دقيقة و 32 ثانية من تاريخ 8\7\2010 .<br />
تعتبر الدالة <em>time</em> أفضل من ناحية التخزين و الدقة و يمكن استعمالها لمعرفة الفرق بين توقيتين مثلاً و ما شابه .</p>
<p class="note">في الاصدار 5.1 و ما بعد من <strong>php</strong> يمكن استبدال الدالة <em>time</em> بالمتغير<br />
<span dir="ltr"><br />
<strong>$_SERVER['REQUEST_TIME']</strong><br />
</span><br />
و عن طريق طباعة المتغير نحصل على القيمة ذاتها التي نحصل عليها عند طباعة الدالة <em>time </em>.</p>
<h3>الدالة date</h3>
<p>هذه الدالة أكثر تفصيلاً من دالة <em>time</em> حيث يمكنك تخصيص طريقة عرض الوقت عن طريق أنساق الوقت و التاريخ</p>
<pre class="brush: php;">
date(&quot;Y&quot;); // 2010 .. 2011 .. etc
date(&quot;M&quot;); // Jan .. to Dec
date(&quot;j-M-Y&quot;); // 8-Jul-2010
</pre>
<p>يمكنك عن طريق دالة <em>date</em> تحويل التاريخ من <em>Unix timestamp</em> إلى تاريخ تقوم انت بتحديده .</p>
<pre class="brush: php;">
date(&quot;j-M-Y&quot;,1278654548); // 8-Jul-2010
date(&quot;j-M-Y h:i&quot;,1278654548); // 8-Jul-2010 09:49
</pre>
<p>نقوم بإضافة بارامتر ثاني للدالة date و هو عبارة عن الوقت بصيغة <em>Unix timestamp</em> و نختار التنسيق من خلال البارامتر الأول ليظهر لنا التاريخ و الوقت بالصيغة التي نحددها .</p>
<p class="tip"><strong><a title="قائمة بأنساق و الوقت و التاريخ" href="http://www.pluscss.com/lab/demos/time/time.html" target="_blank">قائمة بأنساق الوقت والتاريخ التي بامكاننا استخدامها ضمن الدالة <em>date</em></a></strong></p>
<h3>الدالة mktime</h3>
<p>تقوم بتحويل التاريخ المعطى إلى صيغة <em>Unix Timestamp</em> حسب التاريخ المدخل و بصيغة : ساعة &#8211; دقيقة &#8211; ثانية &#8211; شهر &#8211; يوم &#8211; سنة من اليسار لليمين<br />
أي أن البارامتر الأول هو الساعة و الثاني هو الدقائق .. حتى السنة و هي البارامتر الأخير ..</p>
<pre class="brush: php;">
mktime(0, 0, 0, 13, 1, 1997); // 883641600
mktime(0, 0, 0, 7, 17, 2010); // 1279350000
</pre>
<p>في حال اهمال البارامترات الأخيرة أي وضع أقل من ست بارامترات ستقوم الدالة باحتساب القيم الحالية عوضاً عن القيم الفارغة أو المهملة ..</p>
<pre class="brush: php;">
mktime(0, 0, 0, 13, 1); // 1293868800
mktime(0, 0, 0, 13); // 1295251200
</pre>
<p>في هذا المثال تم اهمال البارامتر السادس و هو السنة لذلك فإن الدالة ستقوم باحتساب السنة الحالية أي 2010 و كذلك الحال بالنسبة لباقي البارامترات</p>
<h3>الدالة getdate</h3>
<p>تقوم الدالة بارجاع الوقت و التاريخ على شكل مصفوفة تحتوي كل عناصر الوقت و التاريخ من الثواني &#8211; الدقائق &#8211; الساعات &#8211; اليوم &#8211; الشهر &#8211; السنة &#8211; ترتيب اليوم بالنسبة للاسبوع &#8211; ترتيب اليوم بالنسبة للسنة &#8211; اليوم كتابةً &#8211; الشهر كتابةً بالإضافة إلى عدد الثواني منذ 00:00:00 1\1\1970 و حتى التاريخ المدخل ..</p>
<pre class="brush: php;">
$theday = getdate(1055901520);
print_r($theday);
</pre>
<p>نتيجة الكود السابق هي كالتالي :</p>
<pre class="brush: php;">
Array
(
[seconds] =&gt; 40
[minutes] =&gt; 58
[hours]   =&gt; 21
[mday]    =&gt; 17
[wday]    =&gt; 2
[mon]     =&gt; 6
[year]    =&gt; 2003
[yday]    =&gt; 167
[weekday] =&gt; Tuesday
[month]   =&gt; June
[0]       =&gt; 1055901520
)
</pre>
<p>في حال لم نقم بإضافة بارامتر إلى الدالة فإنها تقوم باحتساب تاريخ اللحظة .. أي أنه يمكننا استعمال الدالة للحصول على مصفوفة الوقت و التاريخ دون إدخال أي بارامتر ..</p>
<pre class="brush: php;">
$theday = getdate(1055901520);
echo $theday[year]; // 2003
</pre>
<p>يمكننا الوصول إلى أي عنصر من عناصر المصفوفة لاستخدامه أو طباعته في المتصفح بسهولة .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2010/07/18/comprehensive-glance-at-php-date-and-time-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>قالب Comfy الأخباري معرب بشكل كامل</title>
		<link>http://www.pluscss.com/blog/index.php/2010/06/09/wordpress-theme-comfy-arabized/</link>
		<comments>http://www.pluscss.com/blog/index.php/2010/06/09/wordpress-theme-comfy-arabized/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 03:11:42 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[قوالب ووردبريس]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=208</guid>
		<description><![CDATA[يعتبر قالب comfy من أكثر قوالب الووردبريس ملائمة للمواقع الأخبارية لما يتميز به من مرونة في التحكم بخصائصه عن طريق لوحة التحكم ، و قد قمت بتصحيح تعريبه بالأعتماد على ملف اللغة العربية المدمج معه كما قمت بتعريب لوحة التحكم بشكل كامل و إضافة بعض الصور و الإيقونات و إصلاح بعض المشاكل التي وجدت في [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-210" title="comfyshot" src="http://www.pluscss.com/blog/wp-content/uploads/2010/06/comfyshot.jpg" alt="" width="648" height="521" /></p>
<p>يعتبر قالب <strong>comfy</strong> من أكثر قوالب الووردبريس ملائمة للمواقع الأخبارية لما يتميز به من مرونة في التحكم بخصائصه عن طريق لوحة التحكم ، و قد قمت بتصحيح تعريبه بالأعتماد على ملف اللغة العربية المدمج معه كما قمت بتعريب لوحة التحكم بشكل كامل و إضافة بعض الصور و الإيقونات و إصلاح بعض المشاكل التي وجدت في القالب .</p>
<p><img class="alignnone size-full wp-image-211" title="comfysetting" src="http://www.pluscss.com/blog/wp-content/uploads/2010/06/comfysetting.jpg" alt="" width="648" height="375" /></p>
<p>القالب يحتاج إلى <strong><a href="http://wordpress.org/extend/plugins/wp-postviews/" target="_blank">الإضافة التالية</a></strong> لكي يعمل عداد الزيارات لكل تدوينة و تبويب التدوينات الأكثر قراءة</p>
<p class="note">قالب <strong>Comfy</strong> غير مجاني ، وضعته للتحميل لكي تشاهد امكانياته و مميزاته الوافرة ، في حال أعجبك الثيم يمكنك شراءه من <strong><a href="http://www.deluxethemes.com/" target="_blank">موقع الشركة</a></strong> التي صممته بـ <strong>39</strong> دولاراً فقط .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2010/06/09/wordpress-theme-comfy-arabized/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>شرح مبسط : ما هي الدوال Fuctions و لماذا نستخدمها ؟!</title>
		<link>http://www.pluscss.com/blog/index.php/2010/06/05/what-is-functions-and-when-we-use-it/</link>
		<comments>http://www.pluscss.com/blog/index.php/2010/06/05/what-is-functions-and-when-we-use-it/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 03:10:00 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=191</guid>
		<description><![CDATA[تعتبر الدوال من أساسيات أي لغة برمجية فكل لغة برمجية تأتي مضمنة معها الدوال الخاصة بها و مهمة الدالة هي تنفيذ وظيفة معينة ضمن الكود البرمجي و تنقسم إلى نوعين : الدوال الأساسية التي تكون مضمنة في اللغة الدوال التي يقوم المبرمج بكتابتها . مثلاً الدالة trim هي دالة أساسية من دوال الـ PHP . [...]]]></description>
			<content:encoded><![CDATA[<p>تعتبر الدوال من أساسيات أي لغة برمجية فكل لغة برمجية تأتي مضمنة معها الدوال الخاصة بها و مهمة الدالة هي تنفيذ وظيفة معينة ضمن الكود البرمجي و تنقسم إلى نوعين :</p>
<ul>
<li>الدوال الأساسية التي تكون مضمنة في اللغة</li>
<li> الدوال التي يقوم المبرمج بكتابتها .</li>
</ul>
<p>مثلاً الدالة <strong>trim</strong> هي دالة أساسية من دوال الـ <strong>PHP</strong> .</p>
<p>سأشرح عمل الدالة عن طريق كتابة دالة تعتمد على العمليات الحسابية البسيطة لإرجاع مبلغ معين بعد اقتطاع قيمة الحسم منه ..</p>
<p>الدالة تحتوي على بارامترات <strong>Parameters</strong> و هناك دوال تحتوي على بارامتر واحد أو أكثر أو قد لا تحتوي على بارامترات .</p>
<p>في مثالنا هذا نحتاج إلى بارامترين و هما المبلغ كاملاً و قيمة الحسم ..</p>
<p>في البداية نقوم بتعريف الدالة</p>
<pre class="brush: php;">
function discount_amount() {

}
</pre>
<p>قمنا بتسمية الدالة <strong>discount_amount</strong> نضع البارامترات التي نحتاجها ضمن القوسين (  )  فتصبح :</p>
<pre class="brush: php;">
function discount_amount($amount,$discount) {

}
</pre>
<p>البارامتر الأول هو المبلغ كاملاً و البارامتر الثاني هو نسبة الحسم و الأن سنكتب محتوى الدالة</p>
<pre class="brush: php;">
function discount_amount($amount,$discount) {
$thediscount = ($amount*$discount)/100;
$afterdiscount = $amount-$thediscount;
return $afterdiscount;
}
</pre>
<p>قمنا باحتساب قيمة الحسم و ذلك عن طريق العملية الحسابية ( المبلغ كاملاً × نسبة الحسم ) ÷ 100<br />
ثم قمنا بطرح قيمة الحسم من المبلغ الكلي<br />
طلبنا من الدالة إرجاع المبلغ بعد الحسم .</p>
<p>تطبيق الدالة :</p>
<pre class="brush: php;">
echo discount_amount(500,10); // 450
</pre>
<p>في التطبيق السابق قمنا بحسم 10% من المبلغ الكلي أو القيمة الكلية و هي 500 الناتج سيكون حتماً 450 .</p>
<p class="note">هذا شرح بسيط عن الدالة و ما هي فائدتها ضمن أي عمل برمجي ، يمكننا انطلاقاً من هذا الشرح عمل دوال بسيطة أو حتى معقدة حسب الحاجة لنقوم باستخدامها ضمن المشاريع البرمجية بغرض تقليل الأكواد و عدم تكرارها .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2010/06/05/what-is-functions-and-when-we-use-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>الإدخال المتعدد إلى قاعدة البيانات عن طريق حقل نصي</title>
		<link>http://www.pluscss.com/blog/index.php/2010/05/25/insert-multiple-rows-into-database/</link>
		<comments>http://www.pluscss.com/blog/index.php/2010/05/25/insert-multiple-rows-into-database/#comments</comments>
		<pubDate>Tue, 25 May 2010 13:10:47 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[MYSQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=157</guid>
		<description><![CDATA[في الكثير من الأحيان يلزمنا أن نضيف كمية من البيانات إلى قاعدة البيانات كأن نضيف مثلاً أسماء الدول في العالم و التي تقارب 200 دولة و في مثل هذه الحالة فإنه سيكون من الصعب علينا إدخالها واحدة في كل مرة أي أننا في كل مرة سنكتب اسم الدولة و سنضغط زر الارسال و سيتم استقبال [...]]]></description>
			<content:encoded><![CDATA[<p>في الكثير من الأحيان يلزمنا أن نضيف كمية من البيانات إلى قاعدة البيانات كأن نضيف مثلاً أسماء الدول في العالم و التي تقارب 200 دولة و في مثل هذه الحالة فإنه سيكون من الصعب علينا إدخالها واحدة في كل مرة أي أننا في كل مرة سنكتب اسم الدولة و سنضغط زر الارسال و سيتم استقبال اسم الدولة و ادخالها ضمن قاعدة البيانات و من ثم طباعة النتيجة في حال تم الإدخال و العودة إلى صفحة الإدخال مجدداً .. لذلك فإن لغة PHP تتيح لنا ببضعة أكواد إدخال الكمية التي نريد من حقل نصي على أن نحدد طريقة للفصل بين كل مدخل مثل أن نضع كل مدخل في سطر جديد أو أن نفصل بينها بعلامات مثل الفاصلة , أو اشارة زائد + أو أي شيء ..</p>
<p>لنقم بتطبيق مثال عملي على ما سبق و تكلمنا عنه و ليكن مثلاً ادخال اسماء الدول على ان نضع كل دولة في سطر ..</p>
<h3>أولاً : قاعدة البيانات</h3>
<p>نقوم بإنشاء قاعدة بيانات جديدة و لنسميها مثلاً <strong>test</strong></p>
<p>ستحتوي على جدول واحد باسم <strong>countries</strong> و الجدول سيحتوي على حقلين : حقل <strong>id</strong> و حقل <strong>countryname</strong> طبعاً فإن حقل id سيكون من النوع الرقمي <em>int</em> و بقيمة لا تقل عن 3 أي عدد مكون من 3 خانات و كذلك فإن حقل countryname  سيكون من النوع النصي <em>varchar</em> ولتكن قيمته هي القيمة القصوى لهذا النوع من الحقول و هي 255</p>
<pre class="brush: sql;">
CREATE TABLE `countries` (
`id` int(3) NOT NULL auto_increment,
`countryname` varchar(255) NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
</pre>
<h3>ثانياً : صفحة نموذج ارسال البيانات</h3>
<p>بعد أن أنشأنا قاعدة البيانات نقوم بكتابة كود النموذج و ليكن في صفحة مستقلة ( <strong>index.html</strong> ) :</p>
<pre class="brush: xml;">
&lt;form method=&quot;POST&quot; action=&quot;insert.php&quot;&gt;
&lt;textarea name=&quot;countryname&quot; cols=&quot;50&quot; rows=&quot;20&quot;&gt;&lt;/textarea&gt;&lt;br /&gt;
&lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;إضافة البيانات&quot; /&gt;
&lt;/form&gt;
</pre>
<p>قمنا بتحدبد طريقة الارسال <strong>POST</strong> و التنفيذ سيكون في الصفحة insert.php قمنا بإضافة حقل نصي من نوع textarea باسم cityname ثم أضفنا زر الارسال</p>
<h3>ثالثاً : صفحة معالجة البيانات و إدخالها إلى قاعدة البيانات</h3>
<p>في صفحة معالجة البيانات insert.php نقوم أولاً بالاتصال بقاعدة البيانات و تحديد قاعدة البيانات التي سنتعامل معها</p>
<pre class="brush: php;">
$db = mysql_connect($dbhost,$dbuser,$dbpass) or die(&quot;Database error&quot;);
mysql_select_db($dbname, $db);
</pre>
<p>نقوم بعدها باستقبال محتوى الحقل النصي ووضعه في متغير</p>
<pre class="brush: php;">
$countries = $_POST['countryname'];
</pre>
<p>ثم نقوم بتحويل المتغير إلى مصفوفة ليتم احتساب كل سطر على حدى و نقوم بذلك عن طريق الدالة explode<br />
الدالة explode تقوم بتقسيم النص حسب معطيات معينة أو حسب علامات نحددها ضمن الدالة مثال على الدالة :</p>
<pre class="brush: php;">
explode(&quot;,&quot;,&quot;first,second,third&quot;);
</pre>
<p>البارامتر الأول يكون عادة علامة التقسيم و هي في مثالنا هذه الفاصلة &#8220;,&#8221;<br />
بينما البارامتر الثاني هو النص المراد تقسيمه إلى مصفوفة<br />
بعد أن عرفنا ما هو استعمال الدالة explode نعود لنطبقها في درسنا</p>
<pre class="brush: php;">
$arr = explode(&quot;\n&quot;,$countries);
</pre>
<p>الرمز \n يدل على سطر جديد أو New Line Break<br />
أي أننا سنقوم بتقسيم المتغير الذي لدينا إلى مصفوفة بحيث يكون كل سطر عنصر في المصفوفة</p>
<p>نقوم باحتساب عدد عناصر المصفوفة عن طريق الدالة count التي ترجع لنا قيمة عددية و هي عدد العناصر ضمن المصفوفة</p>
<pre class="brush: php;">
$rowsnumber = count($arr);
</pre>
<p><strong>ماذا سنستفيد من معرفة عدد عناصر المصفوفة ؟؟</strong><br />
سيلزمنا العدد لنقوم بعمل حلقة تكرار غايتها ادخال بيانات المصفوفة إلى قاعدة البيانات بعدد عناصر المصفوفة أي انه اذا كانت المصفوفة تحتوي ثلاث عناصر فسنقوم بعمل تكرار لثلاث مرات لأمر الإدخال إلى قاعدة البيانات ..</p>
<pre class="brush: php;">
for($i=0;$i&lt;$rowsnumber;$i++){
$country = trim($arr[$i]);
$insertdata = mysql_query(&quot;INSERT INTO countries (countryname) VALUES ('$country')&quot;);
}
</pre>
<p>قمنا بعمل تكرار حيث المتغير $i يبدأ من الصفر و هو أصغر من عدد العناصر في المصفوفة و هو قابل للزيادة بمقدار 1 كل مرة<br />
أي أنه إذا كانت عناصر المصفوفة ثلاثة عناصر فإن $i يبدأ من صفر و ينتهي عند 2<br />
كيلا تتعقد الأمور سأوضح شيئاً .. و هو أن المصفوفة تبدأ من الصفر أي أن العنصر الأول من المصفوفة دائماً يتخذ القيمة صفر</p>
<p>في المصفوفة التالية</p>
<pre class="brush: php;">
$array = array(1, 2, 3, 4, 5);
</pre>
<p>لكي نصل الى العنصر 1 في المصفوفة فإن قيمة المصفوفة ستكون 0</p>
<pre class="brush: php;">
echo $array[0]; // النتيجة ستكون 1
</pre>
<p>بعد أن حددنا حلقة التكرار نقوم بوضع عناصر المصفوفة في متغير و تمريرها على اي دالة حسب الحاجة و في هذا المثال قمت بتمرير عناصر المصفوفة على الدالة trim و التي تقوم بحذف الفراغات الزائدة من بداية و نهاية النص<br />
بعدها نقوم بادخال البيانات إلى القاعدة عن طريق أمر SQL للإدخال و هو <strong>INSERT</strong></p>
<p class="note">لاحظ أنه يجب أن نضع المتغير الذي يحوي عناصر المصفوفة و أمر الإدخال إلى قاعدة البيانات ضمن حلقة التكرار و إلا فلن نستفيد شيئاً</p>
<p>في النهاية إليكم الكود كاملاً</p>
<pre class="brush: php;">
mysql_connect($dbhost,$dbuser,$dbpass) or die(&quot;Database error&quot;); // الاتصال بقاعدة البيانات
mysql_select_db($dbname); // اختيار قاعدة البيانات التي سيتم العمل عليها
$countries = $_POST['countryname']; // استقبال البيانات
$arr = explode(&quot;\n&quot;,$countries); // تحويلها إلى مصفوفة
$rowsnumber = count($arr);    // احتساب عدد عناصر المصفوفة
for($i=0;$i&lt;$rowsnumber;$i++){ // انشاء حلقة تكرار
$country = trim($arr[$i]); // تعريف عناصر المصفوفة في متغير
$insertdata = mysql_query(&quot;INSERT INTO countries (countryname) VALUES ('$country')&quot;); // ادخال البيانات إلى القاعدة
} // إغلاق حلقة التكرار
</pre>
<p class="tip">يمكننا الاستفادة من هذا الدرس في نواحٍ عملية عديدة منها على سبيل المثال : إنشاء حقل نصي لإضافة الكلمات المفتاحية <strong>Keywords</strong> بحيث تكون الكلمات مفصولة بفاصلة , و سيتم تخزينها كل كلمة في صف لوحدها ضمن الحقل المخصص لها في قاعدة البيانات ..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2010/05/25/insert-multiple-rows-into-database/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>عشرة مدونات تستحق المتابعة</title>
		<link>http://www.pluscss.com/blog/index.php/2010/04/23/ten-web-teqnique-blogs-that-you-should-follow/</link>
		<comments>http://www.pluscss.com/blog/index.php/2010/04/23/ten-web-teqnique-blogs-that-you-should-follow/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 16:17:16 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[تدوين مصغر]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=148</guid>
		<description><![CDATA[إذا كنت مبتدءاً و تود التعلم أو إذا كنت مبرمجاً و خبيراً و أردت أن تزيد و تطور خبراتك فأنا أنصحك بزيارة المدونات التالية لما فيها من معلومات قيمة تهم مطور الويب بشكل عام و مطور الويب العربي بشكل خاص .. مدونات أجنبية smashing magazine Web Resource Depot Tuts Plus DevSnippets ( صاحبة المدونة عربية [...]]]></description>
			<content:encoded><![CDATA[<p>إذا كنت مبتدءاً و تود التعلم أو إذا كنت مبرمجاً و خبيراً و أردت أن تزيد و تطور خبراتك فأنا أنصحك بزيارة المدونات التالية لما فيها من معلومات قيمة تهم مطور الويب بشكل عام و مطور الويب العربي بشكل خاص ..</p>
<p>مدونات أجنبية</p>
<ul>
<li><a href="http://www.smashingmagazine.com" target="_blank">smashing magazine</a></li>
<li><a href="http://www.webresourcesdepot.com/" target="_blank">Web Resource Depot</a></li>
<li><a href="http://net.tutsplus.com/" target="_blank">Tuts Plus</a></li>
<li><a href="http://devsnippets.com/" target="_blank">DevSnippets</a> ( صاحبة المدونة عربية )</li>
<li><a href="http://www.design3edge.com/" target="_blank">Design3Edge</a></li>
</ul>
<p>مدونات عربية</p>
<ul>
<li><a href="http://www.mubde3.net/blog/" target="_blank">مدونة مبدع</a> ( مدونة أحمد الكثيري ، أكثر من رائعة )</li>
<li><a href="http://www.qaswlasq.com/" target="_blank">مدونة قص و لصق</a></li>
<li><a href="http://www.tech-wd.com/" target="_blank">مدونة عالم التقنية</a></li>
<li><a href="http://almsn3.blogspot.com/" target="_blank">مدونة المصنع</a> ( مدونة كتوم سابقاً .. )</li>
<li><a href="http://www.apple-wd.com/" target="_blank">مدونة عالم آبل</a></li>
</ul>
<p>سأكتب بين الحين و الآخر عن مدونات مميزة أخرى ..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2010/04/23/ten-web-teqnique-blogs-that-you-should-follow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>عشرة أشياء يجب أن تأخذها بعين الاعتبار لاختيار نظام إدارة المحتوى الأمثل</title>
		<link>http://www.pluscss.com/blog/index.php/2010/02/21/ten-things-to-consider-when-choosing-the-perfect-cms/</link>
		<comments>http://www.pluscss.com/blog/index.php/2010/02/21/ten-things-to-consider-when-choosing-the-perfect-cms/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 05:37:11 +0000</pubDate>
		<dc:creator>pluscss</dc:creator>
				<category><![CDATA[أنظمة إدارة المحتوى]]></category>

		<guid isPermaLink="false">http://www.pluscss.com/blog/?p=1</guid>
		<description><![CDATA[عندما تفكر بإنشاء موقع ( لأي غرض كان استخدامه ) فإن أول ما يتبادر إلى ذهنك هو نظام إدارة المحتوى المناسب لموقعك و قد تصاب بالحيرة و الارتباك جراء عدة أمور كالعدد الهائل و المختلف لأنظمة إدارة المحتوى الموجودة ( المفتوحة المصدر و المجانية أو التجارية ) و كذلك إمكانيات كل منها فالبعض من هذه [...]]]></description>
			<content:encoded><![CDATA[<p>عندما تفكر بإنشاء موقع ( لأي غرض كان استخدامه ) فإن أول ما يتبادر إلى ذهنك هو نظام إدارة المحتوى المناسب لموقعك و قد تصاب بالحيرة و الارتباك جراء عدة أمور كالعدد الهائل و المختلف لأنظمة إدارة المحتوى الموجودة ( المفتوحة المصدر و المجانية أو التجارية ) و كذلك إمكانيات كل منها فالبعض من هذه الأنظمة بسيط لدرجة انه لا يوفر أدنى المستلزمات لإدارة محتوى موقعك و البعض الآخر معقد بحيث يصيبك بالحيرة لصعوبة التعامل معه ، لذلك كُتب هذا المقال لتوضيح بعض النقاط الأساسية التي يجب أن تؤخذ بالحسبان أثناء انتقاء نظام إدارة محتوى ليكون ملائماً لموقعك الآن و في المستقبل .</p>
<h3>أولاً : الوظيفة الأساسية Core functionality</h3>
<p>عندما بفكر غالبية الناس بنظام إدارة المحتوى فإنهم بفكرون بـ ( إنشاء ، حذف ، تحرير ، تنظيم ) الصفحات . على فرض بأن كل أنظمة إدارة المحتوى تقوم بهذا العمل و لذلك يعتبرون هذه الوظائف كمسلمات . ولكن الحال ليس هكذا بالضرورة و لا يوجد أي ضمان على أن تكون هذه الوظائف موجودة بطريقة بديهية .<br />
على سبيل المثال ، ليست كل أنظمة التدوين تسمح للمشرف بإدارة و تنظيم الصفحات في تسلسل شجري ، بدلاً من ذلك فإن المشاركات ( posts ) تنظم تلقائياً وفق معايير كالتاريخ و التصنيف . في بعض الحالات فإن هذا كاف بشكل مناسب .<br />
في الواقع ، هذه المحدودية في الوظائف تبقي الواجهة بسيطة و سهلة الفهم و لكن في ظروف أخرى فإن هذه المحدودية في الوظائف قد تكون محبطة .</p>
<p><a href="http://www.pluscss.com/blog/wp-content/uploads/2010/02/blogger.jpg"><img class="alignnone size-full wp-image-138" title="blogger" src="http://www.pluscss.com/blog/wp-content/uploads/2010/02/blogger.jpg" alt="" width="648" height="463" /></a></p>
<p>خذ بعين الاعتبار و اختر بعناية الوظائف الأساسية و الجوهرية التي تحتاجها ، حتى لو لم تتطلب القابلية لإنشاء و تنظيم الصفحات الآن ، فقد تتطلب ذلك مستقبلاً . كن يقظاً لأي نظام لا يسمح لك بانجاز هذه الوظائف الأساسية .</p>
<h3>ثانياً : المحرر The editor</h3>
<p>المحرر هو واحد من الميزات الأساسية التي تستحق اهتماماً خاصاً . معظم أنظمة ادارة المحتوى تحتوي على محرر متطور wysiwyg editor &#8221; و الكلمة wysiwyg تعني (what you see is what you get ) أي ما تراه هو ما ستحصل عليه &#8220;.<br />
و لكن على نحو غريب ، فإن هذا العنصر ( المحرر ) مفهوم بطريقة خاطئة بالرغم من واقع كونه الميزة الأكثر استخداماً في النظام بشكل عام .<br />
المحرر هو الواجهة التي يضاف من خلالها المحتوى و يعدل . تقليدياً ، فهو يسمح للكاتب بتطبيق متعلقات التصميم الأساسية مثل حجم الخط و اللون و القوائم . على أية حال فإن المطورين قد انتقلوا مؤخراً من هذا النمط من المحررات إلى نمط ينتج أداءً أفضل .<br />
إن لخطورة استعمال المحررات التقليدية wysiwyg editor وجهان . أولاً : للكاتب قدر كبير من التحكم عبر التصميم ، فهو قادر على تخصيص مظهر الصفحة كثيراً مما قد يؤدي إلى تشوه التصميم و تقويض تماسكه . ثانياً : من أجل الوصول إلى هذه المرحلة من التحكم بالتصميم فإن أنظمة إدارة المحتوى تمزج التصميم بالمحتوى .<br />
الجيل الجديد من المحررات بتخذ مجرىً آخر ، فالكاتب بستخدم المحرر ليحدد القوائم ، الروابط و العناصر الأخرى دون تخصيص كيفية ظهورها في التصميم .</p>
<p><a href="http://www.pluscss.com/blog/wp-content/uploads/2010/02/wordpress-editor.jpg"><img class="alignnone size-full wp-image-139" title="wordpress-editor" src="http://www.pluscss.com/blog/wp-content/uploads/2010/02/wordpress-editor.jpg" alt="" width="648" height="410" /></a></p>
<p>اضمن قائمة الاحتياجات متضمنة محرراً مصمماً على هذا المبدأ و الذي لا يعطي الكاتب حرية التحكم في الظهور ، أو على الأقل ابحث عن نظام إدارة المحتوى الذي يسمح للمحرر بأن يستبدل بحل أكثر ملائمة .<br />
المحرر أيضاً يجب أن يتمكن من التعامل مع مصادر خارجية كالصور و الملفات و التي تأخذنا إلى النقطة القادمة : إدارة المصادر .</p>
<h3>ثالثاً : إدارة المصادر Managing assets</h3>
<p>يتم التعامل مع إدارة الصور و الملفات في بعض أنظمة إدارة المحتوى بشكل سيء ، الأنظمة المصممة بشكل سيء قد تحبط الأعضاء بضعف قابلية الوصول و الاستخدام . الصور ، بشكل خاص قد تتسبب بالمشاكل . افرض أن نظام ادارة المحتوى الذي اخترته يجبر الكاتب على اضافة قيمة alt للصورة . يجب أن تختار أيضاً نظام إدارة المحتوى بحيث يتضمن أدوات تحرير للصورة كالتدوير و الاقتطاع و التصغير . على أية حال فإن إيجاد محرر يقوم بهذه الوظائف يعتبر تحدياً .<br />
أيضاً ، خذ بعين الاعتبار كيفية تعامل نظام إدارة المحتوى مع الملفات المحملة و المرفقة كملفات pdf و ملفات word و غيرها . كيف تظهر هذه الملفات للمتصفح أو المستخدم ؟ هل يمكن إضافة وصف للملفات ؟؟ أو هل يمكن لمحرك البحث أرشفتها ؟؟</p>
<h3>رابعاً : البحث Search</h3>
<p>البحث عامل مهم لكل موقع الكتروني فتقريباً نصف المستخدمين يستخدمون خاصية البحث للوصول إلى المحتوى الذي يريدون . و لكن وظيفة البحث في أنظمة إدارة المحتوى عادة تكون غير ملائمة أو غير كافية .<br />
هذه بعض الأشياء التي يجب مراعاتها عند انتقاء وظيفة البحث :</p>
<ul>
<li>
<div><strong>النشاط</strong> : كم مرة تقوم محركات البحث بأرشفة الموقع ؟ هذا العامل مهم بشكل  خاص عندما يكون محتوى الموقع متجدداً باستمرار .</div>
</li>
<li>
<div><strong>الشمولية</strong> : هل تؤرشف كل المحتويات لكل صفحة ؟ ماذا عن الملفات المرفقة كملفات pdf و  word أو excel و powerpoint ؟</div>
</li>
<li>
<div><strong>السرعة</strong> : بعض محركات تتطلب فترة زمنية طويلة نسبية لجلب نتائج البحث و خصوصاً في  المواقع ذات المحتوى الكبير .</div>
</li>
<li>
<div><strong>الهدف</strong> : هل يمكن تحديد هدف البحث الى قسم معين من الموقع أو تنقية نتائج  البحث مرة ثانية ؟</div>
</li>
<li>
<div><strong>الترتيب</strong> : كيف يحدد محرك البحث ترتيب النتائج ؟ و هل يمكن تخصيص ذلك من قبل  مدبر الموقع أو المستخدم ؟</div>
</li>
<li>
<div><strong>التخصيص</strong> : هل يمكن التحكم بعدد النتائج التي ستظهر في الصفحة ؟</div>
</li>
</ul>
<h3>خامساً : التخصيص Customization</h3>
<p>إن عرض محتوى الموقع لا يجب أن بملى بواسطة التقنية . فذلك غير ضروري ببساطة لأن لدينا اليوم تقنيات عديدة مهمتها الفصل بين التصميم و المحتوى . لسوء الحظ فإن بعض مصممي المواقع و العديد من مطوري أنظمة إدارة المحتوى لم يختاروا الاختبارات الأفضل و قاموا بإنشاء أنظمة تنتج أكواد مربعة . مما يؤدي إلى وضع قيود غير معقولة على التصميم و تأثير خطير على قابلية الوصول .<br />
أنت بحاجة لنظام ادارة محتوى يسمح بجلب و عرض المحتوى بمرونة . على سبيل المثال ، هل يمكنك عرض الأخبار بترتيب معكوس زمنياً ؟ هل تستطيع عرض الأحداث في التقويم ؟ هل بالإمكان جلب أحدث تعليقات الأعضاء ووضعها في الصفحة الرئيسية ؟ المرونة تجعل نظام إدارة المحتوى رائعاً .</p>
<h3>سادساً : تفاعل الأعضاء Users Interaction</h3>
<p>لو أردت أن تجمع اشتراكات الأعضاء فإن نظام إدارة المحتوى يجب أن يتضمن هذه الميزة أو أن يكون قابلاً لإضافة هذه الميزة له . و على حد سواء ، فلو أردت أن تضيف مجتمعاً إلى موقعك فلا بد أن تتوفر بعض الوظائف كالمحادثة ، المنتديات ، التعليقات و التقييم . على الأقل أنت بحاجة لأن تكون قادراً على ارسال النماذج و جلب الإجابات . كيف لنظام إدارة المحتوى تسهيل هذه العملية ؟ هل يمكنك تخصيص الحقول في النماذج و هل يحتاج ذلك إلى خبرة تقنية ؟ ماذا عن النتائج ؟ هل يمكنك تخصيص لمن أرسلت الرسائل ؟ هل يمكن تخزينهم في قاعدة البيانات أو تصديرهم على شكل ملف Excel ؟ حدد نوع الوظيفة التي تريدها ثم اختر نظام إدارة المحتوى الذي يدعم هذه الوظيفة .<br />
ابحث أيضاً عن الأدوات الموجودة للتواصل مع المشتركين . هل بإمكانك ارسال نشرات بريدية ؟ هل يمكن تصنيف المتلقيين ضمن مجموعات تتلقى أنماطاً مختلفة من الرسائل ؟ ماذا عن تغذية الأخبار و RSS ؟<br />
أخبراً حدد كيف تريد إدارة الأعضاء . هل تريد أن تكون قادراً على ضبط كلمات المرور ، تحديد الصلاحيات أو تصدير معلومات العضو إلى أنظمة أخرى ؟ إن صلاحيات الأعضاء ليست الشيء الوحيد الذي يحتاج إلى إدارة ، يجب أن تضع بعين الاعتبار أيضاً صلاحيات أولئك الذين يحررون الموقع .</p>
<h3>سابعاً : الأدوار و الصلاحيات Roles and Permissions</h3>
<p>بتزايد عدد الذين يحررون الموقع و يقومون بإضافة المحتويات فأنت بحاجة إلى قدر أكبر من التحكم بما يمكنهم أن يضيفوه . على سبيل المثال ، ربما تريد لمجموعة أن تقوم بإضافة الإعلانات بينما لا يمكن لها أن تقوم بإضافة الأخبار فإن هذا يتطلب نظام إدارة محتوى يدعم الصلاحيات . بالرغم من تنوع طرق التنفيذ فإن الصلاحيات عادةً تسمح لك بتحديد فيما إذا يمكن للعضو أن يحرر صفحات معينة أو تحرير قسم كامل من الموقع .<br />
بازدياد عدد المشاركين بشكل أكبر ، فأنت بحاجة إلى شخص لمراجعة المحتوى المرسل لضمان دقة و تناسق المحتوى . كخيار آخر فإن المحتوى قد يكون مرسلاً بواسطة عضو جديد أو مبتدئ و الذي يحتاج إلى موافقة أعضاء أعلى مرتبة قبل نشره في الموقع .<br />
في كلتا الحالتين فأنت بحاجة إلى نظام إدارة محتوى يدعم الأدوار المتعددة . و هذا يبدو بسيطاً كأن يكون لديك دور لمحرر و لمراجع عام أو بشكل أكثر تعقيداً حيث يكون هناك مستويات متعددة من الأدوار و بصلاحيات مختلفة .</p>
<h3>ثامناً : تعدد النسخ Versioning</h3>
<p>القدرة على العودة إلى نسخة سابقة من المحتويات تسمح لك بتدارك أي خطأ حاصل عن طريق الصدفة و بسرعة . بعض أنظمة إدارة المحتوى تحتوي وظائف متطورة لتعدد النسخ كأن تعود إلى نسخة حسب مدة زمنية معينة . على أية حال ففي حالات كثيرة فإن ذلك إسراف و الاستعمال الأكثر شيوعاً لتعدد النسخ هو ببساطة العودة إلى آخر نسخة محفوظة .<br />
مع أن هذه الوظيفة تبدو أساسية و لا مفر منها إلا أنها نادرة الاستعمال إلا في حالة الأعمال الهامة و المعقدة . خلاصة القول ، بالرغم من أن تعدد النسخ كان أداة في مرحلة التطور كمشروع إلا أنه قد أصبح متوفراً في الكثير من أنظمة إدارة المحتوى .</p>
<h3>تاسعاً : دعم تعدد المواقع Multiple Website Support</h3>
<p>إن أكثر أنظمة إدارة المحتوى تسمح لك بتنصيب مواقع متعددة و بتهيئة واحدة ، فأنا أود أن أنصح بهذه الميزة على انها لا بد أن تكون موجودة .</p>
<p><a href="http://www.pluscss.com/blog/wp-content/uploads/2010/02/mt-20090305-124525.jpg"><img class="alignnone size-full wp-image-140" title="mt-20090305-124525" src="http://www.pluscss.com/blog/wp-content/uploads/2010/02/mt-20090305-124525.jpg" alt="" width="648" height="342" /></a></p>
<p>بالرغم من أنك حالياً لست بحاجة لأن تدير أكثر من موقع و الذي يمكنك التغيير فيه بسهولة لكنك قد تحتاج مستقبلاً إلى إنشاء موقع جديد قد يستهدف فئة معينة و صغيرة من المستخدمين و مع نمو خدمة التصفح عبر الهاتف الخليوي ( الجوال ) فأنت بحاجة إلى إنشاء نسخة مستقلة من الموقع للتصفح عبر الخليوي .<br />
مهما كان السبب فإن امتلاك المرونة لدعم و إنشاء مواقع متعددة أمر مهم .</p>
<h3>عاشراً : دعم تعدد اللغات Multilingual Support</h3>
<p>من السهل أن تصرف النظر عن ميزة تعدد اللغات ، موقعك قد يكون موجهاً ضمن نطاق محلي أو أنك قد تبيع منتجات محددة اللغة ضمن موقعك لكن يجب عليك أن تفكر مرتين قبل أن تستبعد هذه الميزة .<br />
حتى لو كانت بضاعتك محددة اللغة إلا أنها قد تتغير ، لذلك فمن الضروري أن ينمو نظام إدارة المحتوى مع نمو عملك و تطور احتياجاتك . أيضاً لمجرد أنك تستهدف سوقاً محلية فذلك لا يعني أن تهمل مفهوم اللغة فنحن نعيش في عالم متعدد الثقافات حيث الناس يتكلمون بلغات مختلفة ، و كونك قادراً على التوافق مع هذه الفروقات يمنحك دفعاً هاماً للأمام في مجال المنافسة .</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pluscss.com/blog/index.php/2010/02/21/ten-things-to-consider-when-choosing-the-perfect-cms/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

