Боюсь сказать, что переопределение файла 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
.
Я также думаю, что эти поля могут иметь смысл добавить в ядро Сулу. Я был бы рад, если бы вы создали проблему , объяснив, какие именно поля вам нужны и т.д. c. Затем мы можем обсудить, реализуем ли мы это также и в ядре, чтобы вам не приходилось добавлять это вручную в будущих версиях.