الاثنين، 31 مارس 2014

شرح تصميم قوالب ووردبريس -الجزء الحادي عشر-


شرح تصميم قوالب ووردبريس -الجزء الحادي عشر-
فى الدرس السابق، كنا قد انتهينا من الجزء الخاص بعرض التعليقات، وفى هذا الدرس سننهي ما يتعلق بنموذج كتابة تعليق جديد، وفي هذا الدرس سنعتمد على دالتين، الأولي وهي لتعيين قيم افتراضية لحقول النموذج، والثانية لتعديل شكل النموذج، لذا فلنبدأ !
سنكمل مع ملف functions.php ، حيث سنقوم بعمل filter جديد وذلك عبر دالة add_filter، وتلك الدالة تأخذ بارامتران، الأول وهي قيمة محددة وهي comment_form_defaults، والثاني ستكون اسم الدالة التي ستقوم أنت بإنشاءها بعد ذلك لتغيير شكل نموذج وضع تعليق جديد، مثلاً سنقوم بتسميته PHPGeekArForm،
add_filter('comment_form_defaults','PHPGeekArForm');
والآن سنقوم بإنشاء دالة بنفس الاسم الذي قمت بإدخاله فى البارامتر الثاني، وستأخذ الدالة Argument واحد عبارة عن مصفوفة وسنقوم بتسميته defaults
function PHPGeekArForm($defaults){

}
اول ما سنقوم بتغييره هي الجملة التى تفيد بأن البريد الإلكتروني الذي سيقوم المستخدم إدخاله فى النموذج لن يتم عرضه، تلك الجملة الشهيرة الموجودة أعلى نموذج كتابة تعليق جديد، فيمكنك تحديدها وتغييرها عبر الـKey المسمى بـcomment_notes_before، وانا شخصيًا سأقوم بحذفها، وذلك كالتالي:
function PHPGeekArForm(){
$defaults['comment_notes_before'] ="";

return $defaults;
}
تستطيع تغيير الجملة إذا أردت، لكن لا تنس أن تقوم بإرجاع المصفوفة defaults عبر return فى آخر الدالة، والآن لتغيير شكل النموذج يمكنك تحديد الـid الذي قمت بتخصيصه للنموذج، وادخاله فى مصفوفة defaults عبر الـkey الذي يدعى id_form، فمثلاً انا فى ملف الـCSS قمت بعمل id يدعى comment-form، وانا الآن اريد وضع ذلك الـId للنموذج، يمكنني ذلك عبر اضافة هذا السطر  فى الدالة:
$defaults['id_form'] = "comment-form";
قد تحتاج ايضًا إلى تغيير الـtextarea المخصص لكتابة محتوى التعليق، تستطيع ذلك عبر السطر التالي:
$defaults['comment_field'] ="

";
لاحظ اننا فى هذه الحالة قمنا بإدخال شيفرة HTML كاملة، ولم نقم بإدخال id معين للـTextarea، والآن انتهينا من الجزء الخاص بتغيير شكل وخواص النموذج، لننتقل الآن إلى طريقة معالجة النموذج، وفى تلك الخطوة سنقوم بإضافة filter جديد عبر add_filter، البارامتر الأول قيمته comment_form_default_fields، والثاني قيمته اسم الدالة التي ستقوم بإنشاءها لتلك العملية، انا سأقوم بتسميتها PHPGeekArFileds،
add_filter('comment_form_default_fields','PHPGeekArFileds');
والآن سنقوم بإنشاء الدالة،
function PHPGeekArFileds(){
}
ثم سنقوم بأخذ بعض البيانات، وأولها اسم صاحب التعليق، لذلك سنقوم بإنشاء متغير باسم commenter مثلاً ثم سنقوم بإسناد قيمة اسمه عن طريق دالة wp_get_current_commenter  كالتالي:
function PHPGeekArFileds(){
$commenter = wp_get_current_commenter();
}
ما نريده الآن ان نعرف ما هي الحقول الأساسية التي يجب على المستخدم إدخالها، فى ووردبريس هناك خاصية فى لوحة التحكم تتيح لمدير المدونة أن يوجب على المستخدم إدخال اسمه وبريده الإلكتروني بشكل أساسي أم لا، ولذلك سنأخذ هذا الإختيار من لوحة التحكم ، ونضعه فى متغير كالتالي:
$req = get_option('require_name_email');
والآن سنقوم بوضع قيمة لمتغير سنقوم بتسميته aria_req، وهو مخصص لكي يظهر للمستخدم الحقول الإجبارية التي يجب عليه إدخال قيم فيها، وذلك عبر هذا السطر:
$aria_req = ($req ? " aira-required='true'": ' ');
وقيمة هذا المتغير عبارة عن تحقق ما اذا كانت خاصية إجبار المستخدم على إدخال البريد الإلكتروني واسمه -فى متغير req- مفعلة أم لا، فإذا كانت مفعلة سيتم إدخال قيمة aria-required=true فى المتغير.
والآن سنقوم بإنشاء مصفوفة تحتوى على شيفرة HTML الخاصة بالحقول، كالتالي:
function PHPGeekArFileds(){
$commenter = wp_get_current_commenter();
$req = get_option('require_name_email');
$aria_req = ($req ? " aira-required='true'": ' ');
$fields = array(
'author' => '

'.$aria_req.'

',

'email' => '

'.$aria_req.'

',

'url' => '

'
);
return $fields;
}

أرجوا ان تكون الفكرة واضحة، ونلتقى فى الدرس القادم -بإذن الله-.

الأحد، 30 مارس 2014

كيف تبدأ مع Laravel فى 11 خطوة !


سنتعرف فى هذا الدرس على كيفية تثبيت بيئة عمل Laravel وتشغيلها على حاسوبك؛ لكي تكون مستعدًا لإستخدامها فى أى وقت، سنقوم ببضع خطوات بسيطة سأذكرها الآن لكي تتم العملية بنجاح.
1- قم بتحميل نسخة من بيئة العمل من هنا.
2- قم بفك الضغط عن النسخة إلى مسار السيرفر المحلي الخاص بك وهو C:\wamp\www فى حال استخدامك لبرنامج WampServer وهو المُفضل وهو ما سيتم الشرح من خلاله.
3- قم بتحميل برنامج Composer من هنا.
4- قم بتفعيل openssl من جميع ملفات php.ini الموجودة فى السيرفر، وذلك عبر فتح الملف ببرنامج محرر نصوص ثم قم بالبحث عن كلمة openssl ثم قم بإزالة الفاصلة المنقوطة الموجودة فى بداية السطر الموجود به الكلمة، ثم حفظ الملف، ثم بعد الإنتهاء من عملية التفعيل فى جميع الملفات قم بعمل Restart All Services لبرنامج Wamp.
5- قم بتنصيب برنامج Composer مع مراعاة اختيار مكان ملف php.exe بشكل صحيح أثناء عملية التنصيب.
6- اضغط على ايقونة برنامج Wamp الموجودة أسفل اليمين، ثم قم بإختيار PHP، ثم قم بإختيار PHP Extenstions، ثم قم بتفعيل php_openssl و php_sockets و php_curl.
7- اضغط على ايقوني برنامج Wamp الموجود اسفل اليمين، ثم قم بإختيار Apache، ثم قم بإختيار Apache Modules، ثم قم بتفعيل ssl_module.
8- قم بفتح Command Prompt الموجود فى ويندوز.
9- قم بكتابة الأمر التالي مع مراعاة تغيير المسار الذي تم فيه فك ضفط نسخة بيئة العمل:
cd c:\wamp\www\laravel-master
10- قم بكتابة الأمر التالي ثم انتظر حتى يتم التثبيت:
composer install
11- قم بفتح مسار البيئة عبر المتصفح، ثم قم بإضافة كلمة public، ففي حالتنا تلك سنقوم بالدخول على: localhost/laravel-master/public، سترى عند فتحها رسالة ترحيبية مكتوب بها You have arrived.

شرح تصميم قوالب ووردبريس -الجزء العاشر-


شرح تصميم قوالب ووردبريس -الجزء العاشر-
فى الدرس السابق -التاسع- كنا قد وصلنا إلى منطقة عرض بيانات التعليقات، وآخر ما ذكرناه هو دالة comment_date و comment_time وتعرفنا على فائدتهما، والآن سنقوم بوضع زر Reply والمخصص للرد على التعليقات، وذلك عبر دالة comment_reply_link، ولكن تلك الدالة ستأخذ بعض البارامترات كالتالي:
عندما بدأنا فى إنشاء دالة لعرض التعليقات وهي دالة my_comments قمنا بوضع ثلاثة Arguments وهم: comment و args و depth، الآن سنقوم بوضع args و depth على الترتيب كبارامترات داخل دالة array_merge داخل دالة comments_reply_link، كما فى الكود التالي:
comment_reply_link(array_merge($args,array("depth"=>$depth, "max_depth"=>$args['max_depth'])));
اعتقد أنها جزئية معقدة بعض الشيء، والآن لننتقل إلى الجزء الخاص بعرض صورة كاتب التعليق، أولاً سنقوم بإنشاء متغير يحمل قيمة حجم الصورة، ولتكن 80 بيكسل على سبيل المثال، فسنقوم بتعريف المتغير كالتالي:
$avatar_size = 80;
والآن سنقوم بالتحقق ما اذا كان التعليق -الذي سنقوم بعرض صورة كاتبه- تعليقًا رئيسيًا ام ردًا على تعليق آخر، فإذا كان ردًا على تعليق آخر فسنقوم بتغيير حجم الصورة إلى 64 بيكسل، وتلك العملية تتم عبر الشيفرة التالية:
if($comment->comment_parent !=0){
$avatar_size = 67;
}
والآن سنقوم بطباعة الصورة وذلك عبر دالة get_avatar والتي تأخذ بارامترين فقط، البارامتر الأول وهو الـArgument الأول الذي قمنا بوضعه فى دالة my_comments وهو comment، ثم البارامتر الثاني وهو حجم الصورة والذي قمنا بتعريفها وهي avatar_size، كما فى هذا السطر:
echo get_avatar($comment, $avatar_size);
والآن لننتقل إلى جزء آخر، وهو الجزء الخاص بعرض جملة تفيد بأنه لن يتم عرض التعليق الذي أدخله المستخدم إلا بعد موافقة مشرفين الموقع، ففي المنطقة المخصصة بذلك ستقوم بعمل التالي:
سنقوم بعمل تحقق ما اذا كان التعليق تم الموافقة عليه ام لا فإذا لم تتم الموافقة سيتم عرض تلك الجملة، كما فى الكود التالي:
comment_approved == '0'): ?>

تعليقك بإنتظار موافقة المشرفين!


والآن حان وقت عرض محتوى التعليق نفسه، وهذا ببساطة عبر دالة comment_text، بدون آية بارامترات :)
ملحوظة: قم بحذف
فى نهاية الشيفرة؛ لأن برنامج الووردبريس سيقوم بإضافته بعد كل تعليق تلقائيًا.
والآن سنقوم بأخذ عنصر تعليق جديد ((li جديد)) وسنقوم بوضعه بداخل دالة my_comments وعمل نفس الخطوات السابقة به ما عدا اننا سنقوم بوضع class للـli باسم pingback، وسنقوم بإستبدال اسم صاحب التعليق إلى Pingback، وبدلاً من وضع تاريخ التعليق وزر الرد عليه، سنقوم بوضع دالة edit_comment_link، ولن نحتاج إلى وضع صورة لصاحب التعليق، وبدلاً من كتابة محتوى التعليق سنقوم بوضع دالة comment_author_link.
هذا كل ما لدينا فى هذا الدرس، وفى الدرس القادم بإذن الله سنقوم بتطوير نموذج كتابة تعليق جديد.

السبت، 1 مارس 2014

كورس Yii Framework


بسم الله الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
وصلتني رسالة من احد الشركات لمراجعة أحد منتجاتها وهو عبارة عن دورة في Yii Framework للمطور Chris Backhouse
http://bit.ly/1ddk8YI
الدورة عبارة عن 8 أقسام يتحدث الاول منها عن اطار العمل ومفهوم ال mvc ويتحدث القسم الثاني عن بدء التعامل مع اطار العمل واعداداته الرئيسية والبدء في عمل معرض للصور باطار العمل هذا ثم يليه القسم الثالث في التعامل مع قاعدة البيانات والامتدادات لاطار العمل الشهير ويتدرج بنا الي ان ننهيه ونقوم بعمل test وحل المشاكل وما الى ذلك
اعيب على الدورة بعض الاشياء استشعر انها ليست خطوة بخطوة كما هي بعض الدورات ولي مراجعة اخرى عنها ان شاء الله  رأيت ان اكتب هذه السطور سريعا لعلها  تكون بداية لنا في الحديث عن اطار العمل الشهير هذا

بواسطة: حامد شاهين.