主题列表

燃烧的冰2019-12-28  2.4K+

列表不区分门户和扁平,直接显示当前版块数据、当前版块主题数据和当前版块的自定义标签主题数据。

 

对应的文件 view/htm/list.htm

 

当前版块数据包括:版块公告、版块介绍、版块主题数量,今日主题数量,今日评论数量。

当前版块数据对应的变量名 $forum

 

// ----版块公告代码----

<?php if($forum['announcement']) { ?>
        <div class="card card-mod-info">
            <div class="card-body">
                <h6 class="card-title">
                    <?php echo lang('forum_anouncement');?>:
                </h6>
                <p class="small">
                    <?php echo $forum['announcement'];?>
                </p>
            </div>
        </div>
<?php  } ?>

版块其他数据

<div class="card-site-info bg-white shadow">
    <!--{hook list_site_brief_before.htm}-->
    <div class="mx-3 pt-3">
        <h5 class="text-center">
            <?php echo $forum['name'];?>
        </h5>
        <div class="small line-height-3">
            <?php echo $forum['brief'];?>
        </div>
    </div>
    <!--{hook list_site_brief_middle.htm}-->
    <div class="card-footer p-2">
        <table class="w-100 small">
            <tr align="center">
                <td>
                    <span class="text-muted">
                        <?php echo lang('threads');?>
                    </span>
                    <br>
                    <b>
                        <?php echo $forum['threads'];?>
                    </b>
                </td>
                <td>
                    <span class="text-muted">
                        <?php echo lang('today_comment');?>
                    </span>
                    <br>
                    <b>
                        <?php echo $forum['todayposts'];?>
                    </b>
                </td>
                <td>
                    <span class="text-muted">
                        <?php echo lang('today_threads');?>
                    </span>
                    <br>
                    <b>
                        <?php echo $forum['todaythreads'];?>
                    </b>
                </td>
                <!--{hook list_todaythreads_after.htm}-->
            </tr>
        </table>
    </div>
    <!--{hook list_site_brief_end.htm}-->
</div>

<!--{hook ***}--> 这种为hook使用的钩子,个人模板可去掉。

 

主题列表对应的变量命名 $threadlist

 

此文件加载了公用列表文件 thread_list.inc.htm 可根据自己的需要修改成自己的样式,复制一份该文件到自己的模板目录,然后加载该文件。加载方法

<ul class="threadlist list-group list-group-flush shadow">
    <!--{hook list_main_threadlist_before.htm}-->
    <?php include _include(APP_PATH . 'view/htm/thread_list.inc.htm');?>
    <!--{hook list_main_threadlist_after.htm}-->
</ul>

demo为自己的模板目录,加载时路径和文件名必须正确。

 

// ----前台管理代码,不需要前台管理可删除----

<?php include _include(APP_PATH.'view/htm/thread_list_mod.inc.htm');?>

 

自定义标签主题数据对应的变量名 $flaglist 循环输出设置为显示的自定义标签和标签下主题,单独调用自定义标签主题,请看 自定义调用 这篇内容

<?php if($flaglist){foreach($flaglist as $_flag) { ?>
<div class="shadow mt-3">
    <div class="card-header bg-light">
        <h3 class="font-weight-bold my-0">
            <a href="<?php echo $_flag['url'];?>" title='<?php echo $_flag['name'];?>' aria-label='<?php echo $_flag['name'];?>'>
            <?php echo $_flag['name']; ?>
            </a>
        </h3>
    </div>
    <ul class="list-group list-group-flush nowrap">
        <?php if(isset($_flag['list'])){foreach($_flag['list'] as $_thread) { ?>
        <li class="list-group-item bg-white">
            <h4 class="my-0">
                <a href="<?php echo $_thread['url'];?>" class="d-block ellipsis" <?php echo (10==$_thread['type']?'rel="nofollow" target="_blank"':''); ?> title='<?php echo $_thread['subject'];?>' aria-label='<?php echo $_thread['subject'];?>'>
                <?php echo $_thread['subject'];?>
                </a>
            </h4>
        </li>
        <?php }} ?>
    </ul>
</div>
<?php }} ?>

 

// ----页头导航所在版块高亮 ----

/* 这段js是指定页头导航当前版块所在导航处高亮 nav对应页头导航的id="nav" li是<ul><li><a>超链接</a></li></ul> 具体请自行参照官方默认页头 view/htm/header_nav.inc.htm */
<script>
     $('#nav li[data-active="fid-<?php echo $fid;?>"]').addClass('active'); 
</script>


加载公用的页头和页脚,这个页面就完成了。不懂php没关系,只要懂bootstrap和html、css就可以了,把官方 htm 文件里的php代码复制过去即可。

 

默认列表排序翻页,模板中调用如下代码。

<?php if ($pagination) { ?>
        <nav class="my-3">
            <ul class="pagination justify-content-center flex-wrap">
                <?php echo $pagination; ?>
            </ul>
        </nav>
<?php } ?>

 

可以单独调用上一页和下一页翻页,模板中可调用如下代码

<?php if ($pagination) { ?>
        <nav class="my-3">
            <ul class="pagination justify-content-center flex-wrap">
                <?php echo pager($page_url, $num, $page, $pagesize); ?>
            </ul>
        </nav>
<?php } ?>
0