phpcms_v9模板制作及二次开发常用代码

这篇具有很好参考价值的文章主要介绍了phpcms_v9模板制作及二次开发常用代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0:调用最新文章,带所在版块

{pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url as curl,a.id FROM `v9_news` a, `v9_category` b WHERE a.catid = b.catid ORDER BY `a`.`id` DESC " num="15" cache="300"}
{loop $data $r}
<h6><font class="cate"><a href="{$r[curl]}">[{$r[catname]}]</a></font><a
class="gray" href="{$r[turl]}" title="{$r[title]}"> {str_cut($r['title'],26)}</a></h6>
{/loop}
{/pc}

====[{$r[catname]}]所在版块的调用
0-1、调用指定栏目下面的内容页的内容
{pc:get sql=“SELECT * FROM v9_page where catid=31”}
{loop $data $key KaTeX parse error: Expected 'EOF', got '}' at position 4: val}̲ {str_cut(s…val[content]),705, ‘…’)}
{/loop}
{/pc}

1.截取调用标题长度

{str_cut(KaTeX parse error: Expected 'EOF', got '}' at position 16: v[title],36,'')}̲ {str_cut(v[‘title’],34)} 超出用 … 代替
{str_cut(KaTeX parse error: Expected 'EOF', got '}' at position 22: …le'],34, '???')}̲超出用 ???代替 {str_…v[‘title’],34,‘’)}超出不用任何字符代替

2.格式化时间

调用格式化时间 2011-05-06 11:22:33
{date(‘Y-m-d H:i:s’,KaTeX parse error: Expected 'EOF', got '}' at position 14: r[inputtime])}̲ <span class="r…v[‘inputtime’])}

3.多栏目调用&多推荐位调用

调用需求:文章范围为59 60 61三个栏目,并且推送到了27 和28两个推荐位;
从第三条开始,连续调用7篇文章。

{pc:get sql=“SELECT * FROM v9_news WHERE id IN (SELECT id FROM v9_position_data WHERE posid in(27,28) and catid in(59,60,61)) order by listorder DESC” cache=“3600” start=“3” num=“7” return=“data” }
{loop $data $n $r}

  • ·{str_cut ($r[title],22,'')}
  • {/loop} {/pc}

    4.显示栏目名称(只是名称,不带链接)

    {$catname}

    显示栏目名称和链接(可以点击)

    { C A T E G O R Y S [ CATEGORYS[ CATEGORYS[r[‘catid’]][‘catname’]}

    5.获取父栏目id/获取父栏目名称

    { C A T E G O R Y S [ CATEGORYS[ CATEGORYS[catid][parentid]}
    父栏目名称:{ C A T E G O R Y S [ CATEGORYS[ CATEGORYS[CAT[parentid]][catname]}

    6.外部数据源调用

    dedecmsdb 在后台数据源处添加
    {pc:get sql=“SELECT * FROM cq_member where mtype=‘企业’ " cache=“3600” dbsource=“dedecmsdb"num=“7” return=“data”}
    {loop $data KaTeX parse error: Expected 'EOF', got '}' at position 2: r}̲ <a href="/memb…r[userid]}” title=”{KaTeX parse error: Expected 'EOF', got '}' at position 9: r[uname]}̲" target="_blan…r[uname],28,‘’)}
    {/loop}
    {/pc}

    7.调用子栏目(在栏目首页模板需要用到)

    {pc:content action=“category” catid=“ c a t i d " n u m = " 25 " s i t e i d = " catid" num="25" siteid=" catid"num="25"siteid="siteid” order=“listorder
    ASC”}
    {loop $data KaTeX parse error: Expected 'EOF', got '}' at position 2: r}̲ <a href="{r[url]}">{$r[catname]} |
    {/loop}
    {/pc}

    8.显示指定id的栏目名称 (例子这里catid=22)

    {$CATEGORYS[22][‘catname’]}

    9.在文章面前显示文章类别

    {pc:content action=“lists” catid=“79” order=“listorder DESC” num=“14” }

    <?php $TYPE = getcache('type_content','commons');?>

    {loop $data $n $r}

  • {if $TYPE[$r[typeid]][name]}[ {$TYPE[$r[typeid]][name]}] {/if}
  • 10.指定变量循环增长(幻灯片经常用到)

    {pc:content action=“lists” catid=“66” order=“listorder DESC” thumb=“1” num=“5” }
    {php $num = 0}
    {loop $data KaTeX parse error: Expected 'EOF', got '}' at position 2: r}̲ linkarr[{num}] = "{KaTeX parse error: Expected 'EOF', got '}' at position 7: r[url]}̲"; picarr[{num}] = "{KaTeX parse error: Expected 'EOF', got '}' at position 9: r[thumb]}̲"; textarr[{num}] = “{str_cut($r[title],36,‘’)}”;
    {php $num++}
    {/loop}
    {/pc}

    11.文章调用使用limit

    {pc:content action=“position” posid=“36” num=“1” order=“listorder DESC limit 1,1–” }
    其他都是跟以前一样使用
    {pc:content action=“position” posid=“31” order=“listorder DESC” limit=‘1,8–’}
    {loop $data $r}

  • {str_cut($r[title],36,'')}

  • {/loop}
    {/pc}

    12.文章从指定位置开始调用起始位置为5,调用3条。相当于limit功能。

    {pc:content action=“position” posid=“27” order=“listorder DESC” num=“3” start=“5”}
    {loop $data KaTeX parse error: Expected 'EOF', got '}' at position 2: r}̲ <a href='{r[url]}'>{str_cut($r[description],115)}…
    {/loop}
    {/pc}

    13.文章列表页调用关键字,或者首页调用关键字注意:

    explode(‘,’, r [ k e y w o r d s ] ) ; 是将文章关键词通过英文逗号分离,也就是说每一篇文章都要以逗号间隔关键字,否则调用出来会是全部作为一个关键字。如果是空格间隔关键字,将 e x p l o d e ( ′ , ′ , r[keywords]);是将文章关键词通过英文逗号分离,也就是说每一篇文章都要以逗号间隔关键字,否则调用出来会 是全部作为一个关键字。如果是空格间隔关键字,将 explode(',', r[keywords]);是将文章关键词通过英文逗号分离,也就是说每一篇文章都要以逗号间隔关键字,否则调用出来会是全部作为一个关键字。如果是空格间隔关键字,将explode(,,r[keywords]);改成explode(’ ',KaTeX parse error: Expected '}', got 'EOF' at end of input: …"lists" catid="catid" num=“10” order=“id DESC” page=“$page”}
    {loop $data KaTeX parse error: Expected 'EOF', got '}' at position 2: r}̲ <a href="{r[url]}“>{$r[title]}
    {php k e y w o r d s = e x p l o d e ( ′ , ′ , keywords = explode(',', keywords=explode(,,r[keywords]);}
    文章标签:
    {loop $keywords KaTeX parse error: Expected 'EOF', got '}' at position 8: keyword}̲ <a href="{APP_…catid}&tag={urlencode($keyword)}”

    class=“blue”> {$keyword}
    {/loop}
    {/loop}
    {/pc}

    14.每当列表几行的时候出现一次某些符号(

    比如首页里面的文章推荐,一行显示两条,在这两条中间想加一条竖线 | 就用到这个代码了)数量大的话就容易出错,因为模运算嘛~~呵呵 不过一般也就4个标题以下
    {pc:content action=“position” posid=“8” order=“listorder DESC” num=“2”}
    {loop $data KaTeX parse error: Expected 'EOF', got '}' at position 2: r}̲ <a style="colo…r[title]}" href="{KaTeX parse error: Expected 'EOF', got '}' at position 7: r[url]}̲" target=_blank…r[title],26,‘’)}{if $n%2==1} |{/if}
    {/loop}
    {/pc}

    15.v9 列表页完美支持自定义段调用

    {pc:content action=“lists” catid=“ c a t i d " n u m = " 25 " o r d e r = " i d D E S C " p a g e = " catid" num="25" order="id DESC" page=" catid"num="25"order="idDESC"page="page” moreinfo=“1”}
    {loop $data KaTeX parse error: Expected 'EOF', got '}' at position 2: r}̲ <a href="{r[url]}">[{KaTeX parse error: Expected 'EOF', got '}' at position 9: r['字段名']}̲]> {r[title]}
    {/loop}

    {$pages}
    {/pc}

    16.当前栏目调用父级及以下栏目信息方法

    其他代码 该咋地还是要咋地 。这是要素
    {php $arrchildid = C A T E G O R Y S [ CATEGORYS[ CATEGORYS[CAT[parentid]][arrchildid]}
    {pc:get sql=“SELECT * FROM v9_news where catid in( a r r c h i l d i d ) c a c h e = " 3600 " p a g e = " arrchildid) cache="3600" page=" arrchildid)cache="3600"page="page” num=“12” return=“data”}

    17.V9表单功能 提交之后如何返回当前页面,而不是默认的首页文件地址

    找到 phpcms\modules\formguide\index.php文件第73行
    showmessage(L(‘thanks’), APP_PATH);
    修改成 如下代码即可实现自动返回前一页
    showmessage(L(‘thanks’), HTTP_REFERER);

    18.v9 首页或分页自定义字段调用 和15差不多

    第一普通列表或栏目调用自定义字段
    在{pc:content action=“lists” 后加上副表moreinfo=1 (等于1时显示,0时不显示)
    例子:
    {pc:content action=“lists” moreinfo=1 catid=“2” order=“id DESC” num=“4”}

    • {loop $data $key $val}
    • {$val['title']}
      价格:{str_cut($v['自定义段'],100)} //100 是字数
    • {/loop}
    {/pc} 第二种推荐位调用自定义字段 在模型里加好自定义字段后,必须把“在推荐位标签中调用”点击“是“ 然后用同一样的方法去调节数据就OK了,记住,如果你加了文章,必须去更新文章才会显示,自定义段在 推荐中只显示你选择后,选择前加的加文章不显示,更新一下文章就显示了 例子: {pc:content action="position" posid="推荐位id" num="30" thumb="1" moreinfo="1" order="listorder DESC"} {loop $data $key $val}
  • {str_cut($val['title'],20)}
  • {/loop} {/pc}

    20.编辑器上传图片自动使用标题作为alt参数

    一: 修改 statics/js/ckeditor/plugins/image/dialogs/image.js
    找到 accessKey:‘T’,‘default’:‘’ 替换成 accessKey:‘T’,‘default’😒(‘#title’).val()
    二: 清除浏览器缓存

    21.增加文章的随机点击数

    找到100行的$views = $r[‘views’] +1 修改为: $rand_nums=rand(79,186); $views = $r[‘views’] + $rand_nums; 表示点击一次,增加79到186次不等

    tips:某些版本出错民间解决方法
    1.缩略图以及图集无法上传
    \phpcms\libs\classes\attachment.class.php
    请把24行的(也有可能是23行)
    $this->upload_func = ‘copy’;
    改成
    $this->upload_func = ‘move_uploaded_file’;
    2.碎片模块搜索文章看不到栏目
    phpcms\modules\block\templates\search_content.tpl.php
    13行改成

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

    示更新日期):
    {get dbsource=“bbs” sql=“select * from cdb_threads where fid=1 order by dateline desc” rows=“10”}

    主题:{str_cut(KaTeX parse error: Expected 'EOF', got '}' at position 16: r[subject], 50)}̲ URL:http://bbs…r[tid]}

    更新日期:{date(‘Y-m-d’, $r[dateline])}

    {/get}

    不知道有没有朋友在使用中遇到这几种方法不能满足需求的时候呢?

    例如:取出评论数最多的第3条到第10条记录,有人说我是多此一举,一般取最多评论没理由不取第一和

    第二条,因为PHPCMS的缩略图对4:3这样的尺寸比较好,对长条形(如3:4)的图片缩略效果不好,为了

    自己手动更新评论最多的第一和第二条记录,故此不想自动更新读取前两条。

    • {$r[comments]}人参与评论·{str_cut($r[title], 28)}

    关键点就在 order by B.comments desc LIMIT 3,7 (表示从第3条记录开始,向下读取7条数据)这个在
    MYSQL是经常用,我抱着试试看的想法,结果是可以的。
    希望做PHPCMS开发的朋友共同学习和分享

    phpcms V9 保留了2008的get标签的使用方法

    它包括了2种方式一种是内部数据,另一种是外部数据

    我们先分析下内部数据的使用方法

    1、内部数据的调用

    {pc:get sql="SELECT * FROM XX WHERE fid =$ltid AND digest =2 AND ifupload =1

    ORDER BY tid DESC" num=“2” cache= “3600” return=“data” }

    {loop $data $r}

    。。。。。

    {/loop}{/pc}

    由此可以看出 get 语句支持num的用法但是不支持 limit 5,5.这样的用法

    实在是很遗憾

    num是调用的条数

    2、外部数据的调用

    { pc : get sql = “SELECT * FROM phpcms_member” cache = “3600” page = “$page” dbsource =“discuz” return = “data” }

    • { loop $data $key $val }

    { $val [ username ]}< br />
    { /loop}
    </ ul >
    { $pages }
    {/ pc }

    一个是数据源,一个是产生的pages翻页效果。文章来源地址https://www.toymoban.com/news/detail-724848.html

到了这里,关于phpcms_v9模板制作及二次开发常用代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • dedecms织梦模板列表页单独调用总页数二次开发教程详解

    本文介绍了dedecms织梦模板列表页单独调用总页数二次开发教程,分享给大家,也给自己留个笔记,具体如下: 效果演示: 利用{dede:pagelist listitem=\\\"info,index,end,pre,next,pageno,option\\\" listsize=\\\"3\\\"/} 找到了一个比较快的一个独立调用的办法。 开发方法 1、打开 include/arc.listview.class.php 找

    2024年02月02日
    浏览(54)
  • 【unity游戏开发教程】Unity+Umotion Pro+VRoid+Blender制作人物模型和动画,在unity中简单制作二次元人物动画

    大家好!本期教程教大家在unity中制作二次元人物模型和动画 1.下载VRoid Studio 1.搜索VRoid Studio下载即可,或者前往官网VRoid官网 VRoid Studio是由pixiv开发的一款3D人物建模软件,VRoid的主要特征就是通过类似绘画的方式进行人物的建模,使人们更为轻松地创造自己的虚拟人物。

    2024年02月10日
    浏览(54)
  • PHPCMS V9 全站 Sitemaps生成实现代码[服务器端版]

    需求: 通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemaps 以下代码为sitemaps crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可 代码: PHP Code 复制内容到剪贴板 ?php   /span /**    *  sitemap.php PHPCMS V9 sitemaps入口    *    * @copyright 

    2023年04月21日
    浏览(46)
  • Vim快速插入常用代码模板

    家目录中ls -a找到隐藏文件.vimrc 输入i编辑,在尾巴插入代码,按:wq保存并退出。  效果:按mf快速输入模板 noremap io i#include stdio.hEscoEsc :将命令 io 映射为在当前光标处插入 #include stdio.h 并换行。这可以用于在C程序中包含头文件。 noremap im iint main(int argc, char *argv[])Esc :将命令

    2024年02月05日
    浏览(27)
  • VS代码片段(CodeSnippet)的制作以及常用代码片段记录

    本文将会探索VS中代码片段,并且学会自己制作代码片段,通过这种方式提高我们的编程效率。 先看下下面这段代码的编写 是不是很熟悉?平常我们编写代码的使用,经常会使用prop,ctor等快速生成代码。 那么它到底是啥呢?我们能不能自己也写一个这些的快捷生成代码的方

    2024年02月08日
    浏览(60)
  • 网页制作基础学习——HTML+CSS常用代码

    Hello大家好,我是北辰!很高心您能来阅读! HTML超文本语言(Hyget Text Language) 1993 HTML1.0 2013 HTML5.0 HTML5的优势: 1.化繁为简 2.跨平台 3.跨浏览器 4.功能强大,新增特性 1. 标题标签 2. 段落标签 3. 换行标签 4. 水平线标签 5. 字体样式标签 6. 注释标签 7. 字符实体 8. 图像标签 9.

    2024年02月06日
    浏览(55)
  • 开发工程师常用的ChatGPT通用提示词模板

    编程语言掌握:如何熟练掌握至少一门编程语言,如Java、Python、C++等? 开发工具使用:如何熟练使用常用的开发工具,如IDE、版本控制工具、调试工具等? 数据库操作:如何进行数据库设计和操作,包括数据模型设计、SQL语句编写等? 系统架构理解:如何理解系统架构,包

    2024年02月01日
    浏览(40)
  • 详解织梦模板DEDECMS对discuz论坛的一些常用调用代码

    dede调用DZ论坛帖子及特定板块帖子的调用方法 论坛最新主题: 调特定板块的主题: 显示精华帖: 论坛之星/活跃会员: [field:username/] 贴子:[field:posts/] 加入:[field:regdate function=\\\"GetDateMK(@me)\\\"/] {/dede:loop} /bbs/space.php?uid=[field:uid /] 个人信息地址 /bbs/uc_server/avatar.php?uid=[field:uid /

    2024年02月02日
    浏览(47)
  • 【Java】智慧工地管理系统源代码,支持二次开发,SaaS模式

    智慧工地系统围绕工程现场人、机、料、法、环及施工过程中质量、安全、进度、成本等各项数据满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效。 1、施工现场管理难:安全事故频发,人工巡检难度大,质量进度协同难等问题仍没有得到解决; 2.人员管理

    2024年02月04日
    浏览(44)
  • [开源]一个低代码引擎,支持在线实时构建低码平台,支持二次开发

    TinyEngine低代码引擎使能开发者定制低代码平台,支持在线实时构建低码平台,支持二次开发或集成低码平台能力。 使用MIT开源协议 TinyEngine是一个低代码引擎,基于这个引擎可以构建或者开发出不同领域的低代码平台。 跨端跨框架前端组件 支持在线实时构建、支持二次开发

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包