andheiberg/theme

此包的最新版本(4.0.1)没有可用的许可证信息。

基于blade语法的模块化主题系统。

4.0.1 2018-01-02 21:12 UTC

README

### 创建了一个简单模块化方法来创建与Blade兼容的主题。概念是将您的主题拆分为可重用和易于更改的模块。这些模块存储在resources/views/vendor/theme中的简单视图文件中。一个典型的模块示例可能是一个英雄单元。您将存储您的英雄模型如下

+@form(['route' => 'auth.register'])
	+@formText('username', 'What do you want to be called?')->placeholder('darthvader')
	
	+@formPassword('password') // if you don't provide a label it will capitalize the key
	
	+@formHidden('awesomeness', 11)

	+@formSelect('gender', 'Your gender', ['Male', 'Female'])->required()

	+@formDate('born_at', 'Birthdate')
-@form

它特别适合表单。默认情况下,它将填充旧值并显示验证消息。它将典型表单的视图代码减少10倍以上。

它可以用于任何事情。模块易于定义。

// resources/views/vendor/theme/hero.blade.php
<div class="hero row {{ $class }}">
	<div class="column">

<!-- Content -->

	</div>
</div>

然后可以从视图中使用此模块,如下所示

+@hero()
	<h1>It might be yet another twitter client, but this one is really nice</h1>
	<p>Seriously I mean it I wouldn't want to disapoint you, but it's amazing.</p>
-@hero

如你所见,HTML注释 <!-- Content --> 将模块的开始和结束分开。如果您选择省略此注释,您可以创建一个模块如下

// app/views/theme/button.blade.php
<a class="button {{ $class }}" href="{{ $link }}">{{ $text }}</a>

然后这样使用它(不带结束标签)

+@button('url', 'text')

多词模块也是如此

// app/views/theme/page-header.blade.php
<div class="page-header {{ $class }}">
<!-- Content -->
</div>

然后这样调用

+@pageHeader()
	<h1>Some header</h1>
-@pageHeader

为什么这很有用?

  • 轻松更改网站上的标记(如果您开始使用Bootstrap或Foundation进行原型设计,然后想稍后使用自己的标记,这非常有用)
  • 比像Former这样的东西更容易修改和理解
  • 更容易阅读(你见过像 <!-- end of hero --> 这样的注释吗?现在模块的结束以 -@ 为前缀,所以不再需要了)

安装

将以下内容添加到您的composer.json中

"andheiberg/theme": "4.0.*" // "1.0.*" for Laravel 4.1 support, "2.0.*" for Laravel 4.2 support, "3.1.*" for Laravel 5 and 5.1 support

将Theme的服务提供程序添加到您的Laravel应用程序中config/app.php。将以下内容添加到提供程序中

Andheiberg\Theme\ThemeServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,

并将以下内容添加到别名中

'Form' => Collective\Html\FormFacade::class,

如果您想使用默认之外的主题,您必须发布设置并更改主题设置

php artisan vendor:publish --provider="Andheiberg\Theme\ThemeServiceProvider"