我如何才能在 October CMS 上仅在组件 Class 或插件上创建中间件?
How i can create Middleware on October CMS only on Component Class or Plugin?
我在 10 月的信息上阅读了 doku 并搜索了有关中间件的信息,但没有找到我可以提供的帮助。
我的问题:
我创建了插件并使用 RainLab 用户插件进行内容的前端编辑。
前端内容在章节、组和文章中溢出。
单一用户成为不同的访问权限:隐藏、显示、编辑等部分和文章。
该站点使用一个插件来动态加载内容。
如何通过访问配置为单个用户加载内容?
我的解决方案:
我在后端添加了一些功能来为用户提供访问权限。
rainlab user content access
所有访问配置已保存并有效。
我的想法是创建中间件来加载内容,但我找不到任何可以帮助我的东西。
Docu 告诉我您可以创建中间件,但中间件始终加载在前端、后端和网站上的所有页面上。这不是好的解决方案。
https://octobercms.com/docs/backend/controllers-ajax#controller-middleware
此外,如果我在中间件上进行调试,那么 rainlab 用户功能无法正常工作,没有关于 url 请求的信息。
当您必须自己加载和创建所有 classes 和函数时,为什么要添加中间件??
我只需要用于前端和插件或组件的中间件。
我希望有人能帮我找到另一个解决方案或想法来修复它。
我认为除了在 onRun 函数的各个组件中实现内容访问之外别无他法。 :( 这个解决方案的问题是:return 重定向在 class 或函数之外不起作用(仅在 onRun 上)
您的方法存在问题,正如您所希望的那样 middleware
并且您还想确保它 运行 用于特定的插件和组件。 middleware
基于 request
工作,请求可能有关于 URL 等的信息,但没有关于插件和组件等的信息,因此它无法确定何时根据插件等 运行。 .`
So you may use Different approach. and it will work with Frontend
also with ajax requests
.
您可以在您的插件中创建 component
,如果用户已登录,它将 assessment
所有已登录用户的 access
。如果用户未登录,您可以提供不同 assessment access
.
现在您需要将此组件添加到使用 this layout
的 layout
和 now all pages
从一开始就有这个 access information
。
现在这个组件inject access information to page
,所以你的页面和插件的组件可以随时获得这些信息。现在,从 onRun
中的组件,您可以在最顶部处理重定向。
组件不是定义访问权限,它只是将数据库中的预定义访问信息注入到页面
组件将专门为页面注入访问信息。并且该组件将在布局上如此。它会自动触发该布局页面。所以它会首先执行,然后你可以决定如何使用它。您还可以基于此呈现条件组件。因为您也可以在标记部分获得访问信息,所以
如果您有任何疑问或问题,请发表评论。
我在 10 月的信息上阅读了 doku 并搜索了有关中间件的信息,但没有找到我可以提供的帮助。
我的问题: 我创建了插件并使用 RainLab 用户插件进行内容的前端编辑。 前端内容在章节、组和文章中溢出。 单一用户成为不同的访问权限:隐藏、显示、编辑等部分和文章。 该站点使用一个插件来动态加载内容。
如何通过访问配置为单个用户加载内容?
我的解决方案:
我在后端添加了一些功能来为用户提供访问权限。 rainlab user content access
所有访问配置已保存并有效。 我的想法是创建中间件来加载内容,但我找不到任何可以帮助我的东西。
Docu 告诉我您可以创建中间件,但中间件始终加载在前端、后端和网站上的所有页面上。这不是好的解决方案。 https://octobercms.com/docs/backend/controllers-ajax#controller-middleware
此外,如果我在中间件上进行调试,那么 rainlab 用户功能无法正常工作,没有关于 url 请求的信息。
当您必须自己加载和创建所有 classes 和函数时,为什么要添加中间件??
我只需要用于前端和插件或组件的中间件。 我希望有人能帮我找到另一个解决方案或想法来修复它。
我认为除了在 onRun 函数的各个组件中实现内容访问之外别无他法。 :( 这个解决方案的问题是:return 重定向在 class 或函数之外不起作用(仅在 onRun 上)
您的方法存在问题,正如您所希望的那样 middleware
并且您还想确保它 运行 用于特定的插件和组件。 middleware
基于 request
工作,请求可能有关于 URL 等的信息,但没有关于插件和组件等的信息,因此它无法确定何时根据插件等 运行。 .`
So you may use Different approach. and it will work with
Frontend
also withajax requests
.
您可以在您的插件中创建 component
,如果用户已登录,它将 assessment
所有已登录用户的 access
。如果用户未登录,您可以提供不同 assessment access
.
现在您需要将此组件添加到使用 this layout
的 layout
和 now all pages
从一开始就有这个 access information
。
现在这个组件inject access information to page
,所以你的页面和插件的组件可以随时获得这些信息。现在,从 onRun
中的组件,您可以在最顶部处理重定向。
组件不是定义访问权限,它只是将数据库中的预定义访问信息注入到页面
组件将专门为页面注入访问信息。并且该组件将在布局上如此。它会自动触发该布局页面。所以它会首先执行,然后你可以决定如何使用它。您还可以基于此呈现条件组件。因为您也可以在标记部分获得访问信息,所以
如果您有任何疑问或问题,请发表评论。