2013-05-16 76 views
3

我開始在laravel 4中開發我的碩士論文,現在需要一個用於管理主題的包。例如,該應用程序將具有3個主題:管理員,主題1和主題2。Laravel用於管理佈局的主題

你有什麼建議嗎?

一些功能,將是有趣的,有包:

  • 管理風格和腳本(加上資產)
  • 縮小資產
  • 編譯lesscss(可選)

回答

4

聲音的就像你需要把手放在Cartalyst Themes包裝上一樣。據我所知,把你所有的盒子都撿起來。

如果你不熱衷於支付訂閱費用,那麼你可能需要考慮自己。在那裏有一些資產管理軟件包(AsseticBassetJeffrey Way's Laravel Guard)可以幫助您在這方面開始工作。至於實際交換主題部分,您需要在那裏自行實施某些內容。

2

這是我在管理主題laravel DIY的方式,我在過去的應用這幾個我的項目,然而,這是不是一個自動的方式,其他的答案優惠。

我發現前端的人非常有創意,所以我儘量讓他們儘可能地孤立,以便他們在做出貢獻之前不必知道後端的東西太多。因此,我創建了一個名爲themes的文件夾。

public 
    themes 
     default 
      assets 
      views 
       layouts 
       mockups 
       pages 
       partials 

什麼是默認的主題文件夾裏面實在是任意的,只要你能保持你的主題文件管理。

然後我會依賴第三方工具,例如。 CodeKit等做css js編譯工作。所以這不再是真正的Laravel特定主題。

要添加另一個主題,只需在主題文件夾下添加另一個文件夾即可。爲了獲得上述工作,您仍然需要自己整理主題加載器,因爲我們已經轉移到自定義主題位置。我將使用

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

我上面做的方式被稱爲「創建主題引擎」或「創建一個基本主題」之前把下面的控制器

/** 
* 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); 
} 

,並調用默認的主題(例如在Drupal中)。

1

如果您已經切換到Laravel 5,你可以嘗試使用的功能,如我的包:

  • 查看在主題文件夾&資產分離 -
  • 主題的傳承:擴展任何主題,創造主題hierarcies

在這裏嘗試:igaster/laravel-theme