1、phpcms二次开发常用标签23个phpcmsv9模板制作及二次开发常用代码案例时间:2012-04-2616:04来源:PHPCMS中国作者:PHPCMS中国点击:633次【字号:大中小】23个phpcmsv9模板制作及二次开发常用代码案例0:调用最新文章,带所在版块pc:getsql=SELECTa.title,a.catid,b.catid,b.catname,a.urlasturl,b.urlascurl,a.idFROMv9_newsa,v9_categorybWHEREa.catid=b.catidORDERBYa.idDESCnum=15cache=300loop$data$r$
2、rcatnamestr_cut($rtitle,26)/loop/pc=$rcatname所在版块的调用1.截取调用标题长度str_cut($vtitle,36,)str_cut($vtitle,34)超出用.代替str_cut($vtitle,34,?)超出用?代替str_cut($vtitle,34,)超出不用任何字符代替2.格式化时间调用格式化时间2011-05-0611:22:33date(Y-m-dH:i:s,$rinputtime)date(m-d,$vinputtime)3.多栏目调用&多推荐位调用调用需求:文章范围为596061三个栏目,并且推送到了27和28两个推荐位;从第三
3、条开始,连续调用7篇文章。pc:getsql=SELECT*FROMv9_newsWHEREidIN(SELECTidFROMv9_position_dataWHEREposidin(27,28)andcatidin(59,60,61)orderbylistorderDESCcache=3600start=3num=7return=dataloop$data$n$rstr_cut($rtitle,22,)/loop/pc4.显示栏目名称(只是名称,不带链接)$catname显示栏目名称和链接(可以点击)$CATEGORYS$rcatidcatname5.获取父栏目id/获取父栏目名称$CATE
4、GORY$catidparentid父栏目名称:$CATEGORYS$CATparentidcatname6.外部数据源调用dedecmsdb在后台数据源处添加pc:getsql=SELECT*FROMcq_memberwheremtype=企业cache=3600dbsource=dedecmsdbnum=7return=dataloop$data$rstr_cut($runame,28,)/loop/pc7.调用子栏目(在栏目首页模板需要用到)pc:contentaction=categorycatid=$catidnum=25siteid=$siteidorder=listorderAS
5、Cloop$data$r$rcatname|/loop/pc8.显示指定id的栏目名称(例子这里catid=22)$CATEGORYS22catname9.在文章面前显示文章类别pc:contentaction=listscatid=79order=listorderDESCnum=14loop$data$n$rif$TYPE$rtypeidname$TYPE$rtypeidname/ifstr_cut($rtitle,33,)/loop/pc10.指定变量循环增长(幻灯片经常用到)pc:contentaction=listscatid=66order=listorderDESCthumb=1
6、num=5php$num=0loop$data$rlinkarr$num=$rurl;picarr$num=$rthumb;textarr$num=str_cut($rtitle,36,);php$num+/loop/pc11.文章调用使用limitpc:contentaction=positionposid=36num=1order=listorderDESClimit1,1-其他都是跟以前一样使用pc:contentaction=positionposid=31order=listorderDESClimit=1,8-loop$data$rstr_cut($rtitle,36,)/loop
7、/pc12.文章从指定位置开始调用起始位置为5,调用3条。相当于limit功能。pc:contentaction=positionposid=27order=listorderDESCnum=3start=5loop$data$rstr_cut($rdescription,115)./loop/pc13.文章列表页调用关键字,或者首页调用关键字注意:explode(,$rkeywords);是将文章关键词通过英文逗号分离,也就是说每一篇文章都要以逗号间隔关键字,否则调用出来会是全部作为一个关键字。如果是空格间隔关键字,将explode(,$rkeywords);改成explode(,$rkey
8、words);pc:contentaction=listscatid=$catidnum=10order=idDESCpage=$pageloop$data$r$rtitlephp$keywords=explode(,$rkeywords);文章标签:loop$keywords$keyword$keyword/loop/loop/pc14.每当列表几行的时候出现一次某些符号(比如首页里面的文章推荐,一行显示两条,在这两条中间想加一条竖线|就用到这个代码了)数量大的话就容易出错,因为模运算嘛呵呵不过一般也就4个标题以下pc:contentaction=positionposid=8order=l
9、istorderDESCnum=2loop$data$rstr_cut($rtitle,26,)if$n%2=1|/if/loop/pc15.v9列表页完美支持自定义段调用pc:contentaction=listscatid=$catidnum=25order=idDESCpage=$pagemoreinfo=1loop$data$r$r字段名$rtitle/loop$pages/pc16.当前栏目调用父级及以下栏目信息方法其他代码该咋地还是要咋地。这是要素php$arrchildid=$CATEGORYS$CATparentidarrchildidpc:getsql=SELECT*FROM
10、v9_newswherecatidin($arrchildid)cache=3600page=$pagenum=12return=data17.V9表单功能提交之后如何返回当前页面,而不是默认的首页文件地址找到phpcmsmodulesformguideindex.php文件第73行showmessage(L(thanks),APP_PATH);修改成如下代码即可实现自动返回前一页showmessage(L(thanks),HTTP_REFERER);18.v9首页或分页自定义字段调用和15差不多第一普通列表或栏目调用自定义字段在pc:contentaction=lists后加上副表morei
11、nfo=1(等于1时显示,0时不显示)例子:pc:contentaction=listsmoreinfo=1catid=2order=idDESCnum=4loop$data$key$val$valtitle价格:str_cut($v自定义段,100)/100是字数/loop/pc第二种推荐位调用自定义字段在模型里加好自定义字段后,必须把“在推荐位标签中调用”点击“是“然后用同一样的方法去调节数据就OK了,记住,如果你加了文章,必须去更新文章才会显示,自定义段在推荐中只显示你选择后,选择前加的加文章不显示,更新一下文章就显示了例子:pc:contentaction=positionposid=
12、推荐位idnum=30thumb=1moreinfo=1order=listorderDESCloop$data$key$valstr_cut($valtitle,20)/loop/pc20.编辑器上传图片自动使用标题作为alt参数一:修改statics/js/ckeditor/plugins/image/dialogs/image.js找到accessKey:T,default:替换成accessKey:T,default:$(#title).val()二:清除浏览器缓存21.增加文章的随机点击数找到100行的$views=$rviews+1修改为:$rand_nums=rand(79,18
13、6);$views=$rviews+$rand_nums;表示点击一次,增加79到186次不等-tips:某些版本出错民间解决方法1.缩略图以及图集无法上传phpcmslibsclassesattachment.class.php请把24行的(也有可能是23行)$this-upload_func=copy;改成$this-upload_func=move_uploaded_file;2.碎片模块搜索文章看不到栏目phpcmsmodulesblocktemplatessearch_content.tpl.php13行改成22、PHPCMSV9的get标签调用1、调用本系统单条数据,示例(调用ID
14、为1的信息,标题长度不超过25个汉字,显示更新日期):getsql=select*fromphpcms_contentwherecontentid=1/标题:str_cut($rtitle,50)URL:$rurl更新日期:date(Y-m-d,$rupdatetime)2、调用本系统多条数据,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期):getsql=select*fromphpcms_contentwherecatid=1andstatus=99orderbyupdatetimedescrows=10标题:str_cut($rtitle,50)URL
15、:$rurl更新日期:date(Y-m-d,$rupdatetime)/get3、带分页,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25个汉字,显示更新日期,带分页):getsql=select*fromphpcms_contentwherecatid=1andstatus=99orderbyupdatetimedescrows=10page=$page标题:str_cut($rtitle,50)URL:$rurl更新日期:date(Y-m-d,$rupdatetime)/get分页:$pages4、自定义返回变量,示例(调用栏目ID为1通过审核的10条信息,标题长度不超过25
16、个汉字,显示更新日期,返回变量为$v):getsql=select*fromphpcms_contentwherecatid=1andstatus=99orderbyupdatetimedescrows=10return=v标题:str_cut($vtitle,50)URL:$vurl更新日期:date(Y-m-d,$vupdatetime)/get5、调用同一帐号下的其他数据库,示例(调用数据库为bbs,分类ID为1的10个最新主题,主题长度不超过25个汉字,显示更新日期):getdbname=bbssql=select*fromcdb_threadswherefid=1orderbydat
17、elinedescrows=10主题:str_cut($rsubject,50)URL:更新日期:date(Y-m-d,$rdateline)/get6、调用外部数据,示例(调用数据源为bbs,分类ID为1的10个最新主题,主题长度不超过25个汉字,显示更新日期):getdbsource=bbssql=select*fromcdb_threadswherefid=1orderbydatelinedescrows=10主题:str_cut($rsubject,50)URL:更新日期:date(Y-m-d,$rdateline)/get不知道有没有朋友在使用中遇到这几种方法不能满足需求的时候呢?例
18、如:取出评论数最多的第3条到第10条记录,有人说我是多此一举,一般取最多评论没理由不取第一和第二条,因为PHPCMS的缩略图对4:3这样的尺寸比较好,对长条形(如3:4)的图片缩略效果不好,为了自己手动更新评论最多的第一和第二条记录,故此不想自动更新读取前两条。0orderbyB.commentsdescLIMITE. F. G. 3,7-H. I. J. $rcomments人参与评论str_cut($rtitle,28)N. O. P. Q. R. S. T. U. V. 关键点就在orderbyB.commentsdescLIMIT3,7(表示从第3条记录开始,向下读取7条数据)这个在W. X. Y. MYSQL是经常用,我抱着试试看的想法,结果是可以的。ZZ. AA. BB. 希望做PHPCMS开发的朋友共同学习和分享CC. DD. EE. phpcmsV9保留了2008的get标签的使用方法FF. GG. HH. 它包括了2种方式一种是内部数据,另一种是外部数据II. JJ.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1