Почему TinyMCE удаляет мои собственные теги mpdf html? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть приложение vue с symfony бэкэндом. Я использую tinyMCE для редактирования документов, сгенерированных mpdf. В содержимое ветки mpdf я хочу добавить нижний колонтитул на некоторых страницах, а некоторые страницы без нижнего колонтитула, поэтому я добавил тег html, чтобы включить или отключить этот нижний колонтитул. Мои HTML этих пользовательских тегов выглядят следующим образом:

    <pagefooter
            name="NotLastPageFooter"
            content-left=""
            content-center="{PAGENO}/{nbpg}"
            content-right=""
            footer-style="font-size:10px">

    </pagefooter>

    <pagefooter
            name="lastPageFooter"
            content-left=""
            content-center="{PAGENO}/{nbpg}"
            content-right=""
            footer-style="font-size:10px">

    </pagefooter>

    <setpagefooter
            name="lastPageFooter"
            value="off"
    />

    <setpagefooter
            name="NotLastPageFooter"
            value="on"
    />

Всякий раз, когда я редактирую сгенерированный документ с помощью TinyMCE, он удаляет мои html блоки, предоставленные mpdf, и отредактированные документы не имеют нижнего колонтитула страницы. Ниже мой крошечный конфиг MCE:

<editor
    @onKeyUp="onDocumentUpdate(document, index, $event)"
    :value="editor"
    entity_encoding="raw"
    output-format="html"
    :init="{
        allow_conditional_comments: false,
        allow_unsafe_link_target: true,
        convert_fonts_to_spans : false,
        keep_styles: true,
        custom_elements: 'pagefooter,setpagefooter',
        extended_valid_elements :'setpagefooter[name],setpagefooter[value],pagefooter[name],pagefooter[content-center],pagefooter[content-right],pagefooter[footer-style]',
        height: 600,
        menubar: false,
        plugins: [
            'advlist autolink lists link image charmap print preview anchor code',
            'searchreplace visualblocks code fullscreen',
            'insertdatetime media table paste code help wordcount'
        ],
        toolbar:
            'undo redo | formatselect | bold italic backcolor | \
            alignleft aligncenter alignright alignjustify | \
            bullist numlist outdent indent | removeformat | help code',

}"
/>

1 Ответ

1 голос
/ 23 марта 2020

Я подозреваю, что вы не используете extended_valid_elements правильно. Вы не повторяете тег несколько раз в конфигурации. В документации есть рабочие примеры:

https://www.tiny.cloud/docs/configure/content-filtering/#extended_valid_elements

Например:

extended_valid_elements : 'img[class|src|border=0|alt|title]'

... или ...

extended_valid_elements :'setpagefooter[name|value],pagefooter[name|content-center|content-right|footer-style]',

Обратите внимание, что вы помещаете все атрибуты в один набор скобок. Вот пример, который работает для вашего примера содержимого:

http://fiddle.tinymce.com/iehaab

...