Overview

Namespaces

  • App
    • Components
    • Interfaces
    • Lib
      • Files
      • Forms
        • Controls
      • Html
      • Repair
      • Statics
    • Model
    • Modules
      • BaseModule
        • Presenters
      • PartnersModule
        • Presenters
      • ProductModule
        • Presenters
      • SaleModule
        • Model
        • Presenters
      • SettingsModule
        • Model
        • Presenters
      • StoreModule
        • Model
        • Presenters
    • Presenters
    • Router
  • PHP

Classes

  • Container
  • Fields
  • Source
  • Structure
  • Table
  • Tree
  • TreeIntegrity
  • TreeRebuild
  • Overview
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Download

Class Tree

Třída pro zpracování stromových dat v databázi. Obsahuje metody pro získání stromu, seznamu položek stromu a přidání nebo odebrání uzlu.

Zdroje:

Nette\Object
Extended by App\Lib\Table implements App\Interfaces\IData
Extended by App\Lib\Tree implements App\Interfaces\IData, App\Interfaces\ITree

Direct known subclasses

App\Lib\TreeIntegrity, App\Lib\TreeRebuild
Namespace: App\Lib
Link: http://www.zdrojak.cz/clanky/ukladame-hierarchicka-data-v-databazi-ii/
Link: http://interval.cz/clanky/metody-ukladani-stromovych-dat-v-relacnich-databazich/
Located at lib/Tree.php
Methods summary
public
# __construct( String $tableName, App\Model\Database $databases, boolean $test = true, Nette\Database\Table\ActiveRow $masterNode = NULL )

Konstruktor předá parametry předkovy a zkontroluje integritu tabulky, pokud není test zakázán. Pokud kontrola zjistí nesrovnalost, dojde k novém sestavení sestavení stromu.

Konstruktor předá parametry předkovy a zkontroluje integritu tabulky, pokud není test zakázán. Pokud kontrola zjistí nesrovnalost, dojde k novém sestavení sestavení stromu.

Parameters

$tableName
$databases
$test
(volitelné - test itegrity stromu)
$masterNode
(hlavní uzel. pokud není předán, třída si jej najde)

Overrides

App\Lib\Table::__construct()
public Nette\Database\Selection
# getData( )

Vrací setříděný strom bez hlavního uzlu

Vrací setříděný strom bez hlavního uzlu

Returns

Nette\Database\Selection

Overrides

App\Lib\Table::getData()

Implementation of

App\Interfaces\IData::getData()
public Nette\Database\Selection
# getCopy( )

Vrací kopii setříděného stromu včetně hlavního uzlu

Vrací kopii setříděného stromu včetně hlavního uzlu

Returns

Nette\Database\Selection

Overrides

App\Lib\Table::getCopy()

Implementation of

App\Interfaces\IData::getCopy()
public Nette\Database\Selection
# getTree( )

Vrací setříděný strom (čistější ale pomalejší verze, pracuje s kopií tabulky a vrací strom sestavený podle uzlů)

Vrací setříděný strom (čistější ale pomalejší verze, pracuje s kopií tabulky a vrací strom sestavený podle uzlů)

Returns

Nette\Database\Selection

Implementation of

App\Interfaces\ITree::getTree()
public Nette\Database\Table\Selection
# getTreeNodes( integer $id, integer $depth = null )

Vrací podstrom uzlu zadaného podle id, do hloubky $depth nebo jen poduzly. Pracuje s kopii tabulky

Vrací podstrom uzlu zadaného podle id, do hloubky $depth nebo jen poduzly. Pracuje s kopii tabulky

Parameters

$id
Id uzlu
$depth
Hloubka zanoření

Returns

Nette\Database\Table\Selection

Implementation of

App\Interfaces\ITree::getTreeNodes()
public integer
# getChildsCount( integer $id )

Vrátí počet potomků uzlu

Vrátí počet potomků uzlu

Parameters

$id
Id uzlu

Returns

integer
počet uzlů

Implementation of

App\Interfaces\ITree::getChildsCount()
public integer
# insert( array $data )

Přidá uzel a upraví hodnoty na pravo od něj a vytvoří cestu. Pokud není zadán rodič, je přidělen kořenový uzel.

Přidá uzel a upraví hodnoty na pravo od něj a vytvoří cestu. Pokud není zadán rodič, je přidělen kořenový uzel.

Parameters

$data

Returns

integer
afected row or exception

Overrides

App\Lib\Table::insert()

Implementation of

App\Interfaces\IData::insert()
public integer
# delete( integer $id )

Odstraní uzel a upraví hodnoty na pravo od něj

Odstraní uzel a upraví hodnoty na pravo od něj

Parameters

$id
Id uzlu

Returns

integer

Overrides

App\Lib\Table::delete()

Implementation of

App\Interfaces\IData::delete()
public integer
# update( integer $id, array $data = null )

Upraví uzel a opraví mu cestu. Nejprve je potřeba zapsat uzel a potom změnit cestu

Upraví uzel a opraví mu cestu. Nejprve je potřeba zapsat uzel a potom změnit cestu

Parameters

$id
$data

Returns

integer
afected row or exception

Overrides

App\Lib\Table::update()

Implementation of

App\Interfaces\IData::update()
protected string
# getTreeNodePath( integer $id, $path = "" )

Vraví cestu k uzlu zadaného dle id ve formátu: rodič > potomek

Vraví cestu k uzlu zadaného dle id ve formátu: rodič > potomek

Parameters

$id
Id uzlu
$path

Returns

string
private
# rebuildTreeRight( Nette\Database\Table\ActiveRow $node, integer $mark )

Upraví hodnoty napravo od zvoleného uzlu o zadanou značku

Upraví hodnoty napravo od zvoleného uzlu o zadanou značku

Parameters

$node
$mark
značka
private Nette\Database\Table\Selection\
# getNodeChilds( integer $id )

Vrátí část podstromu, pracuje s kopii tabulky

Vrátí část podstromu, pracuje s kopii tabulky

Parameters

$id
ID uzlu

Returns

Nette\Database\Table\Selection\
protected Nette\Database\Table\ActiveRow
# getMasterNode( )

Vrací první nalezený uzel Stromu, který je bez rodiče. V případě, že neexistuje bude vytvořen

Vrací první nalezený uzel Stromu, který je bez rodiče. V případě, že neexistuje bude vytvořen

Returns

Nette\Database\Table\ActiveRow
Methods inherited from App\Lib\Table
findById(), getState(), getTableColumnsComent(), getTableComent(), setState()
Properties summary
protected Nette\Database\Table\ActiveRow $masterNode

Hlavní uzel stromu, pokud existuje , jinak NULL

Hlavní uzel stromu, pokud existuje , jinak NULL

#
protected App\model\Database $rebuildDatabase

Pomocná proměnná pro zavolání rebuildu

Pomocná proměnná pro zavolání rebuildu

#
Properties inherited from App\Lib\Table
$data, $table
sberp API API documentation generated by ApiGen