解决软件界面乱码问题

早上刚到公司启动电脑,发现大多数软件运行时界面会出现乱码,而昨天下班时还是一切正常。 检查电脑的使用记录,昨晚有其他同事在这台电脑上访问 PPTV 观看视频。 搜索解决办法,基本上都是提到“区域和语言选项”,具体操作: 控制面板->区域和语言选项->高级->非 Unicode 程序的语言,选择“中文(中国)”,确认,重新启动电脑。 但是我按此操作之后并没能解决问题,恰好又搜索到《PPTV网络电视界面乱码解决方法》一文,尝试重置“Internet 选项”–“高级”设置,问题解决。

帝国CMS无限级栏目导航

最近利用帝国CMS(ECMS)制作一个网站,遇到以树形目录的方式显示三级栏目列表的需求,但是纵观帝国CMS本身提供的各种标签,也只能满足二级栏目列表的需求。搜索了很久,也没有找到满意的解决方案,咨询王猛(帝国CMS开发人),他给出了两种实现的思路,一种是以模板的方式手动制作,另外一种是自己编写递归函数。鉴于网站最终是交由第三方使用,第一种方式不适合,遂考虑函数——自定义标签。 其实细心的用户应该可以发现帝国CMS本身已经实现了无限级栏目菜单——当我们进入信息管理,左边展示的栏目导航便是无限级的。该菜单对应的文件是e/admin/listEnews.php,其中的函数ShowClass_ListNews便是我们需要寻找的目标。将这个函数修改一下,得到如下函数: function user_ListCats($bclassid, $showMore) { global $empire, $dbtbpre; // classpath 为地址 $sql=$empire->query(“select classid, classname, bclassid, islast, classpath, classurl from {$dbtbpre}enewsclass where bclassid=’$bclassid’ and wburl=” order by myorder,classid”); // 判断是否有类别记录 $num=$empire->num1($sql); if ($num == 0 && $bclassid == 0)//无记录 { echo $GLOBALS['notrecordword']; return “”; } if ($num == 0) { return ”; } echo ‘<ul>’; [...]

Discuz! 7.2 之 与 UCenter 通信失败

之前安装的论坛,突然出现用户不能登录的状况,进入 UCenter 查看应用,发现“通信失败”。检查应用的设置,并没有任何变更出现。网上搜索了一些相关的文章,基本上都集中在“应用的 IP”和“通信密钥”这些部分。所以我对问题的排查也围绕这些方面展开。 首先便排除了“通信密钥”错误的可能,然后尝试更换默认“应用的 IP”(127.0.0.1)为域名绑定 IP,但是还是“通信失败”,最终只能从代码入手,一步步查找问题出现的位置。 最终问题定位在/uc_server/model/misc.php中的如下代码: $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout); 在提供了 IP 的情况下,我们在浏览器中直接输入 IP 无法浏览到网页,所以$fp也不能获得“预期”的结果。 解决办法,就是修改上面的代码为: $fp = @fsockopen($host, $port, $errno, $errstr, $timeout); 当然,如果通过修改服务器的设置能使得127.0.0.1或者外网 IP 可以浏览到内容,也可以解决问题。目前我还没有找到如何进行这方面的设置,暂且记录在此。 更新 2011.07.08 今天折腾服务器,发现在网站属性中,指定了 IP 地址,将之清除,选择“全部未分配”,问题解决。所以看来,一开始就走了弯路,在添加网站时画蛇添足的行为导致问题出现。 参考文章 UCenter 通信失败 和 无法同步登陆的调试方法 [UCenter] 地狱之旅