<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>群英汇博客 &#187; 雷 魏魏</title> <atom:link href="http://blog.ossxp.com/author/%E9%9B%B7%E9%AD%8F%E9%AD%8F/feed/" rel="self" type="application/rss+xml" /><link>http://blog.ossxp.com</link> <description></description> <lastBuildDate>Wed, 14 Sep 2011 03:52:03 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.2</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>jquery和php整合实例</title><link>http://blog.ossxp.com/2010/02/462/</link> <comments>http://blog.ossxp.com/2010/02/462/#comments</comments> <pubDate>Thu, 04 Feb 2010 11:55:12 +0000</pubDate> <dc:creator>雷 魏魏</dc:creator> <category><![CDATA[AJAX]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[php]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=462</guid> <description><![CDATA[研究Jquery和php也有一段时间了，但是对两者深层次方面的整合还不是很精通。Google了N百次了，只能说收效甚微，一篇篇转烂了的JQuery和php整合的例子最后可能在你的机器上还是跑不起来，别泄气，这太正常了。我不能不感叹于那些高手们的懒惰，虽然我只能算的上菜鸟，请允许我发表一下自己的观点。本来我的这个小程序是不敢贴出来献丑的，但是鉴于这方面的资料确实太少，我还是贴出来吧。希望能给真正需要的人提供一些帮助。麻雀虽小，五脏俱全，也许你能从这个小程序中悟出来点什么。如果下面的例子不能理解，你可能需要补习一下理论基础，参见这个博客：jQuery跨域AJAX。
例子1：这个例子是JQuery和php不跨域的情况下整合的例子
首先我先叙述一下我的环境需要，以方便尝试跑这个小程序的朋友。你必须有一个wordpress 2.9系列，因为我这个程序中调用了Wordpress 2.9中的函数。在Wordpress根目录下建一个rpc文件夹，其他的也无所谓，自己看着改改相应的地方就行了。
下一步就把这两个文件copy到rpc下边就行了。其他的不需要任何改动，还有一点要提醒的，把jquery-1.4.js复制到rpc目录下
1、latest.php文件
&#60;?php
require_once("../wp-config.php");
//$arr = $_POST; //若以$.get()方式发送数据，则要改成$_GET.或者直接用:$_REQUEST
$arr = $_REQUEST['post_num'];
$show_post = "type=postbypost&#38;limit=6"; //该参数是传递给wp_get_archives函数的，wp_get_archives得到后会返回指定数目的日志
echo my_wp_get_archives($show_post);
function my_wp_get_archives($show_post)
{
return wp_get_archives($show_post);
}
?&#62;
2、latest.html文件
&#60;html&#62;
&#60;head&#62;
&#60;title&#62;演示&#60;/title&#62;
&#60;meta http-equiv="Content-Type" content="text/html; charset=utf8" /&#62;
&#60;/head&#62;
&#60;script language="javascript" src="jquery-1.4.js"&#62;&#60;/script&#62;
&#60;script language="javascript"&#62;
$(document).ready(function (){
$('#latest').click(function (){
var post_num=$('#number1').attr('value');
$.post('http://localhost/wordpress/rpc/latest.php?post_num='+post_num,show_post);
});
});function show_post(res){
//Replace contents of #result with retrieved result
$('#result').html(res);
}
&#60;/script&#62;&#60;body&#62;
&#60;div id="result" style="background:orange;border:1px solid red;width:300px;height:200px;"&#62;&#60;/div&#62;
&#60;form id="formtest" action="" method="post"&#62;
&#38;nbsp;&#38;nbsp;&#60;p&#62;&#60;span&#62;日志数:&#60;/span&#62;&#60;input type="text" name="number1" id="number1" size="15" &#62;&#60;/p&#62;
&#60;p&#62;&#60;span&#62;日志分类:&#60;/span&#62;&#60;input type="text" name="category" <a
href="http://blog.ossxp.com/2010/02/462/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/02/462/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>TestLink简明配置手册</title><link>http://blog.ossxp.com/2010/01/417/</link> <comments>http://blog.ossxp.com/2010/01/417/#comments</comments> <pubDate>Mon, 25 Jan 2010 14:06:43 +0000</pubDate> <dc:creator>雷 魏魏</dc:creator> <category><![CDATA[项目管理]]></category> <category><![CDATA[testlink]]></category> <category><![CDATA[手册]]></category> <category><![CDATA[配置]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=417</guid> <description><![CDATA[安装完TestLink的下一步就是配置了，Testlink的配置信息包含很多方面，从日志信息、与其它bug管理工具的连接、自定义产生的文档、Email信息配置、用户认证配置、GUI定制、测试执行设置、测试规约、附件、需求支持、混合功能配置等等，在此一并列出。希望对你的TestLink的配置有所帮助，在此也声明一点，TestLink系统配置是很庞大的，部分信息是从网上搜集的。1、配置文件概览
所有的配置字段都在文件config.inc.php和它所包含的文件中。对这个版本这些就是配置文件：
• config.inc.php -主配置文件，它几乎被每一个页面include.
• config_db.inc.php -包含访问数据库的配置字段，它在安装或升级过程中创建，几乎不需要你手工修改它。
• custom_config.inc.php – 用在config.inc.php 文件中的默认字段值的修改，它的好处是在升级过程中你的修改能很方便的被拷贝。
• /cfg/.cfg.php –设置对bug跟踪工具的数据库的访问。
• /cfg/const.inc.php – 定义那些不支持修改的常量和变量。
•/gui/templates/input_dimensions.conf – 代替huml输入的硬编码属性，像maxlength和size,我们把它编进了这个文件中。（有一些历史原因造成的异常）
• /cfg/tl_fckeditor_config.js – 设置fckeditor组件的配置
2、日志
LOG LEVEL
日志记录的缺省级别，所需设置字段$tlCfg-&#62;log_level=&#8217;ERROR&#8217;;
有效值包含NONE, ERROR, INFO, DEBUG, EXTENDED，默认为error。DEBUG级别只在开发或者与bug系统集成时使用
LOGGING OUTPUT
有两种输出方式：文件和数据库。两种方法都默认打开，设置下列字段为false，如果你想要进行设置。
$g_loggerCfg = null; // all loggers enabled (default)
$g_loggerCfg['db']['enabled'] = FALSE; // true/false
$g_loggerCfg['file']['enabled'] = FALSE; // true/false
LOGGING PATH
$tlCfg-&#62;log_path=TL_ABS_PATH . &#8216;logs&#8217; . DS ;
日志文件的文件名和路径，配置。
Php的log level默认是error,我们希望php故障能够向用户显示。当然你也可以修改这个字段
error_reporting(E_ALL);
SMARTY DEBUG WINDOW
开发者应该使用这个字段来显示一个额外的包含所有字段和值的列表的窗口，这些值来自php脚本相关的模板组件。在产品安装时必须是false。
$tlCfg-&#62;smarty_debug = false;
如果有安全薄弱的点，在登录页和主页面会有警告。这个消息默认打开（true），false将引起文件config_check.txt，有着一个列表，创建日志目录，不会用户不会通过GUI被通知的。
$tlCfg-&#62;show_config_check_warning = TRUE;
Event viewer
所有早于这个值（天）的时间都将被从数据库移除。
$g_removeEventsOlderThan = <a
href="http://blog.ossxp.com/2010/01/417/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/417/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>wordpress日志评论时间错误问题</title><link>http://blog.ossxp.com/2010/01/238/</link> <comments>http://blog.ossxp.com/2010/01/238/#comments</comments> <pubDate>Thu, 14 Jan 2010 13:49:19 +0000</pubDate> <dc:creator>雷 魏魏</dc:creator> <category><![CDATA[博客软件]]></category> <category><![CDATA[沟通系统]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[日志留言]]></category> <category><![CDATA[时间问题]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=238</guid> <description><![CDATA[也许这个问题在你的服务器中不是常见的，但是偶然间还是会碰到的，它就像定时炸弹一样，说不定
下一秒钟在你的服务器上爆发了。
关于这个问题的解决过程真的不敢妄自菲薄，我先把问题叙述一下。这个是我们错误显示的截图：当你看到那个醒目的&#8221;大约－1年&#8221;时，不知道你作何敢想。原来鼎鼎大名的Wordpress也有这样的
错误，其实细查下来才会发现这是当前主题和Wordpress内部函数共同酿成的苦果。
有了以往查找错误的经验，先查找“大约-1年前”出现的变量的地址，然后就可以按图索骥了，根
据变量你很快就能定位到“主题名/functions.php“文件中，在functions.php下的timeSince函数中
有这样一个变量：$since,
$since = current_time('timestamp',$wp_time_offset ? get_option('gmt_offset') : 0) - $startTimestamp;
它的值为当前时间－发表评论的时间，你可以打一下这个
current_time('timestamp',$wp_time_offset ? get_option('gmt_offset') : 0)
,结果显示那条错误的评论和那些正确的评论取出的当前时间都是正确的，说明问题还不在于此。
继续往下找，在真正输出时间的地方，该主题又对发表评论的时间进行了处理，如下：
comment_date));?&#62;
，
用echo命令输出的信息表明$comment-&#62;comment_date所取出的时间并没有错误，错误就发生
在strtotime,这个PHP内部函数上，PHP内部函数也会出问题？我的第一个反应就是这样。
我们看一下PHP的这个函数，下面是对该函数的说明：
The function expects to be given a string containing a US English date format
and will try to parse that format into a Unix timestamp (the number of seconds
since January 1 1970 00:00:00 UTC), relative to the timestamp given in now ,
or the current <a
href="http://blog.ossxp.com/2010/01/238/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/238/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Wordpress中文昵称问题解决方法小结</title><link>http://blog.ossxp.com/2010/01/180/</link> <comments>http://blog.ossxp.com/2010/01/180/#comments</comments> <pubDate>Tue, 12 Jan 2010 13:59:30 +0000</pubDate> <dc:creator>雷 魏魏</dc:creator> <category><![CDATA[博客软件]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[中文昵称]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=180</guid> <description><![CDATA[我的上一篇博客中大致介绍了Wordpress的基本工作原理，但是了解原理以后还有个问题一直困
扰着我，我们的日志上面凡是使用了中文昵称的地方都不能被查询到。真的令人挺苦恼，Wordpress
不是不支持中文链接，象&#60;yourlink&#62;/category/中文链接就能很好地跳转，但&#60;yourlink&#62;/author/
中文链接为什么就是404的错误。
最好的文档还是代码，前提是你对Wordpress的工作原理有了一定的了解之后。
还得从Wordpress的调用说起。Wordpress中对页面请求，简言之就是对浏览器输入框中地址的处理
是由wp-include/classes.php来做的。classes.php中有一个main方法，我们都应该知道main方法对
整个程序的重要程度。我们再来看一遍main方法，
function main($query_args = '') {
$this-&#62;init();  --初始化环境
$this-&#62;parse_request($query_args);   --解析请求
$this-&#62;send_headers();  --发送头信息
$this-&#62;query_posts();  --查询日志
$this-&#62;handle_404();   --操作404(URL地址不存在)
$this-&#62;register_globals();  --注册全局变量
do_action_ref_array('wp', array(&#38;$this));
}
现在我阐述一下我的大概的思路，也为以后寻找类似问题提供一些参考。
(1)我主观上判断应该是parse_request对请求地址进行解析错误，导致解析后的地址链接与.htaccess
中的规则匹配不上，但是后来我使用了中文昵称和英文昵称两个不同的用户在parse_request中插入echo信息
和die(php中用来对当前程序进行终止)进行实验，得到的信息没有什么异样，我发现我错了。
(2)还是主观臆断的错误，我还是误以为错误的原因应该归咎于.htaccess中没有匹配的规则，只能匹配到
英文的地址链接，我找到用来显示昵称的代码，位于&#60;主题名&#62;/post.php中，它调用了get_author_posts_url
(get_the_author_ID())，你可以根据方法名查找到该方法的地址，它位于wp-includes/author-template.php
中，我发现原来用来显示的是昵称，因为我们资料中的昵称都是中文，所以显示的也是中文，我就把凡是涉及到
nicename的参数全部改成login,我想这次该行了，希望再次破灭。还是那个404错误。
这两次接连的打击让我逐渐清醒了方向，还是看代码吧，一点一点来。
既然解析请求的地方没有什么错误，下一步$this-&#62;send_headers()(发送头信息),查看函数后你就会发现该函数
只不过发送了文件头部的一些信息，与你要查找的post信息关联不大。
下一个，$this-&#62;query_posts()(查询日志),这个函数中调用的第一个$this-&#62;build_query_string()，建立
查询数据，继续echo、die,你会发现英文昵称和中文昵称在此处也没什么异常。继续寻找，也许就在下一个，
$wp_the_query-&#62;query($this-&#62;query_vars)，$wp_the_query是已经初始化好的全局变量，在WP_Query
类中进行初始化的，WP_Query位于wp-include/query.php中，查找WP_Query函数中的function &#38;query()
方法，我再次异想天开地认为这回应该近了，但是现实就是现实，我一点点地读，然后把echo、die放到不同的
位置用两种昵称的用户进行实验，结果依旧是看不出什么问题。
继续，function &#38;query($query)中的第二个调用，$this-&#62;get_posts()，查找author_name你会发现，原来
根据页面上的用户名调用日志的那一段就在此，
$q['author'] = $wpdb-&#62;get_var("SELECT ID FROM $wpdb-&#62;users WHERE user_nicename='".$q['author_name']."'");
我终于找到了寻觅了好久的那个nicename,当你用echo、die放到这一句上面进行实验时，你会发现，这次中文昵称
和英文昵称有区别了，使用中文昵称时查找到的$q['author'] ，也就是Wordpress调用数据库中数据的用户ID
是空的。OK，锁定目标：$q['author_name'] = sanitize_title($q['author_name'])，
原来它把自己搞糊涂了，赋给$q['author_name']的参数竟然是用urlencode转换过的内部规则，在此处加上urldecode就行了。
从这次超级费时的找bug过程中，我发现什么事也不能主观臆断，一定要拿出实实在在的数据。还有，代码是最好的
文档，当你了解了最基本的原理后，慢慢看，慢慢就会看懂的。
]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/180/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>wordpress工作原理</title><link>http://blog.ossxp.com/2010/01/166/</link> <comments>http://blog.ossxp.com/2010/01/166/#comments</comments> <pubDate>Tue, 12 Jan 2010 02:27:41 +0000</pubDate> <dc:creator>雷 魏魏</dc:creator> <category><![CDATA[博客软件]]></category> <category><![CDATA[wordpress]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=166</guid> <description><![CDATA[WP初始化的过程：当你输入&#60;yourlink&#62;/wordpress对wordpress进行初始化时，wordpress默认会找
根目录下的index.php页面，看一下index.php页面。
&#60;?php
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php'); ---把/wp-blog-header.php包含进来
?&#62;
你会发现，它会去调用根目录下的wp-blog-header.php，我们继续看wp-blog-header.php。
&#60;?php
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );  ---加载wp-load.php
wp();  ---加载function WP();
require_once( ABSPATH . WPINC . '/template-loader.php' );   ---加载模板文件
}
?&#62;
通过wp-load.php，wordpress先后把wp-config.php, wp-setting.php,classes.php,fucntions.php，
query.php等文件加载进来,并建立了三个全局变量,$wp_the_query,$wp_rewrite和$wp ,分别为WP_Query,
WP_Rewrite和WP类的实例。然后,wp-blog-header执行wp()函数,并通过其调用$wp所属WP类的main方法,
这个方法又调用一系列方法,但最重要的是parse_request方法, WP从这里开始解析URL并建立主循环。
我们看一下wordpress的主方法：
function main($query_args = '') {
$this-&#62;init();  --初始化环境
$this-&#62;parse_request($query_args);   --解析请求
$this-&#62;send_headers();  --发送头信息
$this-&#62;query_posts();  --查询日志
$this-&#62;handle_404();   --操作404(URL地址不存在)
$this-&#62;register_globals();  --注册全局变量
do_action_ref_array('wp', array(&#38;$this));
}
这基本上就是wordpress初始化时的信息。
下面就讨论一下当我们设置自定义的永久链接时，wordpress的运作过程。
当我们使用了自定义的永久链接的时候，wordpress会自动生成.htaccess文件，并且在这个文件中生成相
对应于永久链接的匹配规则，在wordpress/wp-includes/rewrite.php中有针对.htaccess文件的重写规则，其
中$use_verbose_rules参数规定了输出信息的详尽和简约，默认的情况下为false。输出的信息比较简单，
如下
# BEGIN WordPress
&#60;IfModule mod_rewrite.c&#62;
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php <a
href="http://blog.ossxp.com/2010/01/166/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/166/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>TestLink 1.8.5的完全安装</title><link>http://blog.ossxp.com/2010/01/112/</link> <comments>http://blog.ossxp.com/2010/01/112/#comments</comments> <pubDate>Sat, 09 Jan 2010 09:12:41 +0000</pubDate> <dc:creator>雷 魏魏</dc:creator> <category><![CDATA[项目管理]]></category> <category><![CDATA[testlink]]></category> <category><![CDATA[软件测试]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=112</guid> <description><![CDATA[本文档描述了 TestLink 的安装部署和配置，下面的示例是基于 TestLink 的标准发布版本。
对于群英汇 的增强的 TestLink：可以从 github 上看到代码库：http://github.com/ossxp-com/testlink-ossxp-hacks
参见：群英汇的TestLink演示(下面的示例是基于 TestLink 的标准发布版本，而非群英汇增强版本)
安装要求：
数据库要求：Mysql 4.1.x或者更高的版本上Postgres 8.x以及更高的版本SQL 2000 以及更高的版本WEB服务器要求：
Apache 1.3.x 或者 2.x以及Apache的更高版本，IIS 3或者更高的版本
PHP版本要求：
TestLink 1.8系列版本都是用PHP 5.2来进行管理的，PHP 5.3的版本对TestLink
1.8系列不太合适。将要推出的TestLink 1.9在这两个PHP版本上都能很好地工作
bug跟踪系统版本要求：Redmine 0.6.3 以及更高版本Bugzilla 0.19.1 以及更高版本Mantis 1.0.1 以及更高版本JIRA 3.1.1 以及更高版本TrackPlus 3.3 以及更高版本Eventum 2.0 以及更高版本Trac 0.10 以及更高版本当你的系统中PHP版本以及数据库达到要求时就可以开始安装了。
安装步骤：
1、解压缩文件
Linux系统：
#tar zxvf &#60;filename.tar.gz&#62;
Windows系统:
使用Winzip,Stuffit等进行解压缩
2、把解压缩出来的文件放到Apache目录下
#cp file /var/www/下(Ubuntu Linux)
3、自动化安装：
TestLink源文件中包含了自动化安装的脚本能够帮助你设置所有安装需要的配置以及
数据库的结构。
1)在浏览器中输入http://&#60;yoursite&#62;/testlink/install/index.php
2) 把你想创建的数据库名字以及当前Mysql的用户名和密码输进去
3) 点击最下边的安装按钮
4、手动安装：
1）在Mysql中创建一个空数据库
create <a
href="http://blog.ossxp.com/2010/01/112/" class="more-link">阅读全部内容 &#187;</a>]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/112/feed/</wfw:commentRss> <slash:comments>27</slash:comments> </item> <item><title>TestLink-测试管理工具</title><link>http://blog.ossxp.com/2010/01/30/</link> <comments>http://blog.ossxp.com/2010/01/30/#comments</comments> <pubDate>Wed, 06 Jan 2010 13:31:20 +0000</pubDate> <dc:creator>雷 魏魏</dc:creator> <category><![CDATA[项目管理]]></category> <category><![CDATA[testlink]]></category> <category><![CDATA[测试]]></category><guid
isPermaLink="false">http://blog.ossxp.com/?p=30</guid> <description><![CDATA[在我和同事的共同努力下，TestLink完全汉化版终于完成了。之前之所以没有对外发布，主要考虑到可能有好多不太完善的地方，也没有一个很好的交流的平台。现在看来，时机已经成熟了。
应该说TestLink用来管理一个中小型的项目还是绰绰有余的，它本身也有很多优势，首先开源的架构大大方便了公司个性化的设置，而且还可以整合众多的bug管理跟踪工具，像Mantis,Jira,Redmine.这样公司就可以很好地对一般的项目进行管理。
TestLink目前的主要功能包括测试需求管理测试用例管理测试用例对测试需求的覆盖管理测试计划的制定测试用例的执行大量测试数据的度量和统计功能TestLink还加强了对不同版本的测试用例进行管理，把不同版本的测试计划和测试用例很好地关联起来。在测试的分析过程中提供了丰富的图表和视图，尤其是对测试用例的分析上，TestLink提供了失败的测试用例、锁定的测试用例、尚未执行的测试用例、还未分配的测试用例等针对测试用例进行的分析。
TestLink的图表分析模块本来存在部分问题，在我和同事的共同努力下解决了。
我们已经把TestLink的演示版放在了 http://testlink.ossxp.com/ 上了，欢迎各位进行访问，我们针对TestLink的改动信息都在 http://redmine.ossxp.com/redmine/projects/testlink/issues上。
对于翻译过程中措辞不对的地方还请各位指正，就在博客的留言中或者在Redmine上都可以，我会尽快回复。
关于TestLink功能方面欠缺的功能也可以提，我会尽快答复的。
TestLink安装配置方面的问题我会在后续的博客中慢慢写出来。
]]></description> <wfw:commentRss>http://blog.ossxp.com/2010/01/30/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)
Database Caching 4/13 queries in 0.009 seconds using disk

Served from: blog.ossxp.com @ 2012-02-10 18:23:57 -->
