1. Go to this page and download the library: Download bootpress/hierarchy library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bootpress / hierarchy example snippets
$hier->refresh();
print_r($hier->delete(11)); // array(11, 12, 13, 14, 15)
$hier->refresh(); // don't forget to do this!
// Get the id of a given path
echo $hier->id('name', array('Electronics', 'Portable Electronics', 'CD Players')); // 9
// Retrieve a single path
print_r($hier->path('name', 'Flash'));
/*
array(
1 => 'Electronics',
6 => 'Portable Electronics',
7 => 'MP3 Players',
8 => 'Flash',
)
*/
// Aggregate the total records in a table for each tree node
$db->exec(array(
'CREATE TABLE products (',
' id INTEGER PRIMARY KEY,',
' category_id INTEGER NOT NULL DEFAULT 0,',
' name TEXT NOT NULL DEFAULT ""',
')',
));
if ($stmt = $db->insert('products', array('category_id', 'name'))) {
$db->insert($stmt, array(3, '20" TV'));
$db->insert($stmt, array(3, '36" TV'));
$db->insert($stmt, array(4, 'Super-LCD 42"'));
$db->insert($stmt, array(5, 'Ultra-Plasma 62"'));
$db->insert($stmt, array(5, 'Value Plasma 38"'));
$db->insert($stmt, array(7, 'Power-MP3 128mb'));
$db->insert($stmt, array(8, 'Super-Shuffle 1gb'));
$db->insert($stmt, array(9, 'Porta CD'));
$db->insert($stmt, array(9, 'CD To go!'));
$db->insert($stmt, array(10, 'Family Talk 360'));
$db->close($stmt);
}
print_r($hier->counts('products', 'category_id'));
/*
array( // id => count
1 => 10, // Electronics
2 => 5, // Televisions
3 => 2, // Tube
4 => 1, // LCD
5 => 2, // Plasma
6 => 5, // Portable Electronics
7 => 2, // MP3 Players
8 => 1, // Flash
9 => 2, // CD Players
10 => 1 // 2 Way Radios
)
*/
// Retrieve a tree
$tree = $hier->tree('name', 'id', 6);
print_r($tree);
/*
array(
6 => array('name' => 'Portable Electronics', 'parent' => 1, 'depth' => 0),
7 => array('name' => 'MP3 Players', 'parent' => 6, 'depth' => 1),
8 => array('name' => 'Flash', 'parent' => 7, 'depth' => 2),
9 => array('name' => 'CD Players', 'parent' => 6, 'depth' => 1),
10 => array('name' => '2 Way Radios', 'parent' => 6, 'depth' => 1),
)
*/
// Flatten it
$nest = $hier->nestify($tree);
var_export($hier->flatten($nest));
array(
array(6, 7, 8),
array(6, 9),
array(6, 10),
)
php
use BootPress\Database\Component as Database;
use BootPress\Hierarchy\Component as Hierarchy;
$db = new Database('sqlite::memory:');
$db->exec(array(
'CREATE TABLE category (',
' id INTEGER PRIMARY KEY,',
' name TEXT NOT NULL DEFAULT "",',
' parent INTEGER NOT NULL DEFAULT 0,',
' level INTEGER NOT NULL DEFAULT 0,',
' lft INTEGER NOT NULL DEFAULT 0,',
' rgt INTEGER NOT NULL DEFAULT 0',
')',
));
if ($stmt = $db->insert('category', array('id', 'name', 'parent'))) {
$db->insert($stmt, array(1, 'Electronics', 0));
$db->insert($stmt, array(2, 'Televisions', 1));
$db->insert($stmt, array(3, 'Tube', 2));
$db->insert($stmt, array(4, 'LCD', 2));
$db->insert($stmt, array(5, 'Plasma', 2));
$db->insert($stmt, array(6, 'Portable Electronics', 1));
$db->insert($stmt, array(7, 'MP3 Players', 6));
$db->insert($stmt, array(8, 'Flash', 7));
$db->insert($stmt, array(9, 'CD Players', 6));
$db->insert($stmt, array(10, '2 Way Radios', 6));
$db->insert($stmt, array(11, 'Apple in California', 1));
$db->insert($stmt, array(12, 'Made in USA', 11));
$db->insert($stmt, array(13, 'Assembled in China', 11));
$db->insert($stmt, array(14, 'iPad', 13));
$db->insert($stmt, array(15, 'iPhone', 13));
$db->close($stmt);
}
$hier = new Hierarchy($db, 'category', 'id');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.