我想用我自己的实现覆盖SeoStructureExtension,它将支持 OpenGraph (OG) 标签。
覆盖它并添加额外输入的最简单方法是什么?
恐怕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 的核心中可能是有意义的。如果您创建一个问题,解释您究竟需要哪些字段等,我会很高兴。然后我们可以讨论我们是否也在核心中实现它,这样您就不必在未来的版本中手动添加它。