Getlink() gibt keine Kategorie aus

Hallo!

Ich wollte den Slider auf der Startseite in dem “unsere Marken” gezeigt werden mit Artikeln befüllen. Das funktioniert auch wunderbar. Die Bilder werden alle angezeigt, aber der Link zum Produkt funktioniert nicht. Was mache ich falsch?


[{capture name="slides"}]
    [{foreach from=$oView->getKarusellArticleList() item=oKarussell}]
        [{counter assign="slideCount"}]
            <li>
                <a href="[{ $oKarussell->getLink() }]" class="viewAllHover">
                    <span>[{ oxmultilang ident="VIEW_ALL_PRODUCTS" }]</span>
                </a>
                <a class="sliderHover" href="[{ $oKarussell->getLink()}]"></a>
                <img src="[{$oKarussell->getThumbnailUrl()}]" alt="[{ $oKarussell->oxarticles__oxtitle->value }]">
            </li>
        
    [{/foreach}]
[{/capture}]

Als Link wird mir nur die Seite des Artikels angezeigt. Die Kategorie fehlt.
Beispiel: http://www.meineseite.de/Kite-CORE-RIOT-XR.html

Das ist meine getKarusellArticleList:

public function getKarusellArticleList()
    {
        if ( $this->_aKarussellArticleList === null ) {
        	
            $this->_aKarussellArticleList = false;
            if ( $this->_getLoadActionsParam() ) {
                 // start list
                $oArtList = oxNew( 'oxarticlelist' );
                $oArtList->loadKarussellArticles('10');
             
                 if ( $oArtList->count() ) {
                     $this->_aKarussellArticleList = $oArtList;
                 }
            }
        }
        
        return $this->_aKarussellArticleList;
    }

:confused:

Bin für jede Hilfe dankbar

Probier mal getMainLink()

Das hab ich auch schon probiert - geht nicht.

Hab gemerkt, dass der Fehler in meiner loadKarussellArticles liegt:


	public function loadKarussellArticles( $iLimit = null )
	{
 		//has module?
 		$myConfig = $this->getConfig();
		
		if ( !$myConfig->getConfigParam( 'bl_perfLoadPriceForAddList' ) ) {
			$this->getBaseObject()->disablePriceLoad();
		}
		
		$this->_aArray = array();
		
		$sSql = "select oxid from oxactions where vms_carousel_active='1'";
		$oActiveKaroussellId = oxDb::getDb()->getOne($sSql);
		
		$sArticleTable = getViewName('oxarticles');
		$sArticleActionTable = getViewName('oxactions2article');
		
		//by default limit 5
		$sLimit = ( $iLimit > 0 ) ? "limit " . $iLimit : 'limit 5';
		$sSelect  = "select * from $sArticleTable as oa ";
		$sSelect  .= "left join $sArticleActionTable as oaoa on oaoa.oxartid=  oa.oxid ";
		$sSelect  .= "where oaoa.oxactionid = '".$oActiveKaroussellId."' ";
		$sSelect .= " and oa.oxparentid = '' ";
 		$sSelect .= " and oa.oxissearch = 1 ";
		$sSelect .= "and oa.oxparentid = ''  ";
 		$sSelect .= "order by oa.oxsoldamount desc $sLimit";
		
 		$this->selectString($sSelect);
	}

Fehler gefunden: In meinem select fehlt $this->getBaseObject()->getSqlActiveSnippet();

Lösung:

$sSelect  = "select $sArticleTable.* from $sArticleTable ";
		$sSelect  .= "left join $sArticleActionTable on $sArticleActionTable.oxartid=  $sArticleTable.oxid ";
		$sSelect  .= "where ".$this->getBaseObject()->getSqlActiveSnippet()." and  $sArticleActionTable.oxactionid = '".$oActiveKaroussellId."' ";
		$sSelect .= " and $sArticleTable.oxparentid = '' ";
 		$sSelect .= " and $sArticleTable.oxissearch = 1 ";
		$sSelect .= "and $sArticleTable.oxparentid = ''  ";
 		$sSelect .= "order by $sArticleTable.oxsoldamount desc $sLimit";

so - jetzt funktionierts :smiley:
Trotzdem Danke! :slight_smile: