snoopboys
Member
به نام خدا .
امروز برای دوستان آموزش ساخت آخرین ارسالهای انجمن به صورتی که در این تاپیک عنوان شده رو آماده کردم .
ابتدا از دوستان عذر خواهی میکنم ، به خاطر اینکه وقت نداشتم این آموزش رو به صورت بسته و آماده در اختیار دوستان قرار بدم .
آموزش :
برای ساخت آخرین ارسالها به صورتی که در عکس نمایش داده شده به ترتیبی که در زیر عنوان خواهم کرد ، فایلهای قالب خود را ویرایش کنید :
1 - ابتدا فایل Sources/Recent.php را در پوشه ای فروم شما نصب شده را ادیت میکنیم :
پیدا کنید :
و جایگزین کنید :
پیدا کنید :
و اضافه کنید بعد از آن :
در این قسمت فایل BoardIndex.template.php را ویرایش می کنیم :
(( نکته : توجه داشته باشید این فایل مربوط به قالب شما میشود . یعنی مثلا نام قالب شما "VB" است شما باید فایل Themes/VB/BoardIndex.template.php را ویرایش کنید.))
پیدا کنید :
و جایگزین کنید :
و مجدد پیدا کنید :
جایگزین کنید :
در قسمت بعدی فایل Sources/ModSettings.php را ویرایش می کنیم :
پیدا کنید :
اضافه کنید بعد از آن :
فایل Themes/default/languages/ModSettings.persian.php :
پیدا کنید :
جایگزین کنید:
کار به پایان رسیده ! تبریک میگم
فقط دوستان توجه داشته باشن باید مقدار "تعداد آخرین ارسال های نمایش داده شده در صفحه اول انجمن ها :" را در قسمت "تنظيمات قالب جاري" حتما به مقدار دلخواه تغییر دهند.
موفق باشید !
اگر سوالی بود در همین تاپیک عنوان کنید.
یاعلی

امروز برای دوستان آموزش ساخت آخرین ارسالهای انجمن به صورتی که در این تاپیک عنوان شده رو آماده کردم .
ابتدا از دوستان عذر خواهی میکنم ، به خاطر اینکه وقت نداشتم این آموزش رو به صورت بسته و آماده در اختیار دوستان قرار بدم .
آموزش :
برای ساخت آخرین ارسالها به صورتی که در عکس نمایش داده شده به ترتیبی که در زیر عنوان خواهم کرد ، فایلهای قالب خود را ویرایش کنید :
1 - ابتدا فایل Sources/Recent.php را در پوشه ای فروم شما نصب شده را ادیت میکنیم :
پیدا کنید :
کد:
global $scripturl, $txt, $db_prefix, $user_info, $modSettings, $func;
// Find all the posts. Newer ones will have higher IDs. (assuming the last 20 * number are accessable...)
// !!!SLOW This query is now slow, NEEDS to be fixed. Maybe break into two?
$request = db_query("
SELECT
m.posterTime, m.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG,
IFNULL(mem.realName, m.posterName) AS posterName, t.ID_BOARD, b.name AS bName,
LEFT(m.body, 384) AS body, m.smileysEnabled
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
WHERE m.ID_MSG >= " . max(0, $modSettings['maxMsgID'] - 20 * $showlatestcount) . "
AND t.ID_TOPIC = m.ID_TOPIC
AND b.ID_BOARD = t.ID_BOARD" . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? "
AND b.ID_BOARD != $modSettings[recycle_board]" : '') . "
AND $user_info[query_see_board]
ORDER BY m.ID_MSG DESC
LIMIT $showlatestcount", __FILE__, __LINE__);
و جایگزین کنید :
کد:
global $scripturl, $txt, $db_prefix, $user_info, $modSettings, $func, $settings, $ID_MEMBER;
// Find all the posts. Newer ones will have higher IDs. (assuming the last 20 * number are accessable...)
// !!!SLOW This query is now slow, NEEDS to be fixed. Maybe break into two?
if (!empty($modSettings['recent_topics']) && $modSettings['recent_topics']){
$request = db_query("
SELECT
m.posterTime, ms.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, b.ID_BOARD, b.name AS bName,
IFNULL(mem.realName, m.posterName) AS posterName, " . ($user_info['is_guest'] ? '1 AS isRead, 0 AS new_from' : '
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= m.ID_MSG_MODIFIED AS isRead,
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ", LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon, t.numReplies, t.numViews
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b, {$db_prefix}messages AS ms)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)" . (!$user_info['is_guest'] ? "
LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = b.ID_BOARD AND lmr.ID_MEMBER = $ID_MEMBER)" : '') . "
WHERE t.ID_LAST_MSG >= " . ($modSettings['maxMsgID'] - 35 * min($showlatestcount, 5)) . "
AND t.ID_LAST_MSG = m.ID_MSG
AND b.ID_BOARD = t.ID_BOARD" . (empty($exclude_boards) ? '' : "
AND b.ID_BOARD NOT IN (" . implode(', ', $exclude_boards) . ")") . "
AND $user_info[query_see_board]
AND ms.ID_MSG = t.ID_FIRST_MSG
ORDER BY t.ID_LAST_MSG DESC
LIMIT $showlatestcount", __FILE__, __LINE__);
} else {
$request = db_query("
SELECT
m.posterTime, m.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG,
IFNULL(mem.realName, m.posterName) AS posterName, t.ID_BOARD, b.name AS bName,
LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon, t.numViews, t.numReplies
FROM ({$db_prefix}messages AS m, {$db_prefix}topics AS t, {$db_prefix}boards AS b)
LEFT JOIN {$db_prefix}members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
WHERE m.ID_MSG >= " . max(0, $modSettings['maxMsgID'] - 20 * $showlatestcount) . "
AND t.ID_TOPIC = m.ID_TOPIC
AND b.ID_BOARD = t.ID_BOARD" . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? "
AND b.ID_BOARD != $modSettings[recycle_board]" : '') . "
AND $user_info[query_see_board]
ORDER BY m.ID_MSG DESC
LIMIT $showlatestcount", __FILE__, __LINE__);
}
پیدا کنید :
کد:
),
'topic' => $row['ID_TOPIC'],
کد:
'icon' => file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.gif') ? $settings['images_url'] . '/post/' . $row['icon'] . '.gif' : $settings['default_images_url'] . '/post/' . $row['icon'] . '.gif',
'views' => $row['numViews'],
'replies' => $row['numReplies'],
(( نکته : توجه داشته باشید این فایل مربوط به قالب شما میشود . یعنی مثلا نام قالب شما "VB" است شما باید فایل Themes/VB/BoardIndex.template.php را ویرایش کنید.))
پیدا کنید :
کد:
<table cellpadding="0" cellspacing="0" width="100%" border="0">';
کد:
<table cellpadding="0" cellspacing="1" width="100%" border="0">
<tr>
<td class="catbg2" style="text-align:right;" colspan="2">', $txt[70] ,'</td>
<td class="catbg2" style="text-align:center;">', $txt[110] ,'</td>
<td class="catbg2" style="text-align:center;">', $txt[301] ,'</td>
<td class="catbg2" style="text-align:center;">', $txt[20] ,'</td>
<td class="catbg2" style="text-align:center;">', $txt[29] ,'</td>
<td class="catbg2" style="text-align:center;">', $txt[317] ,'</td>
</tr>';
و مجدد پیدا کنید :
کد:
foreach ($context['latest_posts'] as $post)
echo '
<tr>
<td class="middletext" valign="top"><b>', $post['link'], '</b> ', $txt[525], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</td>
<td class="middletext" align="right" valign="top" nowrap="nowrap">', $post['time'], '</td>
</tr>';
کد:
$cnt = 0;
foreach ($context['latest_posts'] as $post){
$cnt++;
$class = ($cnt % 2) ? 'windowbg' : 'windowbg2';
echo '
<tr>
<td class="', $class, '"><img src="', $post['icon'] , '" alt="" /></td>
<td class="', $class, '"" title="', $post['preview'] ,'">', $post['link'], '</td>
<td class="', $class, '"" style="text-align:center;">', $post['replies'], '</td>
<td class="', $class, '"" style="text-align:center;">', $post['views'], '</td>
<td class="', $class, '"" style="text-align:center;">',$post['board']['link'], '</td>
<td class="', $class, '"" style="text-align:center;">',$post['poster']['link'], '</td>
<td class="', $class, '"" style="text-align:right;" nowrap="nowrap">', $post['time'], '</td>
</tr>';
}
در قسمت بعدی فایل Sources/ModSettings.php را ویرایش می کنیم :
پیدا کنید :
کد:
// Who's online.
array('check', 'who_enabled'),
اضافه کنید بعد از آن :
کد:
'',
// Recent topics ?
array('check', 'recent_topics',null, &$txt['recent_topics']),
فایل Themes/default/languages/ModSettings.persian.php :
پیدا کنید :
کد:
?>
جایگزین کنید:
کد:
$txt['recent_topics'] = 'Show recent topics instead of recent posts';
کار به پایان رسیده ! تبریک میگم
فقط دوستان توجه داشته باشن باید مقدار "تعداد آخرین ارسال های نمایش داده شده در صفحه اول انجمن ها :" را در قسمت "تنظيمات قالب جاري" حتما به مقدار دلخواه تغییر دهند.
موفق باشید !
اگر سوالی بود در همین تاپیک عنوان کنید.
یاعلی