alanmburr/pagetitle

在 Laravel 视图中管理页面标题

v3.1 2024-03-31 14:09 UTC

This package is auto-updated.

Last update: 2024-10-01 00:09:21 UTC


README

Build Status Latest Stable Version Scrutinizer Code Quality License

通常,你会遇到这样的情况,你想有更多的控制来设置不同视图的页面标题。虽然可以在主视图中呈现页面标题,但处理像分隔符使用或附加/前缀默认页面标题这样的格式可能会很麻烦。

此包简化了此过程。

安装

首先通过 Composer 安装此包

composer require rephlux/pagetitle

Laravel 用户

如果您是 Laravel 用户,则需要在您的 config/app.php 文件中添加一个服务提供者。

'providers' => [
    '...',
    Rephlux\PageTitle\PageTitleServiceProvider::class
];

此包还提供了一个外观,如果您想在控制器和视图中使用外观,也可以在 config/app.php 中注册它

 'aliases' => [
     '...'
     'PageTitle' => Rephlux\PageTitle\Facades\PageTitle::class,
 ]

在 Laravel 5.5 中,服务提供者和别名会自动注册。如果您正在使用 Laravel 5.5,则可以跳过这些步骤。

版本 2.0

如果您仍然使用 PHP 7.0 或 5.6,则需要使用此包的版本 1.0。版本 2.0 及以上仅兼容 PHP 7.1 或更高版本。

此包的版本 2.0 也兼容 Laravel 5.5 及更高版本。

用法

要简单添加单个页面标题,请调用适当的 add() 方法,并传递一个字符串作为参数

public function index()
{
    \PageTitle::add('Welcome to our Homepage');

    return view('hello');
}

您还可以使用全局的 pagetitle 辅助函数。

public function index()
{
    pagetitle('Welcome to our Homepage');

    return view('hello');
}

要一次性添加多个页面标题部分,只需传递一个数组作为参数。

public function index()
{
    pagetitle([
        'About us',
        'Profile'
    ]);

    return view('hello');
}

将 pagetitle 添加到 blade 视图

现在您可以在视图中显示完整连接的页面标题。最好的方法是将其用于主布局文件。

<head>
    <meta charset="UTF-8">
    <title>{{ pagetitle()->get() }}</title>
    ...
</head>

要按相反顺序显示完整连接的页面标题,请传递 reverse 参数。

<head>
    <meta charset="UTF-8">
    <title>{{ pagetitle()->get('reverse') }}</title>
    ...
</head>

downward 模式下,首先按相反顺序连接所有页面标题部分,然后附加页面名称(如果已设置在选项中

<head>
    <meta charset="UTF-8">
    <title>{{ pagetitle()->get('downward') }}</title>
    ...
</head>

默认值

如果您使用 Laravel,有三个配置选项您需要考虑。首先,使用以下命令发布默认配置

php artisan vendor:publish --provider="Rephlux\PageTitle\PageTitleServiceProvider"

这将在: config/pagetitle.php 中添加一个新的配置文件。

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Page name
    |--------------------------------------------------------------------------
    |
    | Type your page name for your website.
    | This will be used when there are more titles to concatenate with.
    |
    */
    'page_name' => '',

    /*
    |--------------------------------------------------------------------------
    | Default title when empty
    |--------------------------------------------------------------------------
    |
    | This will be used when therer is no other title.
    | Mainly used for the home page of your website.
    |
    */
    'default_title_when_empty' => '',

    /*
    |--------------------------------------------------------------------------
    | Delimiter
    |--------------------------------------------------------------------------
    |
    | Titles will be concatenated using this delimiter.
    |
    */
    'delimiter' => ' :: ',
];

page_name

如果您想,可以将页面名称输入到此键,以将名称附加到/前缀到连接的页面标题。

default_title_when_empty

如果集合中没有页面标题部分,将使用此文本。

delimiter

当您想使用分隔符时,只需更新此键并添加您想用作分隔符的字符串。

更改配置值

可以通过页面标题对象实例的相应设置方法更改每个配置参数

  • setDelimeter(delimeter)
  • setPageName(pageName)
  • setDefault(default)

示例用法

public function index()
{
    pagetitle('My Blog Post')->setPageName('My Blog')->setDelimeter(' / ');

    return view('hello');
}

要获取当前配置值,请使用页面标题对象实例上的相应获取方法

  • getDelimeter()
  • getPageName()
  • getDefault()

许可证

查看此存储库的许可证