ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / Vorschläge / Erweiterung des [navpath] mit der jeweiligen Kategorie.


Seite 1 von 1

dreamworker schrieb am 13.05.2003 um 22:02 Uhr

Der Titel sagt es; ich möchte entweder in der Topics.html über dem Link "Neues Thema erstellen" den Namen der entsprechenden Board-Kategorie sichbar machen und/oder im Navigationspfad ebenfalls.

Hobts da anen Trick?

Danke im voraus,
Dreamworker

Narodnaja schrieb am 13.05.2003 um 23:20 Uhr

Hab kein ThWB hier, aber so in etwa:

du musst in den "$navpath"-Ausleseteil in der (afaik) header.inc.php noch folgendes einfügen:

falls nicht vorhanden, in den Teil, wo die Tabelle _board ausgelesen wird, noch das Feld "categoryid" auslesen. (Zur Erklärung nehm ich mal an, die Tabelle wird ins array $board eingelesen, falls das nicht stimmt, musst du gleich die $board['categoryid'] entsprechend anpassen).

Dann einen Query hinzufügen:
$r_cat = thwb_query("SELECT categoryname FROM ".$pref."category WHERE categoryid = '".$board['categoryid']."'");
$cat = mysql_fetch_array($r_cat);

dann hast du in der Variable $cat['categoryname'] den Kategorienamen drin.
Den einfach an gewünschter Stelle mit
$navpath .= $cat['categoryname'];
einbauen.

Hoffe du kannst damit was anfangen. Wenn du den Kategorienamen einfach so wo einfügen willst, lass das mit dem $navpath .= usw, und schreib in dein Template einfach $cat[categoryname] rein (ohne einfache Anführungsstriche).

dreamworker schrieb am 13.05.2003 um 23:42 Uhr

Sorry, aber beim ersten Teil steige ich nicht durch [im Moment]. Ich versuche das morgen in Ruhe.

Narodnaja postete
Hoffe du kannst damit was anfangen. Wenn du den Kategorienamen einfach so wo einfügen willst, lass das mit dem $navpath .= usw, und schreib in dein Template einfach $cat[categoryname] rein (ohne einfache Anführungsstriche).

Dieser Teil funktioniert nicht; es erscheint kein Kategoriename, hm?

Danke trotzdem für deine Antwort [vielleicht fällt dir noch etwas ein?]

DW

Narodnaja schrieb am 14.05.2003 um 00:29 Uhr

ok, bin nun daheim.

als erstes: header.inc.php, such den Teil hier:

if( isset($board['boardid']) )
{
    $board['boardid'] = intval($board['boardid']);
    $r_board = thwb_query("SELECT boardid, boardname, styleid, boardthreads, boarddisabled FROM ".$pref."board WHERE boardid=$board[boardid]");
    if( mysql_num_rows($r_board) < 1 )
    {
        message("Fehler", "Board existiert nicht");
    }
    $board = mysql_fetch_array($r_board);

    $navigation[] = "<a class=\"bglink\" href=\"board.php?boardid=$board[boardid]&time=$time\">$board[boardname]</a>";
}

und füge in den Teil mit dem SELECT boardid, boardname, usw noch categoryid an:

$r_board = thwb_query("SELECT boardid, boardname, styleid, boardthreads, boarddisabled, categoryid FROM ".$pref."board WHERE boardid=$board[boardid]");

dann unter $board = mysql_fetch_array($r_board);:

$r_cat = thwb_query("SELECT categoryname FROM ".$pref."category WHERE categoryid = '".$board['categoryid']."'");
$cat = mysql_fetch_array($r_cat);


So sollte es am Ende aussehen:

if( isset($board['boardid']) )
{
    $board['boardid'] = intval($board['boardid']);
    $r_board = thwb_query("SELECT boardid, boardname, styleid, boardthreads, boarddisabled, categoryid FROM ".$pref."board WHERE boardid=$board[boardid]");
    if( mysql_num_rows($r_board) < 1 )
    {
        message("Fehler", "Board existiert nicht");
    }
    $board = mysql_fetch_array($r_board);

    $r_cat = thwb_query("SELECT categoryname FROM ".$pref."category WHERE categoryid = '".$board['categoryid']."'");
    $cat = mysql_fetch_array($r_cat);
    
    $navigation[] = "<a class=\"bglink\" href=\"board.php?boardid=$board[boardid]&time=$time\">$board[boardname]</a>";    
}

dann kannst du per $cat['categoryname'] oder, in Templates, per $cat[categoryname], überall wo du willst, den Kategorienamen anzeigen lassen. Beispielsweise in den Navpath einbauen (such dir die Stelle, wo $navpath definiert wird), oder ähnliches.

dreamworker schrieb am 14.05.2003 um 13:46 Uhr

Es klappt [Danke], bis auf den Navpath - wo wird der definiert?
Ich habe in der Header.inc folgenden Befehl:

create navigation path ( forum / board / thread .. )
*/
$navigation[] = "<a class=\"bglink\" href=\"index.php\">$config[board_name]</a>";
$navigation = thwb_array_reverse($navigation);
while( list($key, $val) = each($navigation) )
{
    $navpath .= "$val &raquo; ";
}

/*

DW.

Narodnaja schrieb am 14.05.2003 um 14:22 Uhr

$navpath wird erweitert in

- board.php
- calender.php
- changeemail.php
- edit.php
- help.php
- index.php
- listavatar.php
- memberlist.php
- newcevent.php
- news.php
- newtopic.php (3x)
- pm.php (11x)
- postops.php (2x)
- rank.php
- register.php (3x)
- reply.php (3x)
- search.php (2x)
- showtopic.php
- team.php
- threadops.php (mehrmals)
- vprofile.php

und natürlich als erstes gesetzt in der header.inc.php.

interessant für deine Anwendung sind board.php, edit..php, newtopic.php, reply.php und showtopic.php.

Dort einfach zb aus

$navpath .= 'Threadansicht';

$navpath .= $cat['categoryname'].' | Threadansicht';

machen (oder so ähnlich, wie du halt willst).

dreamworker schrieb am 14.05.2003 um 14:50 Uhr

$navpath .=  $cat['categoryname']. ' » Themenübersicht';

Das funktioniert; danke. Eines aber noch; die Pfadanzeige schaut jetzt so aus:

"Pfad » Hauptforum » Board » Kategorie » Themenübersicht"

Wie setze ich die Kategorie vor den Boardnamen und verknüpfe sie mit der entsprechenden Kategorie auf der Hauptseite?

Kann das etwas mit diesem Befehl zu tun haben:

*/
$navigation[] = "<a class=\"bglink\" href=\"index.php\">$config[board_name]</a>";
$navigation = thwb_array_reverse($navigation);
while( list($key, $val) = each($navigation) )
{
    $navpath .= "$val &raquo; ";
}

/*

DW.

Narodnaja schrieb am 14.05.2003 um 16:12 Uhr

das einfügen des Navpath da oben geht sehr einfach: füge nach dem Teil:

/*
################################################################################
            create navigation path ( forum / board / thread .. )
################################################################################
*/

einfach das hier ein:

if ($cat['categoryname'] != '')
{
    $navigation[] = "<a class=\"bglink\" href=\"board.php?board[boardid]=-".$board['categoryid']."\">".$cat['categoryname']."</a>";
}

direkt danach kommt das alte:

$navigation[] = "<a class=\"bglink\" href=\"index.php\">$config[board_name]</a>";
$navigation = thwb_array_reverse($navigation);
while( list($key, $val) = each($navigation) )
{
    $navpath .= "$val &raquo; ";
}

Damit sollte nun aber alles klappen :)

dreamworker schrieb am 14.05.2003 um 19:23 Uhr

Alter Schwede, gute Arbeit ;-).
Ist es ok Dich bei entsprechenden Fragen weiterhin zu konsultieren?

Dreamworker

PS:
Da fällt mir gleich noch etwas ein.
Wenn ich im navpath auf den Link zur Kategorie klicke und die Einzelkategorie erschein ohne die anderen, zeigt mir der navpath keine Kategorie mehr an. In allen anderen Bereichen klappt es.

Wäre ein hilfreiches Feature.

DW

Narodnaja schrieb am 15.05.2003 um 17:21 Uhr

*g* naja lieber hier im Forum, da können dann auch andere helfen ;)

Hmm. Das Problem ist das, dass in der Boardübersicht einfach noch keine Kategorie geladen wird. Man könnte höchstens versuchen, den Kategorienamen auszulesen, falls die boardid negativ ist ... kann ich aber jetz nicht testen :rolleyes:

dreamworker schrieb am 16.05.2003 um 21:17 Uhr

Danke aber erst einmal [natürlich im Forum].

DW :-)

Seite 1 von 1