Seite 1 von 1

[con 4.9.12] cArticleCollector getContent

Verfasst: Di 13. Jun 2017, 13:24
von mattmarr
Hallo!

Habe da etwas sehr komisches gefunden.

Für ich folgenden Code ausführe, bekomme ich ein leere $article->content .

Code: Alles auswählen

$collector = new cArticleCollector(array(
	'categories'  => $this->subkats
)); 

foreach ($collector as $varticle) {
	var_dump($article->content);
}
Setze ich vor der Ausgabe ein getContent, wird mir auch was ausgegeben.

Code: Alles auswählen

$collector = new cArticleCollector(array(
	'categories'  => $this->subkats
)); 

foreach ($collector as $varticle) {
	$h1 = $article->getContent('CMS_HEAD', 1);
	var_dump($article->content);
}
Mach ich da irgendwas falsch oder hat Contenido ein Problem?
Dieses Problem hat mir wieder dutzende neue graue Haare beschert.


Gruß
Matthias

Re: [con 4.9.12] cArticleCollector getContent

Verfasst: Di 13. Jun 2017, 14:15
von Faar
mattmarr hat geschrieben: Di 13. Jun 2017, 13:24 Mach ich da irgendwas falsch
Ich vermute mal ja.

Code: Alles auswählen

$collector = new cArticleCollector(array(
	'categories'  => $this->subkats
)); 

foreach ($collector as $varticle) {
	var_dump($article->content);
}
$collector ist seit der ersten Zeile ein Objekt der Klasse cArtikelCollector und kein Array.
Schon darum dürfte das foreach() so nicht funktionieren.

Die Optionen, die an die Klasse weiter gegeben werden, sind sehr seltsam: 'categories' => $this->subkats
Die sollten eher so lauten:

Code: Alles auswählen

$options = array ('idcat' => $CatID, "start" => true, "startonly" => false);
$collector = new cArticleCollector($options);
Und danach wird es so ausgelesen:

Code: Alles auswählen

   	while ($article = $collector->nextArticle()){
   		$article_id = $article->getField('idart');
   		$text = $article->getContent('CMS_HTML', 1);
  		$imgID = $article->getContent('CMS_IMGEDITOR', 1);
                usw.
      }