category.html

网址分类

标题相关代码

{if input('ks')}搜索“{:input('ks')}” - {/if}{:dingyi($c.name,'网址导航')} - {:set('title','set')}

上述代码用于设置页面标题。当存在名为 ks 的输入参数(即有搜索关键字)时,标题会显示“搜索‘[具体搜索关键字]’ - ” ,然后接着显示通过 dingyi 函数处理后的内容(第二个参数为默认值“网址导航”),最后加上通过 set 函数设置的标题内容。

搜索功能示例代码

<div class="form-container">
     {if input('ks')}<h2>搜索“{:input('ks')}”</h2>{else/}<h2>网址导航</h2>{/if}
    <form class="search-form" action="{:url('index/category')}" method="get">
        <input type="text" class="search-input" name="ks" placeholder="输入您要搜索的关键词..." autocomplete="off" value="{:input('ks')}">
        <button type="submit" class="submit-btn">立即搜索</button>
    </form>
</div>

此代码实现了一个搜索表单功能。当存在 ks 输入参数时,页面会显示搜索的具体关键字;否则显示“网址导航”。表单的提交地址为 index/category ,用户输入的搜索关键字会通过 ks 参数传递,并且输入框会回显已输入的关键字内容。

判断有无搜索关键字的代码

{if !input('ks')}
有搜索
{else/}
无搜索
{/if}

该代码通过判断 ks 输入参数是否存在,来决定显示“有搜索”还是“无搜索”的提示信息。

分类列表代码

<li class="nav-item">
    <a href="{:url('index/category')}" class="nav-link {if !input('id')}active{/if}">
        全部
    </a>
</li>
{volist name=":db_select('website_cate',['open'=>1],'20','px desc')" id="vo"}
<li class="nav-item">
    <a class="nav-link {if input('id') == $vo.id}active{/if}" href="{:url('index/category',['id'=>$vo.id])}">{$vo.name}</a>
</li>
{/volist}

此部分代码生成了一个分类列表导航。首先是一个“全部”分类项,当 id 输入参数不存在时,该项会被添加 active 类(通常用于表示选中状态)。然后通过循环从数据库中查询状态为打开(open=1)的前20条分类数据,并为每个分类生成一个列表项。当当前 id 输入参数与分类的 id 相同时,对应的分类项会被添加 active 类。

数据筛选及展示代码

<?php
    if($c['id']){
        $web = Db::name('website')->where(['open'=>1,'tid'=>$c['id']])->order('settop desc,id desc')->paginate([
            'list_rows'=> 20,
            'var_page' => 'page',
            'query'=>request()->param()
        ]);
    }else{
        $web = Db::name('website')->where(['open'=>1])->where('title|keywords', 'like', '%' . input('ks') . '%')->order('settop desc,id desc')->paginate([
            'list_rows'=> 20,
            'var_page' => 'page',
            'query'=>request()->param()
        ]);
    }
?>
{if count($web)}
    {volist name="$web" id="v"}
       {if $v.tips}{$v.tips}{/if} <!-- 自定义提示 -->
    {$v.ico} <!-- ico图标 -->
    {$v.title} <!-- 网址标题 -->
    {:cut(preg_replace('/###/is', '', $v.content), 40)} <!-- 40个字符网址描述 -->
    {:url('index/url', ['id' => $v.id])} <!-- 直接访问 -->
    {:url('index/website', ['id' => $v.id])} <!-- 查看详情 -->
    {if $v.settop == 1}置顶操作{/if}
    {/volist}
    {$web|raw}//分页代码
{else/}
    <div class='empty'>
        <img src='/public/static/img/empty.png'>
        <p>暂无数据</p>
    </div>
{/if}

上述PHP和模板代码用于数据筛选和展示。当 $c['id'] 存在时,从 website 表中筛选出状态为打开且属于指定分类(tid$c['id'])的数据,并按 settop 降序和 id 降序排列,进行分页处理(每页20条数据)。当 $c['id'] 不存在时,则根据 ks 输入参数,在 titlekeywords 字段中模糊匹配包含该关键字的数据进行同样的处理。如果查询到数据,则循环展示每条数据的相关信息(如提示、图标、标题等),并显示分页代码;如果没有查询到数据,则显示“暂无数据”的提示信息及对应的图片。

目录
设置
主题设置
深色模式
字体设置
字体大小
16