之前在CHINAZ发布了一系列关于PHPCMS、织梦及帝国这三款CMS对比分析文章,在对比分析中出现过对PHPCMS部分功能和架构设计方式明显的偏好,一些站长朋友们在评论中多提到落叶在为PHPCMS捉刀的质疑。本文中落叶详细分析下PHPCMS2008中一直存在的并且在sp4最终版中仍然存在的严重甚至低级的问题及一些使用中遇见的“见鬼”的问题。
A、低级问题/BUG:
1.删除栏目时所有子栏目和子栏目下所有文章不作任何提示,直接删除。
一般的思路时,如果栏目下有子栏目,或者栏目下已经有多篇文章,删除时应该提示该栏目不允许删除,或者至少应该给出危险警告,结果PHPCMS中是一不小心,点删除栏目,然后弹出的JS中“是否要删除栏目”点了确定后,就一下子所有子栏目全部干掉了,这也意味着这些所有栏目下的文章也没办法显示了。虽然可以根据PHPCMS中DATA目录下的栏目缓存中手动在数据库中找回这些栏目,但这个引起的麻烦自不待言了。
很多新技术员进来时,使用PHPCMS套站时,我都很明确的说明,PHPCMS后台不允许做任何删除操作,然而还是常有因为误点击而导致几十个子栏目及栏目因为这样的误点击全部消失的情况。不过,落叶在新站规划时,一般都会修改PHPCMS栏目删除对应方法,删除前先查询栏目是否有子栏目,然后子栏目是否有文章,如果有需先删除文章,再删除子栏目,才能删除父栏目。
2.移动栏目后栏目关系字段没能正确更新,删除原栏目的父栏目,已经移走的子栏目会跟着被全部干掉
落叶不止一次发生过这样的杯具,原来B栏目是A栏目的子栏目,后来想到B栏目独立出来做一级栏目更好,于是把B栏目修改为一级栏目,然后更新栏目缓存,修复栏目数据,心想这下应该没问题了,然后删掉A栏目,结果大杯具发生了,整个A栏目及B栏目以及B栏目以下的所有栏目跟着被删除了。
问题出现的原因:PHPCMS无限级分类每个分类中以arrchildid字段记录了所有子栏目的ID,当把B栏目称出后,PHPCMS程序中没能对B栏目的原父栏目的相关字段正常更新,结果删除A栏目时,遍历arrchildid中的所有子栏目,括B栏目,一起全部干掉了。
3.添加栏目时缓存重复更新,栏目多后修改栏目保存时慢到不可理解的问题。
PHPCMS在编辑栏目后保存时,会自动调用修复栏目的repair()方法和更新所有栏目缓存的cache()方法,并且repair()方法中本身调用了一次cache()方法,结果导致的问题是每次编辑,栏目缓存都会全部更新两次,当栏目比较多时,每次都重新生成一次缓存,效率自然会降低,但一般这还不至于导致很明显的慢。更杯具的是,PHPCMS黄页模块的产品分类均存储在栏目表中,黄页意味着有大量的多级产品分类,这样一来,每次在编辑内容模型的某个栏目时,整个栏目表都会跟随着更新两次缓存,几百个栏目的缓存重新更新,并且写入方式是file_put_contents,结果的杯具是,编辑栏目后保存时一直卡在那里无论怎么点就是更新不动,关掉重新开,发现编辑的内容又是保存成功的。
落叶一直的解决办法是,修改PHPCMS编辑栏目后调用的缓存更新方法,只让他更新所涉及到的栏目的缓存。这样的好处是临时比较慢,不会花无用的时间去更新大量不需要更新的栏目的缓存。缺点是会导致相关联的栏目缓存没有及时更新。不过,这个不是问题,等栏目全部修改完成后,再在后台点一次更新所有缓存,这下慢就慢吧,点了不管,他自会更新完。
4.删除文章,静态页没有跟着删除。
一般的设计按理应该是删除文章的同时,对应删除的静态文件,但不知道为什么PHPCMS中没有这样,结果是很多文章已经删除了,但静态页还是被收录了,并且都是老的一些无用的测试页面或者模板列换前的页面。这时候想将这些的页面去删除只有人工去找了。
5.内容页模板无法批量更换的问题。
很多时候,程序上站设置好栏目等,设计美工处理模板界面,然后编辑同时发文章,然而因为模板还没有做出来,默认栏目设置中内容页模板都是选择的默认 show.html模板,发的文章的Template字段中记录的也是show.html模板,然后设计那边模板做出来后,如果不用默认的 show.html文件名,而是show_new.html模板时,本来应该可以直接栏目修改时,选择新模板,然后勾选“将这些修改全部应用到子栏目及内容页”,实现内容页模板更换的。相信PHPCMS官方的本意也是如此的,可结果勾了也白勾,内容页模板原来是啥还是啥,这时候不得不手动一篇文章一篇去修改,或者到数据库中替换。
6.列表页GET标签调用文章列表,分页链接跳到后台的问题。
这个问题出现的大概原因是GET标签中的分页page参数,与列表页内置获取的分页参数产生冲突,生成静态时参数冲突,分页出错。而使用默认TAG标签时不会有错。
B、经常遇到的“见鬼”的问题:
1.无论怎么改模板,生成页面,始终不变的问题
这个是用户自己的问题,也是PHPCMS的问题。之所以说是用户自己的问题,那是因为他反复刷新的页面并不是真这的最新生成的改变后的静态页面。之所以说是PHPCMS的问题,那是因为在某些情况下,修改栏目后,栏目URL规则自动在不知情的情况下(修改栏目时,URL规则选项是以TAB选项卡的方式展示,修改其它选项卡下信息时,会难注意URL规则所在的选项卡中的变化而直接保存),变会到默认的URL规则,然后用户生成页面后,新页面生成在默认 URL规则对应的栏目下,而用户并没有全站生成,点击栏目导航访问时还是旧页面,所以无论怎么刷新也不变的见鬼的问题。
这个问题当有意去编辑栏目进行测试时,难以复现,但是落叶之前一天多时,经常遇到,最近一些新的技术在处理PHPCMS是经常抓狂的仍然是这个问题。上传模板,生成静态,刷新刷新再刷新,就是不变。
另外,还有很多更新后发现不变化的情况均因PHPCMS的缓存所至,无论是编辑系统设置还是修必栏目后都需更新修复栏目数据,更新缓存才能生效,但不知道为什么,很多时候需要重新编辑好几遍,更新好几次后才能生效。
再就是URL更新了,更换URL规则后,数据库中记录的URL路径没有变,需要先更新URL后再生成静态才有效,但很多由于忘掉而无论怎么生成也没用的。
2.模板可视化情况下碎片无法点击添加或修改的问题
这个是程序员或者美工自己的问题,碎片变为可点击状态需要页面调用JQUERY框架,用户制作的模板如果没有加截这个框架或者相关页面没有加载这个框架,那就出现这个问题。
3.文章提交总是出现phpcms_search' is marked as crashed and should be repaired的问题。
这个问题就是phpcms_search数据表损坏了,落叶此前也是经常碰到了,现在编辑基本每隔一两天都会碰到这个表损坏而无法添加数据的问题。
这个表是为PHPCMS中实现全文搜索和全文索引而设计的,每添加一篇文章,文章全文内容都会经分词处理后,存储到这个表中,写入操作比较频繁,但是我不太清楚,为什么这个表会这么容易损坏,频繁出奇的高。当然见怪不怪时也就淡定了,因为PHPCMS后台自带的数据表修复功能还是很强大的。现在编辑在添加文章时发现数据表损坏,已经不找程序员了,直接自己在后台系统工具里点数据库修复搞定。
黄飞鸿热灸馆加盟项目,整店输出模式,专业热灸加盟技术培训,一个专业做中医养生的连锁品牌。源自黄飞鸿的嫡孙继承了黄飞鸿先生的遗志,多年来一直坚定不移地致力于大健康产业,并创立了黄飞鸿热灸馆;主要业务服务有黄飞鸿热炙理疗,黄飞鸿热炙理疗馆加盟,黄飞鸿理疗馆,黄飞鸿热灸,黄飞鸿养生馆加盟,黄飞鸿养生馆加盟,黄飞鸿热灸馆,黄飞鸿热灸体验馆,黄飞鸿热灸馆加盟,黄飞鸿热灸理疗馆,黄飞鸿热灸膏
TokenPocket钱包支持数字资产存储。每天走势掌握,功能强大,在线管理数字货币,超多币种推送,多种交易方式,私钥用户自持且轻便易用的以太坊轻钱包。tp支持多资产类型,如:TokenPocket、ETH、QTUM、AE、BTM等大多数主流币种,让tp钱包更好地融入你的生活。
浙江丰安齿轮股份有限公司成立于1999年1月,是一家集开发、设计、制造、销售服务为一体的齿轮专业制造商,占地面积93亩,总资产3亿余元,主要设备400余台。公司于2017年1月在“新三板”挂牌,股票代码870508。公司以精湛的技术、过硬的品质、优良的服务来赢得客户满意,努力打造业界一流齿轮制造企业。
我公司系高新技术企业,专业从事空气净化的产品生产、工程服务及洁净技术的应用与研究,提供从空调处理设备、空调自动控制系统到洁净室系统全面服务,为各类工业用空气处理提供一揽子解决方案及交钥匙工程。 产品遍及全国几十个省市,并出口至巴基斯坦、伊朗等国家。我公司在化纤工艺空调领域精耕细作20余年,2001年进入医药、电子等行业的净化空调设备。 本公司拥有雄厚的技术力量和良好的售后服务,承接系统设计、技术咨询、产品制造、技术改造等项目。设备采用工业计算机、可编程序(PLC)控制器、数字直接控制器(DDC)等智能控制器,可实现节能显著的运行系统(节能策略有:新回风的焓值控制、二次回风、送风机的变频调速;非露点控制方案在过渡季节节能50%。在化纤纺丝行业采用的节能措施,同样可在医药行业的净化空调上使用);采用与国际惯例接轨的CAD设计和质量保证体系。
双友科技为客户提供直缝埋弧焊管生产线、直缝高频焊管生产线、螺旋埋弧焊管生产线、钢管内外防腐生产线,石油套管生产线,热处理生产线以及其他系列产品。同时公司致力于为高端铝业服务,为客户提供更为高效,节能,环保,安全的铸铝生产线及其相关设备。公司积极推进国际化发展战略,逐步实现品牌、市场、团队、技术、管理与国际化标准接轨。此外,公司与众多国际知名管材和铝材生产商建立了紧密的合作关系,在中东设立了海外分支机构。双友科技旨在将中国的高端制造带给世界。
南京三超新材料股份有限公司成立于1999年1月,注册资本9360万元,2017年4月21日,在深圳创业板成功挂牌上市。占地面积130亩,建筑面积约86,000平方米。是一家专业从事金刚石、立方氮化硼工具的研发、生产与销售的高新技术企业,现拥有金刚石砂轮和金刚石线两大类相互协同的产品系列,应用于硅、蓝宝石、石英、铁氧体、钕铁硼、陶瓷、玻璃、硬质合金等硬脆材料的精密切割、磨削与抛光。 公司自成立以来,始终坚持"以人为本、技术优先"的发展理念,先后引入多名外籍专家,并在日本成立了超硬材料工具的专业研发机构。经过多年研发,公司成为国内最早通过自主研发掌握金刚线制造的相关技术,成功实现产业化的企业之一,并且打破了国外企业的技术垄断,与新研发成功的硅片背面减薄砂轮、硅片倒角砂轮、PAD修整器等产品,为半导体及太阳能光伏行业提供了优质的金刚石工具,并凭借良好的品质与高性价比,赢得了众多实力用户认可,在国内形成了较高的行业影响力。