Alle Artikel einer Kategorie anzeigen [status:offen]

Hallo liebe Community,

ich grübel schon seit einiger Zeit an einem Problem.

Ich möchte eine neue Ansicht ins Template einbauen und möchte dafür am unteren ende der Auflistung über der Seitenzahlanzeige eine Kleine Leiste mit allen Artikel anzeigen.

Dafür würde ich gerne alle Artikel dieser Kategorie auflisten. Ich bin mir bewusst das so etwas bei vielen Artikel die Performence drücken kann, jedoch werden es nicht so viele Artikel sein.

in tpl\page\list\list.tpl habe ich diesen Code eingefügt.

 [{* List types: grid|line|infogrid *}]
        [{include file="widget/product/list.tpl" type=$oView->getListDisplayType() listId="productList" products=$oView->getArticleList()}]
			
			<div style="vertical-align:middle;width:100%;background:#fff;height:50px;text-align:center;">
				[{foreach from=$oView->getArticleList() item=product name=productlist}]
					[{include file="widget/product/listitemmenu.tpl" product=$product }]
				[{/foreach}]
			</div>
        
		[{include file="widget/locator/listlocator.tpl" locator=$oView->getPageNavigationLimitedBottom() place="bottom"}]

Die widget/product/listitemmenu.tpl sieht wie folgt aus

    
        <a href="[{$_productLink}]"  title="[{ $product->oxarticles__oxtitle->value}]">
            <img  style="height:50px;" src="[{$product->getPictureUrl(1)}]" alt="[{ $product->oxarticles__oxtitle->value}]">
        </a>

ich stecke leider in einer sackgasse und weis leider nicht warum er nicht einfach alle Artikel auflistet. Stelle ich in der Artikelanzahl auf z.B. 32 stelle dann listet er 32 auf stelle ich auf 1 listet er nur Eine auf.

Ich hoffe ihr könnt mir weiterhelfen, wahrscheinlich ist es ein banaler Fehler den ich einfach nur übersehe.

Vielen Dank schonmal im Vorraus für eure Hilfen

Grüße TeV@Dreizagg

[QUOTE=tev@dreizagg;62679]
ich stecke leider in einer sackgasse und weis leider nicht warum er nicht einfach alle Artikel auflistet. Stelle ich in der Artikelanzahl auf z.B. 32 stelle dann listet er 32 auf stelle ich auf 1 listet er nur Eine auf.

Ich hoffe ihr könnt mir weiterhelfen, wahrscheinlich ist es ein banaler Fehler den ich einfach nur übersehe.[/QUOTE]

Hallo,

du wirst um ein kleines Modul nicht rum kommen. Wie du bemerkt hast, stehen auf der Kategorie nur die ausgewählten Artikel zur Verfügung.

In dem Modul könntest du auch einfach nur benötigten Daten abfragen, so dass du das Performanceproblem mit abfedern kannst.

Gruß Joscha

Hallo!

Die Funktion getArticleList() greift auf die Funktion “_loadArticles()”, die nur so viele Artikel aus der Datenbank holt, wie viele angezeigt werden.

  protected function _loadArticles( $oCategory )
     {
         $myConfig = $this->getConfig();
 
         $iNrofCatArticles = (int) $myConfig->getConfigParam( 'iNrofCatArticles' );
         $iNrofCatArticles = $iNrofCatArticles?$iNrofCatArticles:1;
 
         // load only articles which we show on screen
         $oArtList = oxNew( 'oxarticlelist' );
         $oArtList->setSqlLimit( $iNrofCatArticles * $this->_getRequestPageNr(), $iNrofCatArticles );
         $oArtList->setCustomSorting( $this->getSortingSql( $oCategory->getId() ) );
 
         if ( $oCategory->isPriceCategory() ) {
             $dPriceFrom = $oCategory->oxcategories__oxpricefrom->value;
             $dPriceTo   = $oCategory->oxcategories__oxpriceto->value;
 
             $this->_iAllArtCnt = $oArtList->loadPriceArticles( $dPriceFrom, $dPriceTo, $oCategory );
         } else {
             $aSessionFilter = oxSession::getVar( 'session_attrfilter' );
 
             $sActCat = oxConfig::getParameter( 'cnid' );
             $this->_iAllArtCnt = $oArtList->loadCategoryArticles( $sActCat, $aSessionFilter );
         }
 
         $this->_iCntPages = round( $this->_iAllArtCnt/$iNrofCatArticles + 0.49 );
 
         return $oArtList;
     }

Um wirklich alle Artikel anzeigen zu lassen, musst du ein Modul schreiben, der unbegrenzte Anzahl von Artikeln aus der Datenbank holt.

mfg

Hallo, erstmal danke an euch für die schnelle Antwort.

Leider komm ich immer noch nicht weiter, hab auch schon versucht die Funktion anzupassen aber selbst da komm ich nicht weiter.

Evtl hat ja noch jemand einen Tip

Vielen Dank

Grüße
Tev@dreizagg