omz13/kirby3-honehome

此包已弃用且不再维护。未建议替代包。

kirby3 插件用于处理主页重定向

安装: 60

依赖者: 0

建议者: 0

安全: 0

星标: 6

关注者: 2

分支: 1

开放问题: 1

类型:kirby-plugin

1.1.3 2019-04-24 20:37 UTC

This package is auto-updated.

Last update: 2022-12-25 05:25:50 UTC


README

咖啡,啤酒等。

这个插件是为了满足我的一个需求而开发的。我想让一个多语言网站根据客户端的 Accept-Language 标头切换到最佳匹配的语言,而不是默认语言。实现起来比我想的要复杂,有些边缘情况很棘手,但在重构后变得相当优雅。HTML 和 HTTP 中语言格式的细微差异正是使开发更加困难的原因(如果你查看代码,那也是为什么到处都是横线和下划线之间的曲折替换)。同样,utf8 后缀也是一个需要解决的问题。

一点小趣闻。当我开始开发这个插件时,它被称为 HomeHome(因为它使主页变得更好)。然后有一天我犯了一个拼写错误,称其为 HoneHome。但“hone”这个词很棒,因为这个插件真的“打磨”了主页。所以它变成了 HoneHome

这个插件是免费的,但如果你在商业项目中使用它来表示支持,欢迎

文档

用途

对于一个 kirby3 网站,此插件 omz13/honehome 对网站的主页做了神奇的事情。

你会在什么情况下使用这个插件?

  • 你正在运行一个多语言网站,并且你想
    • 主页(默认或替换)自动切换到浏览器 Accept-Language 标头设置的语言。这真的很酷。
    • 页面具有正确的 lang 属性(因为它包含一个辅助函数来完成这项工作)。
  • 你想用不同的页面替换主页(例如,对于一个基于博客的网站,你会将其设置为博客文章的父页面)。

功能规范

  • 在多语言安装中,主页根据客户端的 Accept-Langauge 请求的最佳匹配返回本地化主页。
  • 提供一个页面方法 (honehomeLang) 来设置 HTML 的 lang 属性(这对于多语言安装来说是一件非常好的事情)。
  • 网站的主页可以设置为配置文件(site/content/content.php)或面板内容字段(通过 site/blueprints/site.ymlcontent/site.txt)中指定的页面。

路线图

计划的功能和非绑定实现说明列表如下

  • MVP
  • 仅调试模式中显示调试头
  • 将 stan 升级到 7 级

安装

根据您的认识论模型选择以下选项之一

  • composer require omz13/kirby3-honehome;插件将自动出现在 site/plugins 中。
  • 下载最新版本的 zip 文件 - master.zip - 并将内容复制到您的 site/plugins/kirby3-honehome 中。
  • git submodule add https://github.com/omz13/kirby3-honehome.git site/plugins/kirby3-honehome.

配置

以下机制可以用来修改插件的行为和您的 kirby 网站。

site/snippets/header.php

如果您正在运行多语言系统中的 kirby,为了多语言能够良好工作,您需要页面来指示它们使用哪种语言。此插件包含一个页面方法 - honehomeLang( string $default = 'en' ) : string - 用于返回正确的格式,以便用作 <html> 元素 lang 属性。

TL;DR:更改您的 site/snippets/header.php 以设置打开的 <html>lang 属性

<html lang="<?= $page->honehomeLang('en') ?>">

通过 site/config/config.php

  • omz13.honehome.disable - 可选 - 默认 false - 一个布尔值,如果为 true,则禁用插件(除了 honehomeLang 页面方法。

  • omz13.honehome.homelanding - 可选 - 一个字符串,表示用于主页的页面名称。此设置优先于在 c.f. homelanding 内容字段中指定的设置。

content/site.txt 中的内容字段(通过蓝图 site/blueprints/site.yml

插件使用以下内容字段。这些都是可选的;如果不存在或为空,则假定它们不适用于其指示的功能。

  • homelanding - 文本 - 可选 - 当主页被不同的落地页面替换时使用的页面名称。此设置从属于 config.php 中的 omz13.honehome.homelanding

蓝图

以下是一个示例片段,您可以在 site/blueprints/site.yml 中使用它,以便将主页更改为根目录中的任何可见子项。显然,您会想要更灵活,例如通过筛选模板,但这提供了一个思路。

fields:
  homelanding:
    label:
      en: Home Override
      de: Überschreiben Sie die Homepage mit
      fr: Ignorer la page d'accueil avec
      nl: Negeer Homepage met
      sv: Åsidosätt hemsida med
    type: select
    options: query
    query: site.children.visible
    width: 1/3

使用

  1. 按照上述说明进行安装和配置。

  2. 使用网页浏览器或任何其他方式访问主页。

  3. 如果它正常工作,请参阅上面的 咖啡、啤酒等

  4. 如果它不起作用...提交一个问题。

调试模式

如果 kirby 网站处于调试模式

  • 对主页的页面请求将包含包含调试信息的头部 X-omz13-hh-...。是的,它输出了很多调试信息,但它确实有助于找到我的代码是垃圾的地方。

免责声明

本插件提供“原样”使用,不提供任何保证。请自行承担使用风险,并在生产环境中使用前自行测试。如果您发现任何问题,请创建一个新问题

许可协议

BSD-3-Clause