`

织梦 搜索页列表序号

阅读更多

首先找到 “include” 文件夹下的 arc.searchview.class.php 文件

 

已修改后的方法,可以直接调用 [field:global name=autoindex /]

/**
     *  获得文档列表
     *
     * @access    public
     * @param     int  $limitstart  限制开始  
     * @param     int  $row  行数 
     * @param     int  $col  列数
     * @param     int  $titlelen  标题长度
     * @param     int  $infolen  描述长度
     * @param     int  $imgwidth  图片宽度
     * @param     int  $imgheight  图片高度
     * @param     string  $achanneltype  列表类型
     * @param     string  $orderby  排列顺序
     * @param     string  $innertext  底层模板
     * @param     string  $tablewidth  表格宽度
     * @return    string
     */
    function GetArcList($limitstart=0,$row=10,$col=1,$titlelen=30,$infolen=250,
    $imgwidth=120,$imgheight=90,$achanneltype="all",$orderby="default",$innertext="",$tablewidth="100")
    {
        global $cfg_sphinx_article;
	$GLOBALS['autoindex'] = 0;
        $typeid=$this->TypeID;
        if($row=='') $row = 10;
        if($limitstart=='') $limitstart = 0;
        if($titlelen=='') $titlelen = 30;
        if($infolen=='') $infolen = 250;
        if($imgwidth=='') $imgwidth = 120;
        if($imgheight='') $imgheight = 120;
        if($achanneltype=='') $achanneltype = '0';
        $orderby = $orderby=='' ? 'default' : strtolower($orderby);
        $tablewidth = str_replace("%","",$tablewidth);
        if($tablewidth=='') $tablewidth=100;
        if($col=='') $col=1;
        $colWidth = ceil(100/$col);
        $tablewidth = $tablewidth."%";
        $colWidth = $colWidth."%";
        $innertext = trim($innertext);
        if($innertext=='')
        {
            $innertext = GetSysTemplets("search_list.htm");
        }
        
        if ($cfg_sphinx_article == 'Y')
        {
            $ordersql = '';
            if($this->ChannelType< 0 ||$this->ChannelTypeid< 0)
            {
                if($orderby=="id"){
                    $ordersql="@id desc";
                }else{
                    $ordersql="@senddate desc";
                }
            } else {
                if($orderby=="senddate")
                {
                    $ordersql="@senddate desc";
                }
                else if($orderby=="pubdate")
                {
                    $ordersql="@pubdate desc";
                }
                else if($orderby=="id")
                {
                    $ordersql="@id desc";
                }
                else
                {
                    $ordersql="@sortrank desc";
                }
            }
            
            $this->sphinx->SetLimits($limitstart, (int)$row, ($row>1000) ? $row : 1000);
            $res = array();
            $res = AutoCharset($this->sphinx->Query($this->Keywords, 'mysql, delta'), 'utf-8', 'gbk');
            
            foreach ($res['words'] as $k => $v) {
                $this->Keywords .= " $k";
            }
            foreach($res['matches'] as $_v) {
                $aids[] = $_v['id'];
            }
            
            $aids = @implode(',', $aids);
            
            //搜索
            $query = "SELECT arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
            act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
            FROM `#@__archives` arc LEFT JOIN `#@__arctype` act ON arc.typeid=act.id
            WHERE arc.id IN ($aids)";
            
        } else {
            //排序方式
            $ordersql = '';
            if($this->ChannelType< 0 ||$this->ChannelTypeid< 0)
            {
                if($orderby=="id"){
                    $ordersql="ORDER BY arc.aid desc";
                }else{
                    $ordersql="ORDER BY arc.senddate desc";
                }
            } else {
                if($orderby=="senddate")
                {
                    $ordersql=" ORDER BY arc.senddate desc";
                }
                else if($orderby=="pubdate")
                {
                    $ordersql=" ORDER BY arc.pubdate desc";
                }
                else if($orderby=="id")
                {
                    $ordersql="  ORDER BY arc.id desc";
                }
                else
                {
                    $ordersql=" ORDER BY arc.sortrank desc";
                }
            }

            //搜索
            $query = "SELECT arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
            act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
            FROM `{$this->AddTable}` arc LEFT JOIN `#@__arctype` act ON arc.typeid=act.id
            WHERE {$this->AddSql} $ordersql LIMIT $limitstart,$row";
        }
        
        $this->dsql->SetQuery($query);
        $this->dsql->Execute("al");
        $artlist = "";
        if($col>1)
        {
            $artlist = "<table width='$tablewidth' border='0' cellspacing='0' cellpadding='0'>\r\n";
        }
        $this->dtp2->LoadSource($innertext);
        for($i=0;$i<$row;$i++)
        {
			$GLOBALS['autoindex'] ++;
            if($col>1)
            {
                $artlist .= "<tr>\r\n";
            }
            for($j=0;$j<$col;$j++)
            {
                if($col>1)
                {
                    $artlist .= "<td width='$colWidth'>\r\n";
                }
                if($row = $this->dsql->GetArray("al"))
                {
                    if($this->ChannelType< 0 || $this->ChannelTypeid< 0) {
                        $row["id"]=$row["aid"];
                        $row["ismake"]=empty($row["ismake"])? "" : $row["ismake"];
                        $row["filename"]=empty($row["filename"])? "" : $row["filename"];
                        $row["money"]=empty($row["money"])? "" : $row["money"];
                        $row["description"]=empty($row["description "])? "" : $row["description"];
                        $row["pubdate"]=empty($row["pubdate  "])? $row["senddate"] : $row["pubdate"];
                    }
                    //处理一些特殊字段
                    $row["arcurl"] = GetFileUrl($row["id"],$row["typeid"],$row["senddate"],$row["title"],
                    $row["ismake"],$row["arcrank"],$row["namerule"],$row["typedir"],$row["money"],$row['filename'],$row["moresite"],$row["siteurl"],$row["sitepath"]);
                    $row["description"] = $this->GetRedKeyWord(cn_substr($row["description"],$infolen));
                    $row["title"] = $this->GetRedKeyWord(cn_substr($row["title"],$titlelen));
                    $row["id"] =  $row["id"];
                    if($row['litpic'] == '-' || $row['litpic'] == '')
                    {
                        $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
                    }
                    if(!preg_match("/^http:\/\//", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y')
                    {
                        $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
                    }
                    $row['picname'] = $row['litpic'];
                    $row["typeurl"] = GetTypeUrl($row["typeid"],$row["typedir"],$row["isdefault"],$row["defaultname"],$row["ispart"],$row["namerule2"],$row["moresite"],$row["siteurl"],$row["sitepath"]);
                    $row["info"] = $row["description"];
                    $row["filename"] = $row["arcurl"];
                    $row["stime"] = GetDateMK($row["pubdate"]);
                    $row["textlink"] = "<a href='".$row["filename"]."'>".$row["title"]."</a>";
                    $row["typelink"] = "[<a href='".$row["typeurl"]."'>".$row["typename"]."</a>]";
                    $row["imglink"] = "<a href='".$row["filename"]."'><img src='".$row["picname"]."' border='0' width='$imgwidth' height='$imgheight'></a>";
                    $row["image"] = "<img src='".$row["picname"]."' border='0' width='$imgwidth' height='$imgheight'>";
                    $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
                    $row['memberurl'] = $GLOBALS['cfg_memberurl'];
                    $row['templeturl'] = $GLOBALS['cfg_templeturl'];
                    if(is_array($this->dtp2->CTags))
                    {
                        foreach($this->dtp2->CTags as $k=>$ctag)
                        {
                            if($ctag->GetName()=='array')
                            {
                                //传递整个数组,在runphp模式中有特殊作用
                                $this->dtp2->Assign($k,$row);
                            }
                            else
                            {
                                if(isset($row[$ctag->GetName()]))
                                {
                                    $this->dtp2->Assign($k,$row[$ctag->GetName()]);
                                }
                                else
                                {
                                    $this->dtp2->Assign($k,'');
                                }
                            }
                        }
                    }
                    $artlist .= $this->dtp2->GetResult();
                }//if hasRow

                else
                {
                    $artlist .= "";
                }
                if($col>1) $artlist .= "</td>\r\n";
            }//Loop Col

            if($col>1)
            {
                $artlist .= "</tr>\r\n";
            }
        }//Loop Line

        if($col>1)
        {
            $artlist .= "</table>\r\n";
        }
        $this->dsql->FreeResult("al");

        return $artlist;
    }

 

在属性定义添加,例如在 global $cfg_sphinx_article; 下添加:

$GLOBALS['autoindex'] = 0;

 

在循环条数 for($i=0;$i<$row;$i++) 添加 :

$GLOBALS['autoindex'] ++;

 

在 search.htm 添加

[field:global name='autoindex'/]
<body>
{dede:list}
	<li class="line[field:global name='autoindex'/]"><a  target="_blank">[field:title/]</a></li>
{/dede:list}

 

 

 

 

1
1
分享到:
评论

相关推荐

    abap 如何刷新序号

    根据提供的文件信息,本文将详细解释ABAP中ALV(Application List Viewer)如何实现序号刷新及保持序号顺序不变的技术细节。 ### ALV 序号控制基础 在ABAP中,ALV(Application List Viewer)是用于显示表格数据的...

    序号自动生成工具

    在IT行业中,序号生成和管理是数据处理和文件组织中的常见需求,特别是在数据库操作、报表生成、批量命名以及各种自动化流程中。"序号自动生成工具"与"序号删除工具"是针对这一需求的专业软件,它们可以极大提高工作...

    CSS多级数字序号的目录列表(2.2.1. 2.2.2 列表序号)

    CSS(Cascading Style Sheets)提供了强大的样式控制功能,其中包括创建多级数字序号的目录列表。本文将深入探讨如何使用CSS实现这种效果,无需手动编写序号或引入JavaScript。 首先,让我们回顾一下问题的背景。...

    C语言-leetcode题解之第171题Excel列表序号.zip

    c语言 C语言_leetcode题解之第171题Excel列表序号

    table表格增加序号显示

    html网页 table表格增加序号显示javascript

    shell 文件名中序号名递增

    shell 创建文件,文件名为日期+序号,序号自动递增,用于生成log

    sql server 中如何增加递增的序号列【实用】

    sql server 中如何增加递增的序号列 sql server 是一种功能强大且广泛应用的关系数据库管理系统,随着业务的发展和数据的增长,对于数据的管理和处理变得越来越重要。在 sql server 中,增加递增的序号列是非常...

    20以后带圈数字序号字库

    总的来说,“20以后带圈数字序号字库”是一个方便用户在各种文档和交流场景中创建有序列表或编号的独特字体资源。通过正确安装和使用,用户可以轻松地在文本中插入这些特殊的数字,提升内容的可读性和视觉效果。

    在查询中生成序号列

    在查询中生成序号列主要有两种方法: 1. **使用ROW_NUMBER()函数**: Access并不直接支持ROW_NUMBER()函数,这是SQL Server中用来为结果集生成连续序号的函数。但在Access中,我们可以使用DCount函数配合计算字段...

    在网上复制代码 前面总是带序号 这个可以去掉序号

    幸运的是,要去掉这些序号并不复杂,下面我们将详细讲解如何处理这个问题。 1. **手动去除序号** - 如果代码行数不多,最简单的方法就是手动删除每一行前面的序号。只需在复制代码后,在文本编辑器中逐行删除序号...

    GridControl增加序号

    本主题聚焦于如何在GridControl中添加序号功能,这对于数据的可视化和操作非常有帮助。在描述中提到的"GridControl增加序号"是一个实用的技术点,它涉及到数据绑定、自定义列和事件处理等方面的知识。 首先,我们来...

    CXGRID显示序号

    3. **计算序号**:如果当前行需要显示序号,我们可以计算出正确的序号。这通常是通过`Sender.DataController.Rows.Count`(总行数)和`Sender.RowHandle`(当前行的索引)来计算。 4. **绘制序号**:使用`Canvas`...

    为GV添加序号的方法

    ### 为GV添加序号的方法 在Web开发中,尤其是使用ASP.NET进行开发时,我们经常需要对数据网格(GridView)中的每一行自动添加序号。这种方法不仅方便用户查看数据时进行快速定位,而且在某些业务场景下是必不可少的...

    qq表情对应序号【可用】

    在压缩包文件"QQ表情对应序号"中,很可能包含了完整的QQ表情序号列表,以及可能的一些示例代码或API接口说明。开发者可以通过这个文件了解所有可用的表情及其对应的序号,以便在自己的程序中正确地使用这些表情。 ...

    dataset中自动序号实现

    通过上述分析,我们可以看出这段代码实现了数据集中自动序号的核心逻辑,包括在插入和删除记录后自动更新序号以及在指定的数据表中同步显示正确的序号。这对于确保数据集的一致性和准确性至关重要。

    cad 标带圆圈的数字序号插件,点击就自动生成序号

    超级方便,点一下就一个序号生成,可以设置字体高度,默认序号是带圆圈的,加载lsp百度一下就知道啦~

    DataSet添加序号列,是显示在第一列的哦

    在本篇文章中,我们将深入探讨如何在DataSet中的表(DataTable)的第一列添加一个序号列,并确保该序号列能够正确地显示出来。这是一项在处理数据时非常实用的功能,尤其是在需要对数据进行排序或分页的情况下。接...

    利用css计数器属性(counter)实现列表序号自动增加.zip

    使用场景:本例通过css的计数器属性实现了有序列表的序号自动增加效果。案例设计美观,非常实用。可用于各种排行的展示需求。 资源特点:代码短小、代码容易阅读、重点注释、方便扩展、样式美观、不使用JQ框架。 ...

Global site tag (gtag.js) - Google Analytics