告诉用户是否从块登录到Concrete5中的编辑/仪表板

Tob*_*oby 5 concrete5

我正在编写一个块,希望能够在查看块时告诉用户是否登录到仪表板.我想象应该有类似isAdminArea()或isEditing()的东西,但到目前为止还没能自己找到它!

Jor*_*Lev 6

如果您使用的是Concrete5.6.0或更高版本,则可以执行以下操作:

global $cp;
$canViewToolbar = (isset($cp) && is_object($cp) && $cp->canViewToolbar());
if ($canViewToolbar) {
    //do something...
}
Run Code Online (Sandbox Code Playgroud)

如果您在主题模板或块视图中执行此操作,则可以省去大量垃圾并执行此操作:

global $cp;
if ($cp->canViewToolbar()) {
    //do something...
}
Run Code Online (Sandbox Code Playgroud)

但是如果您在包控制器中或在系统事件期间执行此操作,则需要使用我的第一个示例(以确保存在全局"Collection Permissions"对象).

如果您运行的是版本低于5.6的Concrete5,请使用以下代码:

global $cp;
$canViewToolbar = (isset($cp) && ($cp->canWrite() || $cp->canAddSubContent() || $cp->canAdminPage() || $cp->canApproveCollection()));
if ($canViewToolbar) {
    //do something...
}
Run Code Online (Sandbox Code Playgroud)