Hi Paul,
I think I got the solution ... but - how could it be- there is a little problem.
Here is the code for the function to create a new object, the object is as you wrote it:
$child[0] =& new cFolder(0,0,Null,Null,Null,Null);
$last_level = -1;
function GetFolder($intLevel, $intName, $strContent, $lngCount, $strDescription, $strLink) {
global $last_level;
global $child;
if ( ($last_level != $intLevel) && ($intLevel > 0)) {
$child[$intLevel] =& $child[$intLevel-1]->addChild($intLevel, $intName, $strContent, $lngCount, $strDescription, $strLink);
}
else {
if (is_object($child[($intLevel-1)])) {
$child[$intLevel-1]->addChild($intLevel, $intName, $strContent, $lngCount, $strDescription, $strLink);
}
else {
echo "<h3>Fehler: \$child[" . ($intLevel-1) ."] is not available.</h3>";
}
}
$last_level = $intLevel;
}
I use the following data:
$objFolder[1] = GetFolder(1, 1, "Eins", 1, "Eins", "Eins");
$objFolder[2] = GetFolder(2, 2, "Zwei", 2, "Zwei", "Zwei");
$objFolder[3] = GetFolder(2, 3, "Drei", 1, "Drei", "Drei");
$objFolder[2] = GetFolder(3, 4, "Vier", 2, "Vier", "Vier");
$objFolder[3] = GetFolder(3, 5, "Fuenf", 1, "Fuenf", "Fuenf");
$objFolder[1] = GetFolder(1, 6, "Sechs", 1, "Sechs", "Sechs");
$objFolder[1] = GetFolder(1, 7, "Sieben", 1, "Sieben", "Sieben");
As you see element 4 and 5 should be children of element 3 but they are shown as children of element 2:
What i expect: What i get:
+--1 +-- 1
| +-- 2 | +-- 2
| +---3 | | +-- 4
| +-- 4 | | +-- 5
| +-- 5 | +-- 3
+-- 6 +-- 6
+-- 7 +-- 7
If I use the following data, the output is correct:
$objFolder[1] = GetFolder(1, 1, "Eins", 1, "Eins", "Eins");
$objFolder[2] = GetFolder(2, 2, "Zwei", 2, "Zwei", "Zwei");
$objFolder[3] = GetFolder(3, 3, "Drei", 1, "Drei", "Drei");
$objFolder[2] = GetFolder(3, 4, "Vier", 2, "Vier", "Vier");
$objFolder[3] = GetFolder(2, 5, "Fuenf", 1, "Fuenf", "Fuenf");
$objFolder[1] = GetFolder(1, 6, "Sechs", 1, "Sechs", "Sechs");
$objFolder[1] = GetFolder(1, 7, "Sieben", 1, "Sieben", "Sieben");
What i get:
+-- 1
| +-- 2
| | +-- 3
| | +-- 4
| +-- 5
+-- 6
+-- 7
This is creates the correct output too:
$objFolder[1] = GetFolder(1, 1, "Eins", 1, "Eins", "Eins");
$objFolder[2] = GetFolder(2, 2, "Zwei", 2, "Zwei", "Zwei");
$objFolder[3] = GetFolder(3, 3, "Drei", 1, "Drei", "Drei");
$objFolder[2] = GetFolder(2, 4, "Vier", 2, "Vier", "Vier");
$objFolder[3] = GetFolder(3, 5, "Fuenf", 1, "Fuenf", "Fuenf");
$objFolder[1] = GetFolder(1, 6, "Sechs", 1, "Sechs", "Sechs");
$objFolder[1] = GetFolder(1, 7, "Sieben", 1, "Sieben", "Sieben");
What I get:
+-- 1
| +-- 2
| | +-- 3
| +-- 4
| +-- 5
+-- 6
+-- 7
Do you have any idea how to adapt the GetFolder-function so the output is correct?
Salomo