Contao-Camp 2024
Ergebnis 1 bis 13 von 13

Thema: eigenes fe_page-TPL mit anderem Namen

  1. #1
    Contao-Nutzer
    Registriert seit
    10.10.2015.
    Beiträge
    128

    Standard eigenes fe_page-TPL mit anderem Namen

    Ich möchte ein fe_page-TPL nur für eine Seite nutzen. Diese soll sofern der User von einer anderen Seite (Bearbeiten-Modus) zurückgekehrt einen Reload durchführen.

    Dazu wollte ich ein TPL mit Namen fe_focus anlegen. Dort habe ich den Body-Tag entsprechend modifiziert.

    Leider nimmt Contao meinen Body-Tag nicht an, obwohl ich das TPL angelegt, unter Theme im Seitenlayout das TPL fe_focus ausgewählt und in den Seiteneinstelliungen das entsprechende Layout zugewiesen habe.
    Ich habe auch versucht die erste Zeile von <?php $this->extend('fe_page') ?> auf <?php $this->extend('fe_focus') ?> abzuändern - ohne Erfolg. Immerhin erhalte ich dann eine Fehlermeldung im Log:
    Could not find template "fe_focus" at /var/www/vhosts/unser-wuermtal.de/httpdocs/vendor/contao/core-bundle/src/Resources/contao/library/Contao/TemplateLoader.php:153

    Irgenwie drehe ich mich grad im Kreis und weiß nicht wo ich ansetzen soll.

    Hat wer von euch einen Tipp?

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

    Standard

    Was genau änderst du im <body>? Nur die Class? Die kannst du auch direkt in den Seiteneinstellungen setzen, dazu brauchst du kein eigenes Seitenlayout. Du kannst sie auch im Seitenlayout setzen, ohne eigenes fe_page Template.

  3. #3
    Contao-Nutzer
    Registriert seit
    10.10.2015.
    Beiträge
    128

    Standard

    statt
    Code:
    <?php $this->block('body') ?>
    habe ich das ersetzt durch einen eigenen Body-Tag.
    Code:
    <body id="top" class="unix chrome blink ch78 tao-no-sidebar tao-fullwidth" onfocus="refreshMe()" itemscope itemtype="http://schema.org/WebPage">
    Vielleicht habe ich da etwas zu simpel gedacht.

  4. #4
    Contao-Fan Avatar von Stefko
    Registriert seit
    25.10.2012.
    Ort
    Karlsruhe
    Beiträge
    771
    User beschenken
    Wunschliste

    Standard

    Du bist in der falschen Zeile. Schau mal eins oben drüber, da wird der Body-Tag aufgemacht. Ansonsten gilt aber auch was Spooky schon schrieb, das kannste über ein Seitenlayout abfrühstücken.
    Grüße, Stefko

  5. #5
    Contao-Nutzer
    Registriert seit
    10.10.2015.
    Beiträge
    128

    Standard

    Darüber steht nur noch <?php $this->extend('fe_page') ?>

    oder ist fe_page das falsche TPL dafür?

    BG
    JHA

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

    Standard

    Zitat Zitat von Stefko Beitrag anzeigen
    Ansonsten gilt aber auch was Spooky schon schrieb, das kannste über ein Seitenlayout abfrühstücken.
    Nein, das geht leider nicht. jha möchte onfocus="…" hinzufügen.

    @jha poste mal dein fe_focus Template. Das Template solltest du nach der neuen Konvention übrigens fe_page_focus benennen.

  7. #7
    Contao-Fan Avatar von Stefko
    Registriert seit
    25.10.2012.
    Ort
    Karlsruhe
    Beiträge
    771
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Nein, das geht leider nicht. jha möchte onfocus="…" hinzufügen.
    Brille geputzt und volle Zustimmung
    Grüße, Stefko

  8. #8
    Contao-Nutzer
    Registriert seit
    10.10.2015.
    Beiträge
    128

    Standard Ich meine fe_page_focus

    am Freitag kam ich leider nicht mehr dazu, Spooky,

    Code:
    <?php $this->extend('fe_page') ?>
    
    <body id="top" class="unix chrome blink ch78 tao-no-sidebar tao-fullwidth" onfocus="refreshMe()" itemscope itemtype="http://schema.org/WebPage">
    
    	<!--[if lt IE 8]>
    		<p>You are using an outdated browser. <a href="http://whatbrowser.org/">Upgrade your browser today</a>.</p>
    	<![endif]-->
    
    	<?php echo $this->sections('top') ?>
    
    	<div class="page">
    
    		<?php if ($this->header): ?>
    			<header class="page-header">
    				<?php echo $this->header ?>
    			</header>
    		<?php endif ?>
    
    		<?php echo $this->sections('before') ?>
    
    		<div class="content-wrapper">
    
    			<section role="main" class="main-content">
    
    				<?php echo $this->main ?>
    
    				<?php echo $this->sections('main') ?>
    
    			</section>
    
    			<?php if($this->left && $this->right): ?>
    				<aside class="sidebar">
    					<?php echo $this->left ?>
    				</aside>
    				<aside class="sidebar -right">
    					<?php echo $this->right ?>
    				</aside>
    			<?php elseif($this->left || $this->right): ?>
    				<aside class="sidebar">
    					<?php echo $this->left ?>
    					<?php echo $this->right ?>
    				</aside>
    			<?php endif ?>
    
    		</div>
    
    		<?php echo $this->sections('after') ?>
    
    		<?php if ($this->footer): ?>
    			<footer class="page-footer">
    				<?php echo $this->footer ?>
    			</footer>
    		<?php endif ?>
    
    	</div>
    
    	<?php echo $this->sections('bottom') ?>
    
    </body>

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

    Standard

    Das funktioniert so nicht. Da du den <body> Tag ändern willst, musst du das gesamte fe_page Template überschrieben und kannst daher nicht von fe_page extenden, weil sich <body> nicht in einem block befindet, den du überschreiben könntest. Darüberhinaus hast du Template Inheritance falsch angewendet.

    Du könntest aber folgenden Trick machen:
    PHP-Code:
    <?php

    $this
    ->class .= '" onfocus="refreshMe()"';
    $this->extend('fe_page');
    (Mehr braucht es nicht.)

  10. #10
    Contao-Fan Avatar von Stefko
    Registriert seit
    25.10.2012.
    Ort
    Karlsruhe
    Beiträge
    771
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    (...) und kannst daher nicht von fe_page extenden, weil sich <body> nicht in einem block befindet, den du überschreiben könntest.
    Das habe ich eben auch festgestellt, hat das einen Grund, bzw. tieferen Sinn? Ansonsten wäre es doch mMn nur logisch auch schon <body>...</body> in einem Block zu stecken, zumal diese ja verschachtelbar sind.
    Grüße, Stefko

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

    Standard

    Naja, wenn du nur den Inhalt des <body> ändern möchtest, ist der aktuelle Block praktischer

  12. #12
    Contao-Nutzer
    Registriert seit
    10.10.2015.
    Beiträge
    128

    Standard jetzt tut sich was

    Zitat Zitat von Spooky Beitrag anzeigen
    Das funktioniert so nicht. Da du den <body> Tag ändern willst, musst du das gesamte fe_page Template überschrieben und kannst daher nicht von fe_page extenden, weil sich <body> nicht in einem block befindet, den du überschreiben könntest. Darüberhinaus hast du Template Inheritance falsch angewendet.

    Du könntest aber folgenden Trick machen:
    PHP-Code:
    <?php

    $this
    ->class .= '" onfocus="refreshMe()"';
    $this->extend('fe_page');
    (Mehr braucht es nicht.)
    Danke, Spooky!

  13. #13
    Contao-Nutzer
    Registriert seit
    10.10.2015.
    Beiträge
    128

    Standard

    Ich habe das jetzt ohne BodyTag gelöst:

    Im Layout (unter Themes) habe ich unter dem Punkt "Eigener JavaScript-Code" den folgenden Code eingefügt.
    Das läuft hervorragend und bedarf nicht eines eigenens TPLs!

    Code:
    <script>
    
    $(window).on('focus', function() { 
        /*your code*/
        setTimeout(function(){
            location.reload();//will reload your page
        },500); //duration
    }); 
    
    </script>

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
  •