وعليكم السلام ورحمة الله وبركاته،،
المتواجدون اليوم بمنتدى الـ pbb لايتعامل مع الكوكيز بل يعرض المتواجدون حسب تاريخ اليوم وعند إنتهاء اليوم يتم حذف كافة الأعضاء الذين تواجدوا في اليوم السابق وهكذا ..
عموماً ساساعدك في تلبيه هذا الطلب مع اني لست متأكد من النتيجة لأني لم اقم بتجربتها لأن
نتائجها لاتظهر بشكل فوري بل تسلتزم انتظار 24 ساعة ..
اليك طريقة زيادة بقاء المتواجدين اليوم :
(الخطوة الأولى )
حرر ملف : modules/
main.module.php
وابحث عن (من السطر 584 إلى السطر 640) :
CODE
function _GetToday()
{
global $PowerBB;
//////////
if ($PowerBB->_CONF['info_row']['show_online_list_today'] == 1)
{
$TodayArr = array();
$TodayArr['where'] = array();
$TodayArr['where'][0] = array();
$TodayArr['where'][0]['name'] = 'username';
$TodayArr['where'][0]['oper'] = '!=';
$TodayArr['where'][0]['value'] = 'Guest';
$TodayArr['where'][1] = array();
$TodayArr['where'][1]['con'] = 'AND';
$TodayArr['where'][1]['name'] = 'user_date';
$TodayArr['where'][1]['oper'] = '=';
$TodayArr['where'][1]['value'] = $PowerBB->_CONF['date'];
$TodayArr['order'] = array();
$TodayArr['order']['field'] = 'user_id';
$TodayArr['order']['type'] = 'DESC';
if (!$PowerBB->_CONF['group_info']['show_hidden'])
{
$TodayArr['where'][2] = array();
$TodayArr['where'][2]['con'] = 'AND';
$TodayArr['where'][2]['name'] = 'hide_browse';
$TodayArr['where'][2]['oper'] = '<>';
$TodayArr['where'][2]['value'] = '1';
}
$PowerBB->_CONF['template']['while']['TodayList'] = $PowerBB->online->GetTodayList($TodayArr);
//////////
if (!empty($PowerBB->_CONF['info_row']['today_number_cache']))
{
$PowerBB->_CONF['template']['TodayNumber'] = $PowerBB->_CONF['info_row']['today_number_cache'];
}
else
{
$NumberArr = array();
$NumberArr['where'] = array();
$NumberArr['where'][0] = array();
$NumberArr['where'][0]['name'] = 'user_date';
$NumberArr['where'][0]['oper'] = '=';
$NumberArr['where'][0]['value'] = $PowerBB->_CONF['date'];
$PowerBB->_CONF['template']['TodayNumber'] = $PowerBB->online->GetTodayNumber($NumberArr);
}
}
//////////
}
وقم باستبداله بـ :
CODE
function _GetToday()
{
global $PowerBB;
//////////
if ($PowerBB->_CONF['info_row']['show_online_list_today'] == 1)
{
$TodayArr = array();
$TodayArr['where'] = array();
$TodayArr['where'][0] = array();
$TodayArr['where'][0]['name'] = 'username';
$TodayArr['where'][0]['oper'] = '!=';
$TodayArr['where'][0]['value'] = 'Guest';
if (!$PowerBB->_CONF['group_info']['show_hidden'])
{
$TodayArr['where'][1] = array();
$TodayArr['where'][1]['con'] = 'AND';
$TodayArr['where'][1]['name'] = 'hide_browse';
$TodayArr['where'][1]['oper'] = '<>';
$TodayArr['where'][1]['value'] = '1';
}
$TodayArr['order'] = array();
$TodayArr['order']['field'] = 'user_id';
$TodayArr['order']['type'] = 'DESC';
$PowerBB->_CONF['template']['while']['TodayList'] = $PowerBB->online->GetTodayList($TodayArr);
//////////
$TodayNumber = $PowerBB->DB->sql_num_rows($PowerBB->DB->sql_query("SELECT * FROM " . $PowerBB->table['today'] . " WHERE id"));
$PowerBB->_CONF['template']['TodayNumber'] = $TodayNumber;
}
//////////
}
اغلق الملف واحفظه ..
----------------------------------------------------
(الخطوة الثانية)
حرر ملف : engine/systems/
online.class.php
وابحث عن (من السطر 187 إلى السطر 194) :
CODE
if (!empty($param['date']))
{
$param['where'] = array();
$param['where'][0] = array();
$param['where'][0]['name'] = 'user_date';
$param['where'][0]['oper'] = '<>';
$param['where'][0]['value'] = $param['date'];
}
واستبدله بـ :
CODE
if (!empty($param['date']))
{
$param['where'] = array();
$param['where'][0] = array();
$param['where'][0]['name'] = 'user_date';
$param['where'][0]['oper'] = '<';
$param['where'][0]['value'] = $param['date'];
$param['where'][1] = array();
$param['where'][1]['con'] = 'AND';
$param['where'][1]['name'] = 'user_date';
$param['where'][1]['oper'] = '=';
$param['where'][1]['value'] = $param['date'];
}
وابحث عن (من السطر 201 إلى السطر 231) :
CODE
function IsToday($param)
{
if (!isset($param)
or !is_array($param))
{
$param = array();
}
$param['select'] = '*';
$param['from'] = $this->Engine->table['today'];
$param['where'] = array();
if (!empty($param['username'])
and !empty($param['date']))
{
$param['where'][0] = array();
$param['where'][0]['name'] = 'username';
$param['where'][0]['oper'] = '=';
$param['where'][0]['value'] = $param['username'];
$param['where'][1] = array();
$param['where'][1]['con'] = 'AND';
$param['where'][1]['name'] = 'user_date';
$param['where'][1]['oper'] = '=';
$param['where'][1]['value'] = $param['date'];
}
$num = $this->Engine->records->GetNumber($param);
return ($num <= 0) ? false : true;
}
واستبدله بـ :
CODE
function IsToday($param)
{
if (!isset($param)
or !is_array($param))
{
$param = array();
}
$param['select'] = '*';
$param['from'] = $this->Engine->table['today'];
$num = $this->Engine->records->GetNumber($param);
return ($num <= 0) ? false : true;
}
اغلق الملف واحفظه ..
---------------------------------
(الخطوة الثالثة )
حرر الملف : modules/
common.module
وابحث عن (السطر 57 إلى السطر 95) :
CODE
// Delete not important rows in today table
$CleanArr = array();
$CleanArr['date'] = $PowerBB->_CONF['date'];
واستبدله بـ :
CODE
// Delete not important rows in today table
$CleanArr = array();
$CleanArr['date'] = $PowerBB->_CONF['online_day'];
وابحث عن (السطر 345 إلى السطر 356) :
CODE
// Ok , now we check if this member is exists in today list
$IsTodayArr = array();
$IsTodayArr['username'] = $PowerBB->_CONF['member_row']['username'];
$IsTodayArr['date'] = $PowerBB->_CONF['date'];
$IsToday = $PowerBB->online->IsToday($IsTodayArr);
////////////
// Member isn't exists in today table , so insert the member
if (!$IsToday)
{
واستبدله بـ :
CODE
// Ok , now we check if this member is exists in today list
if (!$PowerBB->online->IsToday(array('where' => array('username',$PowerBB->_CONF['member_row']['username']))))
{
// Member isn't exists in today table , so insert the member
اغلق الملف واحفظه ..
---------------------------------
(الخطوة الرابعة)
حرر ملف : engine/
Engine.class.php
وابحث عن (السطر 268) :
CODE
$this->_CONF['day'] = date('D');
ضع اسفله :
CODE
$online_date = mktime(0,0,0,date("m"),date("d")-1,date("Y"));
$online_day = date("Y/m/d", $online_date);
$this->_CONF['online_day'] = $online_day;
أنتهى ..
يمكنك تعديل عدد الأيام من الكود
CODE
$online_date = mktime(0,0,0,date("m"),date("d")-1,date("Y"));
الكود تجده في الأستبدال الأخير (اخر خطوة الخطوة الرابعة)
( لبقاء المتواجدين يومان )
CODE
date("d")-1
( ثلاث ايام )
CODE
date("d")-2
(أربع ايام وهكذا .. )
CODE
date("d")-3
طبعاً لايتم ملاحظة بقاء المتواجدين بعد تركيب الهاك مباشرة يلزمك 24 ساعة بعد تركيبه