深蓝网络

网站建设,程序开发,主机域名,搜索引擎

米拓metinfo使用中的问题与解决方案


最近试用了米拓metinfo(5.3版)企业建站系统试着做了个网站。使用中发现了一些问题,有些能解决,有些不能。与大家分享吧。


一,系统路径设置问题

因为不管文章系统还是产品模块上传文件全部使用绝对全路径。

所以换个域名 图片基本就打不开了。。

解决方案是将百度编辑器文件绝对全路径,修改为相对绝对路径(俺也不知道怎么称呼这种"/"路径了)


\app\system\include\module\editor\action_list.php

第86行:

$url = str_replace(PATH_WEB,$_M['url']['site'],$path2);

修改为:

$url = str_replace(PATH_WEB,"/",$path2)


\app\system\include\module\editor\Uploader.class.php

第348行:

$fullName = str_replace(PATH_WEB,$_M['url']['site'],$fullName);

修改为:

$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行,在其对字段进行污染之前,赋值给自定义的一个函数

$my_foottext=$wap_footertext;



四、文章点击阅读数的问题

刚开始发现手机版阅读点击数不能显示,具体不知道是哪个文件对metinfover的判断有问题还是其它什么

修改掉

\public\php\methtml.inc.php

第32行:echo $hits;修改为:

echo " document.write({$hits}); ";

就能显示了,可惜后来发现,这样一改,PC版的阅读出错了。。嗯~~ 继续~~

我心里想着点击数那里直接放入require_once '../include/hits.php?type=XX&id=XX' 就行了。


然后去查了代码发现:

$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,所以就修改前端输出了

//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里是多维数组,需要几个判断。偷懒了,


然后再过滤下原有的一些函数

$nav_x[name]=ReUrl($nav_x[name]); //面包屑导航
$preinfo[url]=ReUrl($preinfo[url]);
$nextinfo[url]=ReUrl($nextinfo[url]);
$page_list=ReUrl($page_list);

还有列表foreach下,加一行

$val[url]=ReUrl($val[url]);


当然修改完了,还得修改sitemap.xml

修改\sitemap\generator.php 第54行插入

如下代码

$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为大家提供这么好的平台。


上一篇  |  下一篇
发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。