为BlogEngine.NET制作分享按钮插件

如今网络上的各种各样的服务,微博、网络书签等多不胜数,为了使用户能够将自己的网站文章内容分享给广大读者,让他们可以方便的收藏你的文章,站长们都往自己的博客增加分享按钮,但由于这样的服务很多,一时也很难收集全面。

幸好网络上出现了不少收集服务的站点,例如国外的www.addthis.com,国内的分享家代推JiaThis都提供了收集服务,甚至可以统计转发的次数之类的功能,我们要做的只是将他们提供的代码整合到我们自己网站上,这样就省去了自己收集的麻烦,非常方便。

可惜的是大多数分享按钮服务站点都没有提供BlogEngine.net集成插件,于是,自己动手的时候到了,我的目标是将这样的代码放在每个详细文章的底部,假设调用的是JiaThis的服务。

最终效果像这样:

Snap2

要在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网站生成。Snap3

其中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)

添加评论

  Country flag

biuquote
  • 评论
  • 在线预览
Loading

Calendar

<<  十一月 2017  >>
星期星期星期星期星期星期星期
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

在日历中浏览文章

Month List