Contao-Camp 2024
Ergebnis 1 bis 7 von 7

Thema: News-Template – Erster Beitrag mit großem Bild

  1. #1
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard News-Template – Erster Beitrag mit großem Bild

    Hallo,

    ich möchte eine News-Seite in Contao umsezten welche folgendes Layout hat:
    screenshot.jpg

    D.h. der erste Beitrag hat ein größeres Foto als die restlichen.

    Mein Problem:
    Wie teile ich dem Template "news_latest.html5" mit, dass es für den ersten Beitrag eine andere Bildgröße verwenden soll?

    Hätte mir das etwa so vorgestellt:

    Code:
    	
    <div class="news_teaser">
    
    	<figure class="news_teaser_image">
    
    		<?php 
    
    		if ($this->counter == 1) {
                            // der erste Beitrag erhält ein größeres Bild
    			$sizeArray = [900, 600, 'crop'];
    		} else {
                            // die restlichen ein kleines
    			$sizeArray = [380, 230, 'crop'];
    		}
    		
    
    		if (null !== ($objCoverFile = \FilesModel::findByUuid($this->singleSRC)))
    		{
    		$objImageTemplate = new stdClass();
    		\Controller::addImageToTemplate($objImageTemplate, [
    			'singleSRC' => $objCoverFile->path,
    			'size' => $sizeArray,
    		], \Config::get('maxImageWidth'), null, $objCoverFile);
    		$this->insert('image', (array) $objImageTemplate);
    		}
    
    		?>
    	</figure>
    
    	<p>Hier folgt der Teast text ...</p>
    	<a href="#">Hier der Link zum Beitrag</a>
    </div>
    ... das Problem ist nur ich hab kein "$this->counter" im Template zur Verfügung

    Oder würdet ihr das auf einem anderen Weg lösen?

    Danke für eure Hilfe!

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo thesweetg,
    du könntest das auch mit zwei Modulen Lösen (zwei Listen).
    Bei der ersten stellst du alles passend für die erste News ein, beschränkst aber auf eine News.
    Bei der zweiten alles passend für den Rest und stellst dort ein, dass du eine News überspringst.
    Dann sollte das schon alles passen ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard

    Ist eine super Idee.

    Hab allerdings eine Pagination geplant.
    Die würde dann auf den weiteren Seiten auch immer zuerst den ersten Beitrag (mit großem Bild) anzeigen.
    (Nehme ich an, getestet habe ich es noch nicht.)

    Das wäre dann etwas verwirrend für den Besucher.

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

    Standard

    Könntest du vielleicht individuell mit einem parseArticles Hook lösen.

  5. #5
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von thesweetg Beitrag anzeigen
    Ist eine super Idee.

    Hab allerdings eine Pagination geplant.
    Die würde dann auf den weiteren Seiten auch immer zuerst den ersten Beitrag (mit großem Bild) anzeigen.
    (Nehme ich an, getestet habe ich es noch nicht.)

    Das wäre dann etwas verwirrend für den Besucher.
    Hmm da würde ich eher mit einem Archiv arbeiten.. also ne extra Seite für alle älteren News und dann eben alle im selben Modul ausgeben. Ansonsten würdest du ja auch immer auf jeder Seite das oberste so groß anzeigen lassen oder ist das der Plan? Wenn das der Plan wäre, dann würde ich das eventuell pur per CSS lösen und dann für alle die Bilder größer Berechnen lassen und per CSS verkleinern.. auch wenn das nicht unbedingt schick ist.
    Ne andere Idee hab ich da auf die schnelle jetzt nicht...

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  6. #6
    Contao-Fan
    Registriert seit
    29.06.2016.
    Beiträge
    500

    Standard

    Falls es mal wer braucht, ich konnte das jetzt so lösen:

    Code:
    // src/EventListener/ParseArticlesListener.php
    namespace App\EventListener;
    
    use Contao\CoreBundle\ServiceAnnotation\Hook;
    use Contao\FrontendTemplate;
    use Contao\Module;
    use Contao\UserModel;
    
    /**
     * @Hook("parseArticles")
     */
    class ParseArticlesListener
    {
        public $newsCounter = 1;
    
        public function __invoke(FrontendTemplate $template, array $newsEntry, Module $module): void
        {
    		$this->newsCounter++;
    		$template->teaserImageSize = 1;
    		if($this->newsCounter % 8 == 2) {
    			$template->teaserImageSize = 2;
    		}
        }
    }
    Im Template news_latest.html5 kann man dann die Bildgröße mit $this->teaserImageSize abfragen.

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

    Standard

    Mit https://github.com/fritzmg/contao-newslist-extended kann man auch im Nachrichtenlistenmodul eine andere Bildgröße für Featured Nachrichten angeben, wenn man das braucht.
    » sponsor me via GitHub or PayPal or Revolut

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
  •