Add OnBeforeNavigate2 Function to CDHTMLDialog

  1. In XXXHTMLDialog.h
    DECLARE_EVENTSINK_MAP()
    virtual void XOnBeforeNavigate2(LPDISPATCH pDisp, VARIANT FAR* URL, VARIANT FAR* Flags, VARIANT FAR* TargetFrameName, VARIANT FAR* PostData, VARIANT FAR* Headers, BOOL FAR* Cancel);
  2. In XXXHTMLDialog.CPP
    BEGIN_EVENTSINK_MAP(CXXXHTMLDialog, CDHtmlDialog)
    ON_EVENT(CXXXHTMLDialog, AFX_IDC_BROWSER, 250 /* BeforeNavigate2 */, XOnBeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
    END_EVENTSINK_MAP()void CXXXHTMLDialog::XOnBeforeNavigate2(LPDISPATCH pDisp, VARIANT FAR* URL, VARIANT FAR* Flags, VARIANT FAR* TargetFrameName, VARIANT FAR* PostData, VARIANT FAR* Headers, BOOL FAR* Cancel) {
    //set Cancel as TRUE to cancel this request
    CString str(V_BSTR(URL));
    OnBeforeNavigate(pDisp, str);
    }

Javascript: add to favorite (compatible with IE & Firefox)

If you need a “Add to Favorite” button on your page, here is a sample code which is compatible with both IE & Firefox

<script language=javascript>
function addFav() {
try{window.external.AddFavorite(window.location.href, document.title);return;}catch(e){}
try{window.sidebar.addPanel(document.title, window.location.href, "");return;}catch(e){}
}
</script>
<button onclick='addFav()'>Add to Favorite</button>


Here is a sample :

Dreamhost Custom Error Pages

修改.htaccess

Refer: http://wiki.dreamhost.com/index.php/Custom_error_pages

表扬一下DreamHost

我的数据库在我运行了一条Sql之后彻底当机了,给DreamHost发Email问了一下,虽然是周末的白天,相当于美国的周末晚上,DreamHost还是在1个小时之内帮我把问题解决了,以前总是听说DreamHost的服务很差,反应很慢,不过我最近2次的问题都很快解决了,不错,表扬一个!

升级WordPress到2.2.1

根据Dreamhost的提示,WordPress升级到2.2.1,因为升级会覆盖所有的主题文件,所以如果修改过的主题有可能会被覆盖,如有问题请联系我

目前所有数据均已备份,如果没有问题将在1周后删除

Python 连接Mysql时报错:’charset’ is an in valid keyword

如果你在DreamHost的空间运行Python程序用这样的方式连接Mysql数据库的话

con=MySQLdb.connect(db='mydb', user='me', passwd='password', host='mysqlhost', charset='utf8')

很有可能会遇到以下问题:

Unhandled exception of type exceptions.TypeError occured at 16:48:51:
Traceback:
Code: mydb=MySQLdb.connect(db='mydb', user='me', passwd='password', host='mysqlhost', charset='utf8')
... ... ... ...
Exception value: 'charset' is an invalid keyword argument for this function

问题是因为在某些版本的MySQLdb库中的connect参数没有charset这个关键字,可以通过升级MySQLdb来解决,但是DreamHost中普通用户应该没有权限,不过当你仍然需要设置编码的时候,可以用下面的方法代替:

con = MySQLdb.connect(db='mydb', user='me', passwd='password', host='mysqlhost', use_unicode=True)
cursor = con.cursor()
cursor.execute("SET NAMES 'UTF8'")

在Blog中加入Google Adsense

什么是Google Adsense?

Google Adsense 是在你的网站上投放相关的广告,访问你的网站的人点击广告之后与你分享广告收入的项目
见过下面这样的广告吧?这个就是Google Adsense,每次点击都会给广告的Owner带来收益


如何加入该项目?

点击下面的连接进行申请(当然这也是一个广告,呵呵)


当然你也可以直接访问 http://adsense.google.com 直接申请

申请的时候填写真实信息,因为收益是通过支票寄过来的,虚假的信息会导致支票托收有问题

如何将代码加入Blog?

在账户生效之,登陆http://adsense.google.com,选择你要投放的一个广告方式,比如文字的大小等,然后复制广告代码

  1. 然后进入WordPress管理,选择 Presentation - Theme Editor
  2. 如果你要放在侧边栏上,点击SideBar,如果是在标题附近,点击Header
  3. 将代码嵌入到你想放置的位置上,保存即可

如何察看广告收益?

访问 http://adsense.google.com

注意事项

  1. 不要自己点击广告,尤其不要在一台机器上既登陆Adsense,又点击广告,很容易被查出来作弊
  2. 不要让同一个办公室的同事点击广告,很有可能对外IP是一样的
  3. 不要主动让朋友点击广告
  4. 登陆Adsense之后,可以看到显示广告和点击次数的比例,如果这个比例大于5%,基本上不大正常了,所以让别人点广告的办法基本上是找死

为Blog加入流量统计功能

如果你希望在Blog里面加入统计功能,可以到一些提供在线服务的网站申请,比如cnzz.com:

  1. cnzz.com注册一个用户
  2. 登陆之后选择 添加下属站点
  3. 选择 您的站点列表 ,找到你添加的站点,选 获取代码
  4. 进入WordPress管理,选择 Presentation - Theme Editor
  5. 点击 Footer
  6. 将代码嵌入到</body>之前就可以了,如果你不想显示cnzz的图标,可以在代码前面加上<div style='display:none'>,后面加上</div>就可以了

当然如果你可以使用其他的流量统计服务,比如:

Google Analytics: http://www.google.com/analytics

另外,这个方法修改了主题的文件,如果你更换了主题,需要重新编辑Footer加入代码

安装完WordPress之后需要修改的地方

安装完WordPress之后,你的Blog就可以启用了,访问http://YOURDOMAIN/wp-admin,用admin和密码进入即可,但是需要修改以下东东:

  1. 修改密码:到Users - Your Profile,可以修改密码,admin的email、显示名称等信息
  2. 修改Blog信息:到Options - General,这个需要修改的地方有
    1. Weblog title: Blog的名称
    2. Tagline: Blog的副标题,一般会显示在名称的下面
    3. E-mail address:这个会用来找回Admin的密码,不会被显示出来,所以最好用真实信息
    4. Membership: 这个地方有2个选项,Anyone can register表示是否允许用户注册,Users must be registered and logged in to comment表示是否允许匿名用户发表评论,基本上2个都勾上好了
    5. Times in the weblog should differ by: 时区,在中国的话输入+8
  3. 删掉默认的Blogrolls: Blogroll是指你的Blog的友情链接,在默认情况下会几个老外的连接,请到Blogroll属性页上进行删除和添加自己的连接
  4. 删掉Sample文章和评论:系统会自动添加一个文章和一个评论,到Manage - Posts可以删除文章,到Comments可以删除评论
  5. 修改About页面,到Manage - Pages,修改About页面成关于你自己的一个页面
  6. 选择主题:到Presentation可以选择,目前有几十个主题可以选择
  7. Ok,大功告成!您可以到Write -Write Post去写你的第一个Blog了!