Kategorie System erstellen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
BrainAK
Mitglied
Beiträge: 18
Registriert: 15.03.2014 19:56

Kategorie System erstellen

Beitrag von BrainAK »

Hallo,

da ich nicht viel von Wordpress halte und mir bei den vorhandenen Mods viele Dinge fehlen, habe ich mich vor langer Zeit dazu entschlossen ein eigenes Newssystem zu schreiben. Mit einer Halbfertiges Kategorie Ansicht habe ich in den letzten Wochen alles fertig stellen können, es fehlt lediglich nur noch das Kategoriesystem wobei ich Hilfe benötige.

Ich habe mir dies im phpBB selber angesehen wie das dort gelöst ist, blicke da aber nicht ganz durch.

Ich habe 2 Kategorien und 2 subkategorien. Diese sollten auch so aufgelistet werden

CAT 1
--- SUB
--- SUB
CAT 2
---SUB
---SUB

Das Problem an der Sache ist das er mir nur die erste Kategorie samt Subcats ausgibt. Die 2 Kategorie oder mehr werden erst gar nicht eingeblendet

Code: Alles auswählen

/*
       * Kattegorie auslesen.
       * cat = 1 Kategorie
       * cat = 0 subcat
       * CAT, spalte cat_id enthällt die id derHauptkategoriekategorie zum zuweisen
       */
 $sql = 'SELECT    * FROM ' . NEWS . ' WHERE cat = 1';
      $result = $db->sql_query($sql);
      while ($row = $db->sql_fetchrow($result)) {
         
         $template->assign_block_vars('cat', array(
             'NAME' => $row['name'],
         ));

         $sql = 'SELECT    * FROM ' . NEWS . ' WHERE cat = 0 AND cat_id = ' . $row['cat_id'];
         $result = $db->sql_query($sql);
         while ($topic = $db->sql_fetchrow($result)) {
            
            $template->assign_block_vars('cat.cat_value', array(
                'NAME' => $topic['name'],
            ));
         }
         $db->sql_freeresult($result);
         
      }
      $db->sql_freeresult($result); 

Code: Alles auswählen

<!-- BEGIN cat -->
{forum_cat.NAME}
<!-- BEGINcat_value -->
{forum_value.NAME}<br>
<!-- END cat_value -->
<!-- ENDcat -->
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Kategorie System erstellen

Beitrag von Miriam »

Du hast auch die Kategorie 1 in der SQL Query als Vorgabe gewählt. Wie sollen denn dann weitere Kategorien ausgegeben werden?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
BrainAK
Mitglied
Beiträge: 18
Registriert: 15.03.2014 19:56

Re: Kategorie System erstellen

Beitrag von BrainAK »

$sql = 'SELECT * FROM ' . NEWS . ' WHERE cat = 1';

diese meinst du?
Dies ist keine ID sondern nur ein Eintrag das dies eine Hauptkategorie ist.
cat = 1 Hauptkategorie ( davon existieren 2 einträge)
cat = 0 Subcat ( davon 4)

1 SQL Frage Hauptkategorien (cat =1)
die 2 SQL Abfrage innderhalb der while dient für das Abfragen der Subcats (cat = 0)
Splate cat_id in der 2 SQL Abfrage enthällt die id der Hauptkategorie damit man weiss das diese Subcat zu dieser hauptcat gehört
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Kategorie System erstellen

Beitrag von Miriam »

Werf doch mal einen Blick auf die function display_forums() in der Datei includes\functions_display.php.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
BrainAK
Mitglied
Beiträge: 18
Registriert: 15.03.2014 19:56

Re: Kategorie System erstellen

Beitrag von BrainAK »

BrainAK hat geschrieben:
Ich habe mir dies im phpBB selber angesehen wie das dort gelöst ist, blicke da aber nicht ganz durch.
Ich glaube man liest meine Beiträg enicht ganz durch :-?
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Kategorie System erstellen

Beitrag von Miriam »

Also ich konnte aus dem zitierten Beitrag nicht herauslesen, wo Du genau nachgeschaut hast.

Na gut, kommen wir also zu Deinem Code:

Code: Alles auswählen

         $db->sql_freeresult($result);
         
      }
      $db->sql_freeresult($result);  
ist kontraproduktiv, da nach dem Durchlauf der "inneren" WHILE Schleife nicht nur die Ressource der "inneren" SQL Abfrage, sondern auch noch gleich die der darüber liegenden SQL Abfrage freigegeben wird.
Somit ist nach dem ersten Durchlauf der inneren WHILE Schleife Schluß.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
BrainAK
Mitglied
Beiträge: 18
Registriert: 15.03.2014 19:56

Re: Kategorie System erstellen

Beitrag von BrainAK »

Ok, ich habe diese jetzt einzeln und auch beide einmal entfernt, leider bleibt das Ergebnis gleich. Er gibt nur die erste Newskategorie mit den zugehörigen Subcats aus, andere Kategorien werden nicht angezeigt.

EDIT: Danke, dein Hinweis brachte mich dazu die 2 SQL Abfrage etwas abzuändern.


$sqli = 'SELECT * FROM ' . FORUM . ' WHERE cat = 0 AND cat_id = ' . $row['forum_id'];
$resulti = $db->sql_query($sqli);
while ($topic = $db->sql_fetchrow($resulti)) {
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Kategorie System erstellen

Beitrag von Miriam »

Genau das war die Lösung: Umbenennen der Variablen 8)
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“