有没有办法判断当前用户是否是博客的管理员?就像是
{Block:Owner}
This is your blog. Click here to update the theme settings.
{/Block:Owner}
即使是通过 javascript/API 的东西也会有所帮助。我在主题文档中找不到任何内容
有没有办法判断当前用户是否是博客的管理员?就像是
{Block:Owner}
This is your blog. Click here to update the theme settings.
{/Block:Owner}
即使是通过 javascript/API 的东西也会有所帮助。我在主题文档中找不到任何内容
我找到了一种方法,但它并不完全可靠,它取决于语言,可能还取决于操作系统。
Tumblr 控件栏的大小在 3 种可能的情况下会有所不同:
261x 36未登录(这取决于博客的名称)
190x26 已登录,管理员
179x26 已登录,但没有管理员
因此,我们可以确定用户是否使用以下代码登录:
//true: the current user is an admin
//false: the current user is not an admin
//'ask-later': the bar is not ready yet
//'dont-know': the bar is not there
function isAdmin (tolerance) {
// source: http://stackoverflow.com/a/27506229/288906
//these values are expected for English blogs
var EXPECTED_WIDTH = 190;
var EXPECTED_HEIGHT = 26;
tolerance = tolerance || 10;
var controls = document.getElementById('tumblr_controls');
if(!controls) {
//the bar is not there
return 'dont-know';
}
if(controls.width === '1') {
//the bar is not ready, try later
return 'ask-later';
}
var differenceW = Math.abs(controls.width - EXPECTED_WIDTH)
var differenceH = Math.abs(controls.height - EXPECTED_HEIGHT);
return differenceW + differenceH < tolerance;
}
tolerance
我们可以指定一个仍然可以被认为是可接受的值范围,因此 195x28 仍然可以工作。此代码不适用于受密码保护的博客,因为它们不显示该栏。
这可以通过使其与 Promise 异步来进一步改进,因此您可以避免“尚未准备好”状态。