[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Alle Kategorien der aktuellen Kategorie auslesen - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
mmh
Beiträge: 118
Registriert: 17. Apr 2012, 13:20

Alle Kategorien der aktuellen Kategorie auslesen

16. Nov 2015, 11:29

Hallo zusammen,
ich würde gerne alle Kategorien einer Ebene bzw. den Namen und das art_file des jeweiligen Startartikels auslesen.
Ich habe es soweit auch hinbekommen, aber ich denke das geht noch schöner. Leider bin ich nicht so der PHP Freak.

Code: Alles auswählen

$catID = OOCategory::getCategoryById($this->getValue("category_id"));
$catParentID = $catID->getParent();
$childCatID = $catParentID->getChildren(true);
foreach ($childCatID as $var)
	{
		$artNAME =  $var->getValue("name");
		$artIMG =  $var->getValue("art_file");
		echo $artNAME.'<br><img src="./files/'.$artIMG.'" /><br>';		
	}	
Gibts das irgendwie auch in schön ;-)
Danke
Marco

Benutzeravatar
alexplus
Beiträge: 212
Registriert: 13. Feb 2007, 15:03
Wohnort: Heilbronn
Kontaktdaten: Website

Re: Alle Kategorien der aktuellen Kategorie auslesen

19. Nov 2015, 09:50

Schön ist, was du daraus machst! ;)

Im ernst, das ist das minimalste PHP-Beispiel, was es dazu gibt. Du musst nur in

Code: Alles auswählen

      echo $artNAME.'<br><img src="./files/'.$artIMG.'" /><br>';      
den HTML-Code so abändern, dass du was schönes rausbekommst. Da spielt PHP gar keine Rolle.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Alle Kategorien der aktuellen Kategorie auslesen

19. Nov 2015, 12:03

Da spielt PHP gar keine Rolle.
Ohhh mein lieber Alex....und ob PHP eine Rolle spielt und zwar genau dann wenn du nach Jahren deinen eigenen Code abändern musst und nicht mehr genau verstehst was du da eigentlich gemacht hast. Oder natürlich wenn andere Coder ran müssen...dann ist das noch nerviger wenn nicht sauber gecoded wurde ;)

Hier deshalb meine Anmerkungen (aus meinem persönlichen Coding-Style herausgesprochen wohl gemerkt ;)):

* Die Variablennamen sind nicht gut benannt. Z.B. gibt OOCategory::getCategoryById() ein Kategorieobjekt zurück und nicht ne Id. Deshalb wäre $category sinnvoller als $catID. getChildren() wäre $children oder $categoryChildren am sinnvolsten, nicht $childCatID.
* Auch die Gorßschreibung würd ich weglassen. Ist unüblich und sieht komisch aus.
* $var ist so ziemlich der schlimmste Variablename den man sich ausdenken kann, weil absolut nichts sagend über den Inhalt. Da bei dir $var ein einzelnes Kategorieobjekt darstellt sollte es auch so beannnt werden $cat/$category.
* $artName? Das sind doch die Meta Infos einer Kategorie?!
* Und die Klammern werden üblicherweise auch nicht so gesetzt.
* Desweiteren sollten immer prüfungen rein ob, die Objekt auch tatsächlich da sind.
* noch ein Kommentar was der ganze Codeblock eigentlich macht wäre noch das i Tüpfelchen :D

Hier das ganze durch den RexDude Code Beautifier gejagt :D

Code: Alles auswählen

// generate an image list based on parent category children
$currentCategoryId = $this->getValue("category_id");
$currentCategory = OOCategory::getCategoryById($currentCategoryId);
$parentCategory = $currentCategory->getParent();
    
if (is_object($parentCategory)) {
    $parentCategoryChildren = $parentCategory->getChildren(true);

    foreach ($parentCategoryChildren as $category) {
        $name =  $category->getValue("name");
        $image =  $category->getValue("art_file");

        echo $name . '<br><img src="./files/' . $image.'" /><br>';      
    }
} 

mmh
Beiträge: 118
Registriert: 17. Apr 2012, 13:20

Re: Alle Kategorien der aktuellen Kategorie auslesen

30. Nov 2015, 10:15

Moin RexDude,
danke für deine Tips die ich auf jedne Fall beherzigen werde!
Eigentlich ging es darum, dass ich den Weg komisch fand, erst das Elternelement und dann wieder dessen Kinder abzufragen. Ich dachte es gibt sowas wie zeige mich und meine Geschwister.
Aber scheinbar hatte ich technisch schon den richtigen weg gewählt.
Trotzdem hast du recht. Ich hab das durch Trail and Error zusammengepackt und nachher nicht mehr drüber geschaut ob alles sauber ist. Danke dir.

Marco

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Alle Kategorien der aktuellen Kategorie auslesen

30. Nov 2015, 10:27

Moin!

Kein Problem :) Wegen andere Möglichkeit hab ich gar net geschaut ehrlich gesagt. Ich hab nur den Code und Alex Meinung dazu gelesen und da musst ich mal was sagen dazu :lol:
Schau sonst halt ins Cheetsheet ob es noch andere PHP-Methoden gibt, mit denen du schneller oder direkter ans Ziel kommst.

Zurück zu „Allgemeines [R4]“