Laravel主题用于管理布局

时间:2013-05-16 00:29:08

标签: php laravel laravel-4

我开始在laravel 4中开发硕士论文,现在需要一个用于管理主题的包。该应用程序将具有3个主题:admin,Theme1和Theme2。

你建议吗?

使用该软件包会感兴趣的一些功能:

  • 管理风格和脚本(添加资产)
  • 缩小资产
  • 编译lesscss(可选)

4 个答案:

答案 0 :(得分:4)

听起来你需要抓住Cartalyst Themes包裹。据我所知,挑选你所有的盒子。

如果您不热衷于支付订阅费用,那么您可能需要查看自己的订阅。有很多资产管理软件包(AsseticBassetJeffrey Way's Laravel Guard)可以帮助您开始这方面的工作。至于实际交换主题部分,你需要自己实现一些东西。

答案 1 :(得分:3)

我写了一个包名“主题”。

https://github.com/teepluss/laravel4-theme

答案 2 :(得分:2)

这是我在laravel中管理主题的DIY方式,我过去曾将它应用于我的几个项目,但这不是其他答案提供的自动方式。

我发现前端人员非常有创意,所以我尽量让他们保持孤立,这样他们就不需要知道太多后端的东西才能做出贡献。因此,我在public下创建了一个名为themes的文件夹。

public
    themes
        default
            assets
            views
                layouts
                mockups
                pages
                partials

默认主题文件夹中的内容实际上是任意的,只要您可以保持主题文件的可管理性。

然后我会依赖第三方工具,例如。 CodeKit等做css js编译工作。所以这不再是Laravel特定主题。

要添加其他主题,只需在themes文件夹下添加另一个文件夹即可。为了完成上述工作,您仍需要自己整理主题加载器,因为我们已移至自定义主题位置。我将把以下内容放在控制器中

/**
 * Register a theme path relative to public
 *
 * @param string $name Theme name
 * @param string $path Theme path
 * @param string $asset_name Asset name of the theme, {$asset_name}_path will be registered at the template
 * @param string $asset_path Asset path of the theme, {$asset_name}_path will point to $asset_path
 */
protected function registerPublicPath($name, $path, $asset_name = '', $asset_path = '') {
    if (empty($asset_name)) {
        $asset_name = $name;
    }
    if (empty($asset_path)) {
        $asset_path = $path;
    }

    $path = public_path() . $path;
    View::addLocation($path);
    View::addNamespace($name, $path);
    View::share($asset_name . '_path', url('/') . $asset_path);
}

并在使用前调用默认主题

    // Define a theme namespace folder under public
    $this->registerPublicPath(
        'default', '/themes/default/views',
        'asset', '/themes/default/assets'
    );

我上面的方式被称为“创建主题引擎”或“创建基本主题”(例如在Drupal中)。

答案 3 :(得分:2)

如果您已切换到Laravel 5,可以尝试使用以下功能的包:

  • 观点&主题文件夹中的资产分离
  • 主题继承:扩展任何主题并创建主题hierarcies

在此处试试:igaster/laravel-theme