in2code-de / luxletter

Newsletter system for TYPO3
https://www.in2code.de/agentur/typo3-extensions/luxletter/
23 stars 25 forks source link

ext_typoscript_setup.txt makes problems with TYPO3 11+ #119

Closed Abdull closed 2 years ago

Abdull commented 2 years ago

luxletter currently automatically includes its default Typoscripts, and I think there is no way (anymore) with TYPO3 11+ to prevent this. This makes it IMHO impossible to use custom luxletter templates, as the current luxletter way of doing Typoscript comes last and therefore wins over any own custom TypoScript rules.

Currently (e.g. luxletter 11.1.0 and 12.x) luxletter still has https://github.com/in2code-de/luxletter/blob/11.1.0/ext_typoscript_setup.txt

ext_typoscript_setup.txt/ext_typoscript_setup.typoscript has been deprecated for a long time. This file causes luxletter's default Typoscripts to always be included, and loads them AFTER any own custom luxletter rules. Therefore, luxletter's default Typoscript always wins over any customizations.

The luxletter documentation currently suggests to add a (deprecated) ext_typoscript_setup.typoscript into one's own extension and to make sure one's own extension gets loaded after luxletter by adding a depends entry in one's own ext_emconf.php. But since TYPO3 11.4, depends-orderings from ext_emconf.php are no longer used.

So what can be done to have luxletter NOT load its ext_typoscript_setup.txt and/or have it win over any own customizations? Thank you for any suggestions.

einpraegsam commented 2 years ago

Hello,

thank you for your feedback. First of all: You can use luxletter in TYPO3 11 (we are using it in production and I'm sure also in 12). Have you already read the FAQ how to change templates in https://github.com/in2code-de/luxletter/blob/develop/Documentation/Tech/Index.md#change-templates

Why we are using ext_typoscript_setup.txt is not because it's the best solution but more to globally include TypoScript in any way. This is needed to have a basic configuration for the backend module. And this is the point where the problems begin to start. TypoScript in Backend Modules is always a pain in the ass but if there is no TS, exceptions will prevent working with luxletter.

Alex

Abdull commented 2 years ago

plugin.tx_luxletter_fe.settings.containerHtml.path always has this value:

plugin.tx_luxletter_fe.settings.containerHtml.path = EXT:luxletter/Resources/Private/Templates/Mail/

There is no way for a sitepackage extension to overwrite this value, correct?

Because I tried everything (including adding luxletter as a composer require dependency in my sitepackage extension's composer.json, as well as adding a ext_typosript_setup.typoscript to my extension with content plugin.tx_luxletter_fe.settings.containerHtml.path = foo), yet I still get

plugin.tx_luxletter_fe.settings.containerHtml.path = EXT:luxletter/Resources/Private/Templates/Mail/

, not the expected

plugin.tx_luxletter_fe.settings.containerHtml.path = foo

.

Because of this, our TYPO3 11 installation creates luxletter newsletters with the hr.jpeg banner image. I want to use my sitepackage extension's own sitepackage/Resources/Private/Templates/Mail/NewsletterContainer.html by setting

plugin.tx_luxletter_fe.settings.containerHtml.path = EXT:sitepackage/Resources/Private/Templates/Mail/

, without success.

Galaaxy commented 1 year ago

Quickfix for this problem:

  1. Go to your Backend
  2. Select Template > Root Page
  3. Click on "Info/Modify" Dropdown and click on "Edit whole template record"
  4. Inside the Setup Textbox include your Template paths: module.tx_luxletter.settings.containerHtml.path. = EXT:sitepackage/Resources/Private/Templates/Mail/ plugin.tx_luxletter_fe.settings.containerHtml.path. = EXT:sitepackage/Resources/Private/Templates/Mail/
agendartobias commented 8 months ago

I can confirm that i had simmilar problems but as @einpraegsam said you can use ext_typoscript_setup.txt in v12.

Problem with me was that i defined template from sitepackage with number 1 in typoscript - it must be number 2 (partials, templates, layout)

plugin {
  tx_luxletter {
    view {
      templateRootPaths {
        0 = EXT:luxletter/Resources/Private/Templates/
        1 = EXT:lux/Resources/Private/Templates/
        2 = EXT:mysitepackage/Resources/Private/Templates/Extension/LuxLetter/
      }

      partialRootPaths {
        0 = EXT:luxletter/Resources/Private/Partials/
      }

      layoutRootPaths {
        0 = EXT:luxletter/Resources/Private/Layouts/
      }
    }

    settings {
      addInlineCss {
        0 = EXT:luxletter/Resources/Private/Css/ZurbFoundation.css
        1 = EXT:luxletter/Resources/Private/Css/Luxletter.css
      }

      # Define container.html files
      containerHtml {
        path = EXT:mysitepackage/Resources/Private/Templates/Extension/LuxLetter/Mail/
        options {
          1 {
            fileName = NewsletterContainer
            label = LLL:EXT:luxletter/Resources/Private/Language/locallang_db.xlf:newsletter.layouts.1
          }
        }
      }
    }
  }
}
module.tx_luxletter < plugin.tx_luxletter