PHP code example of nook-ru / nstree
1. Go to this page and download the library: Download nook-ru/nstree 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/ */
nook-ru / nstree example snippets
Citrus\NSTree\ExampleTable::add(
array(
'NAME' => 'ROOT ROW'
)
);
Citrus\NSTree\ExampleTable::add(
array(
'PARENT_ID' => $parent_node_id,
'NAME' => 'CHILD ROW'
)
);
Citrus\NSTree\ExampleTable::update(
$id,
array(
'PARENT_ID' => $new_parent_node_id
)
);
$res = Citrus\NSTree\ExampleTable::getList(
array(
'select' => array(
'ID',
'NAME'
),
'order' => array(
'LEFT_MARGIN' => 'ASC'
)
)
);
$res = Citrus\NSTree\ExampleTable::getList(
array(
'select' => array(
'ID',
'NAME'
),
'filter' => array(
'=DEPTH_LEVEL' => 1
),
'order' => array(
'LEFT_MARGIN' => 'ASC'
)
)
);
$node = Citrus\NSTree\ExampleTable::getRow(
array(
'select' => array(
'LEFT_MARGIN',
'RIGHT_MARGIN'
),
'filter' => array(
'=ID' => $node_id
)
)
);
$res = Citrus\NSTree\ExampleTable::getList(
array(
'select' => array(
'ID',
'NAME'
),
'filter' => array(
'>LEFT_MARGIN' => $node['LEFT_MARGIN'],
'<RIGHT_MARGIN' => $node['RIGHT_MARGIN']
),
'order' => array(
'LEFT_MARGIN' => 'ASC'
)
)
);
$node = Citrus\NSTree\ExampleTable::getRow(
array(
'select' => array(
'LEFT_MARGIN',
'RIGHT_MARGIN'
),
'filter' => array(
'=ID' => $node_id
)
)
);
$res = Citrus\NSTree\ExampleTable::getList(
array(
'select' => array(
'ID',
'NAME'
),
'filter' => array(
'<LEFT_MARGIN' => $node['LEFT_MARGIN'],
'>RIGHT_MARGIN' => $node['RIGHT_MARGIN']
),
'order' => array(
'LEFT_MARGIN' => 'ASC'
)
)
);
$connection = Bitrix\Main\Application::getConnection();
Citrus\NSTree\ExampleTable::lockTable();
try {
Citrus\NSTree\ExampleTable::add(
array(
'PARENT_ID' => $parent_node_id,
'NAME' => 'CHILD ROW'
)
);
$connection->commitTransaction();
} catch (\Exception $e) {
$connection->rollbackTransaction();
Citrus\NSTree\ExampleTable::unlockTable();
echo($e->getMessage() . "\n");
}