phpcms是一套功能很强大,智能,好用的内容管理系统,最近再做phmcms二次开发,学到了不少东西。
现在总结下,与大家分享下。
在调用多个栏目下的文章列表时,可以用get标签.
{pc:get sql="select * from v9_product where catid in($arr)" order="id ASC" thumb="2" num="40" return="info" page="$pages"}
{/pc}
需要注意的是这里的$arr为字符串形式,而不能为数组,如$arr="21,23,32";是可以的,
而$arr = array(21,23,32);则是不行的,会出现错误,导致得不到结果。
如果想随机排序,直接将order="rand()",就可以了。
普通列表或栏目调用自定义字段
在{pc:content action="lists" 后加上副表moreinfo=1 (等于1时显示,0时不显示)
在编辑文章时,如果不想自动添加关键字,可以在
可以通过phpcms/modules/content/fields/title/form.inc.php,去掉其中的onBlur事件,就好了。
<?php
$catid = $_GET['catid'];
?>
来获取相应的栏目id.这在实际操作中很有用。
在phpcms 中调用通过一级栏目调用三级栏目的代码。
{pc:content action="category" catid="$catid" order="listorder ASC" num="40" thumb="2" return="info"}
{loop $info $r}
<?php
$catidt = $r[catid];
?>
<ul>
{pc:content action="lists" catid="$catidt" order="listorder ASC" num="40" thumb="2" return="data"}
{loop $data $v}
<li class="cl">
<a href="">
<a href="{$v['url']}" target="_blank"><img class="imgs_pro" width="179" height="144" src="{$v['thumb']}"/></a>
<h3 class="product-name">
<a href="{$v['url']}" target="_blank">
<span class="orname1">{$v['title']}</span></a>
</h3>
<span class="lingshoujia">全国统一销售价:<b>¥</b>{$v['price']} </span>
<span class="tejia"><i></i>:<b>¥</b>{$v['tgprice']}</span>
</li>
{/loop}
{/pc}
</ul>
{/loop}
{/pc}
在这里,有点郁闷的是,为什么第二个循环中catid不能直接用catid="$r['catid']",而需要先通过$catid=$r[catid]取得。先记下来。
在PHPCMS V9中我们正式开始需要PC标签做为数据的获取的方式。如:
{pc:content action="lists"
cache="3600" num="20" page="$page"}{/pc}
下表为PC标签保留参数表,几乎所有的PC标签都支持这些保留参数设置
变量名
|
默认值
|
说明
|
action
|
null
|
本参数的值表示为操作事件,模型类PC标签必须使用包含本参数,以说明要进行的操作。
|
cache
|
0
|
缓存存储时间(单位秒)
|
num
|
20
|
获取记录的条数,最后会被模板引擎处理成limit传送到处理函数中。
|
page
|
null
|
当前分页。一般填写为$_GET[page]
|
urlrule
|
null
|
URL规则
|
return
|
data
|
返回数据变量名
|
这里有一必要说一下get标签,可以对数据库进行灵活操作,如:
{pc:get sql="SELECT
* FROM phpcms_member" cache="3600" page="$page"
dbsource="discuz"return="data"}
<ul>
{loop $data $key $val}
{$val[username]}<br/>
{/loop}
</ul>
{$pages}
{/pc}
GET标签所支持的参数。
参数
|
默认值
|
必须
|
|
说明
|
sql
|
null
|
是
|
|
要执行的SQL语句
|
cache
|
0
|
否
|
|
缓存时间,单位为秒
|
page
|
0
|
否
|
|
分页,通过变量把当前的分布传给PC标签进行处理
|
dbsource
|
null
|
否
|
|
数据源,当你通过系统后台的数据源模块配置过数据源时,可把数据源名填写到这里,系统会去对应的数据源来读取数据。如果要读取本系统的数据请留空
|
return
|
data
|
否
|
|
返回的数据的变量
|
常用的函数:
str_cut(): {str_cut($v['title'],50)}, 标题长度截取。
thumb(): {thumb($v['thumb'],178,131)},生成缩略图。
phpcms 模板if,else解析原理
例:
{pc:content action="lists" catid="12" num="1" order="id DESC" return="info"}
{loop $info $v}
<!--图片-->
<div class="img_top">
{if $v[thumb]==null}
<img src="{thumb($v['thumb'],278,198)}"/>
{else} <img src="{IMG_PATH}lianmengimg/wstupianbg.jpg"/>{/if}
</div>
<!--图片-->
<h3><a href="{$v['url']}" target="_blank">{str_cut($v['title'],55)}</a></h3>
<div class="ws_text">
<p>{$v['description']}</p>
</div>
{/loop}
{/pc}
用php代码来实现,其实是这样的。
<?php if(defined('IN_ADMIN') && !defined('HTML')) {echo "<div class=\"admin_piao\" pc_action=\"content\" data=\"op=content&tag_md5=0fbcb24c67cefe51efba7d05ace80da0&action=lists&catid=12&num=1&order=id+DESC&return=info\"><a href=\"javascript:void(0)\" class=\"admin_piao_edit\">编辑</a>";}$content_tag = pc_base::load_app_class("content_tag", "content");if (method_exists($content_tag, 'lists')) {$info = $content_tag->lists(array('catid'=>'12','order'=>'id DESC','limit'=>'1',));}?>
<?php $n=1;if(is_array($info)) foreach($info AS $v) { ?>
<!--图片-->
<div class="img_top">
<?php if($v[thumb]==null) { ?>
<img src="<?php echo thumb($v['thumb'],278,198);?>"/>
<?php } else { ?> <img src="<?php echo IMG_PATH;?>lianmengimg/wstupianbg.jpg"/> <?php } ?>
</div>
<!--图片-->
<h3><a href="<?php echo $v['url'];?>" target="_blank"><?php echo str_cut($v['title'],55);?></a></h3>
<div class="ws_text">
<p><?php echo $v['description'];?></p>
</div>
<?php $n++;}unset($n); ?>
<?php if(defined('IN_ADMIN') && !defined('HTML')) {echo '</div>';}
?>
还有一个关于if,else的例子:
{pc:content action="lists" catid="42" order="id DESC" num="5" }
{loop $data $n $r}
<li>·<a href="{$r['url']}" title="{$r['title']}"{title_style($r[style])}>{str_cut($r[title],39,'')}</a> {if time()-$r[updatetime]<24*180*60}<img src='/image/new.gif' />{else}<span class="ind_tim2">{date('m-d',$r[inputtime])}</span>{/if}</li>
{/loop}
{/pc}
在列表页如果想实现分布功能需要加上page="$page":
{pc:content action="lists" catid="$catid" order="prorder ASC" thumb="2" num="6" page="$page" return="info"}
<div id="pages" class="text-c">{$pages}</div>
{/pc}
如何在category页调取所有子栏目列表
{pc:content action="category" catid="$catid" num="25" siteid="$siteid" order="listorder ASC"}
<ul>
{loop $data $r}
<li><a href="{$r[url]}">{$r[catname]}</a></li>
{/loop}
</ul>
{/pc}
分享到:
相关推荐
PHPCMS自己总结
总结了phpcms中的默认模板的标签使用,适合新手学习
phpcms v9常用标签、一、二级栏目标签调用、组图调用
PHPCMS后台模板,用于美化PHPCMS原始后台,直接把文件压根上传网站根目录,可替换原来后台模板。
PHPCMS美化后台样式,方便操作,下载文件直接覆盖根目录即可。 后台模板蒙奇时光,亲试了下能用,很好。 就下我就对了,我浪费了50积分下载“phpcmsV9后台模板”,都是我这样的。 说的不清楚的不要下,要积分高的...
phpcms短信插件_phpcms短信接口开发_phpcms短信发送设置
PHPCMS X 是基于PHPCMS V9 (9.6.3)上优化完善而来的,对PHPCMS V9进行了全面的优化和持续的安全修复及维护,并对部分功能做了延伸,PHPCMSX是PHPCMS众多fans的社区维护版。 PHPCMS X 不同于其他phpcms修改版,PHPCMS...
PHPCMS
PHPCMS V9 数据结构
修改phpcms后台原有logo标志和文字
phpcms2008标签调用方法、各种调用
4. 修改PHPCMS目录为CMS 5. 验证码修改 6. 支持H5上传,移除Flash上传 7. 修改后台缩略图裁切图片,移除Flash裁切改为H5裁切 8. 后台附件上传修改为H5上传,会员头像上传修改为H5上传 9. 修改后台界面,修改后台登录...
4. 修改PHPCMS目录为CMS 5. 验证码修改 6. 支持H5上传,移除Flash上传 7. 修改后台缩略图裁切图片,移除Flash裁切改为H5裁切 8. 后台附件上传修改为H5上传,会员头像上传修改为H5上传 9. 修改后台界面,修改后台登录...
PhpCMS V9代码生成器是一款绿色免费的编程工具软件,无需安装即可使用,可以帮助PHPCMS V9模板制作者快速、高效地部署代码,自动生成调用标签,大大减轻模板作者的工作量,节省phpcms模板制作耗费的时间,phpcms爱好...
概要地仃绍了PHPCMS V9 各项特性不功能,是用户熟悉和掌插 PHPCMS V9 的良好参考资 料。 读者对象 本文档的读者为PHPCMS V9 的使用者。使用者应具备以下基础知识: 熟悉Microsoft Internet Explorer 戒Mozilla...
phpcms模板,把它放在/TEMP文件下,然后进入PHPCMS更新模板即可
phpcms_gbk留言板插件2.0版本 index.php?m=guestbook&c=index&a=register 1、请先对原有文件进行备份。 2、上传upload中的文件到网站根目录,覆盖原有文件。 3、后台安装留言板 4、本安装包含模板文件,如果你使用...
phpcms模板phpcms模板phpcms模板
PHPCMS V9 修改flash上传为H5上传方案 phpcms 上传文件js,h5
PHPCMS2008开发文档,PHPCMS2008开发文档,PHPCMS2008开发文档,PHPCMS2008开发文档