如何使用Laravel制作自定义主题以及在何处存储主题数据?

时间:2017-03-05 08:58:30

标签: php database wordpress laravel themes

我正在构建一个完整的网站使用Laravel并且这个问题正面临着我,我想让用户完全控制网站外观以及在没有我帮助的情况下更改网站布局的能力。 < / p>

但是当我正在考虑通过数据库进行操作时,每次用户更改布局样式时,将会在颜色和部分旁边添加几个列,其中将添加数十列

有没有其他方法可以将主题选项存储在XML文件或数据库以外的任何内容中?

**注意:当我检查Wordpress的数据库时,我没有找到任何关于主题的东西,那么Wordpress存储主题选项呢?

1 个答案:

答案 0 :(得分:1)

对于类似XML的存储,您可以使用Laravel Config。假设您有文件config/templates.php。在里面你可以有很多东西。

return [
    'default_template' => 'layouts.templates.default',
    'posts' => 'layouts.templates.post',
    'footer' => 'layouts.includes.footer',

    'options' => [
        'full_with' => false,
        'has_footer' => true,
        'background_color' => '#fff',
        'more_keys' => 'key_value'
    ]
];

然后,您的应用中的任何位置都可以获得默认模板,例如

$view = config('templates.default_template'); //will get
return view($view, compact('params'));

要更新密钥,例如has_footer,您可以

config(['templates.options.has_footer' => false]); //will update

这应该让你开始我想

简单示例

假设用户更改默认颜色并输入并提交表单。你做了

public function updateTheme(Request $request) {
    if ( $request->has('background_colour') && $request->background_colour != '' ) {
        config(['templates.options.background_colour' => $request->background_colour]);       
    }
}