Ich nutze sslinks als Link-Index.
Dieses Script-Set arbeitet mit Kategorien und Sub-Kategorien.
Die Kategorie-Datenbank hat folgende Struktur
Aus dieser Tabelle wird im Admin-Bereich eine Select-Box erstellt.
Bisher habe ich es zumindest geschafft ,
dass die direkt übergeordnete Kategorie mit angezeigt wird in der Form
Leider klappt das nicht, wenn die aktuelle Kategorie
in der 3. Ebene oder tiefer ist.
Dort gibt er mir nur die direkt übergeordnete Kategorie aus.
Die Funktion dazu lautet
Wie kann ich nun realisieren, dass das Script mir auch eine Select-Box erzeugt,
in der alle übergeordneten Kategorien angezeigt werden?
Schon mal Danke an die beste PHP-Community, die es gibt.
Dieses Script-Set arbeitet mit Kategorien und Sub-Kategorien.
Die Kategorie-Datenbank hat folgende Struktur
Code:
CREATE TABLE /*!32300 IF NOT EXISTS*/ sslinkcats ( lcat_id int(11) NOT NULL auto_increment, // Kategorie-ID lcat_cat int(11) NOT NULL DEFAULT '0' , // Übergeordnete Kategorie ( 0 ist Index) lcat_name varchar(100) NOT NULL DEFAULT '' , // Kategorie-Name lcat_header text , // Kategorie-Beschreibung lcat_ranking int(11) , // Ranking lcat_numlinks int(11) NOT NULL DEFAULT '0' , // Anzahl der Links PRIMARY KEY (lcat_id) );
Bisher habe ich es zumindest geschafft ,
dass die direkt übergeordnete Kategorie mit angezeigt wird in der Form
Code:
<option value="2">Haupt_Kateg -> Aktuelle_Kategorie</option>
in der 3. Ebene oder tiefer ist.
Dort gibt er mir nur die direkt übergeordnete Kategorie aus.
Die Funktion dazu lautet
PHP-Code:
function select_parent_cat($par_id)
{
// Funktion 'Übergeordnete Kategorie'
// wird von Function 'select_category()' aufgerufen,
// falls diese nicht der Hauptkategorie zugeordnet ist
global $db_host, $db_name, $db_user, $db_pass, $sent3, $sent4, $sent9;
$cnx = mysql_connect($db_host, $db_user, $db_pass)
or custom_die("$sent3");
mysql_select_db($db_name, $cnx)
or custom_die("$sent4");
$result = mysql_query("SELECT lcat_name FROM sslinkcats WHERE lcat_id = '$par_id'");
if (!$result)
custom_die("$sent9");
while ($row = mysql_fetch_array($result))
{
// Name der abgefragten Kategorie
$p_result = $row["lcat_name"];
}
$p_result .= " -> "; // Trenner in der Selectbox-Ausgabe
// z.B. "Haupt_Kategorie -> Aktuelle_Kategorie"
//mysql_close();
return $p_result;
}
function select_category($id)
{
global $db_host, $db_name, $db_user, $db_pass, $sent3, $sent4, $sent9;
// Fragt alle Kategorien ab und gibt diese an Select-Box
$cnx = mysql_connect($db_host, $db_user, $db_pass)
or custom_die("$sent3");
mysql_select_db($db_name, $cnx)
or custom_die("$sent4");
$resultcat = mysql_query("SELECT * FROM sslinkcats Order by lcat_name asc");
if (!$resultcat)
custom_die("$sent9");
$catfrontid = "lcat_cat"; // ID der übergeordneten Kategorie
$catselid = "lcat_id"; // ID aktuelle Kategorie
$catselname = "lcat_name"; // Name der Kategorie
$catsel = $id;
if (mysql_Numrows($resultcat)>0) //if there are records in the fields
{
$numrows=mysql_NumRows($resultcat); //count them
$x=0;
while ($x<$numrows){ //loop through the records
$theId=mysql_result($resultcat,$x,$catselid); // Kateg-ID
$theName=mysql_result($resultcat,$x,$catselname); // Name der Kategorie
$theParent=mysql_result($resultcat,$x,$catfrontid); // ID der Parent-Kategorie
// Gehört die Kategorie einer übergeordneten Kat. an ('lcat_cat' größer 0 ),
// wird Funktion 'select_parent_cat()' aufgerufen
// und in der Selectbox erscheint "Haupt_Kategorie -> Aktuelle_Kategorie"
$parentcat = "";
if ($theParent!="0") {
$parentname = select_parent_cat($theParent);
$parentcat .= $parentname;
}
if ($theId == $id) {
$return .= ss_template('categories_selectopt_y.tmpl', array(
'%parent%' => $parentcat,
'%optval%' => $theId,
'%optselected%' => 'selected',
'%optname%' => $theName
));
} else {
$return .= ss_template('categories_selectopt_y.tmpl', array(
'%parent%' => $parentcat,
'%optval%' => $theId,
'%optselected%' => '',
'%optname%' => $theName
));
}
// Das erzeugte Select-Auswahlfeld hat folgenden Aufbau:
// <option value="%optval%" %optselected%>%parent% %optname%</option>
$x++;
}
}
mysql_close();
return $return;
}
in der alle übergeordneten Kategorien angezeigt werden?
Schon mal Danke an die beste PHP-Community, die es gibt.
Kommentar