الويب العربي

الويب العربي (http://www.arabwebtalk.com/index.php)
-   مجتمع ديموفنف (http://www.arabwebtalk.com/forumdisplay.php?f=73)
-   -   برمجة بلوك باستخدام نظام نماذج انفنتي (http://www.arabwebtalk.com/showthread.php?t=49672)

ديموفنف 20-03-2007 01:42 AM

برمجة بلوك باستخدام نظام نماذج انفنتي
 
لعمل بلوك يقوم باستخدام نظام نماذج انفنتي سنقوم بعمل بلوك كمثال ويمكن القياس عليه واستخدامه في أكثر من تخصص (اخبار , مقالات , بطاقات , صوتيات ... الخ )

المثال هنا سيكون بلوك لأكثر الأخبار مشاهدةً
سنبدأ بعمل الأكواد بفتح ملف جديد وتسميته
block-topnewsviews.php

نبدأ بوسم php كأول سطر :
كود PHP:

<?php

بعد ذلك سنضع شرطا للملف بأن لا يتم تشغيله إلا عندما يقوم الزائر بالدخول لقسم الأخبار :
كود PHP:

if(THIS_SCRIPT=="news"){ 

ثم نضع بعد ذلك الكود الخاص بالاستعلام من جدول الأخبار :
كود PHP:

$result=$DB->query("SELECT id,caption FROM newsm ORDER BY views DESC LIMIT 10");
if(
$DB->num_rows($result)>0){ 

آخر سطر بالكود السابق هو أنه في حالة وجود أي عدد من الأخبار أي اكبر من صفر قم بعمل التالي :
قم بتشغيل مربع بلوك جديد والذي سنأتي له لاحقاً بالتعريف بعد أن قمنا بتجهيزه والذي اسمه extrablocks :
كود PHP:

$tpl->newBlock("extrablocks"); 

سنقوم بعد ذلك بتعيين قيمة عنوان الجدول لكي يتم عرضها برأس الجدول والذي قمنا بتعيينه سابقا باسم extrablockname :
كود PHP:

$tpl->assign("extrablockname","أكثر الأخبار مشاهدة"); 

بعد ذلك سنقوم بعمل بحث لكل سجل بالجدول وأخذ المتغيرات منه لكل دورة :
كود PHP:

while($row=$DB->fetch_array($result)){ 

سنقوم الآن بفتح صف جدول بطريقة نماذج انفنتي بالطريقة التالية :
كود PHP:

$tpl->newBlock("extrablock"); 

سنقوم بتعيين قيمة عنوان الخبر ورقمه داخل الصف بالطريقة التالية :
كود PHP:

$tpl->assign("action","news.php?action=show&id=".$row[id]); 
$tpl->assign("caption",unclean($row[caption])); 

نقوم الآن بإغلاق الوسوم التي فتحناها بالكود
كود PHP:

}
}
}
?> 

سيصبح الكود كاملا الآن بهذا الشكل :

كود PHP:

<?php
if(THIS_SCRIPT=="news"){
$result=$DB->query("SELECT id,caption FROM newsm ORDER BY views DESC LIMIT 10");
if(
$DB->num_rows($result)>0){
$tpl->newBlock("extrablocks");
$tpl->assign("extrablockname","أكثر الأخبار مشاهدة"); 
while(
$row=$DB->fetch_array($result)){
$tpl->newBlock("extrablock");
$tpl->assign("action","news.php?action=show&id=".$row[id]); 
$tpl->assign("caption",unclean($row[caption])); 
}
}
}
?>

نأتي الآن لكود للنماذج :

ابحث في نموذج rcontent عن السطر التالي :

كود:

<!-- START BLOCK : online -->

أضف الكود التالي في السطر الذي قبله أو في المكان الذي ترغب به :
كود:

<!-- START BLOCK : extrablocks -->
<table align="center" border="1" cellpadding="3" cellspacing="0" class="dcitbi" bordercolor="#B2B2B2" width="150" height="40">
<td align=right class="dcitbbt">{extrablockname}
<img border="0" src="{img_dir}/arroww.gif">&nbsp;&nbsp;&nbsp;
</td>
<!-- START BLOCK : extrablock -->
<tr>
<td class=tdnav align=center height=20>
<a href="{action}">{caption}</a>
</td>
</tr>
<!-- END BLOCK : extrablock -->
</table>
<br>
<!-- END BLOCK : extrablocks -->

ملاحظة : يمكنك استخدام كود النموذج السابق لعدة بلوكات مختلفة وذلك بتعيين القيم المختلفة عن طريق كود الـ php

ديموفنف 20-03-2007 02:53 AM

أول شخص غير مبرمج وأتوقع ان يقوم بعمل البلوك وعدة بلوكات مختلفة بسهولة هو ala ;)
فهل يخيب توقعي :rolleyes: .... سنرى

سبق 20-03-2007 07:18 PM

والله هاذي هي الورطة :D :D

أول شيء أشكر لك ثقتك فيني وإن شاء الله ما أخيب ظنك :( :(

الطريقة مبدئياً سهلة بإذن الله ..

لكن ما قلت لنا وين نرفع ملف block-topnewsviews :rolleyes: :rolleyes: :rolleyes:

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

عاجزين عن شكرك :)

ديموفنف 20-03-2007 08:15 PM

ترسله لنا نشفره ونرجعه لك ترفعه لمجلد blocks وبعدها تضيفه كبلوك جديد بالطريقة العادية مثل أي بلوك آخر من لوحة التحكم
حبيت بعدها تنزله للجميع فهذا كرما منك :)

سبق 21-03-2007 12:58 AM

هل لابد من إضافة القالب من القوالب في لوحة التحكم ؟
لأنك في شرحك فوق أننا نضعها في نموذج rcontent

وبما أننا وضعنا الملف في مجلد bolcks فلابد أننا نضيف البلوك عن طريق القوالب ؟!!

سبق 21-03-2007 01:00 AM

http://www.sabq.org/inf/news.php?action=show&id=36 9

لاحظ في أسفل الصفحة

البلوك الأول هو اللي أضفناه في القوالب
والثاني اللي تم إضافته في نموذج rcontent
وإذا عطلت البلوك من الوقالب ما تظهر الأكثر مشاهدة ؟!!!
فهمت قصدي ؟

ديموفنف 21-03-2007 01:10 AM

البلوك لا جيت تضيفه فقط تختار اسم البلوك من القائمة واللي هو block-topnewsviews

الكود الخاص بالنماذج يتم اضافته من خلال النماذج وبالتحديد في مثالنا rcontent لأنه يستخدم آلية نماذج انفنتي

البلوك اللي ما ظهر لك اي محتوى فيه هو بسبب انه يستخدم نظام البلوكات العادي (يعني بدون استخدام نظام النماذج ) وذا طريقته سبق شرحها في موضوع سابق

يعني ما تضيف إلا بلوك واحد

سبق 21-03-2007 04:40 PM

معليش يا ابعاد ..

الآن الشرح أعلاه هل هو للبلوك أم للنموذج ؟
وما السبب في ارتباطهم ؟

بحيث إذا ألغيت البلوك تختفي الأخبار أكثر مشاهدة ؟

ديموفنف 21-03-2007 11:34 PM

الشرح لبلوك يستخدم آلية تامبلتات انفنتي

اذا بغيت تستخدم آلية البلوك العادية فاستخدم طريقة الشرح التالية :
http://www.arabwebtalk.com/showthread.php?t=49620

يعني بالنهاية انت بتضيف بلوك واحد وليس اثنين لنفس المحتوى , ما الفائدة من ذلك

بالحكم 10-04-2007 11:59 AM

السلام عليكم ورحمة الله وبركاته

هذه محاولة سريعة لتنفيذ الخطوات السهلة التى أوردتموها هنا

ولكنها اولى محاولاتى مع اكواد php

أتمنى منكم فقط ذكر أخطائها لنتعلّم منكم

فهل لو اردنا عمل كود لأكثر البطاقات مشاهدة

سيكون بهذا الشكل؟؟

وما مدى الخطأ به



كود PHP:


<?php 
if(THIS_SCRIPT=="card"){  
$result=$DB->query("SELECT id,caption FROM cardm ORDER BY views DESC LIMIT 10");
if(
$DB->num_rows($result)>0){  
$tpl->newBlock("extrablocks");  
$tpl->assign("extrablockname","أكثر البطاقات مشاهدة");  
while(
$row=$DB->fetch_array($result)){  
$tpl->newBlock("extrablock");  
$tpl->assign("action","cards.php?action=listcards&id=".$row[id]); 
$tpl->assign("caption",unclean($row[caption]));  
}
}
}
?>

أشكركم مقدّما لسعة صدركم ومجهودكم الجميل
ونتمنى أن نتعلم منكم المزيد

م.محمد عبدالله 13-04-2007 04:22 AM

السلام عليكم ورحمة الله وبركاته

بالحكم ما اخترت إلا اصعب واحد :D

عموماً طريقتك 100% ولكنك لم تنتبه لطبيعة محتوى البطاقات
البطاقات لا يوجد بها مشاهدة وإنما إهداءات فقط
ولكي تكون فكرة عما ترغب بعمل بلوك له فيجب أن تقوم بمشاهدة جدول القسم , فالحقول المطلوبة هنا هي التالية :

id,caption,ext,thump
والأوردر سيكون بترتيب الإهداءات sent

لذلك الكود للبلوك سيكون :

كود PHP:

<?php  
if(THIS_SCRIPT=="cards"){   
$result=$DB->query("SELECT id,caption,ext,thump FROM cardsm ORDER BY sent desc limit 10"); 
if(
$DB->num_rows($result)>0){   
$tpl->newBlock("extrablocks");   
$tpl->assign("extrablockname","أكثر البطاقات مشاهدة");   
while(
$row=$DB->fetch_array($result)){   
$tpl->newBlock("extrablock");   
$tpl->assign("action","greet.php?division=card&action=prepair&id==".$row[id]);  
$tpl->assign("caption",unclean($row[caption]));   



?>

ولكن ستحتاج ايضاً لوضع متغير لصورة الكرت المصغرة وستكون ext وايضا في حالة كان الكرت فلاش فمن المفترض بأن يكون له thump

عموما الطريقة صحيحة لو كانت بشكل روابط مثل بلوك أكثر الأخبار والمقالات مشاهدة

للمعلومية البلوكات القادمة في الرحلة خاصة بالبطاقات

محاولة رائعة وأسجل اعجابي;)

ahmedipa 20-08-2007 10:43 AM

تسلم ياأبعاد وإن شاء الله تسهل علينا استخدام المجلة

وعملها كيف مانحتاجها بإذن الله

وهذا ميزة خطيرة فيها


جميع الأوقات بتوقيت مكة المكرمة. الساعة الآن » 06:57 PM.

Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © ArabWebTalk.Com 2004-2012