惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

博客园 - Baldwin

Orchard运用 - 网站样例 Orchard运用 - 特定主题添加独立代码文件 Orchard运用 - 整合多说评论插件 Orchard运用 - 设置网站Favicon标识 Orchard运用 - 定制博客分页显示 Orchard运用 - 理解App_Data目录结构 Orchard运用 - 为博客启用Markdown编辑器 Orchard运用 - 如何隐藏去除某些Meta标记 Orchard运用 - 学习资源分享 Orchard运用 - 整合Disqus评论插件 Orchard运用 - 在页面每篇随笔添加编辑链接 Orchard运用 - 定制呈现最新博客文章 Orchard运用 - 导入旧随笔导致归档的问题 Orchard运用 - 如何删除部分内容显示 你需要么,dnn多语言解决方案? 如何定制dnn的FckEditor Blog已迁移到dnnsun.com(最新DotNetNuke咨询平台) 再论call和apply MarqueeNews2.2发布
Orchard运用 - 为评论启用Gravatar头像
Baldwin · 2014-05-22 · via 博客园 - Baldwin

在前一篇随笔中我曾分享如何为Orchard特定主题添加独立代码文件, 今儿延续如何把对应代码应用到Views上。

对此我不妨把为评论启用Gravatar头像这一例子来实现。其实很简单, 思路大概就是创建一个Gravatar辅助类,主要处理通过获取Email参数结合Gravatar服务的API来生成对应的头像;同时在当前主题新建一个Parts.Comment.cshtml来覆盖核心的评论呈现。

具体步骤如下:

1. 在当前主题Theme的目录Utils里添加独立代码文件Gravatar.cs。该文件在此可下载

@using Orchard.Comments.Models
@using Orchard.ContentManagement
@using Orchard.Users.Models
@using Orchard.Simplex.Utils

@functions{
string BuildGravatar(CommentPart comment){
string gravatarEmail = string.Empty;

if (String.IsNullOrWhiteSpace(comment.UserName)) {
gravatarEmail = comment.Email;
}
else {
var cm = WorkContext.Resolve();
var user = cm.Query<UserPart, UserPartRecord>().Where(x => x.NormalizedUserName == comment.UserName).List().FirstOrDefault();

if (user != null) {
gravatarEmail = user.Email;
}
}

return Url.Gravatar(string.IsNullOrWhiteSpace(gravatarEmail) ? "dummy@foobar.com" : gravatarEmail, 60, "mm", Rating.G);;
}
}
@{
CommentPart comment = Model.ContentPart;
CommentsPart comments = comment.CommentedOnContentItem.As();

var children = New.List(Items: Model.Items);
children.Classes.Add("comments");
}

代码解释:可看出新建一个方法BuildGravatar负责生成头像, 并在代码调用生成图像标签。

整合后效果如下:

题外话:其实有一现成模块Webmoco.Gravatar可以使用,不过貌似在Orchard 1.8下没法使用,所以只好自力更生有了以上的解决方案了。