مرجع پارسی MyBB

نسخه‌ی کامل: نمایش آواتار در لیست موضوع ها بدون پلاگین
شما درحال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب‌بندی مناسب.
با درود
برای اینکه بتوانیم آواتار را در لیست موضوع ها نمایش دهیم راهی هست و آن استفاده از پلاگین است ولی این بهترین گزینه نیست (به دلیل کوئری های زاید) راه کاری را برای دوستان قرار میدهم بدون استفاده از پلاگین . نتیجه ی کار را در لوکال آزمایش کردم و تصویر پیوستی را می توانید ببینید . در ضمن در لیست موضوع های تالار میدوری هم البته با کمی ویژه سازی این راه کار دیده می شود .

توجه : برای انجام کار باید دستی بر آتش داشته باشید و دوستانی که زیاد وارد نیستند دست به این کار نزنند و یا اینکه قبل از انجام این قبیل کارها باید بک آپ از کدهای مورد هدف بگیرند تا در صورت بهم ریختگی در کار , بازگشت به حالت قبل را داشته باشند .
مطلب دوم اینکه این کدها را درصورتی که قالبتان دست نخورده باشد (که بعید است) بصورت یکجا جایگزین کنید ولی اگر خصوصی سازی کرده اید باید فقط کدهای جدید را در بخش مربوطه جایگذاری کنید .

=============
[attachment=8255]
=============
اگر علاقه مند شدید کارهای زیر را باید انجام دهید .

گام نخست : در روت سایتتان فایل forumdisplay.php را پیدا کرده و توسط ویرایشگر باز کنید و کدهای زیر را پیدا کنید

کد php:
$query $db->query("
        SELECT t.*, 
{$ratingadd}t.username AS threadusername, u.username
        FROM "
.TABLE_PREFIX."threads t
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid = t.uid)
        WHERE t.fid='
$fid$tuseronly $tvisibleonly $datecutsql2
        ORDER BY t.sticky DESC, 
{$t}{$sortfield} $sortordernow $sortfield2
        LIMIT 
$start$perpage
    "
); 

کدهای زیر را جایگزین کدهای بالا کنید

کد php:
$query $db->query("
        SELECT t.*, 
{$ratingadd}t.username AS threadusername, u.username, u.avatar, lp.avatar AS lpavatar
        FROM "
.TABLE_PREFIX."threads t
        LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid = t.uid)
        LEFT JOIN "
.TABLE_PREFIX."users lp ON (lp.uid=t.lastposteruid) WHERE t.fid='$fid$tuseronly $tvisibleonly $datecutsql2
        ORDER BY t.sticky DESC, 
{$t}{$sortfield} $sortordernow $sortfield2
        LIMIT 
$start$perpage
    "
); 

گام دوم : در همان فایل کدهای زیر را پیدا کنید

کد php:
$thread['pages'] = 0;
$thread['multipage'] = '';
$threadpages '';
$morelink '';
$thread['posts'] = $thread['replies'] + 1

در ابتدای کدهای بالا کدهای زیر را وارد کنید

کد php:
//avatar
     
if(!$thread['avatar']) {
     
$thread_avatar "<a href='member.php?action=profile&uid={$thread['uid']}'><img src='images/default_avatar.gif' alt='' title='{$thread['username']}' /></a>";
     }
     else
     {
     
$thread_avatar "<a href='member.php?action=profile&uid={$thread['uid']}'><img src='{$thread['avatar']}' alt='' title='{$thread['username']}' /></a>";
     }     
     if(!
$thread['lpavatar']) {
     
$thread_lpavatar "<a href='member.php?action=profile&uid={$thread['lastposteruid']}'><img src='images/default_avatar.gif' alt='' title='{$thread['lastposter']}' />";
     }
     else
     {
     
$thread_lpavatar "<a href='member.php?action=profile&uid={$thread['lastposteruid']}'><img src='{$thread['lpavatar']}' alt='' title='{$thread['lastposter']}' />";
     }
//avatar end 

فایل مربوطه را ذخیره کنید و ببندید.
گام سوم : به مسیر زیر بروید
کنترل پنل مدیریت > قالب ها و پوسته > قالب ها > قالب مورد نظر > Forumdisplay > بخش Forumdisplay_thread
و کدهای زیر را پیدا کنید

کد php:
<div>
            <
span>{$prefix} {$gotounread}{$thread['threadprefix']}<a href="{$thread['threadlink']}class ="{$inline_edit_class} {$new_class}id="tid_{$inline_edit_tid}">{$thread['subject']}</a>{$thread['multipage']}</span>
            <
div class ="author smalltext">{$thread['profilelink']}</div>
        </
div

و کدهای زیر را جایگزین همه ی کد های بالا کنید (به مطلب دوم در یادداشت بالا توجه کنید)

کد php:
<div>
            <
table><tr><td id="tvatar1">{$thread_avatar}</td><td>{$prefix} {$gotounread}{$thread['threadprefix']}<a href="{$thread['threadlink']}class ="{$inline_edit_class} {$new_class}id="tid_{$inline_edit_tid}">{$thread['subject']}</a>{$thread['multipage']}<br> {$thread['profilelink']}</td></tr></table>
        </
div

گام چهارم : در همین بخش یعنی مسیر
کنترل پنل مدیریت > قالب ها و پوسته > قالب ها > قالب مورد نظر > Forumdisplay > بخش Forumdisplay_thread
کدهای زیر را پیداکنید

کد php:
<td class ="{$bgcolor}{$thread_type_class}style="white-space: nowrap; text-align: right;">
        <
span class ="lastpost smalltext">{$lastpostdate} {$lastposttime}<br />
        <
a href="{$thread['lastpostlink']}">{$lang->lastpost}</a>: {$lastposterlink}</span>
    </
td

و کدهای زیر را جایگزین همه ی کد های بالا کنید (به مطلب دوم در یادداشت بالا توجه کنید)

کد php:
<td class ="{$bgcolor}{$thread_type_class}style="white-space: nowrap; text-align: right;">
<
table>
<
tr>
<
td class ="tvatar_lastpost">{$thread_lpavatar}</td>
<
td>
        <
span class ="lastpost smalltext">{$lastpostdate} {$lastposttime}<br />
        <
a href="{$thread['lastpostlink']}">{$lang->lastpost}</a>: {$lastposterlink}</span>
</
td>
</
tr>
</
table>
    </
td

گام آخر : به مسیر زیر بروید
کنترل پنل مدیریت > قالب ها و پوسته > پوسته ها > پوسته مورد نظر > بخش global.css
و در انتها , کدهای زیر را وارد کنید

کد php:
#tvatar1 img {
background-colorrgb(252252255);
padding2px;
border1px solid #a5cae4;
border-radius4px;
max-height36px;
max-width36px;
}

.
tvatar_lastpost img {
background-colorrgb(252252255);
padding2px;
border1px solid #a5cae4;
border-radius4px;
max-height26px;
max-width26px;


کار تمام است . امید که بکار بیاید .
منبع : تالار میدوری و با سپاس از دوست خوبم marcus_avrelius
با سلام

دست شما درد نکنه و خسته نباشید جناب میدوری +1 برای شما
برای اولین نفر این کد رو تست کردم، به درستی کار کرد و آواتار رو به نمایش در اورد، فقط دوستان نیاید بنویسید که من کد رو قرار دادم ولی کار نمیکنه، من کد رو قرار دادم صفحه اصلی انجمن بهم ریخت و.....

راستی نوت پد هم یادتون نره Wink
من هر کاری کردم نتونستم آواتار آخرین ارسال کننده رو در صفحه اصلی انجمن اجرا کنم، حتی متغییر هم کمی ویرایش کردم و یک متغییر هم برای اینکار نوشتم ولی بازم جواب نداد Huh
اگر ممکنه یک وقت بزارید و قابلیت نمایش در صفحه اصلی هم به این کدها اضافه کنید چون بسیار جالب است

پیشاپیش سپاس Heart