المشاركة الأصلية كتبت بواسطة: Soliman اقتبـاس ،، شكرا لك من الصعب الطلب من احد عمل تعديل على منتداه وممكن يتم حذف التعديل مع التحديث التلقائي اذا تم عليه ايضاً ممكن الحقل visitor ان لا يكون دقيق لعدد الزيارات السابقة. من الافضل عمل حقل جديد والزيادة عليه اذا تحقق الشرط $change الذي ذكرته.
جاري تجربته لأيام لمعرفة النتيجة.
لاحاجة لأن تطلب من أحد التعديل على منتداه
يمكنك اضافة هذا التعديل في نفس الملحق عند التركيب
فقط اضف هذا الخطاف
CODE
<hook main_place="lastvisit_members_update" place="lastvisit_members_update"><![CDATA[
$change = $PowerBB->_CONF['now'] - $IsMember['lastvisit'];
if ( $change > 86400)
{
$IsMember['visitor'] = $IsMember['visitor'] - 1;
}
]]> </hook>
وبداخل الـ installcode أضف هذا الكود
CODE
$PathW = "modules/login.module.php";
if(file_exists($PathW)){
$finded = "online');";
$actiond = 'eval($PowerBB->functions->get_fetch_hooks("lastvisit_members_update"));';
$contentss = file_get_contents($PathW);
$newQ = str_replace($finded,$finded."\n".$actiond, $contentss);
$putd = file_put_contents($PathW,$newQ);
}
مثال في المرفقات
حلو ولكن رأيت انه عدل على ملف login.module.php إذا شخص رفع الملف بشكل يدوي بدل الموجود او بواسطة تحديث البرنامج لن يعمل الهاك. وهناك خوف ان يكون حقل visitor لأحد ألأعضاء فيه رقم خيالي لانه كان يظل يسجل خروج ودخول كل يوم عدة مرات.
ما تم عمله للتجربة اضافة حقل store_visitor والقيمة الافتراضية له 1 لان اول زيارة للمنتدى لن يتم اضافة رقم لانه لم يمر يوم بعد واضافة للخطاف commonHooks
CODE
if ($PowerBB->_CONF['member_permission']) {
$change = $PowerBB->_CONF['now'] - $PowerBB->_CONF['member_row']['lastvisit'];
if ($change >= 86400){
$UpdateArr = array();
$UpdateArr['field'] = array();
$UpdateArr['field']['store_visitor'] = $PowerBB->_CONF['member_row']['store_visitor'] + 1;
$UpdateArr['where'] = array('id',$PowerBB->_CONF['member_row']['id']);
$PowerBB->core->Update($UpdateArr,'member');
}
}
جيد ام لا ؟؟؟