Ergebnis 1 bis 12 von 12

Thema: Standardvariante

  1. #1
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard Standardvariante

    Hallo,

    gibt es eine Möglichkeit, eine Variante als Standard zu definieren? Also wenn ein Produkt im Frontend aufgerufen wird eine bestimmte Variante als Basis zu nehmen?

    Problem ist nämlich: Wenn ich zwei Varianten-Felder habe (Größe und Farbe) wobei beide gesetzt sein müssen, reagiert die aktualisierung nur richtig, wenn ich für beide Varianten erst mal was auswähle. Es wäre natürlich gut, wenn eine definierbare Kombination aus Größe und Farbe initial vorgegeben ist.

    Gruß,
    Felix
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  2. #2
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Kannst du per JS machen.

    Einfach dazu per JS die Felder touchen, dann wird das per Ajax weitergegeben und der Preis taucht auf. Habe ich auch schon mal für eine Seite gemacht, klappt sehr gut ;-)
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  3. #3
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Daumen hoch

    Zitat Zitat von KATgirl Beitrag anzeigen
    Einfach dazu per JS die Felder touchen, dann wird das per Ajax weitergegeben und der Preis taucht auf.
    Super, danke, klappt.
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  4. #4
    AG CMS-Garden Avatar von felixpfeiffer
    Registriert seit
    05.06.2009.
    Ort
    Hannover
    Beiträge
    346
    Partner-ID
    372

    Standard

    Dank Kirsten hier nun die Lösung auf Basis von Mootools. Der folgende Code gehört in das Reader-Template (iso_reader_default.php oder wie ihr das auch immer nennt) ganz ans Ende.

    Code:
    <?php if($this->hasOptions): ?>
    
    <script>window.addEvent('domready', function() {<?php foreach( $this->options as $arrOption ): if($arrOption['inputType'] == 'radio' && strlen($arrOption['html'])):?>    
    
    document.<?php echo $strFormname; ?>.<?php echo $arrOption['name']; ?>[1].checked = true;
    
    <?php 
    $strOption = $arrOption['name'];
    endif; endforeach; 
    ?>    
    
    document.<?php echo $strFormname; ?>.<?php echo $strOption; ?>[1].fireEvent('click');});
    
    </script>
    
    <?php endif; ?>
    In einem Reader klappt das sehr gut.
    In einer Liste mit vielen Produkten könnte es etwas länger dauern und wäre auch nicht unbedingt zu empfehlen, da für jedes Produkt der Preis neu angefragt wird.
    Felix Pfeiffer : Neue Medien
    Offizieller Contao Partner für den Raum Hannover

    Infos: http://www.felixpfeiffer.com

  5. #5
    Contao-Fan Avatar von qba
    Registriert seit
    23.07.2010.
    Ort
    Berlin Mariendorf
    Beiträge
    574

    Standard

    Hallo Felix,

    eigentlich ist es genau das, was ich gesucht habe. Nur leider funzt das bei mir nicht. Kann es daran liegen, dass ich mit einem select Menü arbeite? Ich lese bei Dir was von 'radio'. Wobei ich das auch schon mal in select geändert habe und trotzdem nicht meine 1. Variante angezeigt wird.

    Ich habe mootools im Seitenlayout aktiviert, den Code in mein reader Template eingetragen....

    So schaut dann mein Template aus:

    PHP-Code:
    <form action="<?php echo $this->action?>" id="<?php echo $this->formId?>" name="iso<?php echo rand(); ?>" method="post" enctype="<?php echo $this->enctype?>">
    <div class="formbody" itemscope itemtype="http://schema.org/Product">
    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formSubmit?>">
    <input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">
    <input type="hidden" name="AJAX_PRODUCT" value="<?php echo $this->product_id?>">
    <input type="hidden" name="AJAX_MODULE" value="<?php echo $this->module_id?>">



    <div class="galeriebilder"><?php echo $this->getGallery('images')->generateMainImage(); ?>

    <span class="thumbnails"><?php echo $this->getGallery('images')->generateGallery(); ?></span></div>

    <h2 itemprop="name"><?php echo $this->generateAttribute('name'); ?></h2>
    <?php if ($this->sku): ?>
    <div class="sku" itemprop="sku">Artikel-Nr.: <?php echo $this->generateAttribute('sku'); ?></div><?php endif; if ($this->description): ?>
    <div class="description" itemprop="description"><?php echo $this->generateAttribute('description'); ?></div><?php endif; ?>
    <div class="offer" itemscope itemtype="http://schema.org/Offer">
    <?php if($this->hasOptions): ?>
    <div class="options">
    <?php foreach( $this->options as $arrOption ): echo $arrOption['html']; endforeach; ?>
    </div>
    <?php endif; ?>
    <?php 
    if($this->baseprice): ?><div class="baseprice"><?php echo $this->generateAttribute('baseprice'); ?></div><?php endif; ?>
    <div class="price" itemprop="price"><?php echo $this->generatePrice(); ?></div>
    <div class="mwst">inkl. MwSt. zzgl. <a href="http://shop.julenhof.de/versandkosten.html" data-lightbox="versandkosten">Versandkosten</a></div>


    </div>
    <?php if($this->buttons): ?>
    <div class="submit_container">
    <?php if ($this->useQuantity): ?>
    <div class="quantity_container">
    <label for="quantity_requested_<?php echo $this->raw['id']; ?>"><?php echo $GLOBALS['TL_LANG']['MSC']['quantity']; ?>:</label> <input type="text" class="text" id="quantity_requested_<?php echo $this->raw['id']; ?>" name="quantity_requested" placeholder="<?php echo $this->minimum_quantity?>" maxlength="10">
    </div>
    <?php endif; ?>
    <?php 
    foreach( $this->buttons as $name => $button ): ?>
        <input type="submit" class="submit <?php echo $name?>" name="<?php echo $name?>" value="<?php echo $button['label']; ?>">
    <?php endforeach; ?>
    </div>
    <?php endif; ?>

    </div>
    </form>

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

    <script>window.addEvent('domready', function() {<?php foreach( $this->options as $arrOption ): if($arrOption['inputType'] == 'radio' && strlen($arrOption['html'])):?>    

    document.<?php echo $strFormname?>.<?php echo $arrOption['name']; ?>[1].checked = true;

    <?php 
    $strOption 
    $arrOption['name'];
    endif; endforeach; 
    ?>    

    document.<?php echo $strFormname?>.<?php echo $strOption?>[1].fireEvent('click');});

    </script>

    <?php endif; ?>
    Hättest Du vielleicht noch einen Tipp? Es geht z.B. um dieses Produkt: http://shop.julenhof.de/produkte-fue...-lachsoel.html
    Gruß qba|uwe

  6. #6
    Contao-Nutzer Avatar von vangelis
    Registriert seit
    18.09.2010.
    Ort
    Gerlingen
    Beiträge
    45

    Standard

    Hallo Uwe,

    wie ich sehe hast auf deiner Seite die Lösung für ein Select Feld umgesetzt?
    Kannst mir vielleicht sagen wie das dann ausschaut?

    Gruß
    Vangelis

  7. #7
    Contao-Fan Avatar von qba
    Registriert seit
    23.07.2010.
    Ort
    Berlin Mariendorf
    Beiträge
    574

    Standard

    Hi Vangelis,

    ein Freund hat mir da ein Javascript Ding eingebaut. Keine Ahnung was er gemacht hat :-D

    Ich bin nur gerade im Urlaub daher kann ich nicht nachhaken. Schick mir doch mal nächste Woche eine PM, dann frage ich, ob er da was machen kann.

    Gesendet von meinem Nexus 4 mit Tapatalk
    Gruß qba|uwe

  8. #8
    Contao-Nutzer Avatar von vangelis
    Registriert seit
    18.09.2010.
    Ort
    Gerlingen
    Beiträge
    45

    Daumen hoch

    Vielen Dank.
    Das werde ich machen.

  9. #9
    Contao-Urgestein Avatar von KATgirl
    Registriert seit
    31.03.2010.
    Ort
    Marburg
    Beiträge
    1.579
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Suche mal im Forum nach Beiträgen von Felix. Der hat die JS Lösung hier mal gepostet.

    Gesendet von meinem Nexus 5 mit Tapatalk
    - GitHub
    - Kontaktanfragen

    "Ein Lächeln ist die kürzeste Entfernung zwischen zwei Menschen." Victor Borge

  10. #10
    Contao-Nutzer Avatar von pgrob
    Registriert seit
    10.07.2009.
    Ort
    Schweiz
    Beiträge
    205
    Partner-ID
    10267

    Standard

    Hallo Miteinander

    Ich wäre hier auch interessiert an der Lösung mit dem Select. Kann mir jemand der das bereits gelöst hat weiterhelfen? Welche Anpassungen sind am JS zu machen?

    Gruess Patrick

  11. #11
    Contao-Fan Avatar von qba
    Registriert seit
    23.07.2010.
    Ort
    Berlin Mariendorf
    Beiträge
    574

    Standard

    So schaut mein iso_reader template aus:

    Code:
    <?php 
    $arrSelects = array(); 
    ?>
    <form action="<?php echo $this->action; ?>" id="<?php echo $this->formId; ?>" name="iso<?php echo rand(); ?>" method="post" enctype="<?php echo $this->enctype; ?>">
    <div class="formbody" itemscope itemtype="http://schema.org/Product">
    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formSubmit; ?>">
    <input type="hidden" name="REQUEST_TOKEN" value="{{request_token}}">
    <input type="hidden" name="AJAX_PRODUCT" value="<?php echo $this->product_id; ?>">
    <input type="hidden" name="AJAX_MODULE" value="<?php echo $this->module_id; ?>">
    
    <div class="galeriebilder"><?php echo $this->getGallery('images')->generateMainImage(); ?>
    
    <span class="thumbnails"><?php echo $this->getGallery('images')->generateGallery(); ?></span></div>
    
    <h2 itemprop="name"><?php echo $this->generateAttribute('name'); ?></h2>
    <?php if ($this->sku): ?>
    <div class="sku" itemprop="sku">Artikel-Nr.: <?php echo $this->generateAttribute('sku'); ?> - Lieferzeit 2-10 Werkttage</div><?php endif; if ($this->description): ?>
    <div class="description" itemprop="description"><?php echo $this->generateAttribute('description'); ?></div><?php endif; ?>
    <div class="offer" itemscope itemtype="http://schema.org/Offer">
    <?php if($this->hasOptions): ?>
    
    <?php
    #$arrSelects = array();
    ?>
    
    <div class="options">
    <?php foreach( $this->options as $arrOption ): ?>
    <?php
    $preg = preg_match('/<select(.*?) id="(.*?)\"/', $arrOption['html'],$result);
    if($preg)
    {
    	$arrSelects[] = $result[2];
    }
    ?>
    <?php echo $arrOption['html']; ?>
    <?php endforeach; ?>
    </div>
    <?php endif; ?>
    <?php if($this->baseprice): ?><div class="baseprice"><?php echo $this->generateAttribute('baseprice'); ?></div><?php endif; ?>
    <div class="price" itemprop="price"><?php echo $this->generatePrice(); ?></div>
    <div class="mwst">inkl. MwSt. zzgl. <a href="http://shop.julenhof.de/versandkosten.html" data-lightbox="versandkosten">Versandkosten</a></div>
    
    </div>
    <?php if($this->buttons): ?>
    <div class="submit_container">
    <?php if ($this->useQuantity): ?>
    <div class="quantity_container">
    <label for="quantity_requested_<?php echo $this->raw['id']; ?>"><?php echo $GLOBALS['TL_LANG']['MSC']['quantity']; ?>:</label> <input type="text" class="text" id="quantity_requested_<?php echo $this->raw['id']; ?>" name="quantity_requested" placeholder="<?php echo $this->minimum_quantity; ?>" maxlength="10">
    </div>
    <?php endif; ?>
    <?php foreach( $this->buttons as $name => $button ): ?>
        <input type="submit" class="submit <?php echo $name; ?>" name="<?php echo $name; ?>" value="<?php echo $button['label']; ?>">
    <?php endforeach; ?>
    </div>
    <?php endif; ?>
    
    </div>
    </form>
    
    
    <?php if(count($arrSelects) && !\Input::post('FORM_SUBMIT')): ?>
    <?php
    $jsSelects = json_encode($arrSelects);
    ?>
    <script type="text/javascript">
    /* <![CDATA[ */
    
    /**
     * Scripts
     */
    window.addEvent('domready', function() 
    {
    	var selects = JSON.parse('<?php echo $jsSelects;?>');
    	if(selects == null || selects.length < 1)
    	{
    		return;
    	}
    	selects.each(function(elem, index)
    	{
    		$(elem).getElements('option')[0].set('selected','');
    		$(elem).getElements('option')[1].set('selected','selected');		
    	});
    	
    	//select.getElements('option')[0].set('selected','');
    	//select.getElements('option')[0].destroy();
    	
    	//select.getElements('option')[1].set('selected','selected');
    });
    
    
    /* ]]> */
    </script>
    
    <?php endif; ?>
    Die rot markierten Stellen sind einzufügen. Dann müsste das mit der Vorauswahl klappen. Danke an Tim G übrigens für den Code.
    Gruß qba|uwe

  12. #12
    Contao-Nutzer Avatar von pgrob
    Registriert seit
    10.07.2009.
    Ort
    Schweiz
    Beiträge
    205
    Partner-ID
    10267

    Standard

    Perfekt! Danke Vielmals. Werde es gleich ausprobieren.

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
  •