Kategorie/Foren/Topics/Posttext browsen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
karstenkurt
Mitglied
Beiträge: 568
Registriert: 06.03.2005 14:11
Kontaktdaten:

Kategorie/Foren/Topics/Posttext browsen

Beitrag von karstenkurt »

Hallo,

ich möchte gerne auf einer seperaten php-Seite einen Teil meines Forum anzeigen. Allerdings in genau den Kategorien wie ich sie angelegt habe.
Hab den CH-Mod 2.0.5 installiert und möchte ohne "guten" Grund auch nicht auf eine höhere Version wechseln.

Die Struktur geht teilweise über 4 Ebenen Kategorien und dann in Foren und Topics über.
Bespiel:
1.) Kat1
2. --> Kat1.1
3. --> Kat1.2
4. --> Kat1.2.1
5. --Forum1.2.1.1
6. --> Text
usw.

Nun möchte ich ein Script erstellen, welches mir eine Übersicht über die Kategorien/Foren/Topics/Texte zur Verfügung stellt und zwar immer Ebenenweise. D.h. zeige alle Kategorien der Ebene x, wenn keine Kategorien vorhanden sind, nehme die Foren und und zum Schluss die Topics bzw. die Post-Texte.

Hatte mir das folgendermassen gedacht. Nehme Kategorie 1 (id z.b. 12) als EInstiegspunkt.
Ermittle Anzahl der Unterkategorien mittels

Code: Alles auswählen

$sql='select count(*) as anzahl from ' . CATEGORIES_TABLE. ' where cat_main=12';
Wenn die Anzahl grösser als 0, dann zeige diese Kategorien an. Ermitteln geht mitels

Code: Alles auswählen

$sql = "SELECT cat_id,cat_title,cat_main FROM " . CATEGORIES_TABLE . "
 WHERE `cat_main`=" . $id . " order by cat_title";
Wenn die Anzahl gleich Null, dann nehme die Daten aus der Forums-Tabelle

Code: Alles auswählen

$sql = "SELECT `forum_name`,`forum_id` FROM " . FORUMS_TABLE . "
            WHERE cat_id=" . $id . " order by forum_name";
Normalerweise sollte das rekursive Durchlaufen der Tabellen phpbb_categorie,phpbb_forums, phpbb_topics,phpbb_posts eigentlich nicht so das Problem sein, zumal ich immer nur eine Ebene zur Zeit brauche. Leider komme ich immer wieder an Stellen, wo es nicht so klappt.

Allerdings stell ich mich zu dusselig an. Hab da schon ein wenig rumgespielt, aber irgendwie funktioniert das nicht so richtig. Kennt jemand ein Tutorial, welches das Problem abdeckt oder hat jemand ein fertiges Skript?
Vielleicht kann mir ja der Rabbit helfen.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Also auf den ersten Blick kann ich da jetzt keine offensichtlichen Fehler erkennen. Vielleicht kannst du ja mal beschreiben was "irgendwie funktioniert das nicht so richtig" heißen soll.
KB:knigge
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Code: Alles auswählen

cat_main
Ist keine bekannte Spalte?!

Auch sind "cat_id" in CH unwichtig. (Kategorien werden in CH als normalen Foren behandelt). Funktionieren tun sie aber dennoch ;)
Zuletzt geändert von mgutt am 01.03.2006 16:24, insgesamt 1-mal geändert.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
karstenkurt
Mitglied
Beiträge: 568
Registriert: 06.03.2005 14:11
Kontaktdaten:

Beitrag von karstenkurt »

mgutt hat geschrieben:

Code: Alles auswählen

cat_main
Ist keine bekannte Spalte?!
Bei meinem CH-Mod schon.

Code: Alles auswählen

CREATE TABLE `phpbb_categories` (
  `cat_id` mediumint(8) unsigned NOT NULL auto_increment,
  `cat_title` varchar(100) collate latin1_general_ci default NULL,
  `cat_order` mediumint(8) unsigned NOT NULL default '0',
  `cat_main_type` char(1) collate latin1_general_ci default '',
  `cat_main` mediumint(8) unsigned default '0',
  `cat_desc` text collate latin1_general_ci NOT NULL,
  `icon` varchar(255) collate latin1_general_ci default '',
  PRIMARY KEY  (`cat_id`),
  KEY `cat_order` (`cat_order`)
);
@Pyramide:
Ich werds heute abend nochmal genau durchgehen und dann versuchen in Worte zu kleiden.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Es gibt bei mir nur: (aktuelle CH)

Code: Alles auswählen

cat_id  cat_title  cat_order 
Aber das gleiche wird aktuell erzielt mit "forum_main" aber im Forenbereich (phpbb_forums). Kommt also das gleiche bei raus bzw. die Abfrage ist dann leichter, weil Du alle Foren komplett über einen Query auslesen kannst.

Sonst würde mich auch mal der Fehler interessieren, der gemeldet wird oder wie Dein Code aussieht.

Gruß Marc
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
karstenkurt
Mitglied
Beiträge: 568
Registriert: 06.03.2005 14:11
Kontaktdaten:

Beitrag von karstenkurt »

Hab CH-Mod 2.0.5 (siehe oben). Hast Du mal ein SQL-Statement welches die gewünschten Info aus den Tabellen Categories, forums, topics, posts und post_text abzieht und entsprechend verknüpft. Da haperts im Augenblick ein wenig.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Ich habe bisher leider noch nicht durchgeblickt wie Dein Ergebnis aussehen soll.

Also Du hast eine index mit allen Cats und Foren.

Wenn Du in Cat "- Kat1.2.1 (ID4)" bist also mit:
meinedomain.de/liste.php?id=4

Dann siehst Du im Endeffekt nur:
- Forum1.2.1.1 (ID5)
Wenn Du dann aufrufst:
meinedomain.de/liste.php?id=5

Dann siehst Du eine Liste mit Posts aus diesem Forum mit der ID5 oder?

Bei:
meinedomain.de/liste.php?id=1

siehst du dagegen nur:
- Kat1.1 (ID2)
- Kat1.2 (ID3)
Im Endeffekt hast Du dann doch nur eine Kopie von Deinem Forum, wie es sowieso schon ist oder nicht?

Warum kopierst Du dann nicht einfach die index.php und nutzt ein anderes template?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
karstenkurt
Mitglied
Beiträge: 568
Registriert: 06.03.2005 14:11
Kontaktdaten:

Beitrag von karstenkurt »

Genau richtig verstanden. Eine Index mit einem anderen template, wäre eine Möglichkeit, abe ich möchte ja nur einen Teilbereich des Forums abbilden. Alles was unterhalb einer vorher definierten Kategorie liegt, also nicht das komplette Forum. Hast Da ne Idee?
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Nenn sie z.B. index2.php

Dann kannst Du beispielsweise wenn ID= leer ist (z.B. wenn index2.php direkt aufgerufen wurde), dann soll er ID=12 nehmen.

nach dieser zeile z.b.:

Code: Alles auswählen

$forum_id = _read(POST_FORUM_URL, TYPE_INT);
erweitern mit:

Code: Alles auswählen

$forum_id = empty($forum_id) ? $forum_id = '12' : $forum_id;
Um ein anderes template zu nehmen, habe ich beispielsweise eine neue header klasse angelegt. Dann konnte ich jeweils eine anderen overall_header bzw. footer nehmen.

vielleicht steigst du hier durch:
http://www.phpbb.de/viewtopic.php?t=969 ... der+klasse

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
karstenkurt
Mitglied
Beiträge: 568
Registriert: 06.03.2005 14:11
Kontaktdaten:

Beitrag von karstenkurt »

Danke. Werd das morgen mal durchprobieren.
Antworten

Zurück zu „Coding & Technik“