10分钟阅读时间 (1966个单词)

客户版Joomla 4,第二部分:打造简化的管理体验

February-J4Clients

Joomla 4已到来,随之而来的是一个完全重制的管理面板。我们现在能够完全控制客户的编辑体验,这超出了我们用Joomla 3所能做到的。在这篇文章中,我们将介绍如何设置客户编辑配置文件、创建自定义管理菜单和从头开始创建自定义仪表盘页面。

 

本文章假设您已经为您的用例设置了适当的用户组和管理访问级别。如果您不确定或还没有这样做,请前往本系列的第1部分。您将学习如何为客户添加自定义用户组和管理访问级别,以便您可以精确控制他们可以看到的内容。

跳转至


创建简化的编辑配置文件

TInyMCE,Joomla 4的默认编辑器,在Joomla 4中变得更加出色。它默认分配给超级用户的工具集包含大量图标,可能会让我们的客户感到不知所措。(说实话,有时也会让我感到困惑!)

很多人没有意识到TinyMCE支持为不同的用户组提供不同的工具集,这将使客户的编辑体验更加平静。

从首页仪表板,点击“插件”快速图标。

您也可以转到系统 > 管理 > 插件,但快速图标更快。

在搜索栏中,输入“TinyMCE”(或只需“tiny”),然后选择“编辑器 - TinyMCE”。

找到标题“TinyMCE集”。

您会看到类似以下内容

您可以在任何集合中添加或删除图标。我喜欢从集合0中删除我不使用的图标,但暂时让我们看看集合1。

这样就好多了!我可能还会删除一些选项,但总的来说,这看起来对我的客户更有用,所以让我们将它们添加到集合1中。

在“分配此集”旁边的框中输入或选择“客户端”(或您的用户组名称)。

根据需要更改工具或图标顺序,然后保存并关闭插件。

 


自定义管理员菜单和菜单项

如果您的网站基本上只是一个博客,默认的管理员菜单就很好,但是一旦您开始为不同类型的内容创建不同的分类,指导客户如何编辑正确的文章可能会很麻烦。

这就是创建自定义管理员菜单能派上用场的地方!您可以创建链接到客户最需要的特定组件和视图,并隐藏其余部分。

步骤 1:在左侧菜单中点击“菜单”,然后选择“管理”。

步骤 2:选择显示“网站”的下拉菜单,然后选择“管理员”。

步骤 3:选择“新建”,并填写详细信息。

如果您选择了一个预设,它将根据该预设自动创建菜单项。我喜欢从头开始,所以我会将其保留为“无”。准备好后,保存并关闭

步骤 4:添加您希望在客户端菜单中包含的菜单项。

您会注意到,当您点击菜单中的“菜单”时,会看到一个名为“管理员”的新部分,您刚刚创建的菜单位于其下。点击其旁边的加号以添加新的菜单项。

创建一个新菜单项,就像您为前端菜单创建一样。例如,我们将创建一个链接到主页仪表板的菜单项。

在“菜单项类型”下,选择“主页仪表板”。为您的项填写一个标题——在这个例子中,我使用的是控制面板。

如果您愿意,转到第二个选项卡(“链接类型”),您会看到一个名为“链接图标类”的字段。您可以在其中添加一个 Font Awesome 图标——Joomla 4 已在后台加载了免费的 Font Awesome 5 图标。查看所有图标这里

在这种情况下,我想要一个主页图标,因为它是一个主页仪表板。所以我会使用 fas fa-home 作为图标类。(注意您需要包括填充图标类,这样 Joomla 就知道要查找一个 Font Awesome 图标。

完成设置后,点击保存并关闭。

根据需要添加尽可能多的菜单项,然后进行下一步。

步骤 5:创建一个新的菜单模块。

准备好后,点击菜单中的“内容”,然后点击“管理员模块”。

在添加新的菜单模块之前,我们必须从客户端隐藏默认的模块。

点击“筛选选项”,然后点击“选择位置”下拉菜单,选择“菜单”。

您会注意到当前访问权限是“特殊”。根据我们的第一部分文章,这意味着超级用户和客户都将看到它,但我们在创建一个专门的客户菜单,所以我们需要更改它。

点击“管理员菜单”进行编辑。

找到“访问”下拉菜单(可能需要滚动),然后选择“超级用户”。然后,保存并关闭。

现在我们准备好创建一个新的菜单模块了。点击工具栏中的“新建”。

在“选择模块类型”屏幕上,选择“管理员菜单”。

为菜单模块命名。

在“要显示的菜单”下拉菜单中,选择我们刚刚创建的菜单。确保将“检查菜单”更改为“否”,否则您的客户将收到一个通知,要求切换到默认菜单。

向下滚动一点,查看访问下拉菜单,并选择我们在第一部分中创建的“客户端”视图访问级别。

由于我们已经筛选了管理员模块到菜单位置,它已经预先填充,但请再次确认。

您的屏幕应该看起来像这样

准备好后,点击保存并关闭。

就是这样!现在是一个用您的测试客户端用户登录私有窗口的好时机。

我的测试客户端现在看到了这个。

哇哦!您可以为客户端添加链接、标题(带有嵌套菜单项)等,使这成为一个完美的、简洁的菜单。

 


创建(并使用!)新的仪表盘页面

仪表板页面是Joomla 4中的全新功能,它们使用了名为com_cpanel的新组件。当您点击默认管理员菜单中的小“窗口”图标时,您看到的就是这些。

据我所知,有7个核心仪表板页面。

  1. 首页仪表板
  2. 内容
  3. 菜单
  4. 组件
  5. 用户
  6. 系统
  7. 帮助

第三方扩展也可以选择与com_cpanel集成并显示他们自己的仪表板。

不一定明显的是,如果您创建自己的管理员菜单,您还可以添加自己的仪表板页面,而无需使用Joomla的默认7个页面……并且不需要任何编码。

这非常有用,因为Joomla的仪表板是按功能或组件组织的;这对于我们作为网站构建者来说是有意义的,因为我们了解Joomla。然而,我们的客户对网站的思维模型不同,这可能是依赖于网站上内容的分类(而不是内容的类型)。

对于我的许多客户来说,尽管新闻文章和网站页面都是“文章”,但他们对它们的看法却不同,因此以相同的方式访问这些文章是不直观的。

为了解决这个假设的场景,让我们为我们的测试网站的新闻部分构建一个仪表板。

点击“菜单”,然后打开我们刚才创建的客户端菜单。

选择“新建”以创建一个新的菜单项。

填写菜单标题。(我用了“新闻”。)

选择菜单项类型:滚动到“系统链接”,然后选择“菜单标题”。

这将创建一个用于该部分的下拉菜单,并且是显示在“窗口”图标旁边的菜单项。

转到第二个选项卡。如果您愿意,填写一个图标类。

在第二个选项卡中滚动到底部,找到“仪表板”字段。

哇!魔法从这里开始发生。这里的帮助文本如下:如果提供了一个标识符,将为该菜单项创建一个仪表板。

仔细选择标识符——您不希望它与组件相同。它也不能包含任何空格或除下划线或破折号之外的特殊字符。为了安全起见,我在标识符前面加上“client-”。因此,在这种情况下,让我们使用“client-news”。

保存并关闭菜单项。

至少添加一个嵌套菜单项。

这是必要的,否则菜单标题不会显示。在我的例子中,我将在“新闻”类别中“列出所有文章”。确保您选择我们刚刚创建的菜单标题作为“父项”,如下所示

保存并关闭菜单项。

现在,如果我们用我们的测试客户端登录,我们会看到以下内容

太好了!!!我们做到了!

如果您点击仪表板图标,您会看到以下内容

所以,现在我们可以自由地添加模块并制作我们自己的自定义仪表板,对吧?

嗯……还不完全是这样。如果您仔细看顶部标题,它仍然显示主页图标和“主页仪表板”。

这并不是什么大问题,但如果我们这样做,就让我们把它做好。

回到您的超级用户账户,点击“系统”,然后“语言覆盖”。

在“选择语言和客户端”下拉菜单中,选择“[所需语言] - 管理员”。

在我的例子中,我正在创建一个英语仪表板,所以我将选择“英语(英国)- 管理员”。请记住,您需要为想要提供自定义仪表板的每种语言都这样做。

点击“新建”以创建一个新的语言覆盖。

图标和标题是分开提供的。

要定义一个图标,你的语言常量是

COM_[IDENTIFIER]_DASHBOARD_ICON 

[IDENTIFIER] 替换为我们上面创建的标识符。在这个例子中,我使用的是语言常量 COM_CLIENT-NEWS_DASHBOARD_ICON

在“文本”中,输入你想要使用的图标的 Font Awesome 类。我想使用同一个报纸图标,所以我使用 far fa-newspaper。保存并关闭。

要定义标题,你的语言常量是

COM_CPANEL_DASHBOARD_[IDENTIFIER]_TITLE

像上面一样,将 [IDENTIFIER] 替换为我们创建的标识符。因此,我的语言常量是 COM_CPANEL_DASHBOARD_CLIENT-NEWS_TITLE

在“文本”中,输入你想要使用的标题。我使用“管理新闻文章”。保存并关闭。

一旦添加了这两个,你应该会看到类似这样的内容

让我们转到我们的测试客户账户,看看现在出现了什么...

太棒了!我们做到了!

现在让我们向新仪表板添加一些模块。

想从测试客户账户中这样做,因为你想创建客户无法意外编辑的模块。所以让我们切换回我们的超级用户账户。

在菜单中点击“内容”,然后选择“管理员模块”旁边的加号图标以添加新模块。

选择模块类型。在这个例子中,我创建了一个自定义 HTML 模块。

根据需要配置模块。确保它的位置是 cpanel-[identifier]

您需要手动输入位置,然后按“回车”键添加它。在这个例子中,位置是 cpanel-client-news

保存模块。不要保存并关闭。

保存后,转到“权限”选项卡,然后点击“客户”。

您要确保他们不能编辑或取消发布模块。(如果他们有权编辑前端模块,他们也将有权编辑后端模块。)

保存并关闭。

让我们回到我们的测试客户登录页面,看看现在出现了什么...

太美了!!

您可以重复上述步骤以添加其他任何模块到这个仪表板,添加更多仪表板,并按照客户的需求自定义管理体验。

您打算如何利用自定义管理菜单和仪表板?请在下面的评论中告诉我!


本文的德语翻译:https://www.jug-zueri.ch/artikel/joomla-administration-fuer-kunden-teil-2

在 Joomla 社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不符合 Joomla 项目官方立场。

2
二月号
2022年8月,Joomla 4.2 将带来什么?
 

评论 11

已经注册? 在此登录
Anna Robinson于2022年2月22日星期二 16:42
我喜欢这个!

这太棒了,Crystal! ?? 我只有一个问题。

由于在第一部分中我们将“客户”用户组添加到“特殊”视图访问级别中,我们现在只为超级用户(步骤5)提供对“默认管理员菜单”模块的视图访问权限。这是为了隐藏它,不让客户看到。

那么,如果我的客户是一个大型组织,他们的某些用户应该是例如经理(但不是超级用户),那么经理将无法查看“默认管理员菜单”。

你将如何解决这个问题?

1
这太棒了,Crystal! ?? 我只有一个问题。由于在第一部分中我们将“客户”用户组添加到“特殊”视图访问级别中,我们现在只为超级用户(步骤5)提供对“默认管理员菜单”模块的视图访问权限。这是为了隐藏它,不让客户看到。现在,如果我的客户是一个大型组织,他们的某些用户应该是例如经理(但不是超级用户),那么经理将无法查看“默认管理员菜单”。你将如何解决这个问题?
Crystal Dionysopoulos于2022年2月23日星期三 05:37
多个视图访问级别

好问题!!在这些情况下,我会创建一个“父”客户用户组,它要么没有权限,要么非常基本(登录到管理员)。

然后,根据客户的需求创建不同的用户组。例如

  • 客户
  • [list]
  • 博客作者
  • 内容审阅者
  • 完全管理员

[/list]

我还创建了相关的视图访问级别 - 一个低级别的“客户”默认级别,然后为每个用户组创建一个。

根据需求,甚至可以为每个用户组制作不同的仪表板和管理菜单…… 许多可能性!

这有帮助吗?

1
好问题!!在这些情况下,我会创建一个“父”客户用户组,它要么没有权限,要么非常基本(登录到管理员)。然后,根据客户的需求创建不同的用户组。例如:[list] [*] 客户 [list] [*] 博客作者 [*] 内容审阅者 [*] 完全管理员 [/list] [/list] 我还创建了相关的视图访问级别 - 一个低级别的“客户”默认级别,然后为每个用户组创建一个。根据需求,甚至可以为每个用户组制作不同的仪表板和管理菜单…… ;) 许多可能性!这有帮助吗?
Crystal Dionysopoulos于2022年2月23日星期三 05:37
多个视图访问级别

哎呀,子列表格式得不好,但你应该明白了。

1
哎呀,子列表格式得不好,但你应该明白了。
Anna Robinson于2022年2月23日星期三 10:31
谢谢!你对此替代方案有什么看法?

谢谢 ?? 我认为我有点明白了。目前,我尝试了一个替代方案来简化自己的操作,但不确定是否遗漏了某些东西(可能会使其变得不好)。

用户:查看访问级别
➡️ 我创建了一个新的查看访问级别:“除客户外的特殊”
具有查看权限的用户组:作者、管理员、超级用户。
➡️ 我也保留了查看权限级别:“特殊”
具有查看权限的用户组:作者、客户、管理员、超级用户。

模块(管理员)
管理员菜单模块(默认模块)
设置为“特殊(除客户外)”

现在管理员可以查看他们的“默认管理员菜单”,但客户只能查看他们的“控制面板”。

Crystal,你看到这个解决方案有任何缺点吗?

1
谢谢 ?? 是的,我觉得我大概明白了。目前我尝试了一个替代方案来简化,但不确定我是否遗漏了某些东西(这可能让它变得不好)。[b]用户:查看权限级别[/b] ➡️ 我创建了一个新的查看权限级别:“特殊(除客户外)” 具有查看权限的用户组:作者、管理员、超级用户。 ➡️ 我还保留了查看权限级别:“特殊” 具有查看权限的用户组:作者、客户、管理员、超级用户。 [b]模块(管理员)[/b] 管理员菜单模块(默认模块) 设置为“特殊(除客户外)” 现在管理员可以查看他们的“默认管理员菜单”,但客户只能查看他们的“控制面板”。Crystal,你看到这个解决方案有任何缺点吗?
Crystal Dionysopoulos 在 2022年2月24日星期四 12:20
每个网站都是不同的 :)

我没有看到任何缺点!重要的是它对你和你的客户都适用。如果你发现某些原因它不起作用,你总是可以稍后进行调整。 我喜欢将事物完全细化,因为每个客户对查看权限级别等有不同的需求,我会在几个网站之间忘记谁可以看到什么。但再次强调,这是关于对你最有用的事情!

1
我没有看到任何缺点!重要的是它对你和你的客户都适用。如果你发现某些原因它不起作用,你总是可以稍后进行调整。 :) 我喜欢将事物完全细化,因为每个客户对查看权限级别等有不同的需求,我会在几个网站之间忘记谁可以看到什么。但再次强调,这是关于对你最有用的事情!
Anna Robinson 在 2022年2月24日星期四 14:39
如果我让它太复杂,我可能会醒来后不明白我做了什么?

是的,我想完全细化是详细控制的最好方法。但我很高兴我现在至少可以使用我的不那么细化的解决方案。我担心如果我让它太复杂,我明天醒来后可能不明白我做了什么?这可能是老年人的事情?

无论如何,你的两篇文章让我学到了很多,也让我开始比以前更好地理解Joomla ACL。非常感谢你分享这些Crystal ?????

0
是的,我想完全细化是详细控制的最好方法。但我很高兴我现在至少可以使用我的不那么细化的解决方案。我担心如果我让它太复杂,我明天醒来后可能不明白我做了什么?这可能是老年人的事情?无论如何,你的两篇文章让我学到了很多,也让我开始比以前更好地理解Joomla ACL。非常感谢你分享这些Crystal ?????
Dave Bishop 在 2022年4月25日星期一 16:21
从仪表板移除添加模块

你好,这真是一个很好的信息。然而,我还要删除将模块添加到仪表板的功能。它只是显示一个权限错误。

我已经在插件和模块中搜索过这个问题,但看不到如何将其改为仅限超级用户。

谢谢

0
您好,这是一个非常好的信息。但是,我也想从仪表板上删除添加模块的选项。无论如何,它都会显示一个权限错误。我在插件和模块中搜索了这个选项,但无法看到将其仅限于超级用户的选项。谢谢
Crystal Dionysopoulos 在 2022年4月26日星期二 14:39
有两种方法可以限制添加模块...

嗨Dave,

谢谢您的评论!

根据您的需求,有两种方法可以实现这一点。

您的客户是否需要在前端添加模块?

如果不是,您可以编辑模块的权限,拒绝相关用户组创建模块。

但是,如果您的客户确实需要在前端添加模块,这将不起作用,因为Joomla不会区分前端和后端模块的权限。

在这种情况下,解决方案要复杂一些——您需要为后端Atum模板执行模板覆盖。


  1. 在Joomla后端,转到系统 > 模板 > 管理员模板。
  2. 点击“Atum详细信息和解压文件”。
  3. 转到“创建覆盖”选项卡。
  4. 在“组件”列表中,点击“com_cpanel”文件夹,然后点击“cpanel”。您应该会看到一个消息,表示“在/administrator/templates/atum/html/com_cpanel/cpanel 中创建覆盖”。
  5. 在“编辑”选项卡中,点击文件夹 html > com_cpanel > cpanel > default.php
  6. 在编辑器中向下滚动,直到您看到行“authorise('core.create', 'com_modules')) : ?>”
  7. 将此行替换为:authorise('core.manage', 'com_modules') && in_array(8,$user->groups)) : ?>
  8. 保存 & 关闭。


原始行检查登录用户是否有管理模块的权限。更新后的行检查这一点,并且还检查用户是否是超级用户,并且只为超级用户显示“添加模块”框。(您可能需要检查您网站上超级用户组的ID;在我的网站上它是8。我不确定它是否在各个网站之间不同。)

请告知进展情况!

1
嗨Dave,谢谢您的评论!根据您的需求,有两种方法可以实现这一点。您的客户是否需要在前端添加模块?如果不是,您可以编辑模块的权限,拒绝相关用户组创建模块。但是,如果您的客户确实需要在前端添加模块,这将不起作用,因为Joomla不会区分前端和后端模块的权限。在这种情况下,解决方案要复杂一些——您需要为后端Atum模板执行模板覆盖。[list=1.] [*] 在Joomla后端,转到系统 > 模板 > 管理员模板。 [*] 点击“Atum详细信息和解压文件”。 [*] 转到“创建覆盖”选项卡。 [*] 在“组件”列表中,点击“com_cpanel”文件夹,然后点击“cpanel”。您应该会看到一个消息,表示“在/administrator/templates/atum/html/com_cpanel/cpanel 中创建覆盖”。 [*] 在“编辑”选项卡中,点击文件夹 html > com_cpanel > cpanel > default.php [*] 在编辑器中向下滚动,直到您看到行“authorise('core.create', 'com_modules')) : ?>” [*] 将此行替换为:authorise('core.manage', 'com_modules') && in_array(8,$user->groups)) : ?> [*] 保存 & 关闭。 [/list] 原始行检查登录用户是否有管理模块的权限。更新后的行检查这一点,并且还检查用户是否是超级用户,并且只为超级用户显示“添加模块”框。(您可能需要检查您网站上超级用户组的ID;在我的网站上它是8。我不确定它是否在各个网站之间不同。)请告知进展情况!
Dave Bishop 在 2022年4月26日星期二 15:14
出色的解决方案

您好,这就是问题所在。这个实例是一个需要很少访问权限的用户,他们不需要任何模块访问权限。所以更改该组的权限就像变魔术一样有效。

谢谢!

干杯

1
你好,那是票务。这个实例是一个只需要非常少访问权限的用户,他们不需要任何模块访问权限。因此,更改该组的权限效果非常好。谢谢!干杯
Crystal Dionysopoulos 2022年4月27日星期三 07:55
不客气!

很高兴帮忙!

0
很高兴帮忙!
kromoadv 2022年12月5日星期一 11:13
隐私菜单项

嗨,这个工作流程似乎不适用于隐私工具套件。我无法在我的客户端访问的后端创建隐私请求和同意的菜单项。
此外,在全局配置 > 隐私中也没有权限选项卡。
谢谢。

0
嗨,这个工作流程似乎不适用于隐私工具套件。我无法在我的客户端访问的后端创建隐私请求和同意的菜单项。此外,在全局配置 > 隐私中也没有权限选项卡。谢谢。

通过接受,您将访问由 https://magazine.joomla.net.cn/ 外部第三方提供的服务