دیتالایف انجین فارسی

نمایش وضعیت آنلاین و آفلاین کاربر

تاریخ انتشار: 17 فروردین 1391
ارسال کننده: IMP
بوسیله این هک میتوانید وضعیت آنلاین و یا آفلاین بودن کاربر را در قسمت نظرات، پروفایل کاربر، پیغامهای خصوصی و پنجره پاپ آپ مشخصات کاربر به نمایش بگذارید.
  • آموزش نصب
۱. ابتدا فایل index.php را با ویرایشگر باز کرده، کد زیر را پیدا کرده:
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );

۲. بعد از آن، کد زیر را قرار دهید:
$fuser_status = '';
$timer = 10;
$fuser_status = ((time() + ($config['date_adjust']*60)) < ($member_id['lastdate'] + ($timer*60))) ? $request_online=false : $request_online=true;

if ( $is_logged AND $request_online ) $db->query("UPDATE " . USERPREFIX . "_users SET lastdate = '".time()."' WHERE user_id = '$member_id[user_id]'");

برای نمایش وضعیت در قسمت نظرات.
۱. فایل engine/modules/show.full.php را باز کرده و کد زیر را پیدا کرده:
reg_date, signature

۲ کد زیر را با کد بالا جا به جا کنید:
reg_date, signature, lastdate

۳. فایل engine/classes/comments.class.php را باز کرده، کد زیر را پیدا کنید:
else $tpl->set( '{ip}', '' );

۴. کد زیر را پس از کد بالا قرار دهید:
$fuser_status = '';
$timer = 10;
$dtime_1 = ( time() + ($config['date_adjust']*60) - ($timer*60) );
$dtime_2 = ( time() + ($config['date_adjust']*60) + ($timer*60) );
if( $row['lastdate'] > $dtime_1 AND $row['lastdate'] < $dtime_2 ) $tpl->set('{statuson}', "<font color=\"green\">آنلاین</font>"); else $tpl->set('{statuson}', "<font color=\"red\">آفلاین</font>");

۵. فایل engine/modules/lastcomments.php باز کرده، کد زیر را پیدا کنید:
is_register, name,

۶. کد زیر را با کد بالا جا به جا کنید:
is_register, name, lastdate,

۷. کد زیر را در جای مناسب در فایل comments.tpl قرار دهید:
{statuson}

کار نصب به اتمام رسیده است، اما اگر نیاز دارید تا وضعیت کاربر را در قسمت های دیگر هم به نمایش بگذارید، مراحل زیر را دنبال کنید.
نمایش وضعیت در پروفایل کاربر.
۱. فایل engine/modules/profile.php را باز کرده و کد زیر را پیدا کنید:
$tpl->load_template( 'userinfo.tpl' );
while ( $row = $db->get_row( $sql_result ) ) {
$user_found = TRUE;

۲. کد زیر را پس از کد بالا قرار دهید:
$fuser_status = '';
$timer = 10;
$dtime_1 = ( time() + ($config['date_adjust']*60) - ($timer*60) );
$dtime_2 = ( time() + ($config['date_adjust']*60) + ($timer*60) );
if( $row['lastdate'] > $dtime_1 AND $row['lastdate'] < $dtime_2 ) $tpl->set('{statuson}', "<font color=\"green\">آنلاین</font>"); else $tpl->set('{statuson}', "<font color=\"red\">آفلاین</font>");

۳. کد زیر را در فایل userinfo.tpl قرار دهید:
{statuson}

نمایش وضعیت کاربر در پیغامهای خصوصی.
۱. ابتدا فایل engine/modules/pm.php را با ویرایشگر باز کرده و کد زیر را پیدا کنید:
reg_date, signature

۲. کد زیر را با کد بالا جه به جا کنید:
reg_date, signature, lastdate

۳. کد زیر را پیدا کرده:
else $tpl->set( '{registration}', '--' );

۴. کد زیر را بعد از کد بالا قرار دهید:
$fuser_status = '';
$timer = 10;
$dtime_1 = ( time() + ($config['date_adjust']*60) - ($timer*60) );
$dtime_2 = ( time() + ($config['date_adjust']*60) + ($timer*60) );
if( $row['lastdate'] > $dtime_1 AND $row['lastdate'] < $dtime_2 ) $tpl->set('{statuson}', "<font color=\"green\">آنلاین</font>"); else $tpl->set('{statuson}', "<font color=\"red\">آفلاین</font>");

۵. کد زیر را در فایل pm.tpl در جای مناسب ما بین تگهای [readpm]...[/readpm] قرار دهید:
{statuson}

نمایش وضعیت کاربر در پنجره پاپ آپ مشخصات کاربر.
۱. فایل engine/ajax/profile.php را با ویرایشگر باز کنید و کد زیر را پیدا کنید:
$tpl->set( '{rate}', userrating( $row['name'] ) );

۲. کد زیر را پس از کد بالا قرار دهید:
$fuser_status = '';
$timer = 10;
$dtime_1 = ( time() + ($config['date_adjust']*60) - ($timer*60) );
$dtime_2 = ( time() + ($config['date_adjust']*60) + ($timer*60) );
if( $row['lastdate'] > $dtime_1 AND $row['lastdate'] < $dtime_2 ) $tpl->set('{statuson}', "<font color=\"green\">آنلاین</font>"); else $tpl->set('{statuson}', "<font color=\"red\">آفلاین</font>");

۳. کد زیر را در فایل profile_popup.tpl قرار دهید:
{statuson}
14 نفر (14 کاربر و 0 میهمان) از این مطلب تشکر کرده اند.
تشکر
عضو سایت
18 فروردین 1391 - 09:45
آقا ممنون
یه مشکلی هست کد {statuson} رو تو هر قسمتی میگذارم به صورت لوزی علامت سوال نمایش داده میشه

--------------------
مدیر بازنشسته
18 فروردین 1391 - 12:06
niaz,
شما باید فایلی که توش ویرایش رو انجام دادین و کد های که برای نصب بود رو توی اون قرار دادین رو هم با انکودینگ UTF-8 ذخیره کنید.
عضو سایت
18 فروردین 1391 - 14:43
IMP,
عزیز دل اگه انکودینگ رو تغییر بدم کل قالبم به هم میریزه!!!
راه دیگه ای سراغ نداری؟
مثلا بشه از طریق فایل زبان آنلاین و آفلاین رو فراخوانی کرد؟
question

--------------------
مدیر بازنشسته
18 فروردین 1391 - 15:24
niaz,
راه دیگه هم هست، هک های جدا گونه هستند، اما بهترینش که من تست کردم این هست. شما هم باید انکودینگ فایلهایی که تغییر میدین رو عوض کنید، مثل فایل engine/modules/show.full.php، نه اینکه انکودینگ فایل قالبتون رو. به هر حال این هک کاملا سالم بید و بدون مشکل کار میکند. feel
مدیر سایت
19 فروردین 1391 - 09:28
خیلی خوب بود ممنونم
happy

--------------------
عضو سایت
12 اردیبهشت 1391 - 16:27
flower
عضو سایت
18 آبان 1391 - 15:51
سلام IMP
آیا میشه این ماژول تغییراتی داد که این شکلی نشون بده؟
لینک عکس
مدیر بازنشسته
18 آبان 1391 - 16:20
raadbux,
خیر، برای این کار باید ماژول نوشته بشه. البته میتونید از همین هک هم استفاده کنید و با ایجاد تغییرات، فقط گروه های کاربری خاصی رو نشون بدید و ...
عضو سایت
24 آذر 1391 - 02:16
ممنون
تو 9.5 انجام دادم میاد فقط در هر صورت میزنه آفلاین . مشکل از کجا میتونه باشه ؟
مدیر سایت
25 آذر 1391 - 09:43
كاربران عزیز توجه داشته باشید كه این ماژول به صورت پیش فرض در 9.6 به بعد نصبه و احتیاجی به نصب اون نیست
myMJJ,
من خودم الان روی 9.5 دارم استفاده میكنم شما بررسی كن ببین كجا رو اشتباه كردی
در ضمن این نكته رو هم بگم كه این ماژول فقط در مدت زمان محدودی كاربری رو كه فعالیت در سایت نكنه رو آنلاین در نظر میگیره
برای افزایش این محدودیت در موقع نصب مقدار متغیر زیر رو به عدد دلخواه افزایش دهید
$timer = 10;

تا یادم نرفته بگم این عدد برحسب دقیقه ست
موفق باشید flower

--------------------
جهت ارسال نظر، فرم زیر را تکمیل نمائید:
نام:*
ایمیل:*
متن نظر:

 
پررنگکج خط دارخط دار در وسط|سمت چپوسط سمت راست|قرار دادن شکلکانتخاب رنگ|پنهان کردن متنقراردادن نقل قولتبدیل نوشته ها به زبان روسیقراردادن Spoiler
کد امنیتی: *