有时候我们需要在dede中通过$dsql查询出文章数据,并生成文章的地址。

但是dede默认的dede_archives和附加表dede_addonarticle都没有存放arcurl的字段。
说明arcurl是动态生成的,通过/include/helpers/channelunit.helper.php文件中的GetFileUrl函数来获取的。
 
例如:
<?php
require_once (dirname(__FILE__) . "/include/common.inc.php"); $siteUrl = 'http://www.xxx.com'; //我们获取所有文章数据
$sql = 'SELECT arc.*, tp.typedir, tp.typename, tp.corank, tp.isdefault, tp.defaultname, tp.namerule, tp.moresite, tp.siteurl, tp.sitepath FROM `#@__archives` AS arc LEFT JOIN `#@__arctype` AS tp ON arc.typeid=tp.id WHERE arc.ismake=1 AND arc.arcrank=0 ORDER BY arc.id';
$dsql->Execute('me', $sql); while($row = $dsql->GetArray('me')) {
$artUrl = $siteUrl . 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']);
echo '<a href="' . $artUrl . '">' . $row['title'] . '</a>';
}
通过GetFileUrl函数我们就可以获取到文章的地址。
当我们使用dede的loop标签时,该标签不支持[field:arcurl/],这时候我们只能创建自定义一个函数来获取文章链接。
在include/extend.func.php下面添加我们自定义的函数,如下:
function getArtUrl($arcId) {
global $dsql;
$sql = "SELECT arc.*, tp.typedir, tp.typename, tp.corank, tp.isdefault, tp.defaultname, tp.namerule, tp.moresite, tp.siteurl, tp.sitepath FROM `#@__archives` AS arc LEFT JOIN `#@__arctype` AS tp ON arc.typeid=tp.id WHERE arc.id={$arcId}";
$row = $dsql->GetOne($sql);
$artUrl = 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']);
return $artUrl;
}
{dede:loop table='#@__archives' sort='' row='4' if=''}
<a href="[field:id function='getArtUrl(@me)'/]">[field:title function='cn_substr(@me,42)'/]</a>
{/dede:loop}

dede中arcurl的解析的更多相关文章

  1. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  2. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  3. Android中的XML解析

    在安卓中主要有三种XML文档解析方式:DOM(Document Object Model), SAX(Simple API for XML), PULL 他们的主要特点如下表:   特点 主要类 DO ...

  4. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  5. julia与python中的列表解析.jl

    julia与python中的列表解析.jl #=julia与python中的列表解析.jl 2016年3月16日 07:30:47 codegay julia是一门很年轻的科学计算语言 julia文档 ...

  6. Hadoop中的InputFormat解析

    1.InputFormat InputFormat是Hadoop平台上Mapreduce输入的规范,仅有两个抽象方法. List<InputSplit> getSplits(), 获取由输 ...

  7. Kakfa揭秘 Day4 Kafka中分区深度解析

    Kakfa揭秘 Day4 Kafka中分区深度解析 今天主要谈Kafka中的分区数和consumer中的并行度.从使用Kafka的角度说,这些都是至关重要的. 分区原则 Partition代表一个to ...

  8. 利用Gulp实现JSDoc 3的文档编写过程中的实时解析和效果预览

    ### 利用Gulp实现JSDoc 3的文档编写过程中的实时解析和效果预览 http://segmentfault.com/a/1190000002583569

  9. iOS开发中的Html解析方法

    iOS开发中的Html解析方法 本文作者为大家介绍了在iOS开发中的Html解析方法,并同时提供了Demo代码的下载链接,Demo 解析了某个网站(具体可在代码中查看)的html网页,提取了图片以及标 ...

随机推荐

  1. mysql 不能插入中文和显示中文

    一)不能显示中文解决办法: 参考:http://bbs3.chinaunix.net/thread-880131-1-1.html 1:windows平台,因为windows操作系统默认的是用了gb2 ...

  2. 伯克利、OpenAI等提出基于模型的元策略优化强化学习

    基于模型的强化学习方法数据效率高,前景可观.本文提出了一种基于模型的元策略强化学习方法,实践证明,该方法比以前基于模型的方法更能够应对模型缺陷,还能取得与无模型方法相近的性能. 引言 强化学习领域近期 ...

  3. uva-185-暴力枚举

    请相信,这是一道水题,读了一周的题意 题意: 题目里面描述的那三个条件可以直接无视,关于罗马数字只要知道一个规则即可,映射如下 I 1       V 5X 10     L 50C 100 D 50 ...

  4. DEMO: springboot 与 freemarker 集成

    直接在 DEMO: springboot 与 mybatis 集成 基础上,进行修改. 1.pom.xml 中引用 依赖 <dependency> <groupId>org.s ...

  5. bootstrap左侧边栏

    之前都是想直接把导航栏放左边,但是会占一整行 网上找了好久,看到用bootstrap响应式布局,可以比较简单实现 经典的,可以参考:http://demo.qianduanblog.com/3150/ ...

  6. Eclipse “cannot be resolved to a type”

    遇到这坑爹的问题,网上各种答案. 只有这个能解决我的问题,eclipse机制问题: Eclipse “cannot be resolved to a type”

  7. win2008安装IIS

    win2008安装IIS http://jingyan.baidu.com/article/fec4bce2398747f2618d8b88.html http://127.0.0.1/ 新建网站,端 ...

  8. Git .gitignore使用 -- 过滤class文件或指定目录

    1. 进入当前的项目根目录 执行 git init touch .gitignore 2. 过滤class文件或指定目录 *.class /target/ 3. 提交 git add . 将所有文件提 ...

  9. EL&jsp

    JSP 2.0(java server pages): EL 表达式 JSP九大内置对象及作用范围 JSP Directive JSP Action EL表达式: EL 算法(Arithmetic)表 ...

  10. Others-Goldengate 数据同步

    GoldenGate 是一家创建于1995年的美国公司,开发总部设在旧金山,在北美,欧洲和亚洲(包括新加坡.印度.澳大利亚)设有支持中心. 公司名称 GoldenGate 总部地点 旧金山 成立时间 ...