تحديثات المجلة السهلة 2: إمكانية إضافة أكواد برمجية في القوالب وتطوير قسم التحديث

  بواسطة: khr2003   tags الإضافة: شباط الجمعة 04-02-2011

تحدثت في التدوينة السابقة عن التعديلات التي قمت بها على المجلة السهلة، وكانت التدوينة تلك مخصصة لنظام الكاش Cache الجديد في المجلة. أما في هذه التدوينة فاستحدث عن إضافتين أخريتين قمت بهما في المجلة، الأولى هي إمكانية إضافة أكواد برمجية في القوالب الرئيسية للمجلة، والثانية تحديث لقسم تحديث المجلة السهلة في لوحة التحكم.

بالنسبة لإضافة الأكواد البرمجية فقد قمت بتغيير طريقة عرض القوالب الرئيسية في المجلة (أي القوالب الخاصة بالثيم الرئيسي وليست قوالب الموديلات). وهذا التغيير تضمن إلغاء دالة eval التي كانت تقوم بعملية قراءة القالب والمتغيرات التي يتضمنها (المتغير هي الكلمات التي تسبقها هذه العلامة $). والسبب أن هذه الدالة في الphp عليها اعتراضات كثيرة أهمها أمنية وغير أنه لم يمكن وضع أكواد برمجية في القوالب في المجلة.

إذا ما فائدة إضافة أكواد برمجية في القوالب؟ الفائدة هي أنه يمكن التحكم أكثر بطريقة عرض القوالب في المجلة، فيمكننا مثلاً أن نضع حالات شرطية في القالب (if .. elseif … else) يمكننا من خلالها عرض أمر معين بناء على الشرط. ويمكن وضع أي كود برمجي آخر يفيد الثيم. والفائدة الآخرى انني – ان شاء الله – سوف أقوم بإضافة خاصية الاعدادات للثيم، بحيث يمكن للمستخدم أن يغير في الأعدادات من دون أن يحتاج للتغير على أكواد الثيم مباشرة. وهذا سيفيد المطور أو المصمم حيث سيتمكن من إضافة خواص لثيمه تساعد الآخرين على التحكم به بسهولة ويسر دون الحاجة إلى الدخول إلى القوالب والتغيير عليها مباشرة.

وبما أن أصبح بالإمكان إضافة أكواد برمجية في الثيم، فمن المستحسن الاستغناء عن الطريقة القديمة لتضمين ملف في القالب في حالة تصميم ثيم جديد، وهي على سبيل المثال:

<!--INC dir="blocks" file="tags.block.php" -->

ويمكن تضمين الملف كما يتم في لغة البي اتش بي:
<?php include('blocks/ tags.block.php'); ?>


وقد ذكرت قبل قليل أنه تم الغاء استعمال الدالة eval وهذا يعني أنه لن يتم قراءة المتغيرات داخل القالب وبالتالي لن تظهر المجلة بالشكل الصحيح. ولتفادي هذه المشكلة يجب أن يكتب المتغير ($index_middle على سبيل المثال) بهذه الطريقة:

<?php echo $index_middle ?>


وقد قمت بتحديث جميع الثيمات الموجودة في مركز التحميل في المجلة السهلة، فإذا قمت بتحديث المجلة يمكنك تنزيل الثيمات وتركيبها على المجلة بكل سهولة.

أما التحديث الثاني الذي ذكرته في هذه التدوينة فهو تطوير قسم تحديث المجلة السهلة في لوحة التحكم. حيث قمت بتعديل الكود ليقوم بأخذ المعلومات من موقع المجلة الرسمي بصيغة JSON حتى تتم العملية بسهولة وسلاسة ويمكن إضافة تطويرات بشكل أفضل. والأمر الآخر أن قسم التحديث أصبح يتقبل ملفات مضوطة بصيغة ZIP . وهذه العملية سوف تسهل أمر تحديث المجلة بشكل كبير حيث سيتمكن مدير الموقع من تحديث عدة ملفات بضغطة زر واحدة. طبعاً يجب أن تكون مكتبة ZIP متوافرة في الاستضافة ليتم القيام بهذه العملية، وهي موجودة في أغلب الاستضافات، وإذا لم تكن موجودة يمكن الطلب من مستضيفك تركيبها لك على السيرفر.

أتمنى أن تكون التحديثات نافعة لكم، وأرجو سماع آرائكم في التعليقات.


الأوسمة: تحديثات، أكواد، -قوالب، php أقرأ المزيد

التحديثات الجديدة للمجلة السهلة 1: تخفيض استعلامات قواعد البيانات بنسبة 50-85%

  بواسطة: khr2003   tags الإضافة: شباط الأربعاء 02-02-2011

بعد أن انتهيت من برنامج تحليل الأصدقاء الذي برمجته للفيسبوك، عدت إلى المجلة السهلة لأٌقوم بتحديثها وتعديل الأخطاء التي وجدت بها وإضافة بعض المميزات الجديدة التي كانت موجودة في ذهني وعلى الورق ولكن لم تطبق بسبب ضيق الوقت والاهتمامات الأخرى لدي.

وعلى العموم فقد قمت بتصليح بعض الأخطاء في المجلة وإضافة ثلاثة مميزات جديدة ومهمة، وهي إضافة نظام الكاش عند الاستعلام من قواعد البيانات، إمكانية إضافة كود php في قوالب الثيم وأخيراً تحديث نظام التحديث في المجلة.

سوف اتحدث عن الميزة الأولى في هذه التدوينة ومن ثم اتحدث عن الأخريات في تدوينات لاحقة إن شاء الله.
نظام Cache أو كما يعرف بالعربية "الخابية" يقوم بتسهيل عملية استرجاع المعلومات من قواعد البيانات، أو بمعنى أدق يقوم بحفظ نتائج الاستعلامات المتكررة في مكان معين لكي يتم استرجاع المعلومات في مرة قادمة إذا كانت نتائج الاستعلام هي نفسها من دون أي تغيير. وفي المجلة السهلة أضفت ميزة حفظ نتائج الاستعلامات في ملفات تكون داخل مجلد cache (لن تجد المجلد في المجلة في أول تنصيب حيث تقوم المجلة بإنشاءه في حال لم يكن موجوداً أثناء القيام بالاستعلام).

ففي المجلة السهلة عدة استعلامات تكون ثابتة معظم الاحيان ولا تتغير كمثل اعدادات المجلة، اعدادات الموديلات، قوالب الموديلات وقوالب المجلة وغيرها. فهذه الاعدادات لا يتم تغييرها بشكل دوري وإنما يتم التعديل عليها مرة واحدة بين فترة واخرى. ولذلك فحالما تقوم بتغيير الاعدادات أو القوالب يتم إنشاء ملف خاص لكل واحد منهم ويتم وضعه في مجلد cache. وفي حالة تم طلب الاستعلام الخاص بالاعدادات مثلاً؛ سوف تتأكد المجلد من أن هناك ملفاً يتضمن نتائج ذلك الاستعلام فإذا كان موجوداً يتم اخذ المعلومات منه، وإنم لم يكن الملف متوافراً يتم الاستعلام بشكل عادي من قواعد البيانات واسترجاع النتائج.

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

هذه الميزة هي مفيدة جداً حيث تقوم بتقليل الضغط على السيرفر من ناحية الاستعلامات، وقد تم تقليص عدد الاستعلامات في المجلة السهلة لتصل في بعض الصفحات إلى استعلام واحد فقط. وطبعاً عدد الاستعلامات سيختلف من صفحة لاخرى حسب الموديل أو الإضافات التي أضيفت للمجلة. وبالمجمل فقد تم تقليص الاستعلامات ما بين 70-90%. انظر الشكل في الاسفل.




وفي حالة قام احد بتطوير موديل أو إضافة أو بلوك يتضمن استعلامات كثيرة، يمكن استعمال نظام الكاش هذا لكي يتم تقليص الاستعلامات. واستعمال النظام أمر يسير ويتظمن ثلاثة دوال، الأولى لإنشاء الملف، والثانية للتأكد من وجوده والثالثة لأخذ المعلومات الموجودة فيه. فعلى سبيل المثال لو أردنا تطبيق النظام على هذا الاستعلام:

$result = $diy_db->query("SELECT variable,value FROM diy_settings");



نضع هذا الكود في المكان الذي يتم فيه إضافة معلومات جديدة إلى الجدول:

// نأخذ نتائج الاستعلام
while ($row = $diy_db->dbarray($query_result)) {
$key = $row['variable'];
$array[$key] = $row['value'];
}

// نصدر نتائج الاستعلام إلى ملف
$diy_db->create_query_cache_file('global_settings', $array);


نلاحظ أن الدالة create_query_cache_file تأخذ متغيرين، الأول هو اسم الملف الذي سوف يتم إنشاءه والثاني هو المعلومات التي نريد وضعها فيه.

وعندما نريد استخراج المعلومات نضع هذا الكود:
// التأكد من أن الملف موجود
$cahce = $diy_db->check_query_cache_file('global_settings');
if ($cahce) {
// إذا كان الملف موجوداً قم بأخذ معلوماته ووضعها في متغير
$array = $diy_db->get_query_cache_file('global_settings');
} else {
// إذا لم يكن موجوداً قم بالاستعلام بشكل اعتيادي
$result = $diy_db->query("SELECT variable,value FROM diy_settings");

while ($row = $diy_db->dbarray($result, $i++)) {
$key = $row['variable'];
$array[$key] = $row['value'];
}
}
// يمكننا استعمال $array للقيام بأي عمليات نريدها


ونلاحظ في الكود السابق دالتان الأولى check_query_cache_file و get_query_cache_fil. الأولى فتقوم بالتأكد من الملف موجود، أما الثانية فتقوم بأخذ معلومات الموجودة في الملف في حال كان موجوداً. والدالتين يأخذان متغير واحد وهو اسم الملف الذي تم انشاؤه باستخدام الدالة create_query_cache_file.

ملاحظة: لكي يتم الحصول على آخر التحديثات قم بتحميل المجلة ومن ثم استبدل الملفات الجديدة بالقديمة في موقعك (طبعاً بعد أخذ نسخة احتياطية) ما عدا ملف conf.php.

أتمنى أن تكون هذه التدوينة مفيدة، وإن شاء الله سوف أقوم بشرح الميزات الأخرى في التدوينة القادمة إن شاء الله.


الأوسمة: تحديثات-المجلة، قواعد-البيانات، -الكاش أقرأ المزيد

لونين جديدين للثيم الافتراضي في المجلة

  بواسطة: khr2003   tags الإضافة: آيار الجمعة 14-05-2010

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

الثيم ذو اللون الأخضر:


الثيم ذو اللون الأحمر:


يمكنكم تحميل الثيمين من قسم الثيمات في هذا الموقع.
اضغط هنا


الأوسمة: ألوان، ثيمات، أحمر، أخضر، تحديثات، تصاميم أقرأ المزيد

أهلا وسهلا بكم إلى المجلة السهلة

  بواسطة: khr2003   tags الإضافة: آيار الخميس 06-05-2010

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

والحمد لله تم إنجاز المجلة السهلة بعد حوالي ثمانية أشهر من العمل عليها، وأتمنى ان يكون استعمالها سهلاً كاسمها. سوف أقوم في هذه المدونة بكتابة دروس وتحديثات عن المجلة السهلة، بالإضافة إلى كتابة بعض الدروس البرمجية العامة، والمواضيع التقنية بشكل عام.

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

قمت بوضع مثال حي لكي يتمكن المستخدمون من رؤيتها تعمل دون تحمل عناء تحميلها وتنصيبها على السيرفر المحلي أو على الموقع. وتم تعطيل جميع أوامر الإرسال حتى لا يتم تخريب المثال. المثال موجود على هذا الرابط: http://code.diy-cms.com

أتمنى أن تكون المجلة السهلة مفيدة للجميع، وأن شاء الله اسمع تعليقاتكم وردودكم عليها." target="_blank">www.diy-cms.com/demo_arabic

وقمت أيضاً بوضع تعليقات على معظم الكلاسات والدوال الموجودة في الملفات، ومن خلال برنامج phpdocumentor قمت بإنشاء توثيق للمجلة يمكنكم متابعته من خلال هذا الرابط: http://code.diy-cms.com

أتمنى أن تكون المجلة السهلة مفيدة للجميع، وأن شاء الله اسمع تعليقاتكم وردودكم عليها.


الأوسمة: المجلة-السهلة، تحديثات، موضوع، تقنية، مدونة أقرأ المزيد