【发布时间】:2017-01-23 08:39:12
【问题描述】:
我制作了一个有 1 个设计的网站。可能有不同角色的用户。接下来是角色:
- 普通用户
- 公司管理员
- 工人
- ...
网站上的每个用户都有他的公司(在数据库中的整数字段中),我想让每个使用role - admin of company 的用户都可以更改他公司的网站设计(用于正文、页眉、页脚等的起始颜色)。 )。例如company 1 有黄色设计,company 2 红色等。到目前为止,我已经想出了这样的想法:
在表公司中,为其他列(body_color-string、footer_color-string 等)扩展表架构,并将每个公司的值写入数据库。
用户成功登录后,这些值会在会话中从数据库中加载,并且在我的app.blade.php 中,会用会话部分覆盖 css 部分。
例如,如果我有 div
<div class="test123">Something</div>
我会在 app.blade.php 中覆盖该值,如果未设置会话,则应用默认颜色 white。
<style>
.test123 {
background-color:{{ Session::get('body_color',"white") }}}
</style>
这行得通,但有点乱,所以我会在以后寻求一些建议或改进(当我可能有一些元素的高度、宽度等时)......
我这样做是否正确,或者这可以更容易地完成?
【问题讨论】:
-
只是一个想法。如果您的模板从基本布局模板继承。您可以创建自定义基本模板,然后根据用户的偏好在每个模板之间进行更改。这样你就可以避免存储类和类似的东西并在 css 标签上使用 ifs。
-
通过制作模板,我限制公司管理员在 n 个创建的模板之间更改设计。有了颜色,他就有更多的空间来定制设计。
-
是的。也许您可以使用@M.Max 告诉您的解决方案,将所有 CSS 存储在一个字段中,然后将其放在样式标签之间。根据用户的角色存储它,然后使用相同的逻辑检索它。
-
如果用户对 CSS 不太了解,你可以预定义一些类,然后使用 ColorPicker 之类的 jquery 插件来存储用户喜欢的颜色,这样他们只选择颜色,而不要'不要乱用 CSS。
标签: php css laravel laravel-5.1