七月
26

[Fixed]Article模组取某个分类的子分类时出错的Bug

Author Dominic    Category XOOPS     Tags , ,

当我们使用XOOPS的article模组时,如果我们想获取某个分类的所有子分类时,会发现取到的数据有可能不是我们所需要的,返回的却是所有分类,当然这个Bug只存在于article模组1.0版本中,下个版本中可能会被修正。(不知道D.J.什么时候出下个版本呢)

修改htdocs\modules\\class\category.php文件中378行附近,

原来为:

$category_array = $tree->getAllChild(0);

修改之后:

$category_array = $tree->getAllChild($pid);//Modifyed By XuYong 没有使用$pid,导致没有起到任何作用

即可。

七月
26

XOOPS中修正获取真实用户名的Bug (Fixed)

Author Dominic    Category XOOPS     Tags ,

调用XOOPS中返回用户姓名时,通过getUnameFromId返回用户姓名时,如果希望返回用户真实姓名时,但是当用户没有填写真实姓名的时候返回的将会是空串,下面这个Hack就用于解决这个问题,当用户没有填写真实姓名时返回用户登录名。

htdocs\kernel\user.php文件,139行附近将getUnameFromId函数做如下修改即可:

原函数:

   1: function getUnameFromId( $userid, $usereal = 0 )
   2: {
   3:     $userid = intval($userid);
   4:     $usereal = intval($usereal);
   5:     if ($userid > 0) {
   6:         $member_handler =& _gethandler('member');
   7:         $user =& $member_handler->getUser($userid);
   8:         if (is_object($user)) {
   9:             $ts =& MyTextSanitizer::getInstance();
  10:             if ( $usereal ) {
  11:                 return $ts->htmlSpecialChars($user->getVar('name'));
  12:             } else {
  13:                 return $ts->htmlSpecialChars($user->getVar('uname'));
  14:             }
  15:         }
  16:     }
  17:     return $GLOBALS['xoopsConfig']['anonymous'];
  18: }

修改之后函数为:

   1: function getUnameFromId( $userid, $usereal = 0 )
   2:     {
   3:         $userid = intval($userid);
   4:         $usereal = intval($usereal);
   5:         if ($userid > 0) {
   6:             $member_handler =& xoops_gethandler('member');
   7:             $user =& $member_handler->getUser($userid);
   8:             if (is_object($user)) {
   9:                 $ts =& MyTextSanitizer::getInstance();
  10:                 if ( $usereal ) {
  11:                     if(trim($user->getVar('name')) != '') {
  12:                         return $ts->htmlSpecialChars($user->getVar('name'));
  13:                     } else {
  14:                         return $ts->htmlSpecialChars($user->getVar('uname'));
  15:                     }
  16:                 } else {
  17:                     return $ts->htmlSpecialChars($user->getVar('uname'));
  18:                 }
  19:             }
  20:         }
  21:         return $GLOBALS['xoopsConfig']['anonymous'];
  22:     }
七月
26

[Hack]给XOOPS的Transfer服务书签应用增加几种在线书签

Author Dominic    Category XOOPS     Tags , , ,

xoops中的transfer API非常好,但是其书签功能中支持的在线书签服务实在太少,我添加了几种现在流行的在线书签服务,当然我们还可以添加更多。

修改htdocs\Frameworks\\plugin\bookmark\language\schinese_utf8.php文件如下,支持google书签、美味书签、Sina Vivi、365Key、BlogChina、Poco、Sohu、天极、和讯、QQ、。如果采用gb2312编码或者gbk编码则编辑htdocs\Frameworks\\plugin\bookmark\language\schinese.php这个文件。

<?
/**
 * Transfer handler for 
 *
 * This is intended to handle content intercommunication between modules as well as components
 * There might need to be a more explicit name for the handle since it is always confusing
 *
 * @copyright    The XOOPS project http://www.xoops.org/
 * @license        http://www.fsf.org/copyleft/gpl.html GNU public license
 * @author        Taiwen Jiang (phppp or D.J.) <php_pp@hotmail.com>
 * @since        3.00
 * @version        $Id$
 * @package        Frameworks::transfer
 */ 

define("_MD_TRANSFER_BOOKMARK", "");
define("_MD_TRANSFER_BOOKMARK_DESC", "添加到书签"); 

/* Chinese */
define("_MD_TRANSFER_BOOKMARK_ITEMS",
    "<span id=\"-bookmarkit\"><ul class=\"list-bookmark\" id=\"bookmarkit\">"
    . "<li><a href=\"javascript:void(google = window.open('http://www.google.com/bookmarks/mark?op=edit&output=popup&title=' + encodeURIComponent('%1\$s')+ '&bkmk=' + encodeURIComponent('%2\$s') , 'google')); google.focus();\">[<strong style='color:red'>Google</strong>]</a>  </li>"
. "<li><a title=\"Delicious\" href=\"javascript:void(delicious=window.open('http://del.icio.us/post?url='+encodeURIComponent('%2\$s')+'&title='+encodeURIComponent('%1\$s'), 'delicious'));delicious.focus();\">[<strong style='color:#0000FF'>del.icio.us</strong>]</a>  </li>"
. "<li><a href=\"javascript:void(vivi = window.open('http://vivi.sina.com.cn/collect/icollect.php?pid=28&title=' + encodeURIComponent('%1\$s') + '&url=' + encodeURIComponent('%2\$s') + '&desc=' + encodeURIComponent(t), 'vivi')); vivi.focus();\">[<strong style='color:red'>新浪 VIVI</strong>]</a>  </li>"
. "<li><a href=\"javascript:void(365key = window.open('http://www.365key.com/storeit.aspx?t=' + encodeURIComponent('%1\$s') +'&u=' + encodeURIComponent('%2\$s') + '&c=' + encodeURIComponent(t), 'keyit')); 365key.focus();\">[<strong style='color:#a287be'>365k</strong><strong style='color:#00CC00'>e</strong><strong style='color:#9575B6'>y</strong>]</a>  </li>"
. "<li><a href=\"javascript:void(blogchina = window.open('http://blogmark.blogchina.com/jsp/key/quickaddkey.jsp?k=' + encodeURI('%1\$s') + '&u='+encodeURI('%2\$s') + '&c='+encodeURI(t), 'blogchina')); keyit.focus();\">[<strong style='color:#74B779'>博采中心</strong>]</a>  </li>"
. "<li><a href=\"javascript:void(poco = window.open('http://my.poco.cn/fav/storeIt.php?t=' + encodeURIComponent('%1\$s') + '&u=' + encodeURIComponent('%2\$s') + '&c=' + encodeURIComponent(t), 'keyit')); poco.focus();\">[<strong style='color:#29B5DE'>Poco</strong>]</a>  </li>"
. "<li><a href=\"javascript:void(sohu = window.open('http://z.sohu.com/storeit.do?t=' + encodeURIComponent('%1\$s') + '&u=' + encodeURIComponent('%2\$s') +'&c=' + encodeURIComponent(t), 'sohu')); sohu.focus();\">[<strong style='color:#505050'>SOHU狐摘</strong>]</A>  </li>"
. "<li><a href=\"javascript:void(yesky = window.open('http://hot.yesky.com/dp.aspx?t=' + encodeURIComponent('%1\$s') + '&u=' + encodeURIComponent('%2\$s') + '&c=' + encodeURIComponent(t) + '&st=2', 'yesky')); yesky.focus();\">[<strong style='color:#99CF17'>天极</strong><strong style='color:#FF7F00'>网摘</strong>]</a>  </li>"
. "<li><a href=\"javascript:void(hexun = window.open('http://bookmark.hexun.com/post.aspx?title=' + encodeURIComponent(t) + '&url=' + encodeURIComponent(u) + '&excerpt=' + encodeURIComponent(e), 'HexunBookmark')); hexun.focus();\">[<strong style='color:#3366CC'>和讯网摘</strong>]</a>  </li>"
. "<li><a href=\"javascript:void(qq = window.open('http://shuqian.qq.com/post?title=' + encodeURIComponent('%1\$s')+ '&uri=' + encodeURIComponent('%2\$s') +'&jumpback=2&noui=1', 'qq')); qq.focus();\">[QQ<strong style='color:#74B779'>书签</strong>]</a>  </li>"
. "<li><a href=\"javascript:void(baidu = window.open('http://cang.baidu.com/do/add?it=' + encodeURIComponent('%1\$s')+ '&iu=' + encodeURIComponent('%2\$s') +'&dc=&fr=ien#nw=1'', 'baidu')); baidu.focus();\">[<strong style='color:red'>百度搜藏</strong>]</a>  </li>"
. "</ul></span>"
    );
?>
七月
26

[Hack]在XOOPS的article模组中显示完整文章标题

Author Dominic    Category XOOPS     Tags , , , ,

D.J.老大开发的article非常好用,其中有一个小缺陷:当我们获取文章列表时一般会对文章标题截取给定长度,但是当我们这样做之后,文章列表中文章标题是被截断了,但是对应A标签的title属性中也使用了截断之后的文字。这样导致的结果是当我们把鼠标移动到文章标题上面的时候,并不能看到完整的标题。

解决办法如下:

1、修改htdocs\modules\\blocks\block.php和blocks..php文件,在162行附近加入如下行代码

     $_art["art_fulltitle"] = $_art["art_title"];//Modifyed By XuYong

修改之后完整代码为:

            $_art["art_fulltitle"] = $_art["art_title"];//Modifyed By XuYong
        if(!empty($options[3])){
            $_art["art_title"] = _substr($_art["art_title"], 0, $options[3]);
        }

2、在对应的模板文件中使用art_fulltitle来显示超链接的title属性。可修改article_block_article.html文件如下:

<ul class="blkList">
  <{foreach item=article from=$block.articles name=art}>
  <li><span class="blkTime"><{$article.time}></span><a href="<{$xoops_url}>/modules/<{$block.dirname}>/view.article.<{$smarty.const.URL_DELIMITER}><{$article.art_id}>/c<{$article.cat_id}>" target="_blank" title="<{$article.art_fulltitle}>"><{$article.art_title|smartTruncate:19}></a></li>
  <{/foreach}>
</ul>
七月
26

[Hack]让article模组中显示用户真实姓名

Author Dominic    Category XOOPS     Tags , , ,

目前XOOPS中article模组显示的都是文章发布者的登录名,有些时候显示真实姓名可能更恰当,特别是当提交者是单位的时候,这里提一个临时解决方案,最佳方案是放到配置项中由管理员配置显示。

修改htdocs\modules\\class\.php文件中的getAuthor函数如下即可:

function &getAuthor($retrieveUname = false)
    {
        $author["uid"] = $this->getVar("uid");
        if($retrieveUname){
            $author["name"] = XoopsUser::getUnameFromId($author["uid"],1) ;
        }
        return $author;
    }

配合XOOPS中修正获取真实用户名的Bug (Fixed) 效果更好。

七月
25

XOOPS开发工作可以告一段落了

Author Dominic    Category XOOPS     Tags ,

前段时间在家的时候帮朋友改版了网站——安徽车市http://www.ahcarmarket.com),用的是XOOPS 2.0.16的UTF-8版。2003年的时候做安徽大中专毕业生就业信息网的时候用了XOOPS,后来在给一个朋友弄他们公司网站的时候也用了XOOPS,个人感觉XOOPS还是非常强大的一个Portal(个人觉得比CMS更贴切)。安徽车市的开发工作将移交给一个小伙来完成,今后很长一段时间内应该不会从事XOOPS的开发了,XOOPS这么好的东西也开始没落了,社区人员越来越少,新版本的发布也越来越少了。

这次开发安徽车市采用了一下模组:
article文章模组作为 资讯中心,修正了UTF-8下pdf输出乱码的问题
auto汽车信息及报价 未开发完成
googlemaps地图,更改为中文地图,准备用于企业标注和电子地图
mediawiki维基,作为汽车百科
newbb论坛
Openads广告管理,自己集成Openads(原PHPAdsNews)
page页面布局模组,自己更改了一些东西,适用于UTF8环境和防止用户误操作和页面静态化。
protector保护模组
securityimage图片验证码
sitemap站点地图,有修改,主动生成sitemap.xml文件,
smartobject
smartprofile
system系统管理
tag标签,
tinycontent用于站点介绍
xcgal相册模组,用于汽车图库
xmmemberstats会员管理
准备用上addresses,后台也做了一些美化。

hack和优化了相当多的内容,有时间整理一下再发布吧。里面最为满意的模组就是article和tag模组集合使用,加上URL重写,可以产生大量的链接,这个网站做到了2500篇左右的文章(还没有大量使用tag)加上5000左右的汽车信息连接页面(这个没有集成transfer和tag,对于链接数没有什么贡献),在baidu上面拥有13800个链接,在google上面拥有15000多个链接,在yahoo上面有8000多个连接。

Page模组也非常好,完全可以实现主题、布局、区块、皮肤的应用。

其实这个网站还有一些开发工作没有开发完成,这个月上班之后就没有投入精力了,转交给别人之后,应该不会再从事XOOPS的开发工作了

七月
25

国产GIS平台选型

Author Dominic    Category 工作     Tags , , , ,

注:本文是在合肥恒卓做GIS平台选型工作时的工作过程文档。

 

国产平台选型

1.     背景

合肥供电公司通信所的通信网管理系统最近准备升级改造,原来其中有部分图形化功能是基于MapInfo开发,这次升级将整合通信网监控、通信巡检等系统,一个好的GIS平台将奠定通信网一体化管理系统开发工作是否能够顺利进行,因此,我们从互联网上寻找了10家国产GIS平台提供商,逐家电话联系了解具体情况,选择了6家公司做了选型对比。

2.     对象

针对目前市场上存在的一些

GIS平台,我们选择了几款应用广泛的GIS平台做了比较,分别是MapGISGeoStarVRMapMapEngineGrow。这些平台目前均在国内有很好的成功应用案例,代表国内主流GIS平台和应用。其提供厂家分别是:

平台 厂家 备注
SuperMap 北京超图地理信息技术有限公司  
MapGIS 武汉中地数码集团公司  
GeoStar 武汉武大吉奥信息工程技术有限公司  
VRMap 北京灵图软件技术有限公司  
MapEngine 北京朝夕科技有限责任公司  
Grow 深圳市雅都图形软件股份有限公司  

3.     平台对比

针对选择的6款平台我们分别在专业背景、产品特点、多图层支持、数据库支持、二次开发难度、产品及报价、电力行业成功案例七个方面对他们做了比较分析,以其做出适用于我们项目的GIS平台选型。

3.1.  专业背景

GIS

平台的开发需要耗费大量的资金、经过长期研发,一般公司不足以支撑完整的GIS平台的发展,目前国内比较成熟的GIS厂商均是在研究机构、院校的基础上发展起来的。是否拥有专业背景是考量GIS平台指标之一。

平台 专业背景 备注
SuperMap 中国科学院地理科学与资源研究所  
MapGIS 中国地质大学  
GeoStar 武汉大学测绘遥感国家重点实验室  
VRMap    
MapEngine    
Grow    

基于专业背景的考虑,我们应该优先考虑SuperMapMapGISGeoStar

3.2.  产品特点

这些平台在具有一般功能之外各自有的特色。

平台 产品特点 备注
SuperMap 空间信息的发布 
空间信息服务的发布 
空间信息的在线编辑 
远程管理 GIS 服务 
支持 OGC 的服务规范
最佳路径分析 
用户自定义图层
 
MapGIS 集地图输入、数据库管理及空间数据分析为一体的空间信息系统。具有海量地图库管理能力,能管理数万幅图件;完备的空间分析、网络分析、图像分析功能;高效的专业数据库、多媒体数据库管理能力。 海量数据处理速度突出 Web信息发布支持不够
GeoStar 重建和还原地形、地貌及地物,真实再现地面景观
视图的缩放、平移、视点变换、角度旋转、实时3D大范围飞行浏览 
全方位的场景要素控制 
三维物体表面贴图 
色彩调配、明暗变换 
地形查询与分析 
叠加三维模型数据,并进行实时显示和查询 
海量文件系统和数据库系统DEMDOM、三维模型数据的浏览
 
VRMap 三维地理信息系统平台软件,可以在三维地理信息系统与虚拟现实领域提供从底层引擎到专业应用的全面解决方案。  
MapEngine 空间和属性数据一体化存储 
多点并发编辑 
数据缓存技术 
高性能图形显示
 
Grow 海量数据处理 
三维数据处理 
协同工作环境 
多级分布式结构
全生命周期状态管理技术
WEB服务器均衡调度 
安全性管理 
浮动用户管理
 

从我们现在基于B/S开发通信网管理系统来说Grow的平台最容易集成,其基于Web Services接口可以非常方便我们在平台上开发新的应用,而且其基于电力行业的解决方案“图形化电网综合信息管理系统EFGIS”也满足我们迁移MapInfo中的内容。

3.3.  多图层支持

以上六款软件均可以支持多图层,且

GeoStarVRMapGrow均有不错的三维图像表现。

3.4.  数据库支持

在数据库支持方面,他们各有不同。

平台 数据库支持 备注
SuperMap 使用专有SDX+引擎,支持OracleSQL ServerDB2SybaseDM3  
MapGIS SQL ServerOracle、文件 不同版本支持不同数据库
GeoStar 武汉大学测绘遥感国家重点实验室  
VRMap SQL ServerOracleAccess  
MapEngine SQL ServerOracleAccess  
Grow SQL ServerOracle  

这里最突出的是SuperMapSuperMap提供了多种格式的数据组织方式,基于复合文档技术的SDB,基于桌面数据库的MDB,基于大型数据库的SDX for OracleSDX for SQL Server等。SuperMap的这些格式都有统一的对象模型和结构定义,各个格式支持的操作和功能从根本上是统一的。SuperMap GIS系列软件都可以直接打开这些格式的数据,并且能非常简单地实现各个数据格式数据源之间交换数据,如在同一格式的数据源内复制数据。SuperMap拥有独一无二的“多源空间数据无缝集成技术”,允许开发上轻易将使用SuperMap已建成的应用系统移植到其他格式。比如,在极少代码改动的情况下,一个使用SQL Server存储空间数据的应用系统或者产品轻松移植到使用Oracle或者SDB的环境中。

3.5.  二次开发难度

平台 二次开发难度 备注
SuperMap 专用.Net开发平台。参考资料多,开发难度最低  
MapGIS  API 函数层;C++ 类层;ActiveX 组件层。无.Net 专用平台。。参考资料一般,传统客户端程序开发模式,需要了解传统API调用方式.  
GeoStar COM Java平台无.Net平台。参考资料较多,开发难度中等。  
VRMap COM  
MapEngine API,客户端需要采用Java技术。。参考资料一般,开发难度较高。  
Grow Java平台,Web Services。参考资料一般,开发难度容易。  

3.6.  产品及报价

平台 产品及报价 备注
SuperMap SuperMap IS.NET 专业版 SuperMap Deskpro  98000+19800=117000  
MapGIS Mapgis 专业版  21800 文本数据库
GeoStar 未知  
VRMap 未知  
MapEngine MapEngine.NET网络GIS平台 数据准备工具 86800+8500=95300  
Grow        未知  

3.7.  电力行业成功案例

平台 电力行业成功案例 备注
SuperMap WFECS3000电能量综合管理自动化系统
重庆江北供电局配电管理地理信息系统 
利用SuperMap开发配电管理地理信息系统
菩提树电力条图绘制软件 
基于SuperMap的配电管理系统 
胜利油田配电管理地理信息系统 
新疆奎屯输配电GIS系统
 电力综合应用管理系统 
输配电网地理信息系统
均为几家公司利用SuperMap二次开发的系统,应用在上百家电力公司
MapGIS 青海电网地理信息系统 
配电网地理信息及数据自动抄收分析管理系统
产品:MapGIS电力配网信息管理系统
GeoStar  
VRMap  
MapEngine 首都机场电力监控系统  
Grow 武汉供电局AM/FM/GIS系统 
北京城区供电局配网GIS系统 
电网图形信息管理系统EFGIS
拥有专门产品 图形化电网综合信息管理系统EFGIS

4.     总结

通过仔细对比各自资料和服务态度,我们觉得基于SuperMapGIS平台开发是我们最佳选择,其费用不高,提供了支持VS 2005Web Controls,可以直接在VS 2005中使用。另外,SuperMap无论是文件格式还是空间数据库格式都支持拓扑关系存储管理功能。并且,针对交通网络资源管理中一根管道包含多条光纤/铜缆、一条道路多车道的特殊情况,SuperMap专门提供了解决方案,通过RuleMask可以对管线中指定的通信线缆、道路中的车道进行网络路径搜索,大大减少了二次开发的工作量。与此同时,SuperMap还支持在编辑时动态维护网络拓扑关系,增加管线无需重建拓扑关系。独特的节点联接关系矩阵为解决网络节点处理复杂的连接关系提供了方便。  

5.     附录:公司介绍

5.1.  北京超图地理信息技术有限公司

是在中国科学院地理信息产业发展中心支持下成立的一家软件公司,主要从事地理信息系统

(GIS) 、遥感 (Remote Sensing) 和全球定位系统 (GPS)技术基础软件平台、专业软件和应用系统的研制开发和销售。多次获得科技部的国产GIS软件评测推件软件称号

5.2.  武汉中地数码集团有限公司

专业从事GIS研究、开发和应用的大型软件集团,核心企业有武汉中地数码、北京中地时空、深圳中地软件及新疆、昆明、济南等分公司,其中武汉中地数码是国家百强重点软件企业之一。集团现有员工500多人,其中博士、硕士占60%以上,是一个开拓创新、团结奋斗、充满活力的高科技企业。业务情况:依托中国地质大学为技术,以吴信才教授为技术核心,从80年代初期开始涉足GIS的研究,目前在全国已拥有5000MAPGIS用户(包括香港、台湾),国内市场占有率超过30%,用户量全国第一。

5.3.  武汉武大吉奥信息工程技术有限公司

成立于

1999年,提供空间信息领域的完整的解决方案,服务各行各业。公司拥有从空间数据获取处理更新、到建库集成与管理、到分析应用发布的完整覆盖空间信息产业的服务链。

5.4.  北京灵图软件技术有限公司

成立于1999年,是一家以自主知识产权的软件产品为核心,集软件研发、地图生产、相关服务为一体的高新技术企业。灵图公司拥有甲级测绘资质(含导航电子地图制作),灵图的地图数据库覆盖全国所有县级以上城市,并拥有国内最丰富、最新的路网和POI信息。多次承担国家863项目。

5.5.  北京朝夕科技有限责任公司

成立于

19964月,是专业地理信息系统(GIS)基础平台软件厂商,致力于GIS基础平台MapEngine及其衍生产品的研发以及GIS应用工程服务。 1996年底,朝夕科技率先推出全组件化GIS开发平台MapEngine1.01997年,获国家九五攻关项目支持。 1998年,MapEngine 1.5获中国软件行业协会“98年度推荐软件”称号, 98992000年度连续获科技部GIS评测优秀奖。

5.6.  深圳市雅都图形软件股份有限公司

是国内GIS应用领域具有领先地位的专业软件开发商和解决方案提供商,国内大型AM/FM/GIS技术应用的领跑者。一直致力于GIS技术在城市公用事业产业领域的应用研究和市场推广。其拥有自主知识版权的大型AM/FM/GIS基础支撑平台GROW,以及在GROW平台上开发的系列专用软件产品,在海量图形数据的实时应用、企业级的协同工作等关键技术方面,已经达到或超过国外同类产品,在国家级的评测中连年获奖。雅都客户分布于全国15个省市自治区直辖市。

七月
20

一道接孩子放学的小学数学题(求小红提前下课了几分钟)

Author Dominic    Category 生活叫吠     Tags

学校提早放学,女儿小红自己回家,走10分钟后碰到父亲来接,坐父亲摩托车回家,到家时比平时迟到了1分钟,原因是父亲下班迟了7分钟,那么学校提早放学几分钟?

前提条件:
父亲下班是从家出发接女儿小红的, 父亲正常情况下,到达学校的时候,恰逢学校下课。

题目来自网络,感觉现在的小学题也不好答了,是否是老师太变态。

比较中意的答案:

设学校所在地为S点,父女相遇地为A点,而家在H点:
H                 A       S
+————–+——+
如果女儿在S点等待父亲,由于父亲晚出发7分钟,因此,全程,即H->A->S->A->H走完,到家时,应比正常情况晚7分钟。

现在,由于女儿放学之后立即出发,双方在A点相遇,因此,父亲所走的路程为H->A->H。

由于父亲在晚出发7分钟的前提下,和女儿在A点相遇并返回H点,只晚到了1分钟,因此,我们可以知道,假如本次走完全程,即增加一段,A->S->A,所需的时间应为(7-1)=6分钟,而A->S或S->A的路程,乘摩托车所需的时间,则是(7-1)/2=3分钟。

接着我们考虑父亲到达A点的时间(摩托车从H点到A点的时间)。由于父亲晚出发了7分钟,而A->S所需的时间是3分钟,因此,父亲的摩托车从H->A所花费的时间,以学校正常下课时间计算,应该是正常下课时间+(7-(7-1)/2)分钟,即学校正常下课之后4分钟。

又,由于女儿从S->A所花的时间(走路)是10分钟,因此我们可以得出结论,女儿从学校出发的时间,应该是正常下课时间-(10-4)=正常下课时间-6分钟。因而,结论是学校提前了6分钟下课。

又解

父亲晚了7分钟,回家应该晚7分钟,现在只晚一分钟,说明女儿帮父亲省了6分钟。然后可以知道女儿10分钟走父亲3分钟路程。然后不考虑父亲晚了多久。只想女儿如果正常时间下课,走10分钟再与父亲一起回家要晚7分钟,现在只晚一分种,那么女儿提前下课6分钟。

这那里是数学题哦,我们那会儿数学题没这么复杂,简直就是逻辑题。

七月
2

百度的规则太变态了,被百度趁火打劫了一把

Author Dominic    Category 生活叫吠     Tags

受主机所在IP段上某些个网站所累,自上周五主机所在整段IP均被电信封掉了80端口,今天好不容易才放开了限制,结果上百度搜索的时候发现,我的博客以及在同一主机上面的网站竟然在百度上再也找不到任何踪迹。

这爬虫规则也太变态了吧才3天不能访问,就判定一个网站消失了,真为惯用百度的朋友可悲,百度的规则太随意了,太商业化了,还是Google好一些。

鄙视百度的做法。

六月
25

XOOPS的Page模组UTF-8字符编码下的使用方法

Author Dominic    Category PHP, XOOPS     Tags , , , , ,

文明猪汉化了非常好用的Page模组,其功能强大得过了头,充分体现了数据展现分离思想,将Xoops中原本主题、布局、区块的概念扩充到主题、布局、区块、皮肤,将原来相对固定的布局方式更改为随意布局的形式(如果可以直接拖动就更完美了),将然来局限于系统提供的区块提升到可以随意创建区块和随意利用区块的高度,但是目前Page模组仅仅只能使用GB2312编码上,如果网站采用UTF-8编码这不能利用这个Page模组。之前就找到了解决的办法,这次乘解决xajax中文显示的问题一并写出来吧。

其实这个bug是由xajax库引起的(参见我另外一篇文章:PHP中xajax库中文问题及提示返回XML文件无效的解决办法 ),解决办法是:

将page目录下所有文件全部采用UTF-8无BOM格式保存(当然语言文件不必要),至少server/.server.php这个文件需要采用UTF-8无BOM格式保存(UltraEdit 操作方法:F12或另存为界面中格式下拉框选择‘UTF-8-无 BOM’),index.php这个也需要UTF-8无BOM格式保存,另外建立对应的UTF-8编码的语言文件。再将Framework目录下xajax目录下所有的php文件全部使用UTF-8无BOM格式保存。一般即可。

之前的一个项目中使用了UTF-8格式的Page模组,这个模组的UTF-8格式支持包还是让文明猪来发布吧,不过有需要的也可以联系我。

 

专题推荐

标签

分类目录

新浪微博

存档

近期文章

近期评论

友情链接

分享按钮