Contao-Camp 2024
Ergebnis 1 bis 12 von 12

Thema: Produktliste und RockSolid Columns

  1. #1
    Contao-Nutzer
    Registriert seit
    29.12.2011.
    Beiträge
    109

    Standard Produktliste und RockSolid Columns

    Hallo,

    gerne würde ich die Produktliste mit RockSolid Columns ausgeben lassen.

    Hierzu verwende ich in der iso_list_default.html5 folgende Code-Zeilen aus einem News-Template eines Rocksolid Themes.
    Die Variable $this->count existiert im Isotope-Template nicht.

    Hat jemand eine Idee wie ich in das Isotope-Template eine Funktion zum durchnummerieren der Produkte einfügen kann?


    PHP-Code:
    <?php
    $config 
    = array(
            
    'large' => array('-large-col-3-1 -large-first''-large-col-3-1''-large-col-3-1 -large-last'),
            
    'medium' => array('-medium-col-2-1 -medium-first''-medium-col-2-1 -medium-last'),
            
    'small' => array('-small-col-1-1 -small-first -small-last'),
        );
        
    $classes = array('rs-column');
        foreach (
    $config as $name => $media) {
            
    $classes[] = $media[($this->count 1) % count($media)];
            if (
    $this->count count($media)) {
                
    $classes[] = '-' $name '-first-row';
            }
        }
        
    $this->colClass .= ' ' implode(' '$classes);
    ?>

    <div class="<?php echo $this->colClass?>">
    ...
    ...
    ...
    </div>

    Gruß
    Bastian

  2. #2
    Contao-Nutzer Avatar von Tastaturberuf
    Registriert seit
    14.03.2011.
    Ort
    Berlin
    Beiträge
    197
    User beschenken
    Wunschliste

    Standard

    Ist nicht getestet müsste aber
    PHP-Code:
    count($this->items
    sein.
    Tastaturberuf | Code with ♥ and Contao.

  3. #3
    Contao-Fan
    Registriert seit
    03.09.2009.
    Beiträge
    311

    Standard Rocksolid-Grid und Isotope-Shop

    Hallo bastlwastl
    Bin zufällig auf Deinen Beitrag gestossen. Ich versuche in einem Rocksolid-Theme (ONEO) einen Isotope-Shop zu Integrieren und möchte für die Darstellung der Produkteliste, jeweils drei nebeneinander, die RockSolid Columns anwenden.

    Dazu habe ich mal Deinen PHP-Code aus einem News-Template in die iso_list_default.html5 kopiert, um zu sehen was passiert. ;-)
    PHP-Code:
    <?php
    $config 
    = array(
            
    'large' => array('-large-col-3-1 -large-first''-large-col-3-1''-large-col-3-1 -large-last'),
            
    'medium' => array('-medium-col-2-1 -medium-first''-medium-col-2-1 -medium-last'),
            
    'small' => array('-small-col-1-1 -small-first -small-last'),
        );
        
    $classes = array('rs-column');
        foreach (
    $config as $name => $media) {
            
    $classes[] = $media[($this->count 1) % count($media)];
            if (
    $this->count count($media)) {
                
    $classes[] = '-' $name '-first-row';
            }
        }
        
    $this->colClass .= ' ' implode(' '$classes);
    ?>

    <div class="<?php echo $this->colClass?>">
    ...
    ...
    ...
    </div>
    Den Aufbau habe ich folgendermassen bemacht:
    -Spaltenumschlag (Umschlag Anfang) 3/2/1
    ---Modul PRODUKTLISTE mitTemplate iso_list_default.html5
    -Spaltenumschlag (Umschlag ende)

    Resultat: alle Produkte werden nur in der ersten Spallte dargestellt.
    Braucht es da noch entsprechende CSS?

    Dank für einen Tipp :-)

  4. #4
    Contao-Nutzer
    Registriert seit
    29.12.2011.
    Beiträge
    109

    Standard

    Hi...

    $this->count gibt es nicht im isotope Produktlisten-Template.
    Bau einfach einen eigenen Counter in das Template, dann sollte das wie folgt funktionieren.

    PHP-Code:
    <?php $count=''?>
    <?php 
    foreach ($this->products as $product): ?>
    <?php $count
    ++; ?>

    <?php
    $config 
    = array(
            
    'large' => array('-large-col-3-1 -large-first''-large-col-3-1''-large-col-3-1 -large-last'),
            
    'medium' => array('-medium-col-2-1 -medium-first''-medium-col-2-1 -medium-last'),
            
    'small' => array('-small-col-1-1 -small-first -small-last'),
        );
        
    $classes = array('rs-column');
        foreach (
    $config as $name => $media) {
            
    $classes[] = $media[($count 1) % count($media)];
            if (
    $count count($media)) {
                
    $classes[] = '-' $name '-first-row';
            }
        }
        
    $colClass .= ' ' implode(' '$classes);
    ?> 

    <div class="<?php echo $colClass?>">
    ...
    ...
    ...
    </div>

    <?php endforeach; ?>

  5. #5
    Contao-Fan
    Registriert seit
    03.09.2009.
    Beiträge
    311

    Standard

    Danke für die Antwort :-)
    Es ging mir nicht um den Counter einzubauen.
    Die Frage war wie ich für die Darstellung der Produkteliste, jeweils drei Produkte nebeneinander, die RockSolid Columns anwenden kann.
    Mit dem PHP-Code aus RockSolid-News-Template werden die Produkte nur in der ersten Spallte dargestellt, nicht drei nebeneinander.
    Ob es noch entsprechende CSS braucht.

    Den Aufbau habe ich folgendermassen bemacht:
    -Spaltenumschlag (Umschlag Anfang) 3/2/1
    ---Modul PRODUKTLISTE mitTemplate iso_list_default.html5
    -Spaltenumschlag (Umschlag ende)

    Resultat: alle Produkte werden nur in der ersten Spallte dargestellt.
    Braucht es da noch entsprechende CSS?

  6. #6
    Contao-Nutzer
    Registriert seit
    29.12.2011.
    Beiträge
    109

    Standard

    Ich habe dich schon verstanden...
    Damit die CSS-Klasse richtig zusammengesetzt wird, benötigst Du den Counter.

    Spaltenumschlag (Umschlag Anfang) und Spaltenumschlag (Umschlag Ende) darfst du nicht anlegen.
    Die Spalten werden ja über die $colClass in der iso_list_default.html5 generiert.

  7. #7
    Contao-Fan
    Registriert seit
    03.09.2009.
    Beiträge
    311

    Standard

    Hmm ...
    Hab Dein PHP-Code ganz am Anfang in iso_list_default.html5 eingebaut.
    Auch Umschlag Anfang/Ende ist deaktiviert. Die einspaltige Darstellung bleibt.

  8. #8
    Contao-Nutzer
    Registriert seit
    29.12.2011.
    Beiträge
    109

    Standard

    Nein... das muss in die mod_iso_productlist.html5

  9. #9
    Contao-Fan
    Registriert seit
    03.09.2009.
    Beiträge
    311

    Standard

    Habs gemacht, das gleiche Resultat:

    PHP-Code:
    <?php $count=''?>
    <?php 
    foreach ($this->products as $product): ?>
    <?php $count
    ++; ?>

    <?php
    $config 
    = array(
            
    'large' => array('-large-col-3-1 -large-first''-large-col-3-1''-large-col-3-1 -large-last'),
            
    'medium' => array('-medium-col-2-1 -medium-first''-medium-col-2-1 -medium-last'),
            
    'small' => array('-small-col-1-1 -small-first -small-last'),
        );
        
    $classes = array('rs-column');
        foreach (
    $config as $name => $media) {
            
    $classes[] = $media[($count 1) % count($media)];
            if (
    $count count($media)) {
                
    $classes[] = '-' $name '-first-row';
            }
        }
        
    $colClass .= ' ' implode(' '$classes);
    ?> 

    <div class="<?php echo $colClass?>">
    ...
    ...
    ...
    </div>

    <?php endforeach; ?> 



    <?php $this->extend('block_searchable'); ?>

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

    <?php if($this->message): ?>

    <p class="<?php echo $this->type?> message"><?php echo $this->message?></p>
    <?php endif; ?>
    <?php 
    if(!empty($this->products)): ?>

    <div class="product_list">

    <?php foreach ($this->products as $product): ?>
    <div<?php echo $product['cssID']; ?> class="<?php echo $product['class']; ?>">
    <?php echo $product['html']; ?>
    </div>
    <?php endforeach; ?>
    </div>
    <?php echo $this->pagination?>
    <?php 
    endif; ?>

    <?php $this->endblock(); ?>

  10. #10
    Contao-Nutzer
    Registriert seit
    29.12.2011.
    Beiträge
    109

    Standard

    PHP-Code:
    <?php $this->extend('block_searchable'); ?>

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

    <?php if($this->message): ?>

    <p class="<?php echo $this->type?> message"><?php echo $this->message?></p>
    <?php endif; ?>
    <?php 
    if(!empty($this->products)): ?>

    <div class="product_list">
     <?php $count=''?>
    <?php 
    foreach ($this->products as $product): ?>
    <?php $count
    ++; ?>
    <?php
    $config 
    = array(
            
    'large' => array('-large-col-3-1 -large-first''-large-col-3-1''-large-col-3-1 -large-last'),
            
    'medium' => array('-medium-col-2-1 -medium-first''-medium-col-2-1 -medium-last'),
            
    'small' => array('-small-col-1-1 -small-first -small-last'),
        );
        
    $classes = array('rs-column');
        foreach (
    $config as $name => $media) {
            
    $classes[] = $media[($count 1) % count($media)];
            if (
    $count count($media)) {
                
    $classes[] = '-' $name '-first-row';
            }
        }
        
    $colClass .= ' ' implode(' '$classes);
    ?> 
    <div<?php echo $product['cssID']; ?> class="<?php echo $colClass?>">
    <?php echo $product['html']; ?>
    </div>
    <?php endforeach; ?>
    </div>
    <?php echo $this->pagination?>
    <?php 
    endif; ?>

    <?php $this->endblock(); ?>

  11. #11
    Contao-Fan
    Registriert seit
    03.09.2009.
    Beiträge
    311

    Standard

    Danke :-)
    Die Produkte haben jetzt folgende Klassen:

    Code:
    <div class=" rs-column -large-col-3-1 -large-first -large-first-row -medium-col-2-1 -medium-first -medium-first-row -small-col-1-1 -small-first -small-last -small-first-row">
    Aber sie stehen noch nicht drei Produkte nebeneinander.
    Ich weiss nicht woran das liegen kann.

  12. #12
    Contao-Nutzer
    Registriert seit
    13.03.2016.
    Beiträge
    21

    Standard

    Irgendwie wird anscheinend nicht das richtige CSS geladen. Ich sehe in der Kombination ONEO und Isotope auch alle Produkte untereinander in der Listenansicht.

    Hat jemand mittlerweile eine Lösung dazu?

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
  •