<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>Zack Live</title>
	<link>http://cn.zacklive.com</link>
	<description>WordPress 主题设计及网页设计</description>
	<lastBuildDate>Mon, 08 Mar 2010 09:33:16 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>松下电器发布最新Lumix DMC-G2 与 DMC-G10</title>
		<description><![CDATA[
松下电器（Panasonic）发布了最新的M 3/4 (Micro Four Thirds) 数码相机：G2与G10。两款相机都具有1200万像素的Live Mos镜头，并采用Venus Engine HD第二代技术。G2是G10的高阶版本（数字小的比较高阶），比G10多了可翻转，可触控LCD显示器，最高ISO值可达6400，支持720p AVCHD Lite格式录影。
以下是触控演示影片:
更多内容请到始者数码杂志
Popular Posts设计国际化的主题: WordPress主题翻译教学我第二个WordPress主题：BlacknWhiteGoogle Nexus One就是不够酷如何翻译WordPress主题进阶WordPress主题翻译技巧]]></description>
		<link>http://cn.zacklive.com/panasonic-released-lumix-dmc-g2-and-dmc-g10/169/</link>
			</item>
	<item>
		<title>为WordPress选择程式码显示插件</title>
		<description><![CDATA[
刚开始我只用引用（Quote）来显示程式码，随着程式码越来越多，引用已经不够用，我决定要加个程式码高亮显示的插件到WordPress里。
我前后共测试了5个这种插件，包括：

SyntaxHighlighter Plus
WP-Syntax
Google Syntax Highlighter for WordPress
Syntax Highlighter for WordPress
SyntaxHighlighter Evolved

我也总结出，具体的要求：

不用修改WordPress，包括主题：我不希望因为一个插件而修改WordPress或主题，特别是有其他的选择的情况下。
显示行数：有行数的话，当讨论程式码时，就比较容易去指定特定一行。关于这一点，WP-Syntax预设是不显示行数的，所以我没有选择它。
支持可视化编辑器（Visual Editor）：这是最严重的问题，有些插件在Visual Editor里会自动重编程式码以便在HTML下显示，这样会破坏原程式码，导致每次编辑时都要改程式码，改到我火都上来。SyntaxHighlighter Plus，Google Syntax Highlighter for WordPress和Syntax Highlighter for WordPress都有这个问题。

剩下的就是SyntaxHighlighter Evolved，它是唯一不需要作任何改动就符合以上要求，也支持所有常用的程式语言，包括PHP, HTML, CSS, C等。使用上也很简单，只要用[语言]和[/语言]来包住程式码，其中语言是程式码相应的程式语言，如PHP。该插件也有设置页面，可以做一些细节的微调，也有一些使用说明可以参考。以下是一个带有PHP的HTML范例：

&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&#62;
&#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34; xml:lang=&#34;en&#34; lang=&#34;en&#34;&#62;
&#60;head&#62;
	&#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=UTF-8&#34; /&#62;
	&#60;title&#62;PHP Code Example&#60;/title&#62;
&#60;/head&#62;
&#60;body&#62;
	&#60;h1&#62;PHP Code Example&#60;/h1&#62;

	&#60;p&#62;&#60;?php echo 'Hello World!'; ?&#62;&#60;/p&#62;

	&#60;p&#62;This line is highlighted.&#60;/p&#62;

	&#60;div class=&#34;foobar&#34;&#62;
		This	is	an
		example	of	smart
		tabs.
	&#60;/div&#62;

	&#60;p&#62;&#60;a href=&#34;http://wordpress.org/&#34;&#62;WordPress&#60;/a&#62;&#60;/p&#62;
&#60;/body&#62;
&#60;/html&#62;

Related PostsWordPress 2.9.2 版本发布高亮(Hightlight)显示作者回覆设计国际化的主题: WordPress主题翻译教学不用WordPress, [...]]]></description>
		<link>http://cn.zacklive.com/choose-right-syntax-highlight-plugin-for-wordpress/167/</link>
			</item>
	<item>
		<title>根据浏览器语言重定向访客</title>
		<description><![CDATA[
最近我开了一个新网站，Gearor.com，以报导科技新闻为主。我为这个网站设计了中文（cn.gearor.com）及英文版本，所以我希望做到，当用户访问时，判断用户是否使用中文浏览器，若是便将用户带到中文页面。
一开头，我直观地在主页将所有中文浏览器转到中文页面。这样做有一个问题：就是在中文页面内，我放置了一条返回英文页面的连结，若中文用户想看英文内容，可按此连结。当我加入转向程式，即使点击了这条连结，还是会被带回到中文页面，变成中文用户到不了英文的主页，这是不能接受的。
解决的方法也不难，只要在转向程式加入判断，不对来源网站为本站的用户进行转向。问题是要实现这个方法却不容易，我试过JavaScript，亦试过用SESSION的方法，都未能满足。最后我将问题放到StockOverFlow上，终于找到满意的解决方法。顺带一提，StockOverFlow真是一个非常棒的网站，那里有大量优秀的程式员，而且大家都很乐意为你解答疑问。以下是我修改过的程式，目前在Gearor.com上使用：

if (!preg_match('%gearor.com%i', $_SERVER['HTTP_REFERER']))
	{
		if (!preg_match('%cn.gearor.com%i', $_SERVER['HTTP_REFERER']))
		{
			if (preg_match('/zh-cn/i', $_SERVER['HTTP_ACCEPT_LANGUAGE']))
				wp_redirect('http://cn.gearor.com');
		}
	}

如果你也在设计多国语言网站，或许这段程式也能帮到你，当然，若你有更好的方法，欢迎与我分享。
Related Posts安装Kohana 3 PHP 框架PHP防止SQL Injection: Addslashes还是Mysql_real_escape_string面向对象PHP教学：MySQL数据库应用]]></description>
		<link>http://cn.zacklive.com/redirect-users-according-to-browser-language/164/</link>
			</item>
	<item>
		<title>安装Kohana 3 PHP 框架</title>
		<description><![CDATA[
Kohana 3发布已经有一段时间，这个版本重新设计了大量的代码，其实最重要的改变是用HMVC设计模式取代MVC。至于什么是HMVC？以下几篇文章或许能帮大家理解：

浅谈HMVC模式
谈谈HMVC
说说HMVC

另外，虽然Kohana 3发布了，但Kohana 2还是会继续发展，原Kohana 2的用户可以放心继续使用。如果你是刚学Kohana的话，建议还是学Kohana 3。
和以往一样，Kohana 3的安装非常容易。这里可以下载Kohana 3。解压后，将Kohana文件夹上传到你的网站，当然你可以将文件夹改为任何你喜欢的名字。再来需要改一下权限，请将以下文件夹的权限改为777：

application/cache
application/logs

最后再对application/bootstrap.php作小许设定：

更改 timezone
设定 base_url

到这里，Kohana 3的安装与设定就完成了，我们现在可以访问Kohana页面，在浏览器中输入Kohana所在位置，也就是刚刚设的base_url，你会看到如下画面：

能看到这个画面，代表一切正常。注意中间绿色文字提示你要删除install.php文件，删除后刷新这个页面，会变成显示文字：&#8221;hello, world!&#8221;这是预设的Controller输出的文字，那这个Controller在哪里呢？请打开application-&#62;classes-&#62;controller，你会看到一个welcome.php，就是它了，以下是它的代码：

&#60;?php defined('SYSPATH') or die('No direct script access.');

class Controller_Welcome extends Controller {

	public function action_index()
	{
		$this-&#62;request-&#62;response = 'hello, world!';
	}

} // End Welcome

这个Controller唯一个的事就是输出文字：hello, world! 你可以试着做一些修改，将这一行：

$this-&#62;request-&#62;response = 'hello, world!';

改为：

$this-&#62;request-&#62;response = 'hello, Kohana 3! I am Zack from ZackLive.com~';

之类的，再刷刚才的页面，看看有什么变化。
以下Kohana 3相关资源：

Kohana 3 用户手册
Kohana 3 非官方维基
Kohana 3 API 资料

如果你有任何关于Kohana的疑问可以在这里回覆提出或到Kohana官方讨论区提问。
Related Posts面向对象PHP教学：MySQL数据库应用根据浏览器语言重定向访客PHP防止SQL Injection: Addslashes还是Mysql_real_escape_string进阶WordPress主题翻译技巧设计国际化的主题: [...]]]></description>
		<link>http://cn.zacklive.com/install-kohana-3-php-framework-2/162/</link>
			</item>
	<item>
		<title>PHP防止SQL Injection: Addslashes还是Mysql_real_escape_string</title>
		<description><![CDATA[
最近看了几篇关于防止SQL Injection的文章，跟大家分享一下我学到的东西。
PHP防止SQL Injection主要有两种做法，分别应用两个函数：addslashes()和mysql_real_escape_string()。早期一般用addslashes()，现在主要用mysql_real_escape_string()，这两个有什么分别呢？Alan Storm 作了以下的解释：
PHP’s mysql_real_escape_string function will, more or less, ask mysql what character(s) needs to be escaped, where the addslashses function will just add a backslash in front of and any single quote (‘), double quote (“), backslash (\) or NUL (the NULL byte) character.
我翻译如下：
PHP的mysql_real_escape_string函数会分析哪些字元需要进行处理，而addslashes则单纯对所有的单引号(‘)，双引号(“)，反斜线(\)和NUL字元加入反斜线。
在同一篇文章中，Waage说（翻译）：

mysql_real_escape_string会为以下字元加入反斜线：
\x00, \n, \r, \, &#8216;, &#8221; 和 \x1a. characters.
而addslash只为以下字元加反斜线：
&#8216; \ [...]]]></description>
		<link>http://cn.zacklive.com/php-avoid-sql-injection-addslashes-mysql-real-escape-strin/155/</link>
			</item>
	<item>
		<title>通用CSS样式表模版</title>
		<description><![CDATA[
每次设计一个新的网站，我们都要写一个新的CSS样式表，而当中的内容有很多是跟以往的设计类似，甚至一样，像是blockqoute, &#60;h1&#62;至&#60;h6&#62;等设定。因此，我一直想要整理出一个通用的CSS样式表模版(Master Stylesheet)，里面包含一些最基本最常用的CSS设定。当开始设计一个新网站的时候，我们首先载入这个模版，就能马上完成了基本的设计，接下来，只要针对这个网站进行细节的设计，如果模版的设定不适合新网站，可以在新网站的CSS文件重写，CSS会自动覆盖模版的设定。
假设我们把模版命名为master.css，而网站的CSS文件为style.css，那我们可以在style.css开头加入以下语句，即可将模版导入：

@import &#34;master.css&#34;;

现在的问题是这个模版要怎么写呢？最近看到了Kyle写的一篇：Master Stylesheet: The Most Useful CSS Technique，是我见过最完整的Master Stylesheet，很多的细节都被考虑到了，直接就能使用。我唯一增加的一段程式码就是在Andrew那里看到的用于重设浏览器设定：

* {
	padding:0;
	margin:0;
}

以下是完整的master.css文件：

/***** Browser Settings *****/
* {
	padding:0;
	margin:0;
}
/***** Global Settings *****/

html, body {
border:0;
margin:0;
padding:0;
}

body {
font:100%/1.25 Arial, Helvetica, sans-serif;
}

/***** Headings *****/

h1, h2, h3, h4, h5, h6 {
margin:0;
padding:0;
font-weight:normal;
font-family: Arial, Helvetica, sans-serif;
}

h1 {
padding:30px 0 25px 0;
letter-spacing:-1px;
font-size:2em;
}

h2 {
padding:20px 0;
letter-spacing:-1px;
font-size:1.5em;
}

h3 {
font-size:1em;
font-weight:bold;
}

/***** Common Formatting *****/

p, ul, ol {
margin:0;
padding:0 0 1.25em 0;
}

ul, ol {
padding:0 0 [...]]]></description>
		<link>http://cn.zacklive.com/general-master-css-stylesheet/152/</link>
			</item>
	<item>
		<title>面向对象PHP教学：MySQL数据库应用</title>
		<description><![CDATA[
这是一篇以PHP面向对象的方式来实作MySQL数据库的教学，适合对PHP有一定了解的面向对象初学者。我们只实现了最基本的功能，你可以根据自己的需要进行扩充。如果你发现有什么问题或建议，欢迎提出。同时我们也寻求后续教学文章，欢迎推荐。本文的代码主要来自Build Internet.
建立一个数据库和users表
用面向对象来操作MySQL数据库，最主要的部分就是写一个数据库的类。首先我们建立一个数据库跟一个名为users的表，以供教学使用，以下是SQL码：

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `join_date` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;


数据库类和属性
接下来，我们进入数据库类的设计。这个类有四个属性（Properties）：

$db_name：数据库名称
$db_user：数据库用户名称
$db_pass：数据库用户密码
$db_host：数据库伺服器，一般为localhost

由于这些资料仅供内部使用，我们将它们设为protected。这样，我们可以得出最基本的设计：

&#60;?php
//DB.class.php

class DB{

    protected $db_name = 'yourdatabasename';
 [...]]]></description>
		<link>http://cn.zacklive.com/object-oriented-programming-php-mysql/149/</link>
			</item>
	<item>
		<title>WordPress 2.9.2 版本发布</title>
		<description><![CDATA[
WordPress刚刚发布了最新版本2.9.2。这个版本只进行了一个小小的修正，早前Thomas Mackenzie指出，登入了的用户可以回收站（Trash）里看到其他会员的文章，因此WordPress团队针对这个问题进行了修正，并发布2.9.2版本。
官方公布可在这里找到。
Related Posts为WordPress选择程式码显示插件高亮(Hightlight)显示作者回覆设计国际化的主题: WordPress主题翻译教学不用WordPress, 你的网志就不够专业FriendFeed发布新版本Beta，界面抄袭Twitter]]></description>
		<link>http://cn.zacklive.com/wordpress-2-9-2-new-version-released/146/</link>
			</item>
	<item>
		<title>Google突然推出Google Buzz整合Gmail</title>
		<description><![CDATA[
如果你是Gmail的用户，你应该已经收到Google邀请你使用Google Buzz。这是Google本周最新推出的功能，让用户分享资讯，图片及影片，其最大的特色是，Google Buzz是整合于Gmail当中。
这种分享模式最早且最成功的案例是Digg，后来有Reddit等类似网站出现，甚至连Yahoo也推出了Yahoo Buzz。所以Google Buzz的名字被指有抄袭Yahoo的嫌疑。其实Buzz（流言或散布的意思）是一个很普通的字眼，又不是Yahoo发明的，不能说什么抄袭不抄袭。只是我觉得，Google的团队在命名的时候，应该想到使用Google Buzz这样的名字就会有这样的指控，为什么不另想一个名字呢？Yahoo Buzz也算是有相当的知名度，他们不可能不知道，还是说他们觉得无所谓，不过一个称谓罢了。
和其他的网站不同的是，Google Buzz并不是一个独立的站点，而是整合在Gmail里的一项新功能。这确是一个很聪明的做法，如果你是以独立网站来做的话，要将用户引导到新站就要花相当大的力气，当然以Google的曝光率，它要宣传的话，也能轻易的带来不少的流量，但就是一个古老，没创意的做法，完全仿效Yahoo Buzz了。Google将Buzz放在Gmail里，Gmail的用户群本身就非常大，等于不用宣传就让Google Buzz也拥有与Gmail相近的用户。而且，若Google Buzz是在另一个页面，大家可能不会刻意去看，现在它就在你的Gmail里面，或许你只是想看mail回mail，一眼扫过去，很容易就看到Buzz，无聊地点一下，说不定你就看起来，甚至看到一些有共鸣的内容，你也跟着把你的收藏也拿出来跟大家分享了。就这样，Google又多了一篇文章跟一位贡献者了。
这次Google Buzz另外一个吸引我的点是，它会自动跟随（Follow）40位你最常联络的Gmail用户，让你看到他们分享的东西。这样不问你的意见就帮你跟随的做法，有点粗鲁，却无伤大雅，一般人不会太在意或反感（你可以不管不看），而Google则将它的产品推给了无限多的用户。请想想，你的名单有40位，他们也可以出现在别人的名单，同一个人可以重覆出现在无限多的名单里（当然要看的交友圈有多大）；这40个人中有一个分享，就会有40个人看到，而看到的40个人若有一个回应，又会有另外的40个人看到（这两层很可能有重覆），这另外的40个人若有回应，又有．．．如此不断地循环下去，直到没人回应，这就好像在平静的湖面丢下一粒小石头，就会向四面八方泛起涟漪，虽然很轻，却会一直扩散开去，影响到一层又一层的用户。
Google Buzz介绍影片
Google Buzz手机浏览介绍影片
Related PostsGoogle Nexus One就是不够酷不用Google Adsense，也能赚钱：收录84个网络广告商革新：连Google也投资的关键“图”广告]]></description>
		<link>http://cn.zacklive.com/google-release-google-buzz-integrated-gmail/144/</link>
			</item>
	<item>
		<title>使用JQuery在WordPress实现Tabs效果</title>
		<description><![CDATA[
使用Tabs的好处是，能在有限的空间里显示更多的资讯。因而其应用也越来越广泛，而在WordPress中最常用在侧栏（Sidebar）。本篇将讨论如何使用jQuery实现Tabs效果，本文基于Justin Tadlock的教学撰写，英文原文请看这里。
1. 将jQuery加入到WordPress
首先我们要把jQuery加入到WordPress，WordPress本身就带有jQuery（在wp-includes\js里面），你可以用以下的程式将其加入，这句程式要放在&#60;head&#62;与&#60;/head&#62;之间，通常是在你的主题的header.php文件：
&#60;?php wp_enqueue_script('jquery'); ?&#62;
当然你也可以使用你自己下载的jQuery，通常会将下载回来的jQuery会放在主题文件夹的js文件夹里面，你可以用以下这句程式：
&#60;script type=&#34;text/javascript&#34; src=&#34;&#60; ?php echo bloginfo(stylesheet_directory) .'/js/jquery.js'; ? &#62;&#34;&#62;&#60; /script &#62;

另外，我们自己写的JavaScript会放在一个tabs.js文件里，请自行创建，这个文件同样放在主题的js文件夹里，我们要把这个文件也加入，请在上面那句的下一行加入：
&#60;script type=&#34;text/javascript&#34; src=&#34;&#60; ?php echo bloginfo(stylesheet_directory) .'/js/tabs.js'; ? &#62;&#34;&#62;&#60; /script&#62;

2. Tabs的HTML程式码
现在可以关闭header.php，再打开主题文件sidebar.php，我们要加入Tabs的HTML，在你想要显示Tabs的位置加入：

&#60;div class=&#34;tabbed&#34;&#62;
	&#60;!-- The tabs --&#62;
&#60;ul class=&#34;tabs&#34;&#62;
&#60;li class=&#34;t1&#34;&#62;&#60;a class=&#34;t1 tab&#34; title=&#34;&#60;?php _e('Tab 1'); ?&#62;&#34;&#62;&#60;/a&#62;&#60;/li&#62;
&#60;li class=&#34;t2&#34;&#62;&#60;a class=&#34;t2 tab&#34; title=&#34;&#60;?php _e('Tab 2'); ?&#62;&#34;&#62;&#60;/a&#62;&#60;/li&#62;
&#60;li class=&#34;t3&#34;&#62;&#60;a class=&#34;t3 tab&#34; title=&#34;&#60;?php _e('Tab 3'); ?&#62;&#34;&#62;&#60;/a&#62;&#60;/li&#62;
&#60;li class=&#34;t4&#34;&#62;&#60;a class=&#34;t4 tab&#34; title=&#34;&#60;?php [...]]]></description>
		<link>http://cn.zacklive.com/how-to-jquery-wordpress-tabs/128/</link>
			</item>
</channel>
</rss>
