Как я могу легко переопределить расширение страницы SEO Sulu CMS в Symfony? - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу переопределить SeoStructureExtension своей собственной реализацией, которая будет поддерживать теги OpenGraph (OG).

Какой самый простой способ переопределить его и добавить дополнительные входы?

1 Ответ

2 голосов
/ 13 февраля 2020

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

...