如今网络上的各种各样的服务,微博、网络书签等多不胜数,为了使用户能够将自己的网站文章内容分享给广大读者,让他们可以方便的收藏你的文章,站长们都往自己的博客增加分享按钮,但由于这样的服务很多,一时也很难收集全面。
幸好网络上出现了不少收集服务的站点,例如国外的www.addthis.com,国内的分享家、代推、JiaThis都提供了收集服务,甚至可以统计转发的次数之类的功能,我们要做的只是将他们提供的代码整合到我们自己网站上,这样就省去了自己收集的麻烦,非常方便。
可惜的是大多数分享按钮服务站点都没有提供BlogEngine.net集成插件,于是,自己动手的时候到了,我的目标是将这样的代码放在每个详细文章的底部,假设调用的是JiaThis的服务。
最终效果像这样:

要在BlogEngine.net的每个文章底部插入这些代码,可以简单的修改主题文件就可以了,但是以后一旦更换了主题就不得不再去修改,另外你也不能随时关闭和开启或更换其他的服务代码,所以制作BlogEngine.net插件来扩展功能是最好的选择,这是我第一次制作BlogEngine.net的插件,记录一下,目的是用最简单的方法将代码插入到文章底部,对于更多的设置功能待后期再更新。
先在App_Code\Extensions文件夹添加一个类文件,起名为AddJiaThis.cs。
1.引入BlogEngine的类库
using BlogEngine.Core;
using BlogEngine.Core.Web.Controls;
2.增加一个插件说明标记
[Extension("在文章底部调用jiaThis分享按钮", "0.1", "3dflynet.com")]
3.在构造函数调用Post.Serving,说明是调用文章时增加触发事件
Post.Serving += new EventHandler<ServingEventArgs>(Post_Serving);
4.为增加的事件编写函数代码
void Post_Serving(object sender, ServingEventArgs e)
{
//判断在列表的时候跳过插入
if (e.Location == ServingLocation.PostList) return;
Post post = (Post)sender;
String addHtml = "<div id=\"ckepop\"><a href=\"http://www.jiathis.com/share/\" class=\"jiathis jiathis_txt jtico jtico_jiathis\" target=\"_blank\">分享</a> <span class=\"jiathis_separator\">|</span> <a class=\"jiathis_button_tsina\"></a> <a class=\"jiathis_button_qzone\"></a> <a class=\"jiathis_button_icons_1\"></a> <a class=\"jiathis_button_icons_2\"></a></div>";
String addJs = "<script type=\"text/javascript\" src=\"http://v2.jiathis.com/code/jia.js\" charset=\"utf-8\"></script>";
String addCoum = "<script type=\"text/javascript\"> var jiathis_config = {url: \""+post.PermaLink+"\",title: \""+post.Title+"\"}</script>";
//重新生成博文内容
e.Body = e.Body + addHtml+addCoum+addJs;
}
以上代码addHtml、addJs、addCoum变量的字符串是服务网站提供的代码,也就是我们要插入的代码,可以在JiaThis网站生成。
其中addHtml调用的是Div的内容,addJs调用的是<Script>脚本的内容,addCoum调用的是自定义的分享内容,先引入一个变量Post post = (Post)sender; 然后调用属性post.PermaLink(固定链接),post.Title(文章标题)作为要分享的内容。
最后e.Body = e.Body + addHtml+addCoum+addJs; 是将增加的内容合并到e.body(文章)后面。
这样一个简单的插件就完成了。
下载完整的文件,放到App_Code\Extensions文件夹里就可以使用了。
AddJiaThis.rar (926.00 bytes)
ca48b663-ae88-423b-a5d4-7c601d85418b|7|3.0