تسجيل الدخول

مشاهدة النسخة كاملة : طريقة عدد الأعضاء النشطين الذين شاركوا بمواضيع خلال 24 ساعة


VIP
05-09-2005, 03:14 AM
السلام عليكم ورحمة الله وبركاته ...

وظيفة عمل الهاك

وظيفة هذا الهاك يعرض قائمة للأعضاء النشطين الذين تواجدوا في المنتدى وطرحوا مواضيع / مشاركات أثناء تواجدهم في المنتدى خلال 24 ساعة .

تم تجربة هذا الهاك على الإصدار 3.0.7 وهو يتم التجربة على الإصدارات السابقه ، ولكن باعتقادي ان الهاك سيعمل على الاصدارات السابقة دون اي مشاكل بإذنه تعالى

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

http://www.kwety.net/kwety1/q83/Who_has_posted_today.JPG

شرح التركيب

1- إفتح الملف : index.php الموجود بمجلد vb
إبحث عن :

// ### LOGGED IN USERS #################################################

أعلاه مباشرة ً
أضف هذا الكود الجديد :

require_once('./includes/functions_misc.php');
$now = TIMENOW - intval($vboptions['hourdif']);
$cutoff = vbmktime(0, 0, 0, date('m', $now), date('d', $now), date('Y', $now));
//$cutoff = $now - 86400 ; // ## Uncomment this line if you want a rolling 24 hours display ## //
$todaysposters = $DB_site->query("SELECT userid, lastpost, options, username, opentag, closetag
FROM " . TABLE_PREFIX . "user as user
LEFT JOIN " . TABLE_PREFIX . "usergroup as usergroup ON(user.usergroupid = usergroup.usergroupid)
WHERE lastpost > " .$cutoff. " ORDER BY username" );
unset ($posttoday);
$posterstoday = 0;
while ($today = $DB_site->fetch_array($todaysposters))
{
$today[visible] = 1 ;
$posterstoday += 1;
if ($today[options] & $_USEROPTIONS[invisible])
{
$today[visible] = 0 ;
if (($permissions['genericpermissions'] & CANSEEHIDDEN) OR $today['userid'] == $bbuserinfo['userid'])
{
$today[visible] = 2 ;
}
}
if ($today[visible])
{
$wrdate = vbdate($vboptions['timeformat'], $today['lastpost']);
$posttoday .= "<a href='search.php?do=finduser&u=$today[userid]' title='$wrdate' >";
if ($today[visible] == 2)
{
$posttoday .= $today['opentag'].$today[username].$today['closetag']."</a>*, ";
}
else
{
$posttoday .= $today['opentag'].$today[username].$today['closetag']."</a>, ";
}
}
}
if ($posttoday)
{
$posttoday = substr($posttoday, 0, strlen($posttoday)-2);
}

احفظ التعديل .
إرفع الملف إلى مكانه .

2- افتح تمبلت : FORUMHOME
إبحث عن :

<!-- end logged-in users -->

أسفله مباشرة ً
أضف هذا الكود الجديد :


<!-- Todays posters -->
<tbody>
<tr>
<td class="thead" colspan="2">
<a style="float:$stylevar[right]" href="#top" onclick="return toggle_collapse('forumhome_todayposters')"><img id="collapseimg_forumhome_todayposters" src="$stylevar[imgdir_button]/collapse_thead$vbcollapse[collapseimg_forumhome_todayposters].gif" alt="" border="0" /></a>
عدد الأعضاء النشطين الذين أضافوا مشاركات لهذا اليوم : $posterstoday عضو .
</td>
</tr>
</tbody>
<tbody id="collapseobj_forumhome_todayposters" style="$vbcollapse[collapseobj_forumhome_todayposters]">
<tr>
<td class="alt2"><img src="$stylevar[imgdir_misc]/whos_online.gif" alt="الاعضاء المتصلين والنشطين" border="0" /></td>
<td class="alt1" width="100%"><div class="smallfont">$posttoday</div></td>
</tr>
</tbody>
<!-- End Todays posters -->

إحفظ العمل .

3- أضف هذا الأمر إلى قاعدة البيانات ( اختياري فقط للتسريع والذين يملكون أعضاء يضيفون مشاركات كثيره )

ALTER TABLE user ADD INDEX (lastpost) ;

أنتهى ...

البطل أبيــــها
05-09-2005, 03:28 AM
يسلمؤؤؤؤؤؤؤؤؤؤؤؤ الأيادي مديرنا

ويعطيك العافيه على المجهود المبذل من أجل جميع الأعضاء

والله يكثر من امثالك