Nav im Header des Forums

Nun, mein Forum ist auch mein Erstes. Nur hab ich mir das ganze etwas "leicht" gemacht, da ich nichts Objekt-Orientiert programmiert habe. Wobei das auch gehen sollte... Spaltenname, Tabellenname und die ID als Parameter reichen ja aus, um die Breadcrumb individual für alle Navigationstabellen verwenden.
 
Also ich füge jez nach und nach mal deine Tipps ein...nur ein Prob habe ich.....

Also ich lese momentan mit einer while Schleife alle Forenkats aus, die ParentForumID = 0 haben....in diese While Schleife lese ich gleichzeitig eine erneute While schleife aus, die mir alle Subforen ausgibt, deren ParentForumID = id des Forums sind.

So das Prob ist wenn ich jez zb. auf ein Hauptforum....also ParentForumID klicke soll er es net als richtiges Forum erkennen...also worin ich Posts machen kann sondern soll mir die Subforen ausgeben.... wie mache ich das :(

EDIT//

Habe das Prob nun beseitigt :)

Werde mich ma dran machen und bissle am addform usw rumbasteln :)

Also vielen Dank erstmal ^^

MFG Niels
 
Zuletzt bearbeitet:
Also habe mal deine function für die Breadcrumbnav bissle umgeändert und an mein OOP angepasst....

Leider funktioniert das gnaze nicht so wirklich ^^

Bekomme Fehler:

Parse error: parse error, unexpected T_FOR, expecting ';' in K:\Webserver\xampp\htdocs\cmsoop\module\forum.php on line 217

Hmm aba ich finde da nichts :p

Hier mal der geänderte Code:
PHP:
<?php
function breadcrumbnav($fid)
			 {
                $count = 0;

                do 
                {
                   $query = $this->db->query("SELECT ParentForumID FROM `forum_kats` WHERE fid = '".$fid."'");
                   if($query[0] > 0)
                   {
                     $fid = $query[0];
                     $breadcrumb[$count] = $query[0];
                   }
                   $count++;
                }
                while($query[0] > 0)

                for($i = count($breadcrumb) - 1; $i >= 0; $i++)
                {
                   return $breadcrumb[$i]." > ";
                }
			 }
?>

Wäre nett wenn du mal durchschauen würdest denn 4 Augen sehen mehr als 2 :)

MFG Niels
 
Ja hat wohl was mit der for-schleife zu tun.....aber was o.0.... also die ";" in dem Anweisungsblock der if-schleife sind ja da...

MFG Niels


EDIT// Fehler habe ich nun raus

aber das Script gibt überhaupt nichts aus... :(

Hier nochma wie es nun ist:
PHP:
<?php
function breadcrumbnav($fid)
			 {
                $count = 0;

                do 
                {
                   $query = $this->db->query("SELECT ParentForumID FROM `forum_kats` WHERE id = '".$fid."'");
                   if($query[0] > 0)
                   {
                     $fid = $query[0];
                     $breadcrumb[$count] = $query[0];
                   }
                   $count++;
                }
                while($query[0] > 0);

                for($i = count($breadcrumb) - 1; $i >= 0; $i++)
                {
                   echo $breadcrumb[$i]." > ";
                }
			 }
?>

@ Radhad

haste das genauso bei dir laufen?

Würde mich nochma über ne Antwort freuen :)

MFG Niels
 
Zuletzt bearbeitet:
Hier mal die komplette breadcrumb.php von mir:
PHP:
<?php
$forum = 0;
$count = 0;
$threadid = 0;
$threadname = 0;

if(isset($_GET["f"]))
{
	$forum = $_GET["f"];
}
if(isset($_GET["t"]))
{
	$sql = "SELECT forumid, threadtitel FROM forenthreads WHERE threadid = ".mysql_real_escape_string($_GET["t"]).";";
	$resource = mysql_query($sql) or die (mysql_error());
	$data = mysql_fetch_array($resource);
	$forum = $data[0];
	mysql_free_result($resource);
	
	$threadid = $_GET["t"];
	$threadname = $data[1];
}
if(isset($_GET["p"]))
{
	$sql = "SELECT threadid FROM forenposts WHERE postid = ".mysql_real_escape_string($_GET["p"]);
	$resource = mysql_query($sql) or die (mysql_error());
	$thread = mysql_fetch_array($resource);
	
	$sql = "SELECT forumid, threadtitel FROM forenthreads WHERE threadid = ".mysql_real_escape_string($thread[0]).";";
	$resource = mysql_query($sql) or die (mysql_error());
	$data = mysql_fetch_array($resource);
	$forum = $data[0];
	mysql_free_result($resource);
	
	$threadid = $thread[0];
	$threadname = $data[1];
}

if($forum > 0)
{
	$sql = "SELECT forumid, forumname, parentforumid FROM foren WHERE forumid = ".mysql_real_escape_string($forum).";";
	$result_parent = mysql_query($sql) or die("Error: " . mysql_error());
	$forumid = mysql_fetch_array($result_parent);
	
	$breadcrumb[$count][0] = $forumid[0];
	$breadcrumb[$count][1] = $forumid[1];
	$breadcrumb[$count][2] = $forumid[2];
	
	mysql_free_result($result_parent);
	
	while($breadcrumb[$count][2] != 0)
	{
		$sql = "SELECT forumid, forumname, parentforumid FROM foren WHERE forumid = ".mysql_real_escape_string($breadcrumb[$count][2]).";";
		$result_parent = mysql_query($sql) or die("Error: " . mysql_error());
		$parent = mysql_fetch_array($result_parent);
		
		$count++;
		$breadcrumb[$count][0] = $parent[0];
		$breadcrumb[$count][1] = $parent[1];
		$breadcrumb[$count][2] = $parent[2];
		
		mysql_free_result($result_parent);
	}
	
	echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\" width=\"100%\" class=\"forum\">\n<tr>\n<td colspan=\"5\" id=\"forum-breadcrumb\"><a href=\"index.php?nid=".$nid."\">Forum Home</a>";
	
	for($i = count($breadcrumb)-1; $i >= 0; $i--)
	{
		if($i == 0 && $threadid == 0 && !isset($_GET["new"]))
		{
			echo '<br />&nbsp;&nbsp;&nbsp;&nbsp;> <a href="index.php?nid='.$nid.'&amp;f='.$breadcrumb[$i][0].'">'.$breadcrumb[$i][1].'</a>';
		}
		else
		{
			echo ' > <a href="index.php?nid='.$nid.'&amp;f='.$breadcrumb[$i][0].'">'.$breadcrumb[$i][1].'</a>';
		}
	}
	if(isset($_GET["new"]))
	{
		if(isset($_GET["f"]))
			echo '<br />&nbsp;&nbsp;&nbsp;&nbsp;> Neues Thema';
		if(isset($_GET["t"]))
			echo ' > <a href="index.php?nid='.$nid.'&amp;t='.$threadid.'">'.$threadname.'</a><br />&nbsp;&nbsp;&nbsp;&nbsp;> Neuer Beitrag';	
	}
	else if(isset($_GET["t"]))
	{
		echo '<br />&nbsp;&nbsp;&nbsp;&nbsp;> <a href="index.php?nid='.$nid.'&amp;t='.$threadid.'">'.$threadname.'</a>';
	}
	else if(isset($_GET["p"]))
	{
		echo ' > <a href="index.php?nid='.$nid.'&amp;t='.$threadid.'">'.$threadname.'</a><br />&nbsp;&nbsp;&nbsp;&nbsp;> Beitrag editieren';
	}
	echo "</td>\n</tr>\n";
}
echo "<table>";
?>
Das ist allerdings mit vielen Eventualitäten und auch nicht so optimiert. Vielleicht hab ich auch was vergessen bei der "kurzen" Fassung weiter oben.
 
Ah ok thx ich werd mir das mal anschauen :)

Sag ma willste net lieber versuchen deinen ganzen Code mal in OOP umzuschreiben weil wie ich dein Projekt mal angesehn habe wird des sicher Sinn mache....

1. Übersichtlicher
2. weniger Code
3. Bei einem Projekt wie deinem ist es wichtig, dass man den Code sehr einfach änder kann

Soltlest mal drüber nachdenken :)

MFG Niels


//edit

Also streng genommen kann ich eigentlich dann auch erstma bei meiner Version der Breadcrumbnavi bleiben und die noch verfeinern denn die is wesentlich kleiner als deine....außerdem versuch ich das ganze immer schön gut mit meinen ganzen Klassen zu verbinden :)

Aba trotzdem thx...

MFG Nies
 
Ja, ich will des auch alles noch in OOP machen, aber dazu muss ich mir erstmal das Video-Tutorial reinziehen damit ich weiß, wie Klassen in PHP behandelt werden - ist schon anders als bei C++ oder C# ;) Und dafür bruch man auch Zeit, die ich zu Hause aber nicht habe (neuer Herd, neue Küchenschränke, Freundin, hier & da helfen ...). Wenn ich wieder Berufsschule habe, bau ich das ganze dann nochmal um ;)
 
Ja ich sag ja nur.... OOP ist überhaupt net schwer...habe so die grundlagen innerhalb von ner Woche drinne gehabt und naja mach es lieber gleich in OOP


Hatte ein CMS geschrieben ohne OOP und naja war schon recht weit aba das war nachher so e umzubauen dass ich alles neu schreiben musste...naja jez mit OOP gehts rasend schnell..innerhalb von paar Minuten haste nen ganzen Modul umgeändert ;-)

Naja ich muss denn auch ma penn....

MFG Niels
 
Ja, das ist mir auch klar. Muss mir dann die Klassen so bauen, das nur noch die einzelnen Werte zurückgegeben werden und dann noch Files, die die Sachen verwerten. Aber wie gesagt, ich brauch erstmal Zeit, das Video zu schauen ;)
 
Zurück