PHPCMS V9 官方演示站PHPCMS V9.1 正式版下载PHPCMS V9 黄页系统PHPCMS2008 SP4 正式版下载
查看: 157870|回复: 411

[使用帮助] [2008]Phpcms2008个性化利器-万能GET标签使用完全教程     [复制链接]

Phpcms贵宾

www.aiens.cn

Rank: 8Rank: 8

PC币
27 枚
注册时间
2007-1-2
积分
2692
精华
12
帖子
2198

终身成就奖 特殊贡献奖 T-恤大赛纪念 热心会员

发表于 2008-12-26 20:07:52 |显示全部楼层
前言:

Phpcms2008的强大,需要我们去认真挖掘,Phpcms2008不仅强大,而且易用,下面将会对Phpcms的个性化利器---万能GET标签进行详细的讲解

大纲:

get 标签概述
get 标签语法
get 标签创建工具
get 调用本系统示例
get 调用其他系统示例(调用discuz7.0系统最新帖子)


一、get 标签概述
1.什么是Get标签?
  1. 通俗来讲,get 标签是Phpcms定义的能直接调用数据库里面内容的简单化、友好化代码,她可调用本系统和外部数据,只有你对SQL有一定的了解,她就是你的绝世好剑!也就是适合熟悉SQL语句的人使用。有了她,我们打造个性化的网站,能非常方便的调用出数据库里面指定的内容。通过条件限制,我们可以调用出不同条件下的不同数据。
复制代码
如果说,我不懂SQL怎么办?没有问题,get 标签还有强大的创建工具(看这里),Phpcms2008 在新建模板和修改模板页面增加了 get 标签傻瓜式生成器,get 标签生成器可以帮助您列出指定数据源的数据表和字段,通过填空和选择方式生成可用的 get 标签代码。Phpcms2008 首次提供了最全面的数据字段,对本系统任何数据表和字段都提供了中文说明,这也会大大降低 get 标签的使用难度。

二、get标签样式
1.
  1. {get dbsource=" " sql=" "}
  2. {/get}
复制代码
2.
  1. {get dbsource=" " sql=" " /}
复制代码

三、get 标签语法

1.get标签属性值必须用双引号括起来( " " )。
例如:
  1. {get sql=" " /}
复制代码
2.get标签必须含有结束标记,即正确get标签必须是成对出现:整个Get标签含有结束标记“ {/get}”,或者是“/”。(可以参考上面提到的 “二、get标签样式”)
例如:

  1. {get sql=" " }

  2. {/get}
复制代码
3.get标签里面含有的变量,数组和函数必须用“{}”包括。
例如:

  1. {str_cut($r[title], 50)}
  2. {$r[url]}
复制代码
4.get标签 sql语句中条数限制。( rows=" " )
例如:显示10条信息
  1. {get sql=" " rows="10"}
  2.     {/get}
复制代码
5.get标签 sql语句中条件限制。( where )
例如:调用栏目ID为1的信息
  1. {get sql="select * from phpcms_content where catid=1"}
  2.     标题:{$r[title]} URL:{$r[url]}  
  3. {/get}
复制代码
6.get标签 sql语句中排序。( order by )
例如:按更新日期降序(desc)排列
  1. {get sql="select * from phpcms_content order by updatetime desc" }
  2.    {$r[title} URL:{$r[url]}
  3. {/get}
复制代码
7.get标签里面嵌套php函数。(可以参考上面的第3点)
例如:格式化输出时间戳
  1. {date('Y-m-d', $r[updatetime])}
复制代码
注:关于第4点到第7点,可以参考mysql手册和php手册,这里做抛砖引玉。

[ 本帖最后由 aiens 于 2009-5-31 20:13 编辑 ]
23

查看全部评分

时间来检验...

Phpcms贵宾

www.aiens.cn

Rank: 8Rank: 8

PC币
27 枚
注册时间
2007-1-2
积分
2692
精华
12
帖子
2198

终身成就奖 特殊贡献奖 T-恤大赛纪念 热心会员

发表于 2008-12-28 13:58:28 |显示全部楼层
8.本系统数据调用(当前数据库调用)
  1. {get sql=""}
  2. {/get}
复制代码
或者
  1. {get sql="" return="r"}
  2. {/get}
复制代码
(注:系统默认返回变量为 "r" ,非自定义返回变量可以省略 return="r" )
9.本系统数据调用10条
  1. {get sql="" rows="10"}
  2. {/get}
复制代码
10.同一个数据库帐号的不同数据库调用
  1. {get dbname="" sql="" }
  2. {/get}
复制代码
11.不同数据库帐号调用(不同数据源调用)
  1. {get dbsource="" sql=""}
  2. {/get}
复制代码
12.不同数据库帐号的不同数据库调用
  1. {get dbsource="" dbname="" sql="" }
  2. {/get}
复制代码
13.本系统数据调用,带分页
  1. {get sql=" " page="$page"}
  2. {/get}
  3. 分页:{$pages}
复制代码
14.本系统数据调用,自定义返回变量
  1. {get sql=" " return="v"}
  2.   {$v[ ]}
  3. {/get}
复制代码
*get 标签参数完整剖析

  1. {get dbsource="数据源" dbname="数据库" sql="SQL语句" rows="行数" return="返回变量名称" page="$page"}
  2.     输出代码(含返回变量值、数组、函数等)
  3. {/get}
复制代码
dbsource="数据源" -->
(数据源 管理 在系统设置 > 相关设置 > 数据源管理 > 管理数据源)
如果需要调用本系统之外的数据库,可以通过数据源管理来保存数据库服务器配置信息,调用的时候通过数据源名称就可以进行调用了。
本功能主要应用于[get标签调用远程数据库数据]或者[导出远程数据库邮件列表]。
注:本系统调用(同一数据库账号)可以省略
附:数据源 使用 图文教程 http://bbs.phpcms.cn/thread-84352-1-1.html

dbname="数据库" -->
(数据库 在添加数据源的时候需要填写的数据库名)
注:本系统调用(同一数据库账号,同一数据库名)可以省略
sql="SQL语句" -->
SQL语句可以参考Mysql手册,上面get 标签语法第4、5、6点和SQL语句剖析已经提及要点
注:此参数不可以省略
rows="行数" -->
行数,例如显示10条信息:rows="10"
注:此参数可以省略
return="返回变量名称" -->
参考get 标签语法第8点和第14点
注:此参数可以省略
page="$page" -->
带分页
注:此参数可以省略

*SQL语句剖析
  1. sql="select 字段 from 表名 where 条件表达式 order by 字段 desc/asc"
复制代码
可以参考Mysql手册和get 标签语法第4、5、6点
Phpcms2008提供了中文字段说明,给写sql语句的时候提供了很大的方便
6条完整get 标签代码示例

1.调用本系统单条数据,示例(调用ID为1的信息,标题长度不超过25个汉字,显示更新日期):
  1. {get sql="select * from phpcms_content where contentid=1" /}
  2. 标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}
复制代码
2.调用本系统多条数据,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期):
  1. {get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc" rows="10"}
  2.     标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}
  3. {/get}
复制代码
3.带分页,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期,带分页):
  1. {get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc" rows="10" page="$page"}
  2.     标题:{str_cut($r[title], 50)} URL:{$r[url]} 更新日期:{date('Y-m-d', $r[updatetime])}
  3. {/get}
  4. 分页:{$pages}
复制代码
4.自定义返回变量,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期,返回变量为 $v):
  1. {get sql="select * from phpcms_content where catid=1 and status=99 order by updatetime desc" rows="10" return="v"}
  2.     标题:{str_cut($v[title], 50)} URL:{$v[url]} 更新日期:{date('Y-m-d', $v[updatetime])}
  3. {/get}
复制代码
5.调用同一帐号下的其他数据库,示例(调用数据库为bbs,分类ID为1的10个最新主题,主题长度不超过25个汉字,显示更新日期):
  1. {get dbname="bbs" sql="select * from cdb_threads where fid=1 order by dateline desc" rows="10"}
  2.     主题:{str_cut($r[subject], 50)} URL:http://bbs.phpcms.cn/viewthread.php?tid={$r[tid]} 更新日期:{date('Y-m-d', $r[dateline])}
  3. {/get}
复制代码
6.调用外部数据,示例(调用数据源为bbs,分类ID为1的10个最新主题,主题长度不超过25个汉字,显示更新日期):
  1. {get dbsource="bbs" sql="select * from cdb_threads where fid=1 order by dateline desc" rows="10"}
  2.     主题:{str_cut($r[subject], 50)} URL:http://bbs.phpcms.cn/viewthread.php?tid={$r[tid]} 更新日期:{date('Y-m-d', $r[dateline])}
  3. {/get}
复制代码

[ 本帖最后由 aiens 于 2008-12-28 11:33 PM 编辑 ]
时间来检验...

使用道具 举报

Phpcms贵宾

www.aiens.cn

Rank: 8Rank: 8

PC币
27 枚
注册时间
2007-1-2
积分
2692
精华
12
帖子
2198

终身成就奖 特殊贡献奖 T-恤大赛纪念 热心会员

发表于 2008-12-28 14:18:36 |显示全部楼层
四、get 标签创建工具
如果说自定义内容模型和字段让Phpcms具备了超强的灵活性,那么GET标签则让Phpcms具备了超强的数据整合能力。
Phpcms2008 的 get 标签不仅能调用Phpcms系统的数据,同时也可以调用任何其他Mysql数据库数据,并支持分页功能。
Phpcms2008 在新建模板和修改模板页面增加了 get 标签傻瓜式生成器,get 标签生成器可以帮助您列出指定数据源的数据表和字段,通过填空和选择方式生成可用的 get 标签代码。
Phpcms2008 首次提供了最全面的数据字段,对本系统任何数据表和字段都提供了中文说明,这也会大大降低 get 标签的使用难度。


1.后台-->模板风格-->Phpcms-->新建模板



2.点击 get 按钮,会弹出get 标签创建界面



3.设置get标签参数
包括 选择数据源、选择数据表、选择字段名、设置条件、设置排序、勾选是否分页、设置每页显示条数





4.获取get 标签代码

例如,刚才我们数据源选择“本系统”,数据表选择“内容模型”,字段名我们显示“ID、标题、摘要、链接地址、发布时间”,条件选择ID=1,排序按ID降序排序,勾选“是否分页”,每页显示条数设置为“10条”,然后点击“插入”
我们就可以得到系统自动生成的get 标签代码,如下:

  1. {get sql="SELECT `contentid`,`title`,`description`,`url`,`inputtime` FROM `phpcms_content`  WHERE `contentid` = '1' ORDER BY  `contentid` DESC"rows="10"  page="$page" }
  2. {$r[contentid]}
  3. {$r[title]}
  4. {$r[description]}
  5. {$r[url]}
  6. {$r[inputtime]}
  7. {/get}
  8. {$pages}
复制代码
我们来分析这段get 标签


{get sql="SELECT `contentid`,`title`,`description`,`url`,`inputtime` FROM ` phpcms_content`" WHERE `contentid` = '1' ORDER BY  `contentid` DESC  rows="10"  page="$page" }
//条件是ID=1,排序按ID降序排序,显示10行,带分页

{$r[contentid]}
// ID

{$r[title]}
//标题

{$r[description]}
//摘要

{$r[url]}
//链接地址

{$r[inputtime]}
//发布时间
{/get}
{$pages}
//分页


phpcms2008已经提供了字段中文说明,我们很容易理解和运用get 标签。

5.使用get 标签代码

把得到get 标签插入到相关的模板文件里面就可以了。模板文件目录在templates文件夹下面。

[ 本帖最后由 aiens 于 2008-12-28 03:24 PM 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?点击这里注册
时间来检验...

使用道具 举报

Phpcms贵宾

www.aiens.cn

Rank: 8Rank: 8

PC币
27 枚
注册时间
2007-1-2
积分
2692
精华
12
帖子
2198

终身成就奖 特殊贡献奖 T-恤大赛纪念 热心会员

发表于 2008-12-28 15:25:47 |显示全部楼层
五、get 调用本系统示例

例如:在文章模型列表页显示3条带摘要,带缩略图和更新时间的信息

1.创建get 标签代码





点击“插入”,得到以下get 标签代码:

  1. {get sql="SELECT `title`,`thumb`,`description`,`updatetime` FROM `phpcms_content` WHERE `catid` = '$catid' ORDER BY  `updatetime` DESC" rows="3" }
  2. {$r[title]}
  3. {$r[thumb]}
  4. {$r[description]}
  5. {$r[updatetime]}
  6. {/get}
复制代码
注:

  1. WHERE `catid` = '$catid'
复制代码
在创建get 标签的时候,栏目ID条件设置为值=“$catid”,是 对应不同栏目,调用相应栏目的内容


2.插入get 标签代码到模板文件

a.我们找到 文章模型列表页 的模板文件,位置在 templates\default\phpcms\list.html

b.找到
  1. <div id="position"><a href="">首页</a>{catpos($catid)}</div>
  2.     <div class="bdr_2">
复制代码
在其后面插入刚才获得的get 标签代码

c.保持文件,后台“内容管理”处进行“生成html”操作

d.我们在某个栏目列表页可以看到类似如下信息



e.内容成功调用出来,我们再做一些美化即可
f.这里做些简单的美化,代码如下:

  1. {get sql="SELECT `title`,`thumb`,`description`,`updatetime` FROM `phpcms_content` WHERE `catid` = '$catid' ORDER BY  `updatetime` DESC" rows="3" }
  2. 文章标题:{$r[title]}<br>
  3. <A href="{$r[url]}" target=_blank><IMG height=90 alt={$r[title]}
  4. src="{$r[thumb]}" width=142></A><br>
  5. 摘要:{$r[description]}<br>
  6. 更新时间:{date("Y-m-d",$r[updatetime])}<br>
  7. {/get}
复制代码
g.效果


注:这里是个使用示例,对应插入模板位置和美化视个人情况而定。

[ 本帖最后由 aiens 于 2008-12-28 04:32 PM 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?点击这里注册
时间来检验...

使用道具 举报

Phpcms贵宾

www.aiens.cn

Rank: 8Rank: 8

PC币
27 枚
注册时间
2007-1-2
积分
2692
精华
12
帖子
2198

终身成就奖 特殊贡献奖 T-恤大赛纪念 热心会员

发表于 2008-12-28 16:33:54 |显示全部楼层
六、get 调用其他系统示例

例如:调用discuz7.0论坛系统里最新发布3条帖子,在首页显示

1.添加discuz论坛所在数据库的数据源

a.点击“添加数据源”
系统设置 > 相关设置 > 数据源管理 > 添加数据源




b.填写数据源参数




数据源名称:可以自己定义,本例这里填写“discuz”
数据库主机:填写你的数据所在的主机,一般是“localhost”
数据库账号:填写你的数据库账号
数据库密码:填写你的数据密码
数据库名:填写数据库名,本例的数据库名是“discuz”
数据库字符集:GBK  UTF8  latin1三个选项,本例的数据库字符集是“GBK”
数据表:这里选择“cdb_threads”

c.数据源连接测试

点击“连接测试”,如果填写无误,则提示如下:




d.确定,成功添加数据源

2.利用get 标签创建工具 创建get 标签代码



数据源 选择discuz系统所在数据源“discuz”(第1步我们已经建立)
数据表 选择“cdb_threads”



选择显示“author”、“subject”、"lastpost",即为调用“发布者”、“主题”、“最后发布时间”



设置显示3条

点击“插入”
得到get 标签代码如下:

  1. {get dbsource="discuz" sql="SELECT `author`,`subject`,`lastpost` FROM `cdb_threads` ORDER BY  `lastpost` DESC" rows="3" }
  2. {$r[author]}
  3. {$r[subject]}
  4. {$r[lastpost]}
  5. {/get}
复制代码

3.将代码插入到模板文件

本例是首页显示,我们找到首页模板文件(templates\default\phpcms\index.html)
找到:
  1. <!--{if isset($MODULE['announce'])}-->
  2.     <h4><a href="{$MODULE[announce][url]}"><img src="images/more.gif" alt="更多" /></a>网站公告</h4>
复制代码

在上面加入(稍加美化的get 标签代码):

  1. <h4>论坛最新帖子</h4>
  2.     <div>
  3.       <ul class="text_list">
  4.         {get dbsource="discuz" sql="SELECT `author`,`subject`,`lastpost` FROM `cdb_threads` ORDER BY  `lastpost` DESC" rows="3" }
  5. <li>({$r[author]}){str_cut($r[subject], 22,"")} date:{date("Y-m-d",$r[lastpost])}</li>
  6. {/get}
  7.       </ul>
  8.     </div>
复制代码

保存,再到后台生成首页,刷新首页,我们看到


至此,我们成功调用了discuz7.0系统的最新帖子信息

[ 本帖最后由 aiens 于 2008-12-29 12:12 AM 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?点击这里注册
1

查看全部评分

时间来检验...

使用道具 举报

Phpcms贵宾

www.aiens.cn

Rank: 8Rank: 8

PC币
27 枚
注册时间
2007-1-2
积分
2692
精华
12
帖子
2198

终身成就奖 特殊贡献奖 T-恤大赛纪念 热心会员

发表于 2009-3-11 01:17:00 |显示全部楼层
占位待用!
时间来检验...

使用道具 举报

Phpcms贵宾

www.aiens.cn

Rank: 8Rank: 8

PC币
27 枚
注册时间
2007-1-2
积分
2692
精华
12
帖子
2198

终身成就奖 特殊贡献奖 T-恤大赛纪念 热心会员

发表于 2009-3-11 01:17:11 |显示全部楼层
占位待用!
时间来检验...

使用道具 举报

Rank: 2

PC币
15 枚
注册时间
2006-6-24
积分
203
精华
0
帖子
91
发表于 2009-3-14 00:06:16 |显示全部楼层
这是我在PHPCMS论坛看到最极品的教程

使用道具 举报

Rank: 1

PC币
10 枚
注册时间
2009-3-9
积分
43
精华
0
帖子
29
发表于 2009-3-14 13:23:07 |显示全部楼层
好强大。。学习。

使用道具 举报

Rank: 1

PC币
10 枚
注册时间
2008-11-18
积分
15
精华
0
帖子
6
发表于 2009-3-14 23:32:09 |显示全部楼层
非常好。赞一个。

使用道具 举报

Rank: 4

PC币
25 枚
注册时间
2008-8-28
积分
3334
精华
0
帖子
1817
发表于 2009-3-16 13:07:19 |显示全部楼层
dddddddddd

使用道具 举报

Rank: 8Rank: 8

PC币
159 枚
注册时间
2009-2-2
积分
1028
精华
0
帖子
428
发表于 2009-3-17 01:04:54 |显示全部楼层
鼓掌。。。GET万能标签器

使用道具 举报

Rank: 1

PC币
10 枚
注册时间
2009-2-18
积分
12
精华
0
帖子
4
发表于 2009-3-24 14:06:08 |显示全部楼层
感谢楼主。
果然强大

使用道具 举报

Rank: 4

PC币
10 枚
注册时间
2008-1-8
积分
2612
精华
0
帖子
1864
发表于 2009-3-25 11:11:28 |显示全部楼层
非常不错的

使用道具 举报

Rank: 7Rank: 7Rank: 7

PC币
10 枚
注册时间
2006-9-16
积分
564
精华
0
帖子
495

热心会员

发表于 2009-3-25 11:18:03 |显示全部楼层
支持PHPCMS
中华茗茶网
www.teawang.cn

使用道具 举报

您需要登录后才可以回帖 登录 | 点击这里注册

Archiver|phpcms网站管理系统 ( B2-20040053 )

GMT+8, 2012-2-4 13:02 , Processed in 0.063419 second(s), 7 queries , Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部