OXID Community Forum

> German forum > Entwickler > Variants in Kategorielisten (list.tpl) anzeigen
Login
FAQ Members List Calendar Search Today's Posts Mark Forums Read

Thread: Variants in Kategorielisten (list.tpl) anzeigen


Reply
 
Thread Tools Search this Thread Display Modes
#Top   #1  
Old 12-20-2016, 10:03 AM
AKW AKW is offline
Junior Member
Join Date: Dec 2016
Posts: 3
AKW is on a distinguished road
Default Variants in Kategorielisten (list.tpl) anzeigen

Hallo liebe Oxid Forum Experten,

ich bitte vorab schon um Nachsicht, dass ist mein erste Forumsfrage.

Mein Problem ist folgendes, ich muss für unseren Kunden die Kategorieliste so anpassen, dass nicht die Parents sondern die Varianten einzeln aufgelistet sind.
Jetzt habe ich bereits im Oxid Shop die list.tpl Datei gefunden und weiß, dass er über folgendes Snippet eine ArticleListe Ladet und dort vielleicht (?) muss eine Varianten Liste rein?

Code:
[{if $oView->getArticleList()|@count > 0}]
        <div class="list-head clearfix">
            <h1 class="pageHead">[{$oView->getTitle()}]</h1>
            <div class="list-locator clearfix">
                [{include file="widget/locator/listlocator.tpl" locator=$oView->getPageNavigationLimitedTop() attributes=$oView->getAttributes() listDisplayType=true itemsPerPage=true sort=true }]
            </div>
        </div>
        [{* List types: grid|line|infogrid *}]
        [{include file="widget/product/list.tpl" type=$oView->getListDisplayType() listId="productList" products=$oView->getArticleList() showPrices=true}]
    [{/if}]
Über jeden Hinweis wäre ich überdankbar!

Oxid Shop Version 4.9.4
Reply With Quote
#Top   #2  
Old 12-20-2016, 10:57 AM
foxido.de foxido.de is offline
Senior Member
Join Date: Jul 2013
Posts: 1,129
foxido.de is on a distinguished road
Default Re: Variants in Kategorielisten (list.tpl) anzeigen

oxArticleList.php

Folgendes ändern...

PHP Code:
protected function _getCategorySelect($sFields$sCatId$aSessionFilter)
    {
        
$sArticleTable getViewName('oxarticles');
        
$sO2CView getViewName('oxobject2category');

        
// ----------------------------------
        // sorting
        
$sSorting '';
        if (
$this->_sCustomSorting) {
            
$sSorting {$this->_sCustomSorting} , ";
        }

        
// ----------------------------------
        // filtering ?
        
$sFilterSql '';
        
$iLang oxRegistry::getLang()->getBaseLanguage();
        if (
$aSessionFilter && isset($aSessionFilter[$sCatId][$iLang])) {
            
$sFilterSql $this->_getFilterSql($sCatId$aSessionFilter[$sCatId][$iLang]);
        }

        
$oDb oxDb::getDb();

        
$sSelect "SELECT $sFields$sArticleTable.oxtimestamp FROM $sO2CView as oc left join $sArticleTable
                    ON 
$sArticleTable.oxid = oc.oxobjectid
                    WHERE " 
$this->getBaseObject()->getSqlActiveSnippet() . " and $sArticleTable.oxparentid = ''
                    and oc.oxcatnid = " 
$oDb->quote($sCatId) . $sFilterSql ORDER BY $sSorting oc.oxpos, oc.oxobjectid ";

        return 
$sSelect;
    } 
PHP Code:
protected function _getCategorySelect($sFields$sCatId$aSessionFilter)
    {
        
$sArticleTable getViewName('oxarticles');
        
$sO2CView getViewName('oxobject2category');

        
// ----------------------------------
        // sorting
        
$sSorting '';
        if (
$this->_sCustomSorting) {
            
$sSorting {$this->_sCustomSorting} , ";
        }

        
// ----------------------------------
        // filtering ?
        
$sFilterSql '';
        
$iLang oxRegistry::getLang()->getBaseLanguage();
        if (
$aSessionFilter && isset($aSessionFilter[$sCatId][$iLang])) {
            
$sFilterSql $this->_getFilterSql($sCatId$aSessionFilter[$sCatId][$iLang]);
        }

        
$oDb oxDb::getDb();

        
$sSelect "SELECT $sFields$sArticleTable.oxtimestamp FROM $sO2CView as oc left join $sArticleTable
                    ON 
$sArticleTable.oxid = oc.oxobjectid
                    WHERE " 
$this->getBaseObject()->getSqlActiveSnippet() . "
                    and oc.oxcatnid = " 
$oDb->quote($sCatId) . $sFilterSql ORDER BY $sSorting oc.oxpos, oc.oxobjectid ";

        return 
$sSelect;
    } 
...könnte schon reichen.
__________________
Grüße

http://www.foxido.de/

- Modulentwicklung, Komplette Systeme, Beratung, Service

Tel: 02841-9161670

Deep-AutoSuggest, der neue Finder 4.6x 4.10.x und 90 weitere Module
Reply With Quote
#Top   #3  
Old 12-21-2016, 11:09 AM
AKW AKW is offline
Junior Member
Join Date: Dec 2016
Posts: 3
AKW is on a distinguished road
Default AW: Variants in Kategorielisten (list.tpl) anzeigen

Vielen Dank für deine schnelle Rückantwort!
Leider hat das nichts gebracht, es genauer gesagt überhaupt keinen Effekt auf die Ausgabe...

Weitere Ideen?

Was ich mich frage, ist es überhaupt möglich Variants in der Kategorieliste anzeigen zu lassen? Muss man dafür nicht den Artikel immer extra nochmal anlegen mit dem Unterschied im Titel (z.B. 120 Tabletten &/oder 180 Tabletten)?

http://p357787.mittwaldserver.info/Mineralstoffe/
Reply With Quote
#Top   #4  
Old 12-21-2016, 11:53 AM
foxido.de foxido.de is offline
Senior Member
Join Date: Jul 2013
Posts: 1,129
foxido.de is on a distinguished road
Default Re: Variants in Kategorielisten (list.tpl) anzeigen

Dann sollte es so gehen, allerdings ohn Parents. Counter etc. musst noch anpassen:

PHP Code:
protected function _getCategorySelect($sFields$sCatId$aSessionFilter)
    {
        
$sArticleTable getViewName('oxarticles');
        
$sO2CView getViewName('oxobject2category');

        
// ----------------------------------
        // sorting
        
$sSorting '';
        if (
$this->_sCustomSorting) {
            
$sSorting {$this->_sCustomSorting} , ";
        }

        
// ----------------------------------
        // filtering ?
        
$sFilterSql '';
        
$iLang oxRegistry::getLang()->getBaseLanguage();
        if (
$aSessionFilter && isset($aSessionFilter[$sCatId][$iLang])) {
            
$sFilterSql $this->_getFilterSql($sCatId$aSessionFilter[$sCatId][$iLang]);
        }

        
$oDb oxDb::getDb();

        
$sSelect "SELECT $sFields$sArticleTable.oxtimestamp FROM $sO2CView as oc left join $sArticleTable
                    ON 
$sArticleTable.oxparentid = oc.oxobjectid
                    WHERE " 
$this->getBaseObject()->getSqlActiveSnippet() . "
                    and oc.oxcatnid = " 
$oDb->quote($sCatId) . $sFilterSql ORDER BY $sSorting oc.oxpos, oc.oxobjectid ";

        return 
$sSelect;
    } 
Ansicht: http://4101.foxido.de/bekleidung/fas...uer-sie/jeans/
__________________
Grüße

http://www.foxido.de/

- Modulentwicklung, Komplette Systeme, Beratung, Service

Tel: 02841-9161670

Deep-AutoSuggest, der neue Finder 4.6x 4.10.x und 90 weitere Module
Reply With Quote
#Top   #5  
Old 12-21-2016, 01:09 PM
AKW AKW is offline
Junior Member
Join Date: Dec 2016
Posts: 3
AKW is on a distinguished road
Default AW: Variants in Kategorielisten (list.tpl) anzeigen

"... allerdings ohn Parents. Counter etc. musst noch anpassen: ...."

Sorry, das ich so dumm Nachfrage, aber ich bin in das Oxid Thema erst seit 4 Monaten reingeschmissen worden (bestehendes Projekt) und bin wirklich blank.

Was genau meinst Du mit ohne Parents. Counter? Ist das dann in der list.tpl?
Danke danke danke für deine Hilfe!!!
Reply With Quote
#Top   #6  
Old 12-21-2016, 02:39 PM
foxido.de foxido.de is offline
Senior Member
Join Date: Jul 2013
Posts: 1,129
foxido.de is on a distinguished road
Default Re: Variants in Kategorielisten (list.tpl) anzeigen

Diese Schwierigheiten sind vielen nicht unbekannt. Da muss man leider ein wenig lesen.

zum Thema. In der neuen Abfrage wird statt der Spalte oxarticles__oxid eines Artikels die Spalte oxarticles__oxparentid zum Vergleich genutzt, was die Ausgabe der Kinderartikel (Varianten) ermöglicht. Wenn die Parent-Artikel im Shop kaufbar sind und erscheinen sollen, muss die Abfrage insgesamt erweitert werden, z.B. über UNION (mysql), womit dann die Ausgabe von parent und child möglich ist.
__________________
Grüße

http://www.foxido.de/

- Modulentwicklung, Komplette Systeme, Beratung, Service

Tel: 02841-9161670

Deep-AutoSuggest, der neue Finder 4.6x 4.10.x und 90 weitere Module
Reply With Quote
#Top   #7  
Old 12-21-2016, 02:45 PM
foxido.de foxido.de is offline
Senior Member
Join Date: Jul 2013
Posts: 1,129
foxido.de is on a distinguished road
Default Re: Variants in Kategorielisten (list.tpl) anzeigen

Ich habe das mal in die Ansicht eingefügt. So wären Parents und Childs sichtbar. Die Anzeige der Variantenauswahl bei den Parents müsste dann noch weg.

Noch schnell zum Counter: Die Counterfunktion z.B. auf der Seite http://4101.foxido.de/bekleidung/fashion/fuer-sie/ ist anzupassen, weil sie inur die Parent-Jeans (in dem Fall 3) zählt und nicht die nun angezeigten Varianten.
__________________
Grüße

http://www.foxido.de/

- Modulentwicklung, Komplette Systeme, Beratung, Service

Tel: 02841-9161670

Deep-AutoSuggest, der neue Finder 4.6x 4.10.x und 90 weitere Module
Reply With Quote
Reply

Bookmarks

Tags
anzeigen, kategorielisten, listtpl, variants

« Previous Thread | Next Thread »
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Nicht Sichtbar
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Retrieve product info through variants list bholiand Developers 0 11-21-2014 09:45 AM
Hersteller in List-Ansicht (anzeigen)ausgeben konstantin_s90 Entwickler 4 08-27-2012 08:02 AM
Bild einer Unterkategorie in list.tpl anzeigen Hotte Templates und Design 5 05-25-2011 11:54 AM
list.tpl Attribute eines Artikels anzeigen... ThomasR Templates und Design 1 11-08-2010 03:53 PM
Beschreibung der Kategorie anzeigen (list.tpl) kathrin-77 Templates und Design 4 05-04-2009 03:00 PM

All times are GMT +1. The time now is 10:28 AM.