1

我想用我自己的实现覆盖SeoStructureExtension,它将支持 OpenGraph (OG) 标签。

覆盖它并添加额外输入的最简单方法是什么?

4

1 回答 1

2

恐怕SeoStructureExtension不能很容易地实现覆盖文件......它保存的字段是硬编码的。因此,您必须做的第一件事是覆盖sulu_page.extension.seo引用此类的服务。我想说实现这一目标的最佳选择是装饰这项服务

您必须扩展的另一部分是描述表单的XML 文件page_seo。幸运的是,这部分更容易一些。您的 Sulu 安装应该已经带有一个config/forms文件夹,您可以在其中放置一个类似于原始page_seo表单的文件。给它同样的键page_seo(如果你想添加一个新的文本字段,这个文件看起来像这样:

<?xml version="1.0" ?>
<form xmlns="http://schemas.sulu.io/template/template"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://schemas.sulu.io/template/template http://schemas.sulu.io/template/form-1.0.xsd"
>
    <key>page_seo</key>

    <properties>
        <property name="ext/seo/ogTitle" type="text_line">
            <meta>
                <title lang="en">OG Title</title>
            </meta>
        </property>
    </properties>
</form>

注意ext/seo/前面的前缀ogTitle,这是信息传递给SeoStructureExtension.

我也认为将这些字段添加到 Sulu 的核心中可能是有意义的。如果您创建一个问题,解释您究竟需要哪些字段等,我会很高兴。然后我们可以讨论我们是否也在核心中实现它,这样您就不必在未来的版本中手动添加它。

于 2020-02-13T07:38:37.987 回答