LoadCategoryArticles hilfe

Hey leute,
ich bin am verzweifeln…

Wie schwer kann es sein, die Artikel einer Kategorie (Im PHP Teil) zu laden?



class trostart extends trostart_parent
{

    /**
     * Function fetches all articles for the given category.
     * The category is static for now and is for category "Produkte"
     * with the given OXID.
     * 
     * @return array List of Articles
     */
    public function getAllArticles()
    {
        $aList = oxNew('oxArticleList');        
        $aArticles = $aList->loadCategoryArticles('oia9ff5c96f1f29d527b61202ece0829', '');

        var_dump($aArticles) // => 5
        die; 
    }
}

Wieso krieg ich denn nur die Anzahl der Artikel zurück? :confused:
Ich will lediglich alle Artikel einer bestimmten Kategorie haben. Im Smarty-Teil würde es mir theoretisch auch reichen. Hilfe :frowning:

weil:


[b]oxArticleList->loadCategoryArticles($sCatId, $aSessionFilter, $iLimit = null )[/b]
Loads articles for the give Category

[b]Parameters:[/b]
	string	$sCatId Category tree ID
	array 	$aSessionFilter Like array ( catid => array( attrid => value,...))
	int		$iLimit Limit
[b]Returns:[/b]
	integer	total Count of Articles in this Category
Definition at line 397 of file oxarticlelist.php.

quelle: http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.9.3/classox_article_list.html#a9658b1d8312d0fc306f4034100371bb2

Hi,
die Funktion die du aufrufst gibt dir die Anzahl zurück.

Aus dem Gedächtnis getippt:


            foreach ($aList as $oArticle) {
                //irgendwas mit dem $oArticle article object machen
            }

oder $aList zurückgeben und im smarty template per foreach drüber gehen.

Wenn du eainfach nur reinschauen willst: var_dump($aList);

[QUOTE=vanilla thunder;157988]weil:


[b]oxArticleList->loadCategoryArticles($sCatId, $aSessionFilter, $iLimit = null )[/b]
Loads articles for the give Category

[b]Parameters:[/b]
	string	$sCatId Category tree ID
	array 	$aSessionFilter Like array ( catid => array( attrid => value,...))
	int		$iLimit Limit
[b]Returns:[/b]
	integer	total Count of Articles in this Category
Definition at line 397 of file oxarticlelist.php.

quelle: http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.9.3/classox_article_list.html#a9658b1d8312d0fc306f4034100371bb2[/QUOTE]

Ist mir schon klar, hab ich da auch gefunden. Dann ist es ein ziemlich dummes naming, das ist nur am Rande…
Aber ich will die Artikel laden, keinen count davon haben. Es muss doch möglich sein, ein Array von Objekten zu bekommen, welche jeweils den Typ Artikel haben, oder nicht? Habe nachgeschaut bei
aList, oxArticleList, oxArticles, oxCategories … nirgendwo finde ich eine funktion, um die Artikel einer Cat zu laden?! Muss ich dafür echt ein Model ergänzen?

[QUOTE=R.Nitzer;157990]Hi,
die Funktion die du aufrufst gibt dir die Anzahl zurück.

Aus dem Gedächtnis getippt:


            foreach ($aList as $oArticle) {
                //irgendwas mit dem $oArticle article object machen
            }

oder brachial einfach var_dump($aList);[/QUOTE]

Das probiere ich mal aus

// Update:


 $aList = oxNew('aList');
 foreach($aList as $oArticle) {
    dumpVar($oArticle) // null
}

das hat noch nicht so ganz geholfen :confused:

[QUOTE=dfu;157991]Ist mir schon klar, hab ich da auch gefunden. Dann ist es ein ziemlich dummes naming, das ist nur am Rande…
Aber ich will die Artikel laden, keinen count davon haben. Es muss doch möglich sein, ein Array von Objekten zu bekommen, welche jeweils den Typ Artikel haben, oder nicht? Habe nachgeschaut bei
aList, oxArticleList, oxArticles, oxCategories … nirgendwo finde ich eine funktion, um die Artikel einer Cat zu laden?! Muss ich dafür echt ein Model ergänzen?[/QUOTE]

Was die Funktion macht und was Sie zurückgibt sind 2 paar Schuhe. :wink:
Die Funktion lädt schon die Artikel, du must dann auch entsprechend mit dem Object arbeiten.

warum “dummes naming”?
Hast du schon mal was von OOP gehört?

die Funktion heißt “loadCategoryArticles”,
auf Deutsch also “Lade-Kategorien-Artikel”, was sie auch macht.

Insgesamt betrachtet hast du folgenden Code:
$Artikelliste = neue Artikelliste();
$aArticles = $Artikelliste->lade-Kategorien-Artikel()

die Artikelliste lädt auch die Artikel, aber du benutzt sie gar nicht, sondern $aArticles, wo die Anzahl der Artikel, die geladen wurden, drin gespeichert wird.
Arbeite mit deiner oxArticleList weiter. Da kriegst du ggf mit getArray() auch die Artikel als Array wieder raus,

Ich nehm alles zurück. Total dumm von mir, nicht vom Naming. Danke für den Denkanstoß. Shame on me :confused:

[QUOTE=R.Nitzer;157993]Was die Funktion macht und was Sie zurückgibt sind 2 paar Schuhe. :wink:
Die Funktion lädt schon die Artikel, du must dann auch entsprechend mit dem Object arbeiten.[/QUOTE]

Das hat mir den Denkanstoß gegeben. Danke schön :slight_smile: