本文将为您提供关于phpcmsv9模板标签技巧,标签常用方法_PHP教程的详细介绍,我们还将为您解释phpcms标签大全的相关知识,同时,我们还将为您提供关于(转)对帝国cms、dedecms、php
本文将为您提供关于phpcms v9 模板标签技巧,标签常用方法_PHP教程的详细介绍,我们还将为您解释phpcms标签大全的相关知识,同时,我们还将为您提供关于(转)对帝国cms、dedecms、phpcms、discuz、phpwind、xiuno负载测试总结、CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁、phpcms v9 tag 标签页输出缩略图标签、phpcms v9 上传到空间出_无需整理的实用信息。
本文目录一览:- phpcms v9 模板标签技巧,标签常用方法_PHP教程(phpcms标签大全)
- (转)对帝国cms、dedecms、phpcms、discuz、phpwind、xiuno负载测试总结
- CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁
- phpcms v9 tag 标签页输出缩略图标签
- phpcms v9 上传到空间出_无需整理
phpcms v9 模板标签技巧,标签常用方法_PHP教程(phpcms标签大全)
1.截取调用标题长度
立即学习“PHP免费学习笔记(深入)”;
{str_cut($r[title],36,'''')} ,后面的引号是为了去掉....
2.格式化时间
调用格式化时间 2011-05-06 11:22:33
{date(''Y-m-d H:i:s'',$r[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}
{/loop}
{/pc}
4.显示栏目名称(只是名称,不带链接)
{$catname}
显示栏目名称和链接(可以点击)
{$CATEGORYS[$r[''catid'']][''catname'']}
5.获取父栏目id/获取父栏目名称
{$CATEGORY[$catid][parentid]}
父栏目名称:{$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 $r}
{str_cut($r[uname],28,'''')}
{/loop}
{/pc}
7.调用子栏目(在栏目首页模板需要用到)
{pc:content action="category" catid="$catid" num="25" siteid="$siteid" order="listorder ASC"}
{loop $data $r}
{$r[catname]} |
{/loop}
{/pc}
8.显示指定id的栏目名称 (例子这里catid=22)
{$CATEGORYS[22][''catname'']}
9.在文章面前显示文章类别
{pc:content action="lists" catid="79" order="listorder DESC" num="14" }
{loop $data $n $r}
{/loop}
{/pc}
10.指定变量循环增长(幻灯片经常用到)
{pc:content action="lists" catid="66" order="listorder DESC" thumb="1" num="5" }
{php $num = 0}
{loop $data $r}
linkarr[{$num}] = "{$r[url]}";
picarr[{$num}] = "{$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}
{/loop}
{/pc}
12.文章从指定位置开始调用
起始位置为5,调用3条。相当于limit功能。
{pc:content action="position" posid="27" order="listorder DESC" num="3" start="5"}
{loop $data $r}
{str_cut($r[description],115)}...
{/loop}
{/pc}
13.文章列表页调用关键字,或者首页调用关键字
注意:explode('','',$r[keywords]);是将文章关键词通过英文逗号分离,也就是说每一篇文章都要以逗号间隔关键字,否则调用出来会 是全部作为一个关键字。如果是空格间隔关键字,将explode('','',$r[keywords]);改成explode('' '',$r[keywords]);
{pc:content action="lists" catid="$catid" num="10" order="id DESC" page="$page"}
{loop $data $r}
{$r[title]}
{php $keywords = explode('','',$r[keywords]);}
文章标签:
{loop $keywords $keyword}
{$keyword}
{/loop}
{/loop}
{/pc}
14.每当列表几行的时候出现一次某些符号(比如首页里面的文章推荐,一行显示两条,在这两条中间想加一条竖线 | 就用到这个代码了)
数量大的话就容易出错,因为模运算嘛~~呵呵 不过一般也就4个标题以下
{pc:content action="position" posid="8" order="listorder DESC" num="2"}
{loop $data $r}
{/loop}
{/pc}
15.v9 列表页完美支持自定义段调用
{pc:content action="lists" catid="$catid" num="25" order="id DESC" page="$page" moreinfo="1"}
{loop $data $r}
[{$r[''字段名'']}]> {$r[title]}
{/loop}
{/pc}
16.当前栏目调用父级及以下栏目信息方法
其他代码 该咋地还是要咋地 。这是要素
{php $arrchildid = $CATEGORYS[$CAT[parentid]][arrchildid]}
{pc:get sql="SELECT * FROM v9_news where catid in($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"}
-
{$val[''title'']}
价格:{str_cut($v[''自定义段''],100)} //100 是字数
{loop $data $key $val}
{/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行改成
'''', ''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($r[subject], 50)} URL:http://bbs.phpcms.cn/viewthread.php?tid={$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 ]}
{ /loop}
ul >
{ $pages }
{/ pc }
一个是数据源,一个是产生的pages翻页效果
(转)对帝国cms、dedecms、phpcms、discuz、phpwind、xiuno负载测试总结
担心被骂,本不想写这篇文章。犹豫良久,最终还是决定写。希望能够帮助到一些朋友,认识到数据库索引正确设计的重要性。
由于我比较懒,就简单用文字描述一下,就懒得切图片证明了,懂技术的朋友可以自己测试一下,可证实我的测试结果是否真实。不懂技术的朋友信不信也无妨。
测试程序:
CMS程序:帝国cms dedecms phpcms
论坛程序:discuz phpwind xiuno
负载测试结果:
xiuno > discuz > phpwind > phpcms > ( 帝国cms ? dedecms)
从数据库设计来看(个人观点):
xiuno > (discuz 、 phpwind 、 phpcms) > (帝国cms 、 dedecms)
dedecms和帝国cms都是老牌的CMS了,从的数据库设计来看,不知是数据库设计者完全没有理解mysql索引的真谛,还是留一手以对高负载需求的用户收费改进?(希望不懂技术的朋友不要喷我,真正懂mysql索引的朋友可以自己看一下他们对索引的设计,虽然对于dedecms和帝国cms的作者来说,我只是一个晚辈,像您们这样有10多年开发经验的人,我比较尊敬,但我建议当前的dedecms和帝国cms数据库设计者还是再研究一下mysql索引吧,可以不相信我,但可以花点时间看看discuz 、phpwind的数据库设计吧,确实是比您们的好)。
如果有幸帝国cms作者能看到此文,希望您再重新设计帝国cms架构吧,毕竟这些年您一直在改进帝国cms的负载能力,光是通过分表技术提升,没有真正用到索引来优化,真的不行的,如果用对了索引,性能还会有更大的提升。
dedecms的创始人我算是和他认识,但现在dedecms却不是他的,比较遗憾,现在的dedecms这几年确实没多大变化,一直在打补丁,这样下去真是比较悲剧。
我的测试环境:
i3CPU 4G内存 1T硬盘 win7系统 apache 2.2 + mysql 5.0(普通环境没有优化过)
测试方法:
导入100万至1亿 不等数据,进行简单的访问测试
我的导入方法:
根据各个程序的数据结构写出导入程序,
1.先写一个PHP程序,将数据写入 e:/insert1.sql 这个文件,
2.然后再通过 LOAD DATA local INFILE ''e:/insert1.sql'' INTO TABLE `数据表名` character set 编码; 这种方式导入的,导入千W数据也就几分钟。
1、帝国cms
测试版本:EmpireCMS_7.0_SC_GBK (当前官方最新版)
先说说帝国cms,官方有一篇大数据测试贴(2千万数据、17.3GB数据库下帝国CMS超强生成速度 ),当年我看到这篇测试贴时,也觉得负载非常强大,但我测试后,令我失望了。
安装默认测试数据(共33篇新闻测试数据),首页改为动态首页 第一次访问0.670127010345459 第二次访问0.07926607131958
我导入100W数据时,数据库大小3.6G,首页第一次访问182秒,第二次访问155秒,我不知道当时帝国cms作者测试时,是否有测试过动态访问首页的时间。包括从6.0版起,每次更新都有说提升性能,但为何会这样?
帝国CMS官方的测试帖,就是误导人,忽悠人。
问题1.测试数据并没有提到动态访问首页或是生成首页。也没有提到动态访问列表页,和生成列表页。
问题2.测试统计的时间,也只统计了连接数据库之后的执行时间,并没有加上连接数据库的时间,这样很容易误导很多人,拿这个时间和别人统计了连接数据库的时间比。这样就差别大了。
问题3.每篇新闻的内容很少也就几行字。同时内容页模板,也非常简单,生成出来的文件也非常小,只有3K。正常的文章,都是上10K至几十K。
问题4.同时因为phome_ecms_news表 id 为主键,读取内容时,都是走的索引,所以动态访问内容页,编辑内容,生成内容页很快,都是理所当然的。
问题5.测试时都是通过分表来测试的,在真实站长做网站,不可能一开始就把网站内容分表。所以这和真实做站情况完全不一样。
像官方这种测试贴,真是误导人,而且还挂了几年。对于不懂技术的人,就是一种误导,让普通用户盲目的崇拜。
2、dedecms
测试版本:DedeCMS V5.7 SP1_GBK正式版 (当前官方最新版)
织梦CMS在知度CMS中一直公认的负载性能最差的CMS,确实很差。
我导入100W数据时,数据库大小只有330M,首页访问已经需要70几秒-80几秒才能访问。
3、phpcms
测试版本:PHPCMS V9_GBK 正式版 (当前官方最新版)
PHPCMS现在是由新的团队重新开发,也是号称高负载。
我导入100W数据时,数据库大小3G,首页访问需要20几秒。
4、phpwind
测试版本:phpwind v9.0 UTF-8 正式版(当前官方最新版)
phpwind以前和discuz比,速度上有优势,现在据说是全新开发,新版确实做了很大的改变(以前一直是discuz追随者,和discuz设计差别不是很大),现在这一变化,应该值的赞扬,但现在速度上不如discuz了,以前网页底部显示执行时间都去掉了。
我导入1000W数据时,数据库大小13G,
首页第一次访问8秒,第二次访问0.70477390289307秒
帖子列表页(默认排序)0.2x-0.5x秒 但我采用按“最新发贴”排序时,花了182秒才显示出来(我看了数据库设计,因为只做了按“最后回复”的索引,“发帖时间”的排序都没做索引,所以才很慢)
帖子内容页,没填充多少回帖也没具体测试
5、discuz
测试版本:Discuz_X2.5_SC_UTF8 Discuz_X3.0_SC_UTF8
dx3看来是dx2.5的加强版,从后台、前台设计看,都变化不大。数据库架构变化也不大。
我导入1000W数据时,数据库大小18G,
首页0.05-0.06秒,(也没太大测试价值,因为都没读到thread表)
帖子列表页(默认排序)0.07-0.09秒 但我采用按“发帖时间”排序时,花了181秒才显示出来(我看了数据库设计,因为只做了按“最后回复”的索引,“发帖时间”的排序都没做索引,所以才很慢)
帖子内容页,(没填充多少回帖也没具体测试)
6、xiuno
测试版本:xiuno bbs 2.02 UTF8
我导入1000W数据时,数据库大小15G
首页0.03-0.05秒
帖子列表页0.03-0.05秒(回贴排序) 0.01-0.03秒(发帖排序)
帖子内容页0.03-0.05秒 (没填充多少回帖也没具体测试翻页)
我导入1亿数据时,数据库填充到215G
首页0.05-0.08秒
帖子列表页0.05-0.08秒(回贴排序) 0.03-0.05秒(发帖排序)
帖子内容页0.05-0.08秒 (没填充多少回帖也没具体测试翻页)
总结:
xiuno 虽然负载很高,但是功能上有很大的控制,去掉了很多可能影响到性能的功能,功能方面我觉得要是能有一个像wordpress这样的一个平台来弥补,那将会有非常大的优势。
discuz 虽然没做深入测试,不过已经可见负载上面还是有缺陷的,同时thread表设计为 tid mediumint(8) UNSIGNED 所以最大数值也就16777215,所以他的设计也并没有往更高考虑。
phpwind 这次的新版本的改变,证明了他们的决心,要和discuz走不同的路,也能看出来他们更注重用户体验方面。程序性能已经次之。
phpcms 性能是比以前提升了,但是用户体验我是感觉不太好。不过能够说明CMS性能方面不如BBS程序。因为排序方式多,而且同一个页面列表也比论坛的多,所以让CMS性能不如BBS。
帝国cms 虽然程序官方一直强调负载,但真还不如phpcms,光是通过分表提高负载,真不是一个好办法。我个人愚见,程序负载高不高,第一步应该是正确设计索引,索引都没设计对,就用分表来解决,而且还要站长手动设置,完全增加使用难度。
dedecms 虽然用户量非常大,但数据库设计真不好,不但索引没设计对,而且还没分表,而且也能看出dedecms并没有考虑做高负载,毕竟上百W级数据的网站很少。
CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁
《CMS系统:PHPCMS V9 /PHPcms/modules/member/index.PHP PHPcms注入漏洞修复补丁》要点:
本文介绍了CMS系统:PHPCMS V9 /PHPcms/modules/member/index.PHP PHPcms注入漏洞修复补丁,希望对您有用。如果有疑问,可以联系我们。
漏洞名称:PHPcms注入漏洞
文件路径:/PHPcms/modules/member/index.PHP
修复方法来源于网络,由风信网整理提供.
源代码大概615行:
if(empty($_SESSION['connectid'])) {
//判断验证码
$code = isset($_POST['code']) && trim($_POST['code']) ? trim($_POST['code']) : showmessage(L('input_code'),HTTP_REFERER);
if ($_SESSION['code'] != strtolower($code)) {
$_SESSION['code'] = '';
showmessage(L('code_error'),sans-serif; line-height: 30px;">}
$_SESSION['code'] = '';
$username = isset($_POST['username']) && is_username($_POST['username']) ? trim($_POST['username']) : showmessage(L('username_empty'),sans-serif; line-height: 30px;">$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'),sans-serif; line-height: 30px;">针对phpsso模块添加过滤代码,最好的方式应该是将转义和过滤放在数据库操作的前一步,这样可以极有效缓解sql注入带来的问题
修改代码:
$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'),sans-serif; line-height: 30px;">改为:
$password = isset($_POST[‘password‘]) && trim($_POST[‘password‘]) ? addslashes(urldecode(trim($_POST[‘password‘]))) : showmessage(L(‘password_empty‘),HTTP_REFERER);
phpcms v9 tag 标签页输出缩略图标签
在做 phpcms v9 站优化的时候,把 tag
修改 \phpcms\modules\content\tag.php
这个文件,
找到:
''title, description, url, inputtime, style''
改成:
''title, thumb, description, url, inputtime, style''
这里面加个 thumb,你懂得 o (∩_∩) o。。。
声明:本文采用 BY-NC-SA 协议进行授权,转载还请注明:phpcms v9 tag 标签页输出缩略图标签
phpcms v9 上传到空间出_无需整理
关于phpcms v9 模板标签技巧,标签常用方法_PHP教程和phpcms标签大全的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于(转)对帝国cms、dedecms、phpcms、discuz、phpwind、xiuno负载测试总结、CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁、phpcms v9 tag 标签页输出缩略图标签、phpcms v9 上传到空间出_无需整理等相关知识的信息别忘了在本站进行查找喔。
本文标签: