PHPBB3 - 无法获得显示最新帖子标题的主题

时间:2014-10-18 18:55:52

标签: phpbb phpbb3

我最近制作了自己的PHPBB板并立即找到了一个主题,爱上了它,并开始定制它。好吧,在发布后不久,我意识到主题从未在" Last Post"下显示帖子标题。董事会的一栏。我做了一些挖掘,发现我必须编辑主题" viewforum_body.html"文件是为了让它显示,使用不同的变量,即" fourmrow.LAST_POST_SUBJECT"。

不幸的是,似乎无论我在哪里或如何插入它,它都不会起作用。作为参考,我使用的是ProGlass主题,这里是" viewforum_body.html"的代码块。这似乎与#34; Last Post"列。

<!-- IF topicrow.S_FIRST_ROW or not topicrow.S_TOPIC_TYPE_SWITCH -->
    <div class="forumbg<!-- IF topicrow.S_TOPIC_TYPE_SWITCH and (topicrow.S_POST_ANNOUNCE or topicrow.S_POST_GLOBAL) --> announcement<!-- ENDIF -->">
    <div class="inner"><span class="corners-top"><span></span></span>
    <ul class="topiclist">
        <li class="header">
            <dl class="icon">
                <dt><!-- IF S_DISPLAY_ACTIVE -->{L_ACTIVE_TOPICS}<!-- ELSEIF topicrow.S_TOPIC_TYPE_SWITCH and (topicrow.S_POST_ANNOUNCE or topicrow.S_POST_GLOBAL) -->{L_ANNOUNCEMENTS}<!-- ELSE -->{L_TOPICS}<!-- ENDIF --></dt>
                <dd class="posts">{L_REPLIES}</dd>
                <dd class="views">{L_VIEWS}</dd>
                <dd class="lastpost"><span>{L_LAST_POST}</span></dd>
            </dl>
        </li>
    </ul>
    <ul class="topiclist topics">
<!-- ENDIF -->

    <li class="row<!-- IF topicrow.S_ROW_COUNT is even --> bg1<!-- ELSE --> bg2<!-- ENDIF --><!-- IF topicrow.S_POST_GLOBAL --> global-announce<!-- ENDIF --><!-- IF topicrow.S_POST_ANNOUNCE --> announce<!-- ENDIF --><!-- IF topicrow.S_POST_STICKY --> sticky<!-- ENDIF --><!-- IF topicrow.S_TOPIC_REPORTED --> reported<!-- ENDIF -->">
        <dl class="icon" style="background-image: url({topicrow.TOPIC_FOLDER_IMG_SRC}); background-repeat: no-repeat;">
            <dt<!-- IF topicrow.TOPIC_ICON_IMG and S_TOPIC_ICONS --> style="background-image: url({T_ICONS_PATH}{topicrow.TOPIC_ICON_IMG}); background-repeat: no-repeat;"<!-- ENDIF --> title="{topicrow.TOPIC_FOLDER_IMG_ALT}"><!-- IF topicrow.S_UNREAD_TOPIC --><a href="{topicrow.U_NEWEST_POST}">{NEWEST_POST_IMG}</a> <!-- ENDIF --><a href="{topicrow.U_VIEW_TOPIC}" class="topictitle">{topicrow.TOPIC_TITLE}</a>
                <!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED --><a href="{topicrow.U_MCP_QUEUE}">{topicrow.UNAPPROVED_IMG}</a> <!-- ENDIF -->
                <!-- IF topicrow.S_TOPIC_REPORTED --><a href="{topicrow.U_MCP_REPORT}">{REPORTED_IMG}</a><!-- ENDIF --><br />
                <!-- IF topicrow.PAGINATION --><strong class="pagination"><span>{topicrow.PAGINATION}</span></strong><!-- ENDIF -->
                <!-- IF topicrow.ATTACH_ICON_IMG -->{topicrow.ATTACH_ICON_IMG} <!-- ENDIF -->{L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME}
            </dt>
            <dd class="posts">{topicrow.REPLIES} <dfn>{L_REPLIES}</dfn></dd>
            <dd class="views">{topicrow.VIEWS} <dfn>{L_VIEWS}</dfn></dd>
            <dd class="lastpost"><span><dfn>{L_LAST_POST}</dfn>{L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL}
                <!-- IF not S_IS_BOT --><a href="{topicrow.U_LAST_POST}">{LAST_POST_IMG}</a> <!-- ENDIF --><br />{topicrow.LAST_POST_TIME}</span>
            </dd>
        </dl>
    </li>    

如果有人可以提供帮助,我将非常感激。

1 个答案:

答案 0 :(得分:0)

ProGlass没有自己的forumlist_body.html文件,因此您需要编辑继承自ProSilver的文件。不要通过ACP编辑器进行编辑,因为清除缓存时文件将恢复为标准状态。下载它们,在适当的文本编辑器中编辑它们,可以将文件保存为没有BOM的UTF8,然后使用正确的FTP客户端上传编辑过的文件 - 不要使用主机文件传输,因为这有时会破坏文件。

在进行任何更改后,请勿忘记在ACP中使用CACHE!

取自phpBB dev wiki(https://www.phpbb.com/kb/article/adding-last-posts-subject-to-index/)......

phpBB已经包含一个模板变量,用于在索引页面上显示最后一个帖子的主题,但目前尚未使用。如果主题大于10或15个字符,则主题可以跨越2行或更多行。本文将解释如何不仅将主题添加到索引页面,而且如果它超过10个字符,则缩短它。

首先,打开/includes/functions_display.php并找到:

'LAST_POST_SUBJECT'      => censor_text($last_post_subject),

将该行替换为:

'LAST_POST_SUBJECT'      => (utf8_strlen(censor_text($last_post_subject)) > 10) ? utf8_substr(censor_text($last_post_subject), 0, 10) . '...' : censor_text($last_post_subject),

对于基于prosilver的样式:

打开/styles/prosilver/template/forumlist_body.html并查找(请注意以下代码是更大行的一部分):

<dfn>{L_LAST_POST}</dfn>

在上面文字的同一行,添加:

{forumrow.LAST_POST_SUBJECT}<br />

整行应如下所示:

<!-- IF forumrow.LAST_POST_TIME -->{forumrow.LAST_POST_SUBJECT}<br /><dfn>{L_LAST_POST}</dfn> {L_POST_BY_AUTHOR} {forumrow.LAST_POSTER_FULL}

对于基于subsilver2的样式:

现在,打开/styles/subsilver2/template/forumlist_body.html并找到

<p class="topicdetails"><!-- IF forumrow.U_UNAPPROVED_TOPICS --><a href="{forumrow.U_UNAPPROVED_TOPICS}">{UNAPPROVED_IMG}</a>&nbsp;<!-- ENDIF -->{forumrow.LAST_POST_TIME}</p>

在该行之前的新行上添加

<p class="topicdetails">{forumrow.LAST_POST_SUBJECT}</p>

现在保存所有文件并清除缓存。