Class cArticleCollector Options

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
mattmarr
Beiträge: 361
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Class cArticleCollector Options

Beitrag von mattmarr »

Hallo!

Mal eine generelle Frage.

Es betrifft die Class cArticleCollector -> setOptions.
Dort wird bei allen Optionen auf isset() geprüft.
Wäre es nicht ratsamer auf korrekten oder vorhanden Inhalt zu prüfen, anstelle von isset()?

Beispiel #1 funktioniert: Rekursiv alle Kategorien 1, 2, 3 und 4 ausgeben:

Code: Alles auswählen

$col = new cArticleCollector(array(
	'idcat' => 1,
	'categories'  => array(2,3,4)
    ));
Beispiel #2 funktioniert nicht: Nur Kategorie 1 ausgeben:

Code: Alles auswählen

$col = new cArticleCollector(array(
	'idcat' => 1,
	'categories'  => ''
    ));
Ich bin darauf gestossen, da ich mir derzeit die Class cArticleCollector umbaue, um Performance einbrüche im Contenido zu umgehen.


Gruß
Matthias
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: Class cArticleCollector Options

Beitrag von Faar »

Mir geht die Logik des doppelten Setzens der idcat in der Klasse (noch) nicht in den Sinn.
Einmal als idcat und einmal als categories.
Vielleicht gibt es da einen und kann es mir erklären? :shock:

@mattmar

Code: Alles auswählen

101:         if (isset($options['idcat']) && !isset($options['categories'])) {
102:             $options['categories'] = array(
103:                     $options['idcat']
104:             );
105:         }
Der Code setzt darauf ab, dass 'categories' nicht gesetzt ist, also zumindest false ist.
Aber categories = ' ' ist nicht unbedingt false, sondern leer, also empty().
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
mattmarr
Beiträge: 361
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: Class cArticleCollector Options

Beitrag von mattmarr »

Hallo Faar,
Faar hat geschrieben:Mir geht die Logik des doppelten Setzens der idcat in der Klasse (noch) nicht in den Sinn.
...
Wird nur eine IDCAT angegeben, sollen wohl nur die Artikel aus der IDCAT gelesen werden.
Wird wohl zusätzlich bei CATEGORIES ein array mit IDCATs übergeben, werden diese ebenfalls berücksichtigt. So kann man z.b. eine Rekursive ausgabe aufbauen. So mach ich das jedenfalls.



Gruß
Matthias
frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Class cArticleCollector Options

Beitrag von frederic.schneider_4fb »

Vielen Dank für Deine Anregungen, von denen sicherlich die Community profitieren wird! Wir werden uns das auch mal näher ansehen
Frederic Schneider
Entwickler bei der four for business AG
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: Class cArticleCollector Options

Beitrag von Faar »

mattmarr hat geschrieben:Wird nur eine IDCAT angegeben, sollen wohl nur die Artikel aus der IDCAT gelesen werden.
Das funktioniert in der Klasse wohl auch so:

Code: Alles auswählen

101:         if (isset($options['idcat']) && !isset($options['categories'])) {
102:             $options['categories'] = array(
103:                     $options['idcat']
104:             );
105:         }
Wenn idcat gesetzt ist und aber categories nicht, dann soll die idcat für die categories übernommen werden.
In der Klasse wird das aber nur mit isset() geprüft und nicht zusätzlich mit empty().
Wird wohl zusätzlich bei CATEGORIES ein array mit IDCATs übergeben, werden diese ebenfalls berücksichtigt.
Nun kommt Dein Code, worin du die categories setzst, zwar mit leerem Inhalt aber isset==true.

Code: Alles auswählen

$col = new cArticleCollector(array(
   'idcat' => 1,
   'categories'  => ''
));
Besser wäre in deinem Fall, wenn du nur idcat=>1 gesetzt hättest, denn dann wird isset(categories)==false.
Und/oder 4fb baut noch das empty() dazu in ihrer Abfrage in der Klasse.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Class cArticleCollector Options

Beitrag von frederic.schneider_4fb »

Ich bin am Mittwoch wieder im Büro und melde mich dann ;-)
Frederic Schneider
Entwickler bei der four for business AG
mattmarr
Beiträge: 361
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: Class cArticleCollector Options

Beitrag von mattmarr »

Hallo frederic!
frederic.schneider_4fb hat geschrieben:Ich bin am Mittwoch wieder im Büro und melde mich dann ;-)
Ich werde hier brav sitzen bleiben und warten. :)
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: Class cArticleCollector Options

Beitrag von Faar »

Das ist ja erst nächste Woche?! :shock:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Class cArticleCollector Options

Beitrag von frederic.schneider_4fb »

Faar hat geschrieben:Das ist ja erst nächste Woche?! :shock:
Sehr gut beobachtet :))
Frederic Schneider
Entwickler bei der four for business AG
Antworten