ubiweb/template-contractor

为网站提供的新模板。包含丰富的灵活组件。

dev-master 2019-07-22 13:11 UTC

This package is not auto-updated.

Last update: 2019-10-08 23:03:56 UTC


README

这是一个基本的 ubiweb 网站。现在它作为 composer 包自动包含在内。

开发设置

  • 设置 PHP 开发环境。建议使用 Valet+Valet
  • 克隆域名框架: git clone https://github.com/ubiweb-media/ubiweb-domain.git domain.com
  • .env.example 重命名为 .envmv .env.example .env
  • 运行 composer install

就这样!当然,你可能需要进一步配置以拥有一个可展示的网站。

设置

  • 首先 选择一个基础模板
  • 使用 composer require ubiweb/{templateName} 在你的项目中要求它
  • 更新你的 config.yml 以指定 Template
  • 创建你的样式表

样式

默认情况下,主样式表将指向 domain.com/assets/main.css,因此你的样式必须在这里编译。在 content/styles/main.scss 下编辑你的样式表以导入模板,如下所示

@import "_variables.scss"; // optional customization
@import "../../vendor/templateName/styles/main.scss";

// Your custom styles.
  • 运行 sass -I ./vendor/npm-asset content/styles/main.scss:assets/main.csssass --watch -I ./vendor/npm-asset content/styles/main.scss:assets/main.css 以监视更改。

如果你在 Mac 上,sass 应该已经安装。

内容

网站的所有内容和配置都位于 ./content

  • config.yml 包含安装配置。对于模板等特殊名称有一些特殊名称,否则你可以在这里定义自己的任意全局变量。
  • pages.yml 包含网站的页面,是你定义路由 URI 的位置。如果这里不存在,请求将抛出 404。你可以通过包含 ./app/routes.php 定义更复杂的 POST 或 DELETE 路由。
  • translations.yml 是你可以提供路由和覆盖模板变量翻译的位置。主要内容通过其内容目录简单地通过 eg) ./content/fr/about.html 进行翻译。
  • en/* 页面内容必须始终位于其语言文件夹中。在配置中指定默认语言将删除 URI 中的语言。这些页面是 blade 模板,可以执行 PHP。

页面

页面使用 blade 模板 语言。这很有用,因为它为我们提供了很多便利,但也可以执行纯 PHP。

每个页面至少应包含一个声明的布局和一些主要内容

@extends "layout/main"

@section('content')
<p>Hello World</p>
@endsection

你可以通过提供一些特殊部分轻松扩展布局的某些部分

@extends "layout/main"

@section('title', 'Page Title')

@section('head')
<!-- Maybe some SEO tags -->
<meta property=”og:type” content=”website” />
@endsection

@section('styles')
<!-- and some extra styles  -->
<link rel="stylesheet" href="/assets/styles/custom.css" />
@endsection

@section('scripts')
<!-- and some extra scripts  -->
<script>
alert("Holy cow, it works!")
</script>
@endsection

@section('content')
<p>Hello World</p>
@endsection

也许你的模板提供了不同的布局,按照如下方式更改它们并利用它们的额外部分

@extends "layout/interior-sidebar"

@section('sidebar')
<p>This layout has a sidebar.</p>
<aside class="widget">
  <h1>Let's put a widget here</h1>
</aside>
@endsection

@section('content')
<p>Hello World</p>
@endsection

扩展功能

有时你可能想做得更多。我们迄今为止概述的是工作网站的基本内容,但你也可以扩展它以做更多。

扩展布局

您可以通过复制 vendor/templateName/layout.html 或任何其他模板文件,并将其放入 ./content/layouts 目录中来覆盖您的模板布局。此目录将覆盖与同一名称相同的任何模板或部分。

创建一个应用

您可以创建一个名为 ./app 的目录,用于在当前框架之上进行开发,并构建您自己的自定义应用程序。已经有一些函数和文件可供您方便使用。例如,您可能需要一个可以发送POST请求并登录某个用户的路由。尝试以下操作:

  • ./app/routes.php 中创建一个POST路由,如下所示 $app->post('login', 'AuthController@login')
  • 创建一个相应的控制器 ./app/controller/AuthController.php,以便接收您的请求。
  • 进行如下操作:
<?php

class AuthController extends Controller {
  public function login()
  {
    setCookie('user', 'A user's authorization cookie');
  }
}