Search code examples
typo3rte

File tab is not showing in the Link Browser of the RTE Editor TYPO3 Backend


I have a project that i migrated from v11 to version 12.

In the Rich Text Editor when you select some text and to link it to a file uploaded of the Link Browser (To add a link to a pdf file).

Now the Tab File in the RTE to upload a file link disappeared, is there some configuration to add the "File" Tab ?

Please take a look at the screenshot to see that the tab for "File" is not there anymore after the upgrade.

enter image description here

I have this configuration in my setup: TsConfig in System Configuration

I have tried to delete the configuration of bootstrap and just use the full preset = full, but still not getting the File link in the link browser.

I also tried to deleted any loaded TsConfig from the Backend.

I also uninstalled the bootstrap_package plugin and the theme plugin that running from the extension manager, no success yet.

I add bootstrap_package tsconfig for the TsConfig code here:

imports:
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml" }
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml" }
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml" }

editor: externalPlugins: bootstrappackage_address: resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Address/plugin.min.js" bootstrappackage_box: resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Box/plugin.min.js" bootstrappackage_columns: resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Columns/plugin.min.js" bootstrappackage_indent: resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Indent/plugin.min.js" bootstrappackage_table: resource: "EXT:bootstrap_package/Resources/Public/CKEditor/Plugins/Table/plugin.min.js"

config:
    contentsCss: "EXT:bootstrap_package/Resources/Public/Css/bootstrap5-rte.min.css"

    stylesSet:
        - { name: "Lead", element: "p", attributes: { 'class': 'lead' } }
        - { name: "Small", element: "small" }

        - { name: "Table", element: "table", attributes: { 'class': 'table' } }
        - { name: "Table Striped", element: "table", attributes: { 'class': 'table table-striped' } }
        - { name: "Table Bordered", element: "table", attributes: { 'class': 'table table-bordered' } }
        - { name: "Table Condensed", element: "table", attributes: { 'class': 'table table-condensed' } }

        - { name: "Row Active", element: "tr", attributes: { 'class': 'table-active' } }
        - { name: "Row Success", element: "tr", attributes: { 'class': 'table-success' } }
        - { name: "Row Info", element: "tr", attributes: { 'class': 'table-info' } }
        - { name: "Row Warning", element: "tr", attributes: { 'class': 'table-warning' } }
        - { name: "Row Danger", element: "tr", attributes: { 'class': 'table-danger' } }

        - { name: "Cell Active", element: "td", attributes: { 'class': 'table-active' } }
        - { name: "Cell Success", element: "td", attributes: { 'class': 'table-success' } }
        - { name: "Cell Info", element: "td", attributes: { 'class': 'table-info' } }
        - { name: "Cell Warning", element: "td", attributes: { 'class': 'table-warning' } }
        - { name: "Cell Danger", element: "td", attributes: { 'class': 'table-danger' } }

        - { name: "Button Default", element: "a", attributes: { 'class': 'btn btn-default' } }
        - { name: "Button Primary", element: "a", attributes: { 'class': 'btn btn-primary' } }
        - { name: "Button Secondary", element: "a", attributes: { 'class': 'btn btn-secondary' } }
        - { name: "Button Tertiary", element: "a", attributes: { 'class': 'btn btn-tertiary' } }
        - { name: "Button Quaternary", element: "a", attributes: { 'class': 'btn btn-quaternary' } }
        - { name: "Button Success", element: "a", attributes: { 'class': 'btn btn-success' } }
        - { name: "Button Info", element: "a", attributes: { 'class': 'btn btn-info' } }
        - { name: "Button Warning", element: "a", attributes: { 'class': 'btn btn-warning' } }
        - { name: "Button Danger", element: "a", attributes: { 'class': 'btn btn-danger' } }

        - { name: "Button Outline Default", element: "a", attributes: { 'class': 'btn btn-outline-default' } }
        - { name: "Button Outline Primary", element: "a", attributes: { 'class': 'btn btn-outline-primary' } }
        - { name: "Button Outline Secondary", element: "a", attributes: { 'class': 'btn btn-outline-secondary' } }
        - { name: "Button Outline Tertiary", element: "a", attributes: { 'class': 'btn btn-outline-tertiary' } }
        - { name: "Button Outline Quaternary", element: "a", attributes: { 'class': 'btn btn-outline-quaternary' } }
        - { name: "Button Outline Success", element: "a", attributes: { 'class': 'btn btn-outline-success' } }
        - { name: "Button Outline Info", element: "a", attributes: { 'class': 'btn btn-outline-info' } }
        - { name: "Button Outline Warning", element: "a", attributes: { 'class': 'btn btn-outline-warning' } }
        - { name: "Button Outline Danger", element: "a", attributes: { 'class': 'btn btn-outline-danger' } }

        - { name: "Link Arrow", element: "a", attributes: { 'class': 'link-arrow' } }
        - { name: "Link Chevron", element: "a", attributes: { 'class': 'link-chevron' } }
        - { name: "Link Page", element: "a", attributes: { 'class': 'link-page' } }
        - { name: "Link Folder", element: "a", attributes: { 'class': 'link-folder' } }
        - { name: "Link File", element: "a", attributes: { 'class': 'link-file' } }
        - { name: "Link External", element: "a", attributes: { 'class': 'link-external' } }
        - { name: "Link Mail", element: "a", attributes: { 'class': 'link-mail' } }
        - { name: "Link Globe", element: "a", attributes: { 'class': 'link-globe' } }

        - { name: "List Unstyled", element: "ul", attributes: { 'class': 'list-unstyled' } }
        - { name: "List Inline", element: "ul", attributes: { 'class': 'list-inline' } }
        - { name: "List Check", element: "ul", attributes: { 'class': 'list-check' } }
        - { name: "List Info", element: "ul", attributes: { 'class': 'list-info' } }
        - { name: "List Warning", element: "ul", attributes: { 'class': 'list-warning' } }
        - { name: "List Ban", element: "ul", attributes: { 'class': 'list-ban' } }
        - { name: "List Chevron", element: "ul", attributes: { 'class': 'list-chevron' } }

        - { name: "Lowercased text", element: "span", attributes: { 'class': 'text-lowercase' } }
        - { name: "Uppercased text", element: "span", attributes: { 'class': 'text-uppercase' } }
        - { name: "Capitalized text", element: "span", attributes: { 'class': 'text-capitalize' } }
        - { name: "Muted", element: "span", attributes: { 'class': 'text-muted' } }
        - { name: "Primary", element: "span", attributes: { 'class': 'text-primary' } }
        - { name: "Secondary", element: "span", attributes: { 'class': 'text-secondary' } }
        - { name: "Tertiary", element: "span", attributes: { 'class': 'text-tertiary' } }
        - { name: "Quaternary", element: "span", attributes: { 'class': 'text-quaternary' } }
        - { name: "Success", element: "span", attributes: { 'class': 'text-success' } }
        - { name: "Info", element: "span", attributes: { 'class': 'text-info' } }
        - { name: "Warning", element: "span", attributes: { 'class': 'text-warning' } }
        - { name: "Danger", element: "span", attributes: { 'class': 'text-danger' } }

    toolbarGroups:
        - { name: styles, groups: [ format, styles ] }
        - { name: basicstyles, groups: [ basicstyles ] }
        - { name: paragraph, groups: [ list, indent, blocks, align ] }
        - "/"
        - { name: links, groups: [ links ] }
        - { name: clipboard, groups: [ clipboard, cleanup, undo ] }
        - { name: editing, groups: [ spellchecker ] }
        - { name: insert, groups: [ insert ] }
        - { name: tools, groups: [ table, specialchar ] }
        - { name: document, groups: [ mode ] }

    format_tags: "p;h1;h2;h3;h4;h5;pre"

    justifyClasses:
        - text-left
        - text-center
        - text-right
        - text-justify

    extraPlugins:
        - justify
        - autolink
        - bootstrappackage_address
        - bootstrappackage_box
        - bootstrappackage_columns
        - bootstrappackage_indent
        - bootstrappackage_table

    removePlugins:
        - image

    removeButtons:
        - Anchor
        - Underline
        - Strike

classesAnchor:
    page:
        class: 'link-page'
        type: 'page'
    folder:
        class: 'link-folder'
        type: 'folder'
    file:
        class: 'link-file'
        type: 'file'
    external:
        class: 'link-external'
        type: 'url'
    mail:
        class: 'link-mail'
        type: 'mail'

buttons:
    link:
        properties:
            class:
                allowedClasses: 'link-arrow, link-page, link-folder, link-file, link-external, link-mail'

Here some screenshot for TsConfig code included: enter image description here

enter image description here


Solution

  • Please check the Page TsConfig module and add the output to your Question:

    Screenshot of page TsConfig module

    The file tab must be removed somewhere. Either the TsConfig that removes the file tab is listed there or the preset, that is loaded.

    EDIT 1:
    If you have installed the EXT:lowlevel, then you can go to the "configuration" module: Configuration module

    There you can see, where the Presets are located: Configuration

    In my answer to the following question, you can see, how to set your own custom preset:
    TYPO3 RTE - allowedClasses is TSconfig have no effect

    EDIT 2:
    You could try to override the bootstrap theme. Add following to your EXT:your_sitepackage/ext_localconf.php:

    $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['bootstrap'] = 'EXT:your_sitepackage/Configuration/RTE/Default.yaml';
    

    And then add the EXT:your_sitepackage/Configuration/RTE/Default.yaml file:

    imports:
        - { resource: "EXT:bootstrap_package/Configuration/RTE/Default.yaml" }
    
    allowedTypes: 'page,url,file,folder,email,telephone'
    

    If the file tab is not loaded then, somehow your bodytext RTE uses an other preset or there must be some TsConfig disabling the tab.