Ergebnis 1 bis 7 von 7

Thema: Eigene jQuery-Scripte unter C5.3 korrekt zusammenfassen und ausgeben

  1. #1
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    874

    Standard Eigene jQuery-Scripte unter C5.3 korrekt zusammenfassen und ausgeben

    Liebe Leute,
    in C4.13 habe meine eigenen auf jQuery basierenden Scripte in ein Verzeichnis /my-theme/javascripts gelegt und im Ordner Templates eine Datei j_scripts_my-theme.html5 mit diesem Inhalt eingebunden:
    PHP-Code:
    <?php
    $GLOBALS
    ['TL_JAVASCRIPT'][] = $GLOBALS['TL_CONFIG']['uploadPath'].'/my-theme/javascripts/jquery.myscript01.js|static';
    $GLOBALS['TL_JAVASCRIPT'][] = $GLOBALS['TL_CONFIG']['uploadPath'].'/my-theme/javascripts/jquery.myscript02.js|static';
    $GLOBALS['TL_JAVASCRIPT'][] = $GLOBALS['TL_CONFIG']['uploadPath'].'/my-theme/javascripts/jquery.myscript03.js|static';
    ?>
    In meinen Theme-Layouts wurde mir diese Datei dann unter jQuery-Templates als j_scripts_my-theme angezeigt und es konnten darüber meine Scripte eingebunden werden.

    In Contao 5.3.40 kann ich eine solche Datei zwar auch unter meinen Theme-Layouts sehen und einbinden, allerdings werden die Scripte nicht eingebunden :-

    Ist dieses Vorgehen so nicht mehr möglich und was ist unter 5.3 der richtige Weg? Danke für euren Support. Oder mache ich noch einen ganz anderen Fehler?

  2. #2
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.754
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von 3dr Beitrag anzeigen
    Liebe Leute,
    in C4.13 habe meine eigenen auf jQuery basierenden Scripte in ein Verzeichnis /my-theme/javascripts gelegt und im Ordner Templates eine Datei j_scripts_my-theme.html5 mit diesem Inhalt eingebunden:
    PHP-Code:
    <?php
    $GLOBALS
    ['TL_JAVASCRIPT'][] = $GLOBALS['TL_CONFIG']['uploadPath'].'/my-theme/javascripts/jquery.myscript01.js|static';
    $GLOBALS['TL_JAVASCRIPT'][] = $GLOBALS['TL_CONFIG']['uploadPath'].'/my-theme/javascripts/jquery.myscript02.js|static';
    $GLOBALS['TL_JAVASCRIPT'][] = $GLOBALS['TL_CONFIG']['uploadPath'].'/my-theme/javascripts/jquery.myscript03.js|static';
    ?>
    In meinen Theme-Layouts wurde mir diese Datei dann unter jQuery-Templates als j_scripts_my-theme angezeigt und es konnten darüber meine Scripte eingebunden werden.

    In Contao 5.3.40 kann ich eine solche Datei zwar auch unter meinen Theme-Layouts sehen und einbinden, allerdings werden die Scripte nicht eingebunden :-

    Ist dieses Vorgehen so nicht mehr möglich und was ist unter 5.3 der richtige Weg? Danke für euren Support. Oder mache ich noch einen ganz anderen Fehler?
    $GLOBALS['TL_CONFIG']['uploadPath'] gibt es nicht mehr.
    In Contao 4 konntest du dann Config::get('uploadPath') nutzen, das wurde aber auch deprecated.

    Du musst dir in Contao 5 den %contao.upload_path% parameter vom Container laden:

    Siehe auch:
    https://community.contao.org/de/show...t-mehr-geladen

  3. #3
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    874

    Standard

    @Zoglo, danke dir, ehrlich gesagt habe ich keine Ahnung wie ich mir den "%contao.upload_path% parameter vom Container" hole? Welcher Container ist hier gemeint? Chatgpt spuckt mir das aus:
    PHP-Code:
    <?php
    $uploadPath 
    $this->container->getParameter('contao.upload_path').'/my-theme/javascripts/jquery.myscript01.js|static';
    $uploadPath $this->container->getParameter('contao.upload_path').'/my-theme/javascripts/jquery.myscript02.js|static';
    ?>
    Falls das stimmt, kommt das dann immer noch in eine *.html5 -Template-Datei? Danke für eure Aufklärung?

  4. #4
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.754
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von 3dr Beitrag anzeigen
    @Zoglo, danke dir, ehrlich gesagt habe ich keine Ahnung wie ich mir den "%contao.upload_path% parameter vom Container" hole? Welcher Container ist hier gemeint? Chatgpt spuckt mir das aus:
    PHP-Code:
    <?php
    $uploadPath 
    $this->container->getParameter('contao.upload_path').'/my-theme/javascripts/jquery.myscript01.js|static';
    $uploadPath $this->container->getParameter('contao.upload_path').'/my-theme/javascripts/jquery.myscript02.js|static';
    ?>
    Falls das stimmt, kommt das dann immer noch in eine *.html5 -Template-Datei? Danke für eure Aufklärung?
    Puh, da halluziniert ChatGPT aber sehr viel. Ich würde hier nicht noch mehr Strom und Wasser verschwenden und schreibe dir daher eine ungetestete Lösung:

    PHP-Code:
    <?php

    //$uploadPath = \Contao\System::getContainer()->get('contao.upload_path'); // Typo :)
    $uploadPath = \Contao\System::getContainer()->getParameter('contao.upload_path');

    $GLOBALS['TL_JAVASCRIPT'][] = $uploadPath .'/my-theme/javascripts/jquery.myscript01.js|static';
    $GLOBALS['TL_JAVASCRIPT'][] = $uploadPath .'/my-theme/javascripts/jquery.myscript02.js|static';
    $GLOBALS['TL_JAVASCRIPT'][] = $uploadPath .'/my-theme/javascripts/jquery.myscript03.js|static';
    ?>
    Und naja. Es muss nicht zwangsläufig in ein html5 Template, sofern du mit Twig arbeitest... Zudem wird dein Uploadpath meist /files sein, sodass du auch /files/my-theme nutzen könntest.
    Geändert von zoglo (Gestern um 17:20 Uhr)

  5. #5
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    874

    Standard

    Vielen Dank, bei mir kommt dann leider im Log
    Uncaught PHP Exception Symfony\Component\DependencyInjection\Exception\Se rviceNotFoundException: "You have requested a non-existent service "contao.upload_path"." at Container.php line 263

  6. #6
    Contao-Urgestein
    Registriert seit
    24.02.2021.
    Beiträge
    1.754
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ah Typo, sorry:

    PHP-Code:
    $uploadPath = \Contao\System::getContainer()->getParameter('contao.upload_path'); 

  7. #7
    Contao-Fan
    Registriert seit
    05.05.2011.
    Beiträge
    874

    Standard

    Wie Zonky so schön sagt: Irgendwo klemmt hier noch die Säge. Ich habe es daher jetzt so gelöst:

    PHP-Code:
    <?php
    $GLOBALS
    ['TL_JAVASCRIPT'][] = 'files/my-theme/javascripts/jquery.myscript01.js|static';
    $GLOBALS['TL_JAVASCRIPT'][] = 'files/my-theme/javascripts/jquery.myscript02.js|static';
    $GLOBALS['TL_JAVASCRIPT'][] = 'files/my-theme/javascripts/jquery.myscript03.js|static';
    ?>
    @Zoglo - Trotzdem ganz herzlichen Dank für dein Mitdenken und deine Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 2 (Registrierte Benutzer: 0, Gäste: 2)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •