Contao-Camp 2024
Ergebnis 1 bis 7 von 7

Thema: Template class hinzufügen

  1. #1
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard Template class hinzufügen

    Hallo,

    mit
    PHP-Code:
    <?php $this->extend('ce_list'); ?>
    <?php $this
    ->class .= 'myClass' ?>
    erweitere ich einfach mal Klassen.

    Nun möchte ich aber im ce_youtube die class von <figure> erweitern.
    PHP-Code:
    <?php $this->extend('block_unsearchable'); ?>

    <?php $this->block('content'); ?>

      <figure class="video_container">
        <?php if ($this->aspect): ?>
          <div class="responsive ratio-<?= $this->aspect ?>">
        <?php endif; ?>
    .....
    Wie kann ich auf diese class auf gleiche, einfache Weise zugreifen?


    mit
    PHP-Code:
    <?php 

    $my 
    $this->extend('ce_youtube');
    $my str_replace('video_container','video_container myClass',$my);
    klappt es schon mal nicht

    Danke für die Hilfestellung
    Grüsse
    Bernhard


  2. #2
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.733
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich glaube das geht über diese elegante Art mit extend leider nicht. Muss man klassisch das Template überschreiben. Würde ich auch manchmal gern haben und lasse mich auch gern belehren falls es doch gehen sollte.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    In dem Fall könnte man auch
    PHP-Code:
    $buffer str_replace('<figure class="video_container">''<figure class="video_container my-class">'$buffer); 
    in einem modifyFrontendPage Hook machen. Ist auch nicht besonders elegant und könnte mehr ersetzen als man will.

  4. #4
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Mein ce_youtube.html5 sieht nun mal wie folgt aus

    PHP-Code:
    <?php
    namespace App\EventListener;

    $this->extend('ce_youtube');

    use 
    Contao\CoreBundle\ServiceAnnotation\Hook;
    use 
    Terminal42\ServiceAnnotationBundle\ServiceAnnotationInterface;

    class 
    ModifyFrontendPageListener implements ServiceAnnotationInterface
    {
        
    /**
         * @Hook("modifyFrontendPage")
         */
        
    public function onModifyFrontendPage(string $bufferstring $templateName): string
        
    {
            if (
    'ce_youtube' === $templateName) {
                
    $buffer str_replace('<figure class="video_container">''<figure class="video_container my-class">'$buffer);
            }

            return 
    $buffer;
        }
    }

    ?>
    Aber entweder kann ich das Beispiel nicht einfach so übernehmen, oder ich müsste noch etwas mit der Ausgabe ändern ??
    Denn irgendwie wird my-class nicht hinzugefügt. Frontend-Ausgabe erfolgt aber, sodass ich vermute, dass zumindest das template korrekt aufgebaut ist.

    In der composer.json hab ich
    PHP-Code:
        "autoload": {
            
    "psr-4": {
                
    "App\\""src/"
            
    }
        } 
    mit eingetragen ... brauche ich das? Ist das korrekt so?

    Was ist zu tun?
    Grüsse
    Bernhard


  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Warum hast du $this->extend('ce_youtube'); in die PHP Datei der Klasse hinzugefügt? Außerdem prüftst du auf 'ce_youtube', das wird wohl nie true sein.

  6. #6
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.853
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    in die PHP Datei der Klasse hinzugefügt?
    ... nein, ich habe das ganze in die ce_youtube.html5 geschrieben. Kann das dort nicht angewendet werden?
    Und darum habe ich auch die ce_youtube abgefragt - fe_page hatte auch nicht funktioniert.

    Aber nochmals zurück zur ce_youtube.html5 ... wenn das dort nicht funktioniert, dann müsste ich das ganz wohin bringen? Als eigenes Modul aufbauen? ... das wäre eigentlich nicht der Plan gewesen
    Grüsse
    Bernhard


  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.050
    Partner-ID
    10107

    Standard

    Du hast den Hook in ein Template geschrieben? Su funktioniert die Implementation von Hooks nicht .

    https://docs.contao.org/dev/getting-started/
    https://docs.contao.org/dev/framework/hooks/
    https://docs.contao.org/dev/reference/hooks/

Aktive Benutzer

Aktive Benutzer

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

Lesezeichen

Lesezeichen

Berechtigungen

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