最近试用了米拓metinfo(5.3版)企业建站系统试着做了个网站。使用中发现了一些问题,有些能解决,有些不能。与大家分享吧。
一,系统路径设置问题
因为不管文章系统还是产品模块上传文件全部使用绝对全路径。
所以换个域名 图片基本就打不开了。。
解决方案是将百度编辑器文件绝对全路径,修改为相对绝对路径(俺也不知道怎么称呼这种”/”路径了)
\app\system\include\module\editor\action_list.php
第86行:
1 |
$url = str_replace(PATH_WEB,$_M['url']['site'],$path2); |
修改为:
1 |
$url = str_replace(PATH_WEB,"/",$path2) |
\app\system\include\module\editor\Uploader.class.php
第348行:
1 |
$fullName = str_replace(PATH_WEB,$_M['url']['site'],$fullName); |
修改为:
1 |
$fullName = str_replace(PATH_WEB,"/",$fullName); |
注意:这样修改换域名是方便了,但有些朋友要放子目录就悲剧了。。
因为使用”/”后 会直接指向根目录。可以修改为”/your_dir/”这种格式。
所以各位看自已情况修改吧。
二、详情页的排版问题
产品详情页的图片与参数部分原版采用了JS排版,虽然灵活,而且适应性强。
只是丑了点,不不,是太丑了。。。所以我还是用固定排版吧。
产品详情页取消参数的JS排版
\public\ui\v1\js\effects\product\product.js
注解掉41-53行,并对CSS相关字段进行修改。
三、手机版的版权信息问题
手机版底部采用与电脑不同的版权信息,也不知道是什么意思。而且输出中竟然是带HTML的。那好歹也把电脑版的底部变量给我留着呀,让我自已选择呗,可是米拓偏不。。。变量直接赋了个空值。“偏不让你用,就不让你用。。。你来咬我呀。。。。”好吧,我不咬你,我自已改。
手机版 部分信息去掉原程序附加的触屏链接
\include\mobile.php
新加一行,149行,在其对字段进行污染之前,赋值给自定义的一个函数
1 |
$my_foottext=$wap_footertext; |
四、文章点击阅读数的问题
刚开始发现手机版阅读点击数不能显示,具体不知道是哪个文件对metinfover的判断有问题还是其它什么
修改掉
\public\php\methtml.inc.php
第32行:echo $hits;修改为:
1 |
echo " document.write({$hits}); "; |
就能显示了,可惜后来发现,这样一改,PC版的阅读出错了。。嗯~~ 继续~~
我心里想着点击数那里直接放入require_once ‘../include/hits.php?type=XX&id=XX’ 就行了。
然后去查了代码发现:
1 2 3 4 5 6 7 8 |
$query="select * from $met_hits where id='$id'"; $hits_list=$db->get_one($query); $hits=$hits_list[hits]=$hits_list[hits]+1; $query = "update $met_hits SET hits='$hits_list[hits]' where id='$id'"; $db->query($query); $query="select * from $met_hits where id='$id'"; $hits_list=$db->get_one($query); $hits=$hits_list[hits]; |
太惊讶了,居然动了三次数据库。。。
程序员大哥,你这么粗暴,考虑过服务器的感受吗?
其实作为小型企业网站加个外部JS统计就可以满足统计需求了,没必要增加CPU消耗和HTTP请求。
你说要hot排行榜,必须有这个,好吧~~ 那好歹也放个缓存 什么的呀,APC?Memcache?
另外后台统计这个会产生HTTP请求两次。。也不知道为什么。没去查代码。反正在后台关闭就可以了。
这两个去掉,网页加载速度可以提升三分之一。
五,用户登录问题
手机版的登录竟然是电脑版的,不是ajax也还罢了,竟然是一个js警告加跳转;好好登录跳转也还罢了,竟然模板还不能修改。不能忍!
把/member/login.php 和/app/system/include/web/user/login.class.php
各复制一份,重命为login2.php login2.class.php
把login2.php中的M_CLASS常量修改成login2
并把login2.class.php 类名也修改为同名的 login2
在login2.class.php中51, 56,63行中的返回信息修改自已需要的。 给手机版ajax登录用。
然后就可以按需要调用原版/member/login.php或修改版/member/login2.php
六,变量公开的问题
用户系统可能不重要吧,官方一点都不重视。去官网的模板的页去看看,竟然都是忽略掉会员模块的。唉~~
但你们好歹也给俺公开几个接口变量吧 比如:
$isLoin 来判断用户是否登录
$userName 用户名
$userClass 用户级别
$userType 用户类型
好吧,我自已找
$product_paralist循环里的$val[access] 产品自定义参数需要的权限
$metinfo_member_type 这是客户别级
这样就能比较了
如果intval($metinfo_member_type)>=intval($val[access])就显示。
好吧,顺便我把找到的几个常用变量公开一下吧
$pageall 列表页的总页数
$page 当前页
有了这两个参数,移动端 ajax下拉显示更多才能实现。
$metinfo_member_name 这是登录后用户名,
放页头上可以提醒用户是否登录了或点击进入用户中心,
而不是在主菜单上占用一个保贵的导航栏。
$class_list[$classnow][classtype] 这个是当前页面是第几级栏目,自已组合URL可以用。
=============
七、模板路径
模板路径变量,是指向模板图片文件夹,而不是直接指向模板的。
这样要调用JS文件什么的 就必须在路径前加 ../ , 感觉还是直接给模板路径,按用户需要加/image, /js这样比较方便。
八、url的问题
url的问题,当关闭语言选择的时候,lang=cn 能不能去掉啊?看着烦(我没有强迫症,也不是处女座)。
首页的URL也这么繁复。mobileok 这是什么?难道不能放在其它地方,一定要放URL?真心无力吐槽了。
好吧,还是自已动手改。源码可能涉及到的地方太多,改了怕有BUG,所以就修改前端输出了
1 2 3 4 5 6 7 8 9 |
//URL替换掉lang=cn 页头文件head.php加一个替换的方法 function ReUrl($_obj){ $patterns =array( "/\?lang=cn(&)+/", "/(\?|&)lang=cn/" ); $replace_string=array("?",""); return preg_replace($patterns,$replace_string,$_obj); } |
这里这所以用$_obj而不是用$_str,是因为原来想直接替换数组列表里的URL,但没成功。
LIST里是多维数组,需要几个判断。偷懒了,
然后再过滤下原有的一些函数
1 2 3 4 |
$nav_x[name]=ReUrl($nav_x[name]); //面包屑导航 $preinfo[url]=ReUrl($preinfo[url]); $nextinfo[url]=ReUrl($nextinfo[url]); $page_list=ReUrl($page_list); |
还有列表foreach下,加一行
1 |
$val[url]=ReUrl($val[url]); |
当然修改完了,还得修改sitemap.xml
修改\sitemap\generator.php 第54行插入
如下代码
1 2 3 4 5 6 7 8 |
$di_patterns =array( "/\?lang=cn(&)+/", "/&lang=cn/", "/\?lang=cn/" ); $di_replace_string=array("?","",""); foreach($sitemaplist as $key=>$val){ //这行保持原有,不要动。 $val[url]=preg_replace($di_patterns,$di_replace_string,$val[url]); |
九、其它
用SEAJS OK 没问题,只是jquery是1.11版的,能不能再低一点呀。而且由于AMD和CMD的原因,网上高版本又不能直接给SeaJs直接用。这样就不能使用公共静态资源库来缓解HTTP请求,流量也增加了不是么,当然也是我对SeaJS不熟悉,还不会玩。
5.3 php 后台其它正常,但管理项不能显示,提示 End of script output before headers 切换到5.4才解决。服务器原因?
后台用手机Chrome无法打开 估计是amaze ui的问题
虽然以上都是吐槽,但这个米拓metinfo程序还是很不错的,灵活性比较强。至少大部份问题可以通过自已的修改来解决。感谢metinfo为大家提供这么好的平台。