有没有办法确定当前用户是否是博客的管理员?像
这样的东西{Block:Owner}
This is your blog. Click here to update the theme settings.
{/Block:Owner}
即使是通过javascript / API的内容也会有所帮助。我无法在theme documentation
中找到任何内容答案 0 :(得分:3)
我找到了一种方法,但它并不完全可靠,而且取决于语言和操作系统。
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仍然有效。此代码不受密码保护的博客的影响,因为他们不会显示该条。
这可以通过使其与promises异步来进一步改进,因此您可以避免这种情况&#34;尚未准备好&#34;状态。